diff --git a/LFP_Manager.sln b/LFP_Manager.sln
new file mode 100644
index 0000000..d882c2d
--- /dev/null
+++ b/LFP_Manager.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.5.33516.290
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LFP_Manager_DBG_Delta", "LFP_Manager\LFP_Manager_DBG_Delta.csproj", "{BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {81A464DF-E944-44BF-80EE-714CAE6FBEDB}
+ EndGlobalSection
+EndGlobal
diff --git a/LFP_Manager/AMO_LOGO.ico b/LFP_Manager/AMO_LOGO.ico
new file mode 100644
index 0000000..a18b5d2
Binary files /dev/null and b/LFP_Manager/AMO_LOGO.ico differ
diff --git a/LFP_Manager/Controls/UcAntiTheftControl.Designer.cs b/LFP_Manager/Controls/UcAntiTheftControl.Designer.cs
new file mode 100644
index 0000000..c0b1661
--- /dev/null
+++ b/LFP_Manager/Controls/UcAntiTheftControl.Designer.cs
@@ -0,0 +1,996 @@
+namespace LFP_Manager.Controls
+{
+ partial class UcAntiTheftControl
+ {
+ ///
+ /// 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 Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.LcMain = new DevExpress.XtraLayout.LayoutControl();
+ this.BtnGyroState = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnFuncSw = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnGyroPolSel = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnGyroZAxisSet = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnGyroYAxisSet = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnGyroXAxisSet = new DevExpress.XtraEditors.SimpleButton();
+ this.TeGyroZAxisNew = new DevExpress.XtraEditors.TextEdit();
+ this.TeGyroYAxisNew = new DevExpress.XtraEditors.TextEdit();
+ this.TeGyroXAxisNew = new DevExpress.XtraEditors.TextEdit();
+ this.BtnATCommFuncSwSet = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnATCommTimeoutSet = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnGyroUnlock = new DevExpress.XtraEditors.SimpleButton();
+ this.TeGyroState = new DevExpress.XtraEditors.TextEdit();
+ this.TeGyroFunctionSwitch = new DevExpress.XtraEditors.TextEdit();
+ this.TeGyroPolSel = new DevExpress.XtraEditors.TextEdit();
+ this.TeGyroZAxis = new DevExpress.XtraEditors.TextEdit();
+ this.TeGyroYAxis = new DevExpress.XtraEditors.TextEdit();
+ this.TeGyroXAxis = new DevExpress.XtraEditors.TextEdit();
+ this.TeFunctionSwitch = new DevExpress.XtraEditors.TextEdit();
+ this.TeTimeOutSet = new DevExpress.XtraEditors.TextEdit();
+ this.TeTimeOutSetNew = new DevExpress.XtraEditors.TextEdit();
+ this.TeFunctionSwitchNew = new DevExpress.XtraEditors.TextEdit();
+ this.TeGyroPolSelNew = new DevExpress.XtraEditors.TextEdit();
+ this.TeGyroFunctionSwitchNew = new DevExpress.XtraEditors.TextEdit();
+ this.TeGyroStateNew = new DevExpress.XtraEditors.TextEdit();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem14 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem15 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem16 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem17 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem18 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem19 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem20 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem21 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem22 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem23 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem24 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem25 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem26 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.TmrDisplay = new System.Windows.Forms.Timer(this.components);
+ ((System.ComponentModel.ISupportInitialize)(this.LcMain)).BeginInit();
+ this.LcMain.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroZAxisNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroYAxisNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroXAxisNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroState.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroFunctionSwitch.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroPolSel.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroZAxis.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroYAxis.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroXAxis.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeFunctionSwitch.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeTimeOutSet.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeTimeOutSetNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeFunctionSwitchNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroPolSelNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroFunctionSwitchNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroStateNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem17)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem18)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem20)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem21)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem23)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem24)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem25)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem26)).BeginInit();
+ this.SuspendLayout();
+ //
+ // LcMain
+ //
+ this.LcMain.Controls.Add(this.BtnGyroState);
+ this.LcMain.Controls.Add(this.BtnFuncSw);
+ this.LcMain.Controls.Add(this.BtnGyroPolSel);
+ this.LcMain.Controls.Add(this.BtnGyroZAxisSet);
+ this.LcMain.Controls.Add(this.BtnGyroYAxisSet);
+ this.LcMain.Controls.Add(this.BtnGyroXAxisSet);
+ this.LcMain.Controls.Add(this.TeGyroZAxisNew);
+ this.LcMain.Controls.Add(this.TeGyroYAxisNew);
+ this.LcMain.Controls.Add(this.TeGyroXAxisNew);
+ this.LcMain.Controls.Add(this.BtnATCommFuncSwSet);
+ this.LcMain.Controls.Add(this.BtnATCommTimeoutSet);
+ this.LcMain.Controls.Add(this.BtnGyroUnlock);
+ this.LcMain.Controls.Add(this.TeGyroState);
+ this.LcMain.Controls.Add(this.TeGyroFunctionSwitch);
+ this.LcMain.Controls.Add(this.TeGyroPolSel);
+ this.LcMain.Controls.Add(this.TeGyroZAxis);
+ this.LcMain.Controls.Add(this.TeGyroYAxis);
+ this.LcMain.Controls.Add(this.TeGyroXAxis);
+ this.LcMain.Controls.Add(this.TeFunctionSwitch);
+ this.LcMain.Controls.Add(this.TeTimeOutSet);
+ this.LcMain.Controls.Add(this.TeTimeOutSetNew);
+ this.LcMain.Controls.Add(this.TeFunctionSwitchNew);
+ this.LcMain.Controls.Add(this.TeGyroPolSelNew);
+ this.LcMain.Controls.Add(this.TeGyroFunctionSwitchNew);
+ this.LcMain.Controls.Add(this.TeGyroStateNew);
+ this.LcMain.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.LcMain.Location = new System.Drawing.Point(0, 0);
+ this.LcMain.Name = "LcMain";
+ this.LcMain.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1097, 193, 650, 400);
+ this.LcMain.Root = this.Root;
+ this.LcMain.Size = new System.Drawing.Size(850, 190);
+ this.LcMain.TabIndex = 0;
+ this.LcMain.Text = "layoutControl1";
+ //
+ // BtnGyroState
+ //
+ this.BtnGyroState.Enabled = false;
+ this.BtnGyroState.Location = new System.Drawing.Point(792, 84);
+ this.BtnGyroState.Name = "BtnGyroState";
+ this.BtnGyroState.Size = new System.Drawing.Size(51, 24);
+ this.BtnGyroState.StyleController = this.LcMain;
+ this.BtnGyroState.TabIndex = 26;
+ this.BtnGyroState.Text = "Set";
+ this.BtnGyroState.Click += new System.EventHandler(this.BtnGyroState_Click);
+ //
+ // BtnFuncSw
+ //
+ this.BtnFuncSw.Location = new System.Drawing.Point(792, 56);
+ this.BtnFuncSw.Name = "BtnFuncSw";
+ this.BtnFuncSw.Size = new System.Drawing.Size(51, 24);
+ this.BtnFuncSw.StyleController = this.LcMain;
+ this.BtnFuncSw.TabIndex = 25;
+ this.BtnFuncSw.Text = "Set";
+ this.BtnFuncSw.Click += new System.EventHandler(this.BtnFuncSw_Click);
+ //
+ // BtnGyroPolSel
+ //
+ this.BtnGyroPolSel.Location = new System.Drawing.Point(791, 28);
+ this.BtnGyroPolSel.Name = "BtnGyroPolSel";
+ this.BtnGyroPolSel.Size = new System.Drawing.Size(52, 24);
+ this.BtnGyroPolSel.StyleController = this.LcMain;
+ this.BtnGyroPolSel.TabIndex = 24;
+ this.BtnGyroPolSel.Text = "Set";
+ this.BtnGyroPolSel.Click += new System.EventHandler(this.BtnGyroPolSel_Click);
+ //
+ // BtnGyroZAxisSet
+ //
+ this.BtnGyroZAxisSet.Enabled = false;
+ this.BtnGyroZAxisSet.Location = new System.Drawing.Point(492, 84);
+ this.BtnGyroZAxisSet.Name = "BtnGyroZAxisSet";
+ this.BtnGyroZAxisSet.Size = new System.Drawing.Size(56, 24);
+ this.BtnGyroZAxisSet.StyleController = this.LcMain;
+ this.BtnGyroZAxisSet.TabIndex = 23;
+ this.BtnGyroZAxisSet.Text = "Set";
+ this.BtnGyroZAxisSet.Click += new System.EventHandler(this.BtnGyroZAxisSet_Click);
+ //
+ // BtnGyroYAxisSet
+ //
+ this.BtnGyroYAxisSet.Enabled = false;
+ this.BtnGyroYAxisSet.Location = new System.Drawing.Point(492, 56);
+ this.BtnGyroYAxisSet.Name = "BtnGyroYAxisSet";
+ this.BtnGyroYAxisSet.Size = new System.Drawing.Size(56, 24);
+ this.BtnGyroYAxisSet.StyleController = this.LcMain;
+ this.BtnGyroYAxisSet.TabIndex = 22;
+ this.BtnGyroYAxisSet.Text = "Set";
+ this.BtnGyroYAxisSet.Click += new System.EventHandler(this.BtnGyroYAxisSet_Click);
+ //
+ // BtnGyroXAxisSet
+ //
+ this.BtnGyroXAxisSet.Enabled = false;
+ this.BtnGyroXAxisSet.Location = new System.Drawing.Point(492, 28);
+ this.BtnGyroXAxisSet.Name = "BtnGyroXAxisSet";
+ this.BtnGyroXAxisSet.Size = new System.Drawing.Size(56, 24);
+ this.BtnGyroXAxisSet.StyleController = this.LcMain;
+ this.BtnGyroXAxisSet.TabIndex = 21;
+ this.BtnGyroXAxisSet.Text = "Set";
+ this.BtnGyroXAxisSet.Click += new System.EventHandler(this.BtnGyroXAxisSet_Click);
+ //
+ // TeGyroZAxisNew
+ //
+ this.TeGyroZAxisNew.Location = new System.Drawing.Point(440, 84);
+ this.TeGyroZAxisNew.Name = "TeGyroZAxisNew";
+ this.TeGyroZAxisNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeGyroZAxisNew.Properties.Appearance.Options.UseFont = true;
+ this.TeGyroZAxisNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeGyroZAxisNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeGyroZAxisNew.Size = new System.Drawing.Size(48, 24);
+ this.TeGyroZAxisNew.StyleController = this.LcMain;
+ this.TeGyroZAxisNew.TabIndex = 20;
+ //
+ // TeGyroYAxisNew
+ //
+ this.TeGyroYAxisNew.Location = new System.Drawing.Point(440, 56);
+ this.TeGyroYAxisNew.Name = "TeGyroYAxisNew";
+ this.TeGyroYAxisNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeGyroYAxisNew.Properties.Appearance.Options.UseFont = true;
+ this.TeGyroYAxisNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeGyroYAxisNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeGyroYAxisNew.Size = new System.Drawing.Size(48, 24);
+ this.TeGyroYAxisNew.StyleController = this.LcMain;
+ this.TeGyroYAxisNew.TabIndex = 19;
+ //
+ // TeGyroXAxisNew
+ //
+ this.TeGyroXAxisNew.Location = new System.Drawing.Point(440, 28);
+ this.TeGyroXAxisNew.Name = "TeGyroXAxisNew";
+ this.TeGyroXAxisNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeGyroXAxisNew.Properties.Appearance.Options.UseFont = true;
+ this.TeGyroXAxisNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeGyroXAxisNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeGyroXAxisNew.Size = new System.Drawing.Size(48, 24);
+ this.TeGyroXAxisNew.StyleController = this.LcMain;
+ this.TeGyroXAxisNew.TabIndex = 18;
+ //
+ // BtnATCommFuncSwSet
+ //
+ this.BtnATCommFuncSwSet.Location = new System.Drawing.Point(267, 56);
+ this.BtnATCommFuncSwSet.Name = "BtnATCommFuncSwSet";
+ this.BtnATCommFuncSwSet.Size = new System.Drawing.Size(56, 24);
+ this.BtnATCommFuncSwSet.StyleController = this.LcMain;
+ this.BtnATCommFuncSwSet.TabIndex = 17;
+ this.BtnATCommFuncSwSet.Text = "Set";
+ this.BtnATCommFuncSwSet.Click += new System.EventHandler(this.BtnATCommFuncSwSet_Click);
+ //
+ // BtnATCommTimeoutSet
+ //
+ this.BtnATCommTimeoutSet.Location = new System.Drawing.Point(267, 28);
+ this.BtnATCommTimeoutSet.Name = "BtnATCommTimeoutSet";
+ this.BtnATCommTimeoutSet.Size = new System.Drawing.Size(56, 24);
+ this.BtnATCommTimeoutSet.StyleController = this.LcMain;
+ this.BtnATCommTimeoutSet.TabIndex = 16;
+ this.BtnATCommTimeoutSet.Text = "Set";
+ this.BtnATCommTimeoutSet.Click += new System.EventHandler(this.BtnATCommTimeoutSet_Click);
+ //
+ // BtnGyroUnlock
+ //
+ this.BtnGyroUnlock.Location = new System.Drawing.Point(335, 155);
+ this.BtnGyroUnlock.Name = "BtnGyroUnlock";
+ this.BtnGyroUnlock.Size = new System.Drawing.Size(508, 28);
+ this.BtnGyroUnlock.StyleController = this.LcMain;
+ this.BtnGyroUnlock.TabIndex = 15;
+ this.BtnGyroUnlock.Text = "Anti-Theft Unlock";
+ this.BtnGyroUnlock.Click += new System.EventHandler(this.BtnGyroUnlock_Click);
+ //
+ // TeGyroState
+ //
+ this.TeGyroState.Location = new System.Drawing.Point(693, 84);
+ this.TeGyroState.Name = "TeGyroState";
+ this.TeGyroState.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeGyroState.Properties.Appearance.Options.UseFont = true;
+ this.TeGyroState.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeGyroState.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeGyroState.Properties.ReadOnly = true;
+ this.TeGyroState.Size = new System.Drawing.Size(42, 24);
+ this.TeGyroState.StyleController = this.LcMain;
+ this.TeGyroState.TabIndex = 14;
+ //
+ // TeGyroFunctionSwitch
+ //
+ this.TeGyroFunctionSwitch.Location = new System.Drawing.Point(693, 56);
+ this.TeGyroFunctionSwitch.Name = "TeGyroFunctionSwitch";
+ this.TeGyroFunctionSwitch.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeGyroFunctionSwitch.Properties.Appearance.Options.UseFont = true;
+ this.TeGyroFunctionSwitch.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeGyroFunctionSwitch.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeGyroFunctionSwitch.Properties.ReadOnly = true;
+ this.TeGyroFunctionSwitch.Size = new System.Drawing.Size(42, 24);
+ this.TeGyroFunctionSwitch.StyleController = this.LcMain;
+ this.TeGyroFunctionSwitch.TabIndex = 13;
+ //
+ // TeGyroPolSel
+ //
+ this.TeGyroPolSel.Location = new System.Drawing.Point(693, 28);
+ this.TeGyroPolSel.Name = "TeGyroPolSel";
+ this.TeGyroPolSel.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeGyroPolSel.Properties.Appearance.Options.UseFont = true;
+ this.TeGyroPolSel.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeGyroPolSel.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeGyroPolSel.Properties.ReadOnly = true;
+ this.TeGyroPolSel.Size = new System.Drawing.Size(42, 24);
+ this.TeGyroPolSel.StyleController = this.LcMain;
+ this.TeGyroPolSel.TabIndex = 12;
+ //
+ // TeGyroZAxis
+ //
+ this.TeGyroZAxis.Location = new System.Drawing.Point(390, 84);
+ this.TeGyroZAxis.Name = "TeGyroZAxis";
+ this.TeGyroZAxis.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeGyroZAxis.Properties.Appearance.Options.UseFont = true;
+ this.TeGyroZAxis.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeGyroZAxis.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeGyroZAxis.Properties.ReadOnly = true;
+ this.TeGyroZAxis.Size = new System.Drawing.Size(46, 24);
+ this.TeGyroZAxis.StyleController = this.LcMain;
+ this.TeGyroZAxis.TabIndex = 11;
+ //
+ // TeGyroYAxis
+ //
+ this.TeGyroYAxis.Location = new System.Drawing.Point(390, 56);
+ this.TeGyroYAxis.Name = "TeGyroYAxis";
+ this.TeGyroYAxis.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeGyroYAxis.Properties.Appearance.Options.UseFont = true;
+ this.TeGyroYAxis.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeGyroYAxis.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeGyroYAxis.Properties.ReadOnly = true;
+ this.TeGyroYAxis.Size = new System.Drawing.Size(46, 24);
+ this.TeGyroYAxis.StyleController = this.LcMain;
+ this.TeGyroYAxis.TabIndex = 10;
+ //
+ // TeGyroXAxis
+ //
+ this.TeGyroXAxis.Location = new System.Drawing.Point(390, 28);
+ this.TeGyroXAxis.Name = "TeGyroXAxis";
+ this.TeGyroXAxis.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeGyroXAxis.Properties.Appearance.Options.UseFont = true;
+ this.TeGyroXAxis.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeGyroXAxis.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeGyroXAxis.Properties.ReadOnly = true;
+ this.TeGyroXAxis.Size = new System.Drawing.Size(46, 24);
+ this.TeGyroXAxis.StyleController = this.LcMain;
+ this.TeGyroXAxis.TabIndex = 9;
+ //
+ // TeFunctionSwitch
+ //
+ this.TeFunctionSwitch.Location = new System.Drawing.Point(117, 56);
+ this.TeFunctionSwitch.Name = "TeFunctionSwitch";
+ this.TeFunctionSwitch.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeFunctionSwitch.Properties.Appearance.Options.UseFont = true;
+ this.TeFunctionSwitch.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeFunctionSwitch.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeFunctionSwitch.Properties.ReadOnly = true;
+ this.TeFunctionSwitch.Size = new System.Drawing.Size(66, 24);
+ this.TeFunctionSwitch.StyleController = this.LcMain;
+ this.TeFunctionSwitch.TabIndex = 7;
+ //
+ // TeTimeOutSet
+ //
+ this.TeTimeOutSet.Location = new System.Drawing.Point(117, 28);
+ this.TeTimeOutSet.Name = "TeTimeOutSet";
+ this.TeTimeOutSet.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeTimeOutSet.Properties.Appearance.Options.UseFont = true;
+ this.TeTimeOutSet.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeTimeOutSet.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeTimeOutSet.Properties.ReadOnly = true;
+ this.TeTimeOutSet.Size = new System.Drawing.Size(66, 24);
+ this.TeTimeOutSet.StyleController = this.LcMain;
+ this.TeTimeOutSet.TabIndex = 6;
+ //
+ // TeTimeOutSetNew
+ //
+ this.TeTimeOutSetNew.Location = new System.Drawing.Point(187, 28);
+ this.TeTimeOutSetNew.Name = "TeTimeOutSetNew";
+ this.TeTimeOutSetNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeTimeOutSetNew.Properties.Appearance.Options.UseFont = true;
+ this.TeTimeOutSetNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeTimeOutSetNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeTimeOutSetNew.Size = new System.Drawing.Size(76, 24);
+ this.TeTimeOutSetNew.StyleController = this.LcMain;
+ this.TeTimeOutSetNew.TabIndex = 6;
+ //
+ // TeFunctionSwitchNew
+ //
+ this.TeFunctionSwitchNew.Location = new System.Drawing.Point(187, 56);
+ this.TeFunctionSwitchNew.Name = "TeFunctionSwitchNew";
+ this.TeFunctionSwitchNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeFunctionSwitchNew.Properties.Appearance.Options.UseFont = true;
+ this.TeFunctionSwitchNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeFunctionSwitchNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeFunctionSwitchNew.Size = new System.Drawing.Size(76, 24);
+ this.TeFunctionSwitchNew.StyleController = this.LcMain;
+ this.TeFunctionSwitchNew.TabIndex = 6;
+ //
+ // TeGyroPolSelNew
+ //
+ this.TeGyroPolSelNew.Location = new System.Drawing.Point(739, 28);
+ this.TeGyroPolSelNew.Name = "TeGyroPolSelNew";
+ this.TeGyroPolSelNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeGyroPolSelNew.Properties.Appearance.Options.UseFont = true;
+ this.TeGyroPolSelNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeGyroPolSelNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeGyroPolSelNew.Size = new System.Drawing.Size(48, 24);
+ this.TeGyroPolSelNew.StyleController = this.LcMain;
+ this.TeGyroPolSelNew.TabIndex = 12;
+ //
+ // TeGyroFunctionSwitchNew
+ //
+ this.TeGyroFunctionSwitchNew.Location = new System.Drawing.Point(739, 56);
+ this.TeGyroFunctionSwitchNew.Name = "TeGyroFunctionSwitchNew";
+ this.TeGyroFunctionSwitchNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeGyroFunctionSwitchNew.Properties.Appearance.Options.UseFont = true;
+ this.TeGyroFunctionSwitchNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeGyroFunctionSwitchNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeGyroFunctionSwitchNew.Size = new System.Drawing.Size(49, 24);
+ this.TeGyroFunctionSwitchNew.StyleController = this.LcMain;
+ this.TeGyroFunctionSwitchNew.TabIndex = 12;
+ //
+ // TeGyroStateNew
+ //
+ this.TeGyroStateNew.Location = new System.Drawing.Point(739, 84);
+ this.TeGyroStateNew.Name = "TeGyroStateNew";
+ this.TeGyroStateNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeGyroStateNew.Properties.Appearance.Options.UseFont = true;
+ this.TeGyroStateNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeGyroStateNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeGyroStateNew.Size = new System.Drawing.Size(49, 24);
+ this.TeGyroStateNew.StyleController = this.LcMain;
+ this.TeGyroStateNew.TabIndex = 12;
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlGroup1,
+ this.layoutControlGroup2});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(850, 190);
+ this.Root.TextVisible = false;
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem3,
+ this.layoutControlItem1,
+ this.emptySpaceItem1,
+ this.layoutControlItem11,
+ this.layoutControlItem12,
+ this.layoutControlItem13,
+ this.layoutControlItem14});
+ this.layoutControlGroup1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(328, 188);
+ this.layoutControlGroup1.Text = "Anti-theft (Comm.)";
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.TeTimeOutSet;
+ this.layoutControlItem3.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem3.MaxSize = new System.Drawing.Size(0, 28);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(180, 28);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(180, 28);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.Text = " Time Out Setting";
+ this.layoutControlItem3.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(105, 14);
+ this.layoutControlItem3.TextToControlDistance = 5;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.TeFunctionSwitch;
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 28);
+ this.layoutControlItem1.MaxSize = new System.Drawing.Size(0, 28);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(164, 28);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(180, 28);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.Text = " Functional Switch";
+ this.layoutControlItem1.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(105, 20);
+ this.layoutControlItem1.TextToControlDistance = 5;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 56);
+ this.emptySpaceItem1.MaxSize = new System.Drawing.Size(320, 0);
+ this.emptySpaceItem1.MinSize = new System.Drawing.Size(320, 24);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(320, 103);
+ this.emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem11
+ //
+ this.layoutControlItem11.Control = this.TeTimeOutSetNew;
+ this.layoutControlItem11.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem11.CustomizationFormText = " Set";
+ this.layoutControlItem11.Location = new System.Drawing.Point(180, 0);
+ this.layoutControlItem11.MinSize = new System.Drawing.Size(80, 28);
+ this.layoutControlItem11.Name = "layoutControlItem11";
+ this.layoutControlItem11.Size = new System.Drawing.Size(80, 28);
+ this.layoutControlItem11.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem11.Text = " Time Out Setting";
+ this.layoutControlItem11.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem11.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem11.TextToControlDistance = 0;
+ this.layoutControlItem11.TextVisible = false;
+ //
+ // layoutControlItem12
+ //
+ this.layoutControlItem12.Control = this.TeFunctionSwitchNew;
+ this.layoutControlItem12.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem12.CustomizationFormText = " Set";
+ this.layoutControlItem12.Location = new System.Drawing.Point(180, 28);
+ this.layoutControlItem12.MinSize = new System.Drawing.Size(54, 28);
+ this.layoutControlItem12.Name = "layoutControlItem12";
+ this.layoutControlItem12.Size = new System.Drawing.Size(80, 28);
+ this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem12.Text = " Time Out Setting";
+ this.layoutControlItem12.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem12.TextToControlDistance = 0;
+ this.layoutControlItem12.TextVisible = false;
+ //
+ // layoutControlItem13
+ //
+ this.layoutControlItem13.Control = this.BtnATCommTimeoutSet;
+ this.layoutControlItem13.CustomizationFormText = " Btn";
+ this.layoutControlItem13.Location = new System.Drawing.Point(260, 0);
+ this.layoutControlItem13.MinSize = new System.Drawing.Size(60, 26);
+ this.layoutControlItem13.Name = "layoutControlItem13";
+ this.layoutControlItem13.Size = new System.Drawing.Size(60, 28);
+ this.layoutControlItem13.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem13.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem13.TextVisible = false;
+ //
+ // layoutControlItem14
+ //
+ this.layoutControlItem14.Control = this.BtnATCommFuncSwSet;
+ this.layoutControlItem14.CustomizationFormText = " Btn";
+ this.layoutControlItem14.Location = new System.Drawing.Point(260, 28);
+ this.layoutControlItem14.MinSize = new System.Drawing.Size(60, 26);
+ this.layoutControlItem14.Name = "layoutControlItem14";
+ this.layoutControlItem14.Size = new System.Drawing.Size(60, 28);
+ this.layoutControlItem14.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem14.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem14.TextVisible = false;
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem4,
+ this.layoutControlItem7,
+ this.layoutControlItem5,
+ this.layoutControlItem6,
+ this.emptySpaceItem2,
+ this.layoutControlItem8,
+ this.layoutControlItem9,
+ this.layoutControlItem10,
+ this.layoutControlItem15,
+ this.layoutControlItem16,
+ this.layoutControlItem17,
+ this.layoutControlItem18,
+ this.layoutControlItem19,
+ this.layoutControlItem20,
+ this.layoutControlItem21,
+ this.layoutControlItem22,
+ this.layoutControlItem23,
+ this.layoutControlItem24,
+ this.layoutControlItem25,
+ this.layoutControlItem26});
+ this.layoutControlGroup2.Location = new System.Drawing.Point(328, 0);
+ this.layoutControlGroup2.Name = "layoutControlGroup2";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(520, 188);
+ this.layoutControlGroup2.Text = "Anti-theft (GyroScope)";
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.TeGyroXAxis;
+ this.layoutControlItem4.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem4.MaxSize = new System.Drawing.Size(105, 28);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(105, 28);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(105, 28);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.Text = " X-Axis";
+ this.layoutControlItem4.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(50, 20);
+ this.layoutControlItem4.TextToControlDistance = 5;
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.TeGyroPolSel;
+ this.layoutControlItem7.Location = new System.Drawing.Point(217, 0);
+ this.layoutControlItem7.MinSize = new System.Drawing.Size(187, 28);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(187, 28);
+ this.layoutControlItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem7.Text = " Gyro Policy Selection";
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(129, 14);
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.TeGyroYAxis;
+ this.layoutControlItem5.Location = new System.Drawing.Point(0, 28);
+ this.layoutControlItem5.MaxSize = new System.Drawing.Size(105, 28);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(105, 28);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(105, 28);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.Text = " Y-Axis";
+ this.layoutControlItem5.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(50, 20);
+ this.layoutControlItem5.TextToControlDistance = 5;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.TeGyroZAxis;
+ this.layoutControlItem6.Location = new System.Drawing.Point(0, 56);
+ this.layoutControlItem6.MaxSize = new System.Drawing.Size(105, 28);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(105, 28);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(105, 28);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.Text = " Z-Axis";
+ this.layoutControlItem6.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(50, 20);
+ this.layoutControlItem6.TextToControlDistance = 5;
+ //
+ // emptySpaceItem2
+ //
+ this.emptySpaceItem2.AllowHotTrack = false;
+ this.emptySpaceItem2.Location = new System.Drawing.Point(0, 84);
+ this.emptySpaceItem2.MinSize = new System.Drawing.Size(104, 24);
+ this.emptySpaceItem2.Name = "emptySpaceItem2";
+ this.emptySpaceItem2.Size = new System.Drawing.Size(512, 43);
+ this.emptySpaceItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.TeGyroFunctionSwitch;
+ this.layoutControlItem8.Location = new System.Drawing.Point(217, 28);
+ this.layoutControlItem8.MinSize = new System.Drawing.Size(187, 28);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(187, 28);
+ this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem8.Text = " Gyro Functional Switch";
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(129, 14);
+ //
+ // layoutControlItem9
+ //
+ this.layoutControlItem9.Control = this.TeGyroState;
+ this.layoutControlItem9.Location = new System.Drawing.Point(217, 56);
+ this.layoutControlItem9.MinSize = new System.Drawing.Size(187, 28);
+ this.layoutControlItem9.Name = "layoutControlItem9";
+ this.layoutControlItem9.Size = new System.Drawing.Size(187, 28);
+ this.layoutControlItem9.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem9.Text = " Gyro State";
+ this.layoutControlItem9.TextSize = new System.Drawing.Size(129, 14);
+ //
+ // layoutControlItem10
+ //
+ this.layoutControlItem10.Control = this.BtnGyroUnlock;
+ this.layoutControlItem10.Location = new System.Drawing.Point(0, 127);
+ this.layoutControlItem10.MaxSize = new System.Drawing.Size(0, 32);
+ this.layoutControlItem10.MinSize = new System.Drawing.Size(89, 32);
+ this.layoutControlItem10.Name = "layoutControlItem10";
+ this.layoutControlItem10.Size = new System.Drawing.Size(512, 32);
+ this.layoutControlItem10.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem10.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem10.TextVisible = false;
+ //
+ // layoutControlItem15
+ //
+ this.layoutControlItem15.Control = this.TeGyroXAxisNew;
+ this.layoutControlItem15.CustomizationFormText = " Set";
+ this.layoutControlItem15.Location = new System.Drawing.Point(105, 0);
+ this.layoutControlItem15.MaxSize = new System.Drawing.Size(52, 0);
+ this.layoutControlItem15.MinSize = new System.Drawing.Size(52, 28);
+ this.layoutControlItem15.Name = "layoutControlItem15";
+ this.layoutControlItem15.Size = new System.Drawing.Size(52, 28);
+ this.layoutControlItem15.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem15.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem15.TextVisible = false;
+ //
+ // layoutControlItem16
+ //
+ this.layoutControlItem16.Control = this.TeGyroYAxisNew;
+ this.layoutControlItem16.CustomizationFormText = " Set";
+ this.layoutControlItem16.Location = new System.Drawing.Point(105, 28);
+ this.layoutControlItem16.MaxSize = new System.Drawing.Size(52, 0);
+ this.layoutControlItem16.MinSize = new System.Drawing.Size(52, 28);
+ this.layoutControlItem16.Name = "layoutControlItem16";
+ this.layoutControlItem16.Size = new System.Drawing.Size(52, 28);
+ this.layoutControlItem16.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem16.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem16.TextVisible = false;
+ //
+ // layoutControlItem17
+ //
+ this.layoutControlItem17.Control = this.TeGyroZAxisNew;
+ this.layoutControlItem17.CustomizationFormText = " Set";
+ this.layoutControlItem17.Location = new System.Drawing.Point(105, 56);
+ this.layoutControlItem17.MaxSize = new System.Drawing.Size(52, 0);
+ this.layoutControlItem17.MinSize = new System.Drawing.Size(52, 28);
+ this.layoutControlItem17.Name = "layoutControlItem17";
+ this.layoutControlItem17.Size = new System.Drawing.Size(52, 28);
+ this.layoutControlItem17.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem17.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem17.TextVisible = false;
+ //
+ // layoutControlItem18
+ //
+ this.layoutControlItem18.Control = this.BtnGyroXAxisSet;
+ this.layoutControlItem18.CustomizationFormText = " Btn";
+ this.layoutControlItem18.Location = new System.Drawing.Point(157, 0);
+ this.layoutControlItem18.MinSize = new System.Drawing.Size(60, 26);
+ this.layoutControlItem18.Name = "layoutControlItem18";
+ this.layoutControlItem18.Size = new System.Drawing.Size(60, 28);
+ this.layoutControlItem18.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem18.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem18.TextVisible = false;
+ //
+ // layoutControlItem19
+ //
+ this.layoutControlItem19.Control = this.BtnGyroYAxisSet;
+ this.layoutControlItem19.CustomizationFormText = " Btn";
+ this.layoutControlItem19.Location = new System.Drawing.Point(157, 28);
+ this.layoutControlItem19.MinSize = new System.Drawing.Size(60, 26);
+ this.layoutControlItem19.Name = "layoutControlItem19";
+ this.layoutControlItem19.Size = new System.Drawing.Size(60, 28);
+ this.layoutControlItem19.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem19.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem19.TextVisible = false;
+ //
+ // layoutControlItem20
+ //
+ this.layoutControlItem20.Control = this.BtnGyroZAxisSet;
+ this.layoutControlItem20.CustomizationFormText = " Btn";
+ this.layoutControlItem20.Location = new System.Drawing.Point(157, 56);
+ this.layoutControlItem20.MinSize = new System.Drawing.Size(60, 26);
+ this.layoutControlItem20.Name = "layoutControlItem20";
+ this.layoutControlItem20.Size = new System.Drawing.Size(60, 28);
+ this.layoutControlItem20.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem20.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem20.TextVisible = false;
+ //
+ // layoutControlItem21
+ //
+ this.layoutControlItem21.Control = this.BtnGyroPolSel;
+ this.layoutControlItem21.CustomizationFormText = " Btn";
+ this.layoutControlItem21.Location = new System.Drawing.Point(456, 0);
+ this.layoutControlItem21.MinSize = new System.Drawing.Size(55, 26);
+ this.layoutControlItem21.Name = "layoutControlItem21";
+ this.layoutControlItem21.Size = new System.Drawing.Size(56, 28);
+ this.layoutControlItem21.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem21.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem21.TextVisible = false;
+ //
+ // layoutControlItem22
+ //
+ this.layoutControlItem22.Control = this.TeGyroPolSelNew;
+ this.layoutControlItem22.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem22.CustomizationFormText = " Set";
+ this.layoutControlItem22.Location = new System.Drawing.Point(404, 0);
+ this.layoutControlItem22.MaxSize = new System.Drawing.Size(52, 0);
+ this.layoutControlItem22.MinSize = new System.Drawing.Size(52, 28);
+ this.layoutControlItem22.Name = "layoutControlItem22";
+ this.layoutControlItem22.Size = new System.Drawing.Size(52, 28);
+ this.layoutControlItem22.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem22.Text = " Gyro Policy Selection";
+ this.layoutControlItem22.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem22.TextVisible = false;
+ //
+ // layoutControlItem23
+ //
+ this.layoutControlItem23.Control = this.TeGyroFunctionSwitchNew;
+ this.layoutControlItem23.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem23.CustomizationFormText = " Set";
+ this.layoutControlItem23.Location = new System.Drawing.Point(404, 28);
+ this.layoutControlItem23.MinSize = new System.Drawing.Size(52, 28);
+ this.layoutControlItem23.Name = "layoutControlItem23";
+ this.layoutControlItem23.Size = new System.Drawing.Size(53, 28);
+ this.layoutControlItem23.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem23.Text = " Gyro Policy Selection";
+ this.layoutControlItem23.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem23.TextVisible = false;
+ //
+ // layoutControlItem24
+ //
+ this.layoutControlItem24.Control = this.TeGyroStateNew;
+ this.layoutControlItem24.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem24.CustomizationFormText = " Set";
+ this.layoutControlItem24.Location = new System.Drawing.Point(404, 56);
+ this.layoutControlItem24.MinSize = new System.Drawing.Size(52, 28);
+ this.layoutControlItem24.Name = "layoutControlItem24";
+ this.layoutControlItem24.Size = new System.Drawing.Size(53, 28);
+ this.layoutControlItem24.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem24.Text = " Gyro Policy Selection";
+ this.layoutControlItem24.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem24.TextVisible = false;
+ //
+ // layoutControlItem25
+ //
+ this.layoutControlItem25.Control = this.BtnFuncSw;
+ this.layoutControlItem25.CustomizationFormText = " Btn";
+ this.layoutControlItem25.Location = new System.Drawing.Point(457, 28);
+ this.layoutControlItem25.MinSize = new System.Drawing.Size(55, 26);
+ this.layoutControlItem25.Name = "layoutControlItem25";
+ this.layoutControlItem25.Size = new System.Drawing.Size(55, 28);
+ this.layoutControlItem25.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem25.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem25.TextVisible = false;
+ //
+ // layoutControlItem26
+ //
+ this.layoutControlItem26.Control = this.BtnGyroState;
+ this.layoutControlItem26.CustomizationFormText = " Btn";
+ this.layoutControlItem26.Location = new System.Drawing.Point(457, 56);
+ this.layoutControlItem26.MinSize = new System.Drawing.Size(55, 26);
+ this.layoutControlItem26.Name = "layoutControlItem26";
+ this.layoutControlItem26.Size = new System.Drawing.Size(55, 28);
+ this.layoutControlItem26.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem26.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem26.TextVisible = false;
+ //
+ // TmrDisplay
+ //
+ this.TmrDisplay.Interval = 500;
+ this.TmrDisplay.Tick += new System.EventHandler(this.TmrDisplay_Tick);
+ //
+ // UcAntiTheftControl
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.LcMain);
+ this.Name = "UcAntiTheftControl";
+ this.Size = new System.Drawing.Size(850, 190);
+ ((System.ComponentModel.ISupportInitialize)(this.LcMain)).EndInit();
+ this.LcMain.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroZAxisNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroYAxisNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroXAxisNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroState.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroFunctionSwitch.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroPolSel.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroZAxis.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroYAxis.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroXAxis.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeFunctionSwitch.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeTimeOutSet.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeTimeOutSetNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeFunctionSwitchNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroPolSelNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroFunctionSwitchNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeGyroStateNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem17)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem18)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem20)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem21)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem23)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem24)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem25)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem26)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl LcMain;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraEditors.TextEdit TeTimeOutSet;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraEditors.TextEdit TeFunctionSwitch;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraEditors.SimpleButton BtnGyroUnlock;
+ private DevExpress.XtraEditors.TextEdit TeGyroState;
+ private DevExpress.XtraEditors.TextEdit TeGyroFunctionSwitch;
+ private DevExpress.XtraEditors.TextEdit TeGyroPolSel;
+ private DevExpress.XtraEditors.TextEdit TeGyroZAxis;
+ private DevExpress.XtraEditors.TextEdit TeGyroYAxis;
+ private DevExpress.XtraEditors.TextEdit TeGyroXAxis;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10;
+ private System.Windows.Forms.Timer TmrDisplay;
+ private DevExpress.XtraEditors.SimpleButton BtnATCommFuncSwSet;
+ private DevExpress.XtraEditors.SimpleButton BtnATCommTimeoutSet;
+ private DevExpress.XtraEditors.TextEdit TeTimeOutSetNew;
+ private DevExpress.XtraEditors.TextEdit TeFunctionSwitchNew;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem14;
+ private DevExpress.XtraEditors.TextEdit TeGyroZAxisNew;
+ private DevExpress.XtraEditors.TextEdit TeGyroYAxisNew;
+ private DevExpress.XtraEditors.TextEdit TeGyroXAxisNew;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem15;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem16;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem17;
+ private DevExpress.XtraEditors.SimpleButton BtnGyroZAxisSet;
+ private DevExpress.XtraEditors.SimpleButton BtnGyroYAxisSet;
+ private DevExpress.XtraEditors.SimpleButton BtnGyroXAxisSet;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem18;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem19;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem20;
+ private DevExpress.XtraEditors.SimpleButton BtnGyroPolSel;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem21;
+ private DevExpress.XtraEditors.TextEdit TeGyroPolSelNew;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem22;
+ private DevExpress.XtraEditors.TextEdit TeGyroFunctionSwitchNew;
+ private DevExpress.XtraEditors.TextEdit TeGyroStateNew;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem23;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem24;
+ private DevExpress.XtraEditors.SimpleButton BtnGyroState;
+ private DevExpress.XtraEditors.SimpleButton BtnFuncSw;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem25;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem26;
+ }
+}
diff --git a/LFP_Manager/Controls/UcAntiTheftControl.cs b/LFP_Manager/Controls/UcAntiTheftControl.cs
new file mode 100644
index 0000000..7f8c157
--- /dev/null
+++ b/LFP_Manager/Controls/UcAntiTheftControl.cs
@@ -0,0 +1,285 @@
+using DevExpress.XtraEditors;
+using DevExpress.XtraRichEdit.Import.Doc;
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using static DevExpress.Xpo.Helpers.AssociatedCollectionCriteriaHelper;
+
+namespace LFP_Manager.Controls
+{
+ public partial class UcAntiTheftControl : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region DELEGATE
+
+ public delegate void setCalibUpdate(object sender);
+ public delegate void setCalibCommand(int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib);
+ public delegate Int32 getBattData(int item, int cno);
+
+ #endregion
+
+ #region VARIABLES
+
+ private int SystemId = 0;
+ private const int CALC_INDEX = 6;
+
+ private DeviceParamData rParam;
+
+ private DeviceCalibration rCalib;
+ private DeviceCalibration wCalib;
+
+ public event setCalibCommand OnCommand = null;
+ public event getBattData OnGetBattData = null;
+
+ public event SendDataUartEvent OnSendUartData = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+ public UcAntiTheftControl()
+ {
+ InitializeComponent();
+
+ TmrDisplay.Enabled = true;
+ }
+ #endregion
+
+ #region EXT EVENT FUNCTION
+
+ private void OnCommnadEvent(int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib)
+ {
+ OnCommand?.Invoke(mode, index, flag, ref aParam, ref aCalib);
+ }
+
+ private Int32 OnGetBattDataEvent(int item, int cno)
+ {
+ Int32 result = 0;
+
+ if (OnGetBattData != null)
+ {
+ result = OnGetBattData(item, cno);
+ }
+ return result;
+ }
+
+ #endregion
+
+ #region PUBLIC FUCTIONS
+
+ public void UpdateData(int sId, DeviceCalibration aCalib)
+ {
+ SystemId = sId;
+ rCalib = aCalib;
+ }
+
+ #endregion
+
+ #region DISPLAY DATA
+
+ private void DisplayAntiTheft()
+ {
+ if (rCalib != null)
+ {
+ TeTimeOutSet.Text = string.Format("{0}", rCalib.AntiTheftComm.TimeOut);
+ TeFunctionSwitch.Text = string.Format("{0}", rCalib.AntiTheftComm.FuncSwitch);
+
+ TeGyroXAxis.Text = string.Format("{0}", rCalib.AntiTheftGyro.XAxis);
+ TeGyroYAxis.Text = string.Format("{0}", rCalib.AntiTheftGyro.YAxis);
+ TeGyroZAxis.Text = string.Format("{0}", rCalib.AntiTheftGyro.ZAxis);
+
+ TeGyroPolSel.Text = string.Format("{0}", rCalib.AntiTheftGyro.GyroPolicySel);
+ TeGyroFunctionSwitch.Text = string.Format("{0}", rCalib.AntiTheftGyro.GyroFuncSwitch);
+ TeGyroState.Text = string.Format("{0}", rCalib.AntiTheftGyro.GyroState);
+ }
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+ private void BtnCommUnlock_Click(object sender, EventArgs e)
+ {
+ AntiTheftCommParamWrite(0x3001, 0);
+ }
+
+ private void BtnATCommTimeoutSet_Click(object sender, EventArgs e)
+ {
+ if (TeTimeOutSetNew.Text != "")
+ {
+ int tmp = Convert.ToInt32(TeTimeOutSetNew.Text);
+ AntiTheftCommParamWrite(0x3000, tmp);
+ }
+ }
+
+ private void BtnATCommFuncSwSet_Click(object sender, EventArgs e)
+ {
+ if (TeFunctionSwitchNew.Text != "")
+ {
+ int tmp = Convert.ToInt32(TeFunctionSwitchNew.Text);
+ AntiTheftCommParamWrite(0x3002, tmp);
+ }
+ }
+
+ private void BtnGyroUnlock_Click(object sender, EventArgs e)
+ {
+ GyroScopeParamWrite(0x4007, 1);
+ }
+
+ private void MultiDateWriteCmd(ushort addr, int data, int len)
+ {
+ byte[] crc;
+ int i = 0;
+ // Normal mode --> Bootloader mode
+ byte[] sdata = new byte[7 + 2 + 2];
+
+ sdata[i++] = (byte)SystemId; // Device ID
+ sdata[i++] = (byte)CsSerialCommFunctionDelta.PRESET_MULTI_REG; // Command
+ sdata[i++] = (byte)(addr >> 8); // Write Register Address MSB
+ sdata[i++] = (byte)(addr >> 0); // Write Register Address LSB
+ sdata[i++] = (byte)(1 >> 8); // Write Count of Register MSB
+ sdata[i++] = (byte)(1 >> 0); // Write Count of Register LSB
+ sdata[i++] = (byte)(1 * 2); // Byte Count - [2 * (Num of register)]
+
+ sdata[i++] = (byte)(data >> 8);
+ sdata[i++] = (byte)(data >> 0);
+
+ crc = CsSerialCommFunctionDelta.GetCRC(sdata, i);
+
+ sdata[i++] = crc[0]; // CRCH
+ sdata[i++] = crc[1]; // CRCL
+
+ OnSendUartData?.Invoke(addr, sdata, false, 1);
+ }
+
+ private void BtnGyroXAxisSet_Click(object sender, EventArgs e)
+ {
+ if (TeGyroXAxisNew.Text != "")
+ {
+ int tmp = Convert.ToInt32(TeGyroXAxisNew.Text);
+ wCalib = rCalib.DeepCopy();
+ wCalib.AntiTheftGyro.XAxis = tmp;
+ OnCommand?.Invoke(26, CALC_INDEX, 1, ref rParam, ref wCalib);
+ }
+ }
+
+ private void BtnGyroYAxisSet_Click(object sender, EventArgs e)
+ {
+ if (TeGyroYAxisNew.Text != "")
+ {
+ int tmp = Convert.ToInt32(TeGyroYAxisNew.Text);
+ wCalib = rCalib.DeepCopy();
+ wCalib.AntiTheftGyro.YAxis = tmp;
+ OnCommand?.Invoke(27, CALC_INDEX, 1, ref rParam, ref wCalib);
+ }
+ }
+
+ private void BtnGyroZAxisSet_Click(object sender, EventArgs e)
+ {
+ if (TeGyroZAxisNew.Text != "")
+ {
+ int tmp = Convert.ToInt32(TeGyroZAxisNew.Text);
+ wCalib = rCalib.DeepCopy();
+ wCalib.AntiTheftGyro.ZAxis = tmp;
+ OnCommand?.Invoke(28, CALC_INDEX, 1, ref rParam, ref wCalib);
+ }
+ }
+
+ private void GyroScopeParamWrite(ushort waddr, int data)
+ {
+ byte[] crc;
+ ushort raddr = 0x4000;
+ int i = 0;
+ // Normal mode --> Bootloader mode
+ byte[] sdata = new byte[11 + 2 + 2];
+
+ sdata[i++] = (byte)SystemId; // Device ID
+ sdata[i++] = (byte)CsSerialCommFunctionDelta.READ_WRITE_REG; // Command
+ sdata[i++] = (byte)(raddr >> 8); // Read Register Address MSB
+ sdata[i++] = (byte)(raddr >> 0); // Read Register Address LSB
+ sdata[i++] = (byte)(7 >> 8); // Read Count of Register MSB
+ sdata[i++] = (byte)(7 >> 0); // Read Count of Register LSB
+ sdata[i++] = (byte)(waddr >> 8); // Write Register Address MSB
+ sdata[i++] = (byte)(waddr >> 0); // Write Register Address LSB
+ sdata[i++] = (byte)(1 >> 8); // Write Count of Register MSB
+ sdata[i++] = (byte)(1 >> 0); // Write Count of Register LSB
+ sdata[i++] = (byte)(1 * 2); // Byte Count - [2 * (Num of register)]
+
+ sdata[i++] = (byte)(data >> 8);
+ sdata[i++] = (byte)(data >> 0);
+
+ crc = CsSerialCommFunctionDelta.GetCRC(sdata, i);
+
+ sdata[i++] = crc[1]; // CRCH
+ sdata[i++] = crc[0]; // CRCL
+
+ OnSendUartData?.Invoke((ushort)SystemId, sdata, false, 1);
+ }
+
+ private void AntiTheftCommParamWrite(ushort waddr, int data)
+ {
+ byte[] crc;
+ ushort raddr = 0x3000;
+ int i = 0;
+ // Normal mode --> Bootloader mode
+ byte[] sdata = new byte[11 + 2 + 2];
+
+ sdata[i++] = (byte)SystemId; // Device ID
+ sdata[i++] = (byte)CsSerialCommFunctionDelta.READ_WRITE_REG; // Command
+ sdata[i++] = (byte)(raddr >> 8); // Read Register Address MSB
+ sdata[i++] = (byte)(raddr >> 0); // Read Register Address LSB
+ sdata[i++] = (byte)(3 >> 8); // Read Count of Register MSB
+ sdata[i++] = (byte)(3 >> 0); // Read Count of Register LSB
+ sdata[i++] = (byte)(waddr >> 8); // Write Register Address MSB
+ sdata[i++] = (byte)(waddr >> 0); // Write Register Address LSB
+ sdata[i++] = (byte)(1 >> 8); // Write Count of Register MSB
+ sdata[i++] = (byte)(1 >> 0); // Write Count of Register LSB
+ sdata[i++] = (byte)(1 * 2); // Byte Count - [2 * (Num of register)]
+
+ sdata[i++] = (byte)(data >> 8);
+ sdata[i++] = (byte)(data >> 0);
+
+ crc = CsSerialCommFunctionDelta.GetCRC(sdata, i);
+
+ sdata[i++] = crc[1]; // CRCH
+ sdata[i++] = crc[0]; // CRCL
+
+ OnSendUartData?.Invoke((ushort)SystemId, sdata, false, 1);
+ }
+
+ private void BtnGyroPolSel_Click(object sender, EventArgs e)
+ {
+ if (TeGyroPolSelNew.Text != "")
+ {
+ int tmp = Convert.ToInt32(TeGyroPolSelNew.Text);
+ GyroScopeParamWrite(0x4003, tmp);
+ }
+ }
+
+ private void BtnFuncSw_Click(object sender, EventArgs e)
+ {
+ if (TeGyroFunctionSwitchNew.Text != "")
+ {
+ int tmp = Convert.ToInt32(TeGyroFunctionSwitchNew.Text);
+ GyroScopeParamWrite(0x4004, tmp);
+ }
+ }
+
+ private void BtnGyroState_Click(object sender, EventArgs e)
+ {
+ }
+ #endregion
+
+ #region TIMER EVENT
+ private void TmrDisplay_Tick(object sender, EventArgs e)
+ {
+ DisplayAntiTheft();
+ }
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/UcAntiTheftControl.resx b/LFP_Manager/Controls/UcAntiTheftControl.resx
new file mode 100644
index 0000000..c9162a8
--- /dev/null
+++ b/LFP_Manager/Controls/UcAntiTheftControl.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucCalibration.Designer.cs b/LFP_Manager/Controls/ucCalibration.Designer.cs
new file mode 100644
index 0000000..fa2bd9b
--- /dev/null
+++ b/LFP_Manager/Controls/ucCalibration.Designer.cs
@@ -0,0 +1,1210 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucCalibration
+ {
+ ///
+ /// 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 Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.TeCommTimeoutNew = new DevExpress.XtraEditors.TextEdit();
+ this.BtnRS485TimeoutSet = new DevExpress.XtraEditors.SimpleButton();
+ this.TeCommTimeout = new DevExpress.XtraEditors.TextEdit();
+ this.BtnAntiTheftEnable = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnClearAntiTheftProtect = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnAntiTheftDisable = new DevExpress.XtraEditors.SimpleButton();
+ this.gbBmsDateTime = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl();
+ this.BtnGetCurrTime = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnBmsDateTimeSet = new DevExpress.XtraEditors.SimpleButton();
+ this.TeCurrDateTime = new DevExpress.XtraEditors.TextEdit();
+ this.TeNewDateTime = new DevExpress.XtraEditors.TextEdit();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem3 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.emptySpaceItem4 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.gbChaModeControl = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
+ this.TeChgModeValueNew = new DevExpress.XtraEditors.TextEdit();
+ this.TeChgModeValueCurr = new DevExpress.XtraEditors.TextEdit();
+ this.CbNewChaMode = new DevExpress.XtraEditors.ComboBoxEdit();
+ this.BtnChaModeSet = new DevExpress.XtraEditors.SimpleButton();
+ this.TeChaMode = new DevExpress.XtraEditors.TextEdit();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.simpleLabelItem3 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem14 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.gbCapacityControl = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl7 = new DevExpress.XtraLayout.LayoutControl();
+ this.teNewSoc = new DevExpress.XtraEditors.TextEdit();
+ this.teCurrSoc = new DevExpress.XtraEditors.TextEdit();
+ this.teNewCapacity = new DevExpress.XtraEditors.TextEdit();
+ this.btnCapacitySet = new DevExpress.XtraEditors.SimpleButton();
+ this.teCurrCapacity = new DevExpress.XtraEditors.TextEdit();
+ this.layoutControlGroup7 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lcitemDesignCapacity = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem12 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.emptySpaceItem13 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem25 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.simpleLabelItem1 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.simpleLabelItem2 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.TeAntiTheftGyroCurr = new DevExpress.XtraEditors.TextEdit();
+ this.TeSensitive = new DevExpress.XtraEditors.TextEdit();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem19 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.emptySpaceItem6 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem17 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem21 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem20 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem15 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem23 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup4 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem18 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem7 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem16 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem22 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem8 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.emptySpaceItem5 = new DevExpress.XtraLayout.EmptySpaceItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.TeCommTimeoutNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeCommTimeout.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbBmsDateTime)).BeginInit();
+ this.gbBmsDateTime.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit();
+ this.layoutControl3.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.TeCurrDateTime.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeNewDateTime.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbChaModeControl)).BeginInit();
+ this.gbChaModeControl.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit();
+ this.layoutControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.TeChgModeValueNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeChgModeValueCurr.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.CbNewChaMode.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeChaMode.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbCapacityControl)).BeginInit();
+ this.gbCapacityControl.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl7)).BeginInit();
+ this.layoutControl7.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.teNewSoc.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.teCurrSoc.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.teNewCapacity.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.teCurrCapacity.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemDesignCapacity)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem12)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem13)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem25)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeAntiTheftGyroCurr.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeSensitive.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem17)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem21)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem20)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem23)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem18)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem5)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.TeCommTimeoutNew);
+ this.layoutControl1.Controls.Add(this.BtnRS485TimeoutSet);
+ this.layoutControl1.Controls.Add(this.TeCommTimeout);
+ this.layoutControl1.Controls.Add(this.BtnAntiTheftEnable);
+ this.layoutControl1.Controls.Add(this.BtnClearAntiTheftProtect);
+ this.layoutControl1.Controls.Add(this.BtnAntiTheftDisable);
+ this.layoutControl1.Controls.Add(this.gbBmsDateTime);
+ this.layoutControl1.Controls.Add(this.gbChaModeControl);
+ this.layoutControl1.Controls.Add(this.gbCapacityControl);
+ this.layoutControl1.Controls.Add(this.TeAntiTheftGyroCurr);
+ this.layoutControl1.Controls.Add(this.TeSensitive);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(881, 251, 815, 497);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(838, 406);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // TeCommTimeoutNew
+ //
+ this.TeCommTimeoutNew.Location = new System.Drawing.Point(472, 237);
+ this.TeCommTimeoutNew.Name = "TeCommTimeoutNew";
+ this.TeCommTimeoutNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeCommTimeoutNew.Properties.Appearance.Options.UseFont = true;
+ this.TeCommTimeoutNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeCommTimeoutNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeCommTimeoutNew.Size = new System.Drawing.Size(80, 24);
+ this.TeCommTimeoutNew.StyleController = this.layoutControl1;
+ this.TeCommTimeoutNew.TabIndex = 20;
+ //
+ // BtnRS485TimeoutSet
+ //
+ this.BtnRS485TimeoutSet.Location = new System.Drawing.Point(480, 370);
+ this.BtnRS485TimeoutSet.Name = "BtnRS485TimeoutSet";
+ this.BtnRS485TimeoutSet.Size = new System.Drawing.Size(72, 30);
+ this.BtnRS485TimeoutSet.StyleController = this.layoutControl1;
+ this.BtnRS485TimeoutSet.TabIndex = 19;
+ this.BtnRS485TimeoutSet.Text = "Set";
+ this.BtnRS485TimeoutSet.Click += new System.EventHandler(this.BtnRS485TimeoutSet_Click);
+ //
+ // TeCommTimeout
+ //
+ this.TeCommTimeout.Location = new System.Drawing.Point(397, 237);
+ this.TeCommTimeout.Name = "TeCommTimeout";
+ this.TeCommTimeout.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeCommTimeout.Properties.Appearance.Options.UseFont = true;
+ this.TeCommTimeout.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeCommTimeout.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeCommTimeout.Properties.ReadOnly = true;
+ this.TeCommTimeout.Size = new System.Drawing.Size(71, 24);
+ this.TeCommTimeout.StyleController = this.layoutControl1;
+ this.TeCommTimeout.TabIndex = 18;
+ //
+ // BtnAntiTheftEnable
+ //
+ this.BtnAntiTheftEnable.Location = new System.Drawing.Point(109, 370);
+ this.BtnAntiTheftEnable.Name = "BtnAntiTheftEnable";
+ this.BtnAntiTheftEnable.Size = new System.Drawing.Size(85, 30);
+ this.BtnAntiTheftEnable.StyleController = this.layoutControl1;
+ this.BtnAntiTheftEnable.TabIndex = 17;
+ this.BtnAntiTheftEnable.Text = "Enable";
+ this.BtnAntiTheftEnable.Click += new System.EventHandler(this.BtnAntiTheftEnable_Click);
+ //
+ // BtnClearAntiTheftProtect
+ //
+ this.BtnClearAntiTheftProtect.Location = new System.Drawing.Point(6, 370);
+ this.BtnClearAntiTheftProtect.Name = "BtnClearAntiTheftProtect";
+ this.BtnClearAntiTheftProtect.Size = new System.Drawing.Size(99, 30);
+ this.BtnClearAntiTheftProtect.StyleController = this.layoutControl1;
+ this.BtnClearAntiTheftProtect.TabIndex = 16;
+ this.BtnClearAntiTheftProtect.Text = "Clear Protect";
+ this.BtnClearAntiTheftProtect.Click += new System.EventHandler(this.BtnClearAntiTheftProtect_Click);
+ //
+ // BtnAntiTheftDisable
+ //
+ this.BtnAntiTheftDisable.Location = new System.Drawing.Point(198, 370);
+ this.BtnAntiTheftDisable.Name = "BtnAntiTheftDisable";
+ this.BtnAntiTheftDisable.Size = new System.Drawing.Size(82, 30);
+ this.BtnAntiTheftDisable.StyleController = this.layoutControl1;
+ this.BtnAntiTheftDisable.TabIndex = 15;
+ this.BtnAntiTheftDisable.Text = "Disable";
+ this.BtnAntiTheftDisable.Click += new System.EventHandler(this.BtnAntiTheftDisable_Click);
+ //
+ // gbBmsDateTime
+ //
+ this.gbBmsDateTime.Controls.Add(this.layoutControl3);
+ this.gbBmsDateTime.Location = new System.Drawing.Point(560, 2);
+ this.gbBmsDateTime.Name = "gbBmsDateTime";
+ this.gbBmsDateTime.Size = new System.Drawing.Size(276, 206);
+ this.gbBmsDateTime.TabIndex = 12;
+ this.gbBmsDateTime.Text = "BMS DateTime";
+ //
+ // layoutControl3
+ //
+ this.layoutControl3.Controls.Add(this.BtnGetCurrTime);
+ this.layoutControl3.Controls.Add(this.BtnBmsDateTimeSet);
+ this.layoutControl3.Controls.Add(this.TeCurrDateTime);
+ this.layoutControl3.Controls.Add(this.TeNewDateTime);
+ this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl3.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl3.Name = "layoutControl3";
+ this.layoutControl3.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1137, 0, 650, 400);
+ this.layoutControl3.Root = this.layoutControlGroup2;
+ this.layoutControl3.Size = new System.Drawing.Size(272, 181);
+ this.layoutControl3.TabIndex = 0;
+ this.layoutControl3.Text = "layoutControl3";
+ //
+ // BtnGetCurrTime
+ //
+ this.BtnGetCurrTime.Location = new System.Drawing.Point(107, 148);
+ this.BtnGetCurrTime.Name = "BtnGetCurrTime";
+ this.BtnGetCurrTime.Size = new System.Drawing.Size(90, 30);
+ this.BtnGetCurrTime.StyleController = this.layoutControl3;
+ this.BtnGetCurrTime.TabIndex = 14;
+ this.BtnGetCurrTime.Text = "Get RealTime";
+ this.BtnGetCurrTime.Click += new System.EventHandler(this.BtnGetCurrTime_Click);
+ //
+ // BtnBmsDateTimeSet
+ //
+ this.BtnBmsDateTimeSet.Location = new System.Drawing.Point(201, 148);
+ this.BtnBmsDateTimeSet.Name = "BtnBmsDateTimeSet";
+ this.BtnBmsDateTimeSet.Size = new System.Drawing.Size(68, 30);
+ this.BtnBmsDateTimeSet.StyleController = this.layoutControl3;
+ this.BtnBmsDateTimeSet.TabIndex = 13;
+ this.BtnBmsDateTimeSet.Text = "Set";
+ this.BtnBmsDateTimeSet.Click += new System.EventHandler(this.BtnBmsDateTimeSet_Click);
+ //
+ // TeCurrDateTime
+ //
+ this.TeCurrDateTime.Location = new System.Drawing.Point(60, 3);
+ this.TeCurrDateTime.Name = "TeCurrDateTime";
+ this.TeCurrDateTime.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeCurrDateTime.Properties.Appearance.Options.UseFont = true;
+ this.TeCurrDateTime.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeCurrDateTime.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeCurrDateTime.Properties.ReadOnly = true;
+ this.TeCurrDateTime.Size = new System.Drawing.Size(209, 24);
+ this.TeCurrDateTime.StyleController = this.layoutControl3;
+ this.TeCurrDateTime.TabIndex = 10;
+ //
+ // TeNewDateTime
+ //
+ this.TeNewDateTime.Location = new System.Drawing.Point(60, 31);
+ this.TeNewDateTime.Name = "TeNewDateTime";
+ this.TeNewDateTime.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeNewDateTime.Properties.Appearance.Options.UseFont = true;
+ this.TeNewDateTime.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeNewDateTime.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeNewDateTime.Size = new System.Drawing.Size(209, 24);
+ this.TeNewDateTime.StyleController = this.layoutControl3;
+ this.TeNewDateTime.TabIndex = 10;
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup2.GroupBordersVisible = false;
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem9,
+ this.layoutControlItem10,
+ this.emptySpaceItem3,
+ this.emptySpaceItem4,
+ this.layoutControlItem11,
+ this.layoutControlItem12});
+ this.layoutControlGroup2.Name = "Root";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(272, 181);
+ this.layoutControlGroup2.TextVisible = false;
+ //
+ // layoutControlItem9
+ //
+ this.layoutControlItem9.Control = this.TeCurrDateTime;
+ this.layoutControlItem9.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem9.CustomizationFormText = "Curr DateTime";
+ this.layoutControlItem9.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem9.Name = "layoutControlItem9";
+ this.layoutControlItem9.Size = new System.Drawing.Size(270, 28);
+ this.layoutControlItem9.Text = " Current";
+ this.layoutControlItem9.TextSize = new System.Drawing.Size(45, 14);
+ //
+ // layoutControlItem10
+ //
+ this.layoutControlItem10.Control = this.TeNewDateTime;
+ this.layoutControlItem10.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem10.CustomizationFormText = "New DateTime";
+ this.layoutControlItem10.Location = new System.Drawing.Point(0, 28);
+ this.layoutControlItem10.Name = "layoutControlItem10";
+ this.layoutControlItem10.Size = new System.Drawing.Size(270, 28);
+ this.layoutControlItem10.Text = " New";
+ this.layoutControlItem10.TextSize = new System.Drawing.Size(45, 14);
+ //
+ // emptySpaceItem3
+ //
+ this.emptySpaceItem3.AllowHotTrack = false;
+ this.emptySpaceItem3.Location = new System.Drawing.Point(0, 56);
+ this.emptySpaceItem3.MinSize = new System.Drawing.Size(104, 24);
+ this.emptySpaceItem3.Name = "emptySpaceItem3";
+ this.emptySpaceItem3.Size = new System.Drawing.Size(270, 89);
+ this.emptySpaceItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem3.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // emptySpaceItem4
+ //
+ this.emptySpaceItem4.AllowHotTrack = false;
+ this.emptySpaceItem4.Location = new System.Drawing.Point(0, 145);
+ this.emptySpaceItem4.MinSize = new System.Drawing.Size(104, 34);
+ this.emptySpaceItem4.Name = "emptySpaceItem4";
+ this.emptySpaceItem4.Size = new System.Drawing.Size(104, 34);
+ this.emptySpaceItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem4.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem11
+ //
+ this.layoutControlItem11.Control = this.BtnBmsDateTimeSet;
+ this.layoutControlItem11.Location = new System.Drawing.Point(198, 145);
+ this.layoutControlItem11.MinSize = new System.Drawing.Size(30, 26);
+ this.layoutControlItem11.Name = "layoutControlItem11";
+ this.layoutControlItem11.Size = new System.Drawing.Size(72, 34);
+ this.layoutControlItem11.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem11.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem11.TextVisible = false;
+ //
+ // layoutControlItem12
+ //
+ this.layoutControlItem12.Control = this.BtnGetCurrTime;
+ this.layoutControlItem12.Location = new System.Drawing.Point(104, 145);
+ this.layoutControlItem12.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem12.Name = "layoutControlItem12";
+ this.layoutControlItem12.Size = new System.Drawing.Size(94, 34);
+ this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem12.TextVisible = false;
+ //
+ // gbChaModeControl
+ //
+ this.gbChaModeControl.Controls.Add(this.layoutControl2);
+ this.gbChaModeControl.Location = new System.Drawing.Point(288, 2);
+ this.gbChaModeControl.Name = "gbChaModeControl";
+ this.gbChaModeControl.Size = new System.Drawing.Size(268, 206);
+ this.gbChaModeControl.TabIndex = 11;
+ this.gbChaModeControl.Text = "Charge Mode";
+ //
+ // layoutControl2
+ //
+ this.layoutControl2.Controls.Add(this.TeChgModeValueNew);
+ this.layoutControl2.Controls.Add(this.TeChgModeValueCurr);
+ this.layoutControl2.Controls.Add(this.CbNewChaMode);
+ this.layoutControl2.Controls.Add(this.BtnChaModeSet);
+ this.layoutControl2.Controls.Add(this.TeChaMode);
+ this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl2.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl2.Name = "layoutControl2";
+ this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(915, 0, 650, 400);
+ this.layoutControl2.Root = this.Root;
+ this.layoutControl2.Size = new System.Drawing.Size(264, 181);
+ this.layoutControl2.TabIndex = 0;
+ this.layoutControl2.Text = "`";
+ //
+ // TeChgModeValueNew
+ //
+ this.TeChgModeValueNew.Location = new System.Drawing.Point(157, 59);
+ this.TeChgModeValueNew.Name = "TeChgModeValueNew";
+ this.TeChgModeValueNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeChgModeValueNew.Properties.Appearance.Options.UseFont = true;
+ this.TeChgModeValueNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeChgModeValueNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeChgModeValueNew.Size = new System.Drawing.Size(74, 24);
+ this.TeChgModeValueNew.StyleController = this.layoutControl2;
+ this.TeChgModeValueNew.TabIndex = 15;
+ //
+ // TeChgModeValueCurr
+ //
+ this.TeChgModeValueCurr.Location = new System.Drawing.Point(81, 59);
+ this.TeChgModeValueCurr.Name = "TeChgModeValueCurr";
+ this.TeChgModeValueCurr.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeChgModeValueCurr.Properties.Appearance.Options.UseFont = true;
+ this.TeChgModeValueCurr.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeChgModeValueCurr.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeChgModeValueCurr.Properties.ReadOnly = true;
+ this.TeChgModeValueCurr.Size = new System.Drawing.Size(72, 24);
+ this.TeChgModeValueCurr.StyleController = this.layoutControl2;
+ this.TeChgModeValueCurr.TabIndex = 14;
+ //
+ // CbNewChaMode
+ //
+ this.CbNewChaMode.Location = new System.Drawing.Point(81, 31);
+ this.CbNewChaMode.Name = "CbNewChaMode";
+ this.CbNewChaMode.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.CbNewChaMode.Properties.Appearance.Options.UseFont = true;
+ this.CbNewChaMode.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+ new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+ this.CbNewChaMode.Size = new System.Drawing.Size(180, 24);
+ this.CbNewChaMode.StyleController = this.layoutControl2;
+ this.CbNewChaMode.TabIndex = 13;
+ this.CbNewChaMode.SelectedIndexChanged += new System.EventHandler(this.CbNewChaMode_SelectedIndexChanged);
+ //
+ // BtnChaModeSet
+ //
+ this.BtnChaModeSet.Location = new System.Drawing.Point(191, 148);
+ this.BtnChaModeSet.Name = "BtnChaModeSet";
+ this.BtnChaModeSet.Size = new System.Drawing.Size(70, 30);
+ this.BtnChaModeSet.StyleController = this.layoutControl2;
+ this.BtnChaModeSet.TabIndex = 12;
+ this.BtnChaModeSet.Text = "Set";
+ this.BtnChaModeSet.Click += new System.EventHandler(this.BtnChaModeSet_Click);
+ //
+ // TeChaMode
+ //
+ this.TeChaMode.Location = new System.Drawing.Point(81, 3);
+ this.TeChaMode.Name = "TeChaMode";
+ this.TeChaMode.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeChaMode.Properties.Appearance.Options.UseFont = true;
+ this.TeChaMode.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeChaMode.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near;
+ this.TeChaMode.Properties.ReadOnly = true;
+ this.TeChaMode.Size = new System.Drawing.Size(180, 24);
+ this.TeChaMode.StyleController = this.layoutControl2;
+ this.TeChaMode.TabIndex = 10;
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.emptySpaceItem1,
+ this.layoutControlItem6,
+ this.layoutControlItem7,
+ this.emptySpaceItem2,
+ this.layoutControlItem13,
+ this.layoutControlItem5,
+ this.simpleLabelItem3,
+ this.layoutControlItem14});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(264, 181);
+ this.Root.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 84);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(262, 61);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.TeChaMode;
+ this.layoutControlItem6.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(262, 28);
+ this.layoutControlItem6.Text = " Mode (Curr)";
+ this.layoutControlItem6.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(73, 14);
+ this.layoutControlItem6.TextToControlDistance = 5;
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.BtnChaModeSet;
+ this.layoutControlItem7.Location = new System.Drawing.Point(188, 145);
+ this.layoutControlItem7.MinSize = new System.Drawing.Size(30, 26);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(74, 34);
+ this.layoutControlItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem7.TextVisible = false;
+ //
+ // emptySpaceItem2
+ //
+ this.emptySpaceItem2.AllowHotTrack = false;
+ this.emptySpaceItem2.Location = new System.Drawing.Point(0, 145);
+ this.emptySpaceItem2.MinSize = new System.Drawing.Size(104, 34);
+ this.emptySpaceItem2.Name = "emptySpaceItem2";
+ this.emptySpaceItem2.Size = new System.Drawing.Size(188, 34);
+ this.emptySpaceItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem13
+ //
+ this.layoutControlItem13.Control = this.CbNewChaMode;
+ this.layoutControlItem13.Location = new System.Drawing.Point(0, 28);
+ this.layoutControlItem13.Name = "layoutControlItem13";
+ this.layoutControlItem13.Size = new System.Drawing.Size(262, 28);
+ this.layoutControlItem13.Text = " Mode (New)";
+ this.layoutControlItem13.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem13.TextSize = new System.Drawing.Size(73, 14);
+ this.layoutControlItem13.TextToControlDistance = 5;
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.TeChgModeValueCurr;
+ this.layoutControlItem5.Location = new System.Drawing.Point(0, 56);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(154, 28);
+ this.layoutControlItem5.Text = " - Value";
+ this.layoutControlItem5.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(73, 20);
+ this.layoutControlItem5.TextToControlDistance = 5;
+ //
+ // simpleLabelItem3
+ //
+ this.simpleLabelItem3.AllowHotTrack = false;
+ this.simpleLabelItem3.Location = new System.Drawing.Point(232, 56);
+ this.simpleLabelItem3.MaxSize = new System.Drawing.Size(30, 0);
+ this.simpleLabelItem3.MinSize = new System.Drawing.Size(30, 18);
+ this.simpleLabelItem3.Name = "simpleLabelItem3";
+ this.simpleLabelItem3.Size = new System.Drawing.Size(30, 28);
+ this.simpleLabelItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem3.Text = " V";
+ this.simpleLabelItem3.TextSize = new System.Drawing.Size(12, 14);
+ //
+ // layoutControlItem14
+ //
+ this.layoutControlItem14.Control = this.TeChgModeValueNew;
+ this.layoutControlItem14.Location = new System.Drawing.Point(154, 56);
+ this.layoutControlItem14.Name = "layoutControlItem14";
+ this.layoutControlItem14.Size = new System.Drawing.Size(78, 28);
+ this.layoutControlItem14.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem14.TextVisible = false;
+ //
+ // gbCapacityControl
+ //
+ this.gbCapacityControl.Controls.Add(this.layoutControl7);
+ this.gbCapacityControl.Location = new System.Drawing.Point(2, 2);
+ this.gbCapacityControl.Name = "gbCapacityControl";
+ this.gbCapacityControl.Size = new System.Drawing.Size(282, 206);
+ this.gbCapacityControl.TabIndex = 10;
+ this.gbCapacityControl.Text = "Capacity Control";
+ //
+ // layoutControl7
+ //
+ this.layoutControl7.Controls.Add(this.teNewSoc);
+ this.layoutControl7.Controls.Add(this.teCurrSoc);
+ this.layoutControl7.Controls.Add(this.teNewCapacity);
+ this.layoutControl7.Controls.Add(this.btnCapacitySet);
+ this.layoutControl7.Controls.Add(this.teCurrCapacity);
+ this.layoutControl7.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl7.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl7.Name = "layoutControl7";
+ this.layoutControl7.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1050, 144, 609, 350);
+ this.layoutControl7.Root = this.layoutControlGroup7;
+ this.layoutControl7.Size = new System.Drawing.Size(278, 181);
+ this.layoutControl7.TabIndex = 0;
+ this.layoutControl7.Text = "layoutControl7";
+ //
+ // teNewSoc
+ //
+ this.teNewSoc.Location = new System.Drawing.Point(158, 31);
+ this.teNewSoc.Name = "teNewSoc";
+ this.teNewSoc.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.teNewSoc.Properties.Appearance.Options.UseFont = true;
+ this.teNewSoc.Properties.Appearance.Options.UseTextOptions = true;
+ this.teNewSoc.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.teNewSoc.Size = new System.Drawing.Size(79, 24);
+ this.teNewSoc.StyleController = this.layoutControl7;
+ this.teNewSoc.TabIndex = 11;
+ //
+ // teCurrSoc
+ //
+ this.teCurrSoc.Location = new System.Drawing.Point(88, 31);
+ this.teCurrSoc.Name = "teCurrSoc";
+ this.teCurrSoc.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.teCurrSoc.Properties.Appearance.Options.UseFont = true;
+ this.teCurrSoc.Properties.Appearance.Options.UseTextOptions = true;
+ this.teCurrSoc.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.teCurrSoc.Properties.ReadOnly = true;
+ this.teCurrSoc.Size = new System.Drawing.Size(66, 24);
+ this.teCurrSoc.StyleController = this.layoutControl7;
+ this.teCurrSoc.TabIndex = 10;
+ //
+ // teNewCapacity
+ //
+ this.teNewCapacity.Location = new System.Drawing.Point(158, 3);
+ this.teNewCapacity.Name = "teNewCapacity";
+ this.teNewCapacity.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.teNewCapacity.Properties.Appearance.Options.UseFont = true;
+ this.teNewCapacity.Properties.Appearance.Options.UseTextOptions = true;
+ this.teNewCapacity.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.teNewCapacity.Size = new System.Drawing.Size(79, 24);
+ this.teNewCapacity.StyleController = this.layoutControl7;
+ this.teNewCapacity.TabIndex = 9;
+ //
+ // btnCapacitySet
+ //
+ this.btnCapacitySet.Location = new System.Drawing.Point(198, 148);
+ this.btnCapacitySet.Name = "btnCapacitySet";
+ this.btnCapacitySet.Size = new System.Drawing.Size(77, 30);
+ this.btnCapacitySet.StyleController = this.layoutControl7;
+ this.btnCapacitySet.TabIndex = 6;
+ this.btnCapacitySet.Text = "Set";
+ this.btnCapacitySet.Click += new System.EventHandler(this.btnCapacitySet_Click);
+ //
+ // teCurrCapacity
+ //
+ this.teCurrCapacity.Location = new System.Drawing.Point(88, 3);
+ this.teCurrCapacity.Name = "teCurrCapacity";
+ this.teCurrCapacity.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.teCurrCapacity.Properties.Appearance.Options.UseFont = true;
+ this.teCurrCapacity.Properties.Appearance.Options.UseTextOptions = true;
+ this.teCurrCapacity.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.teCurrCapacity.Properties.ReadOnly = true;
+ this.teCurrCapacity.Size = new System.Drawing.Size(66, 24);
+ this.teCurrCapacity.StyleController = this.layoutControl7;
+ this.teCurrCapacity.TabIndex = 4;
+ //
+ // layoutControlGroup7
+ //
+ this.layoutControlGroup7.CustomizationFormText = "Root";
+ this.layoutControlGroup7.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup7.GroupBordersVisible = false;
+ this.layoutControlGroup7.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lcitemDesignCapacity,
+ this.emptySpaceItem12,
+ this.emptySpaceItem13,
+ this.layoutControlItem25,
+ this.layoutControlItem1,
+ this.simpleLabelItem1,
+ this.layoutControlItem2,
+ this.layoutControlItem3,
+ this.simpleLabelItem2});
+ this.layoutControlGroup7.Name = "Root";
+ this.layoutControlGroup7.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup7.Size = new System.Drawing.Size(278, 181);
+ this.layoutControlGroup7.TextVisible = false;
+ //
+ // lcitemDesignCapacity
+ //
+ this.lcitemDesignCapacity.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lcitemDesignCapacity.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near;
+ this.lcitemDesignCapacity.Control = this.teCurrCapacity;
+ this.lcitemDesignCapacity.CustomizationFormText = "Range";
+ this.lcitemDesignCapacity.Location = new System.Drawing.Point(0, 0);
+ this.lcitemDesignCapacity.MinSize = new System.Drawing.Size(115, 28);
+ this.lcitemDesignCapacity.Name = "lcitemDesignCapacity";
+ this.lcitemDesignCapacity.Size = new System.Drawing.Size(155, 28);
+ this.lcitemDesignCapacity.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemDesignCapacity.Text = " Capacity";
+ this.lcitemDesignCapacity.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemDesignCapacity.TextSize = new System.Drawing.Size(80, 20);
+ this.lcitemDesignCapacity.TextToControlDistance = 5;
+ //
+ // emptySpaceItem12
+ //
+ this.emptySpaceItem12.AllowHotTrack = false;
+ this.emptySpaceItem12.CustomizationFormText = "emptySpaceItem12";
+ this.emptySpaceItem12.Location = new System.Drawing.Point(0, 56);
+ this.emptySpaceItem12.Name = "emptySpaceItem12";
+ this.emptySpaceItem12.Size = new System.Drawing.Size(276, 89);
+ this.emptySpaceItem12.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // emptySpaceItem13
+ //
+ this.emptySpaceItem13.AllowHotTrack = false;
+ this.emptySpaceItem13.CustomizationFormText = "emptySpaceItem13";
+ this.emptySpaceItem13.Location = new System.Drawing.Point(0, 145);
+ this.emptySpaceItem13.MinSize = new System.Drawing.Size(104, 24);
+ this.emptySpaceItem13.Name = "emptySpaceItem13";
+ this.emptySpaceItem13.Size = new System.Drawing.Size(195, 34);
+ this.emptySpaceItem13.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem13.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem25
+ //
+ this.layoutControlItem25.Control = this.btnCapacitySet;
+ this.layoutControlItem25.CustomizationFormText = "layoutControlItem25";
+ this.layoutControlItem25.Location = new System.Drawing.Point(195, 145);
+ this.layoutControlItem25.MinSize = new System.Drawing.Size(30, 34);
+ this.layoutControlItem25.Name = "layoutControlItem25";
+ this.layoutControlItem25.Size = new System.Drawing.Size(81, 34);
+ this.layoutControlItem25.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem25.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem25.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.teNewCapacity;
+ this.layoutControlItem1.Location = new System.Drawing.Point(155, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(83, 28);
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // simpleLabelItem1
+ //
+ this.simpleLabelItem1.AllowHotTrack = false;
+ this.simpleLabelItem1.Location = new System.Drawing.Point(238, 0);
+ this.simpleLabelItem1.MaxSize = new System.Drawing.Size(38, 18);
+ this.simpleLabelItem1.MinSize = new System.Drawing.Size(38, 18);
+ this.simpleLabelItem1.Name = "simpleLabelItem1";
+ this.simpleLabelItem1.Size = new System.Drawing.Size(38, 28);
+ this.simpleLabelItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem1.Text = " Ah";
+ this.simpleLabelItem1.TextSize = new System.Drawing.Size(19, 14);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.layoutControlItem2.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near;
+ this.layoutControlItem2.Control = this.teCurrSoc;
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 28);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(129, 28);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(155, 28);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.Text = " SOC";
+ this.layoutControlItem2.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(80, 20);
+ this.layoutControlItem2.TextToControlDistance = 5;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.teNewSoc;
+ this.layoutControlItem3.Location = new System.Drawing.Point(155, 28);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(54, 28);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(83, 28);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // simpleLabelItem2
+ //
+ this.simpleLabelItem2.AllowHotTrack = false;
+ this.simpleLabelItem2.Location = new System.Drawing.Point(238, 28);
+ this.simpleLabelItem2.MaxSize = new System.Drawing.Size(38, 0);
+ this.simpleLabelItem2.MinSize = new System.Drawing.Size(38, 18);
+ this.simpleLabelItem2.Name = "simpleLabelItem2";
+ this.simpleLabelItem2.Size = new System.Drawing.Size(38, 28);
+ this.simpleLabelItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem2.Text = " %";
+ this.simpleLabelItem2.TextSize = new System.Drawing.Size(19, 14);
+ //
+ // TeAntiTheftGyroCurr
+ //
+ this.TeAntiTheftGyroCurr.Location = new System.Drawing.Point(86, 237);
+ this.TeAntiTheftGyroCurr.Name = "TeAntiTheftGyroCurr";
+ this.TeAntiTheftGyroCurr.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeAntiTheftGyroCurr.Properties.Appearance.Options.UseFont = true;
+ this.TeAntiTheftGyroCurr.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeAntiTheftGyroCurr.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeAntiTheftGyroCurr.Properties.ReadOnly = true;
+ this.TeAntiTheftGyroCurr.Size = new System.Drawing.Size(194, 24);
+ this.TeAntiTheftGyroCurr.StyleController = this.layoutControl1;
+ this.TeAntiTheftGyroCurr.TabIndex = 13;
+ //
+ // TeSensitive
+ //
+ this.TeSensitive.Location = new System.Drawing.Point(86, 265);
+ this.TeSensitive.Name = "TeSensitive";
+ this.TeSensitive.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.TeSensitive.Properties.Appearance.Options.UseFont = true;
+ this.TeSensitive.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeSensitive.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.TeSensitive.Properties.ReadOnly = true;
+ this.TeSensitive.Size = new System.Drawing.Size(194, 24);
+ this.TeSensitive.StyleController = this.layoutControl1;
+ this.TeSensitive.TabIndex = 18;
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem19,
+ this.layoutControlItem4,
+ this.layoutControlItem8,
+ this.layoutControlGroup3,
+ this.layoutControlGroup4,
+ this.emptySpaceItem5});
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(838, 406);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem19
+ //
+ this.layoutControlItem19.Control = this.gbCapacityControl;
+ this.layoutControlItem19.CustomizationFormText = "layoutControlItem19";
+ this.layoutControlItem19.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem19.MaxSize = new System.Drawing.Size(286, 210);
+ this.layoutControlItem19.MinSize = new System.Drawing.Size(286, 210);
+ this.layoutControlItem19.Name = "layoutControlItem19";
+ this.layoutControlItem19.Size = new System.Drawing.Size(286, 210);
+ this.layoutControlItem19.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem19.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem19.TextVisible = false;
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.gbChaModeControl;
+ this.layoutControlItem4.Location = new System.Drawing.Point(286, 0);
+ this.layoutControlItem4.MaxSize = new System.Drawing.Size(272, 0);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(272, 95);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(272, 210);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.gbBmsDateTime;
+ this.layoutControlItem8.Location = new System.Drawing.Point(558, 0);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(280, 210);
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem8.TextVisible = false;
+ //
+ // layoutControlGroup3
+ //
+ this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.emptySpaceItem6,
+ this.layoutControlItem17,
+ this.layoutControlItem21,
+ this.layoutControlItem20,
+ this.layoutControlItem15,
+ this.layoutControlItem23});
+ this.layoutControlGroup3.Location = new System.Drawing.Point(0, 210);
+ this.layoutControlGroup3.Name = "layoutControlGroup3";
+ this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup3.Size = new System.Drawing.Size(286, 196);
+ this.layoutControlGroup3.Text = "Anti-Theft (Gyro Scope)";
+ //
+ // emptySpaceItem6
+ //
+ this.emptySpaceItem6.AllowHotTrack = false;
+ this.emptySpaceItem6.Location = new System.Drawing.Point(0, 56);
+ this.emptySpaceItem6.Name = "emptySpaceItem6";
+ this.emptySpaceItem6.Size = new System.Drawing.Size(278, 77);
+ this.emptySpaceItem6.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem17
+ //
+ this.layoutControlItem17.Control = this.TeAntiTheftGyroCurr;
+ this.layoutControlItem17.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem17.CustomizationFormText = " Gyro-Scope Curr";
+ this.layoutControlItem17.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem17.MaxSize = new System.Drawing.Size(0, 28);
+ this.layoutControlItem17.MinSize = new System.Drawing.Size(134, 28);
+ this.layoutControlItem17.Name = "layoutControlItem17";
+ this.layoutControlItem17.Size = new System.Drawing.Size(278, 28);
+ this.layoutControlItem17.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem17.Text = " Gyro Scope";
+ this.layoutControlItem17.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem17.TextSize = new System.Drawing.Size(75, 20);
+ this.layoutControlItem17.TextToControlDistance = 5;
+ //
+ // layoutControlItem21
+ //
+ this.layoutControlItem21.Control = this.BtnAntiTheftDisable;
+ this.layoutControlItem21.Location = new System.Drawing.Point(192, 133);
+ this.layoutControlItem21.MaxSize = new System.Drawing.Size(0, 34);
+ this.layoutControlItem21.MinSize = new System.Drawing.Size(30, 34);
+ this.layoutControlItem21.Name = "layoutControlItem21";
+ this.layoutControlItem21.Size = new System.Drawing.Size(86, 34);
+ this.layoutControlItem21.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem21.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem21.TextVisible = false;
+ //
+ // layoutControlItem20
+ //
+ this.layoutControlItem20.Control = this.BtnClearAntiTheftProtect;
+ this.layoutControlItem20.Location = new System.Drawing.Point(0, 133);
+ this.layoutControlItem20.MinSize = new System.Drawing.Size(30, 26);
+ this.layoutControlItem20.Name = "layoutControlItem20";
+ this.layoutControlItem20.Size = new System.Drawing.Size(103, 34);
+ this.layoutControlItem20.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem20.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem20.TextVisible = false;
+ //
+ // layoutControlItem15
+ //
+ this.layoutControlItem15.Control = this.BtnAntiTheftEnable;
+ this.layoutControlItem15.Location = new System.Drawing.Point(103, 133);
+ this.layoutControlItem15.MinSize = new System.Drawing.Size(30, 26);
+ this.layoutControlItem15.Name = "layoutControlItem15";
+ this.layoutControlItem15.Size = new System.Drawing.Size(89, 34);
+ this.layoutControlItem15.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem15.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem15.TextVisible = false;
+ //
+ // layoutControlItem23
+ //
+ this.layoutControlItem23.Control = this.TeSensitive;
+ this.layoutControlItem23.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem23.CustomizationFormText = " Sensitive";
+ this.layoutControlItem23.Location = new System.Drawing.Point(0, 28);
+ this.layoutControlItem23.MinSize = new System.Drawing.Size(178, 28);
+ this.layoutControlItem23.Name = "layoutControlItem23";
+ this.layoutControlItem23.Size = new System.Drawing.Size(278, 28);
+ this.layoutControlItem23.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem23.Text = " Sensitive";
+ this.layoutControlItem23.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem23.TextSize = new System.Drawing.Size(75, 14);
+ this.layoutControlItem23.TextToControlDistance = 5;
+ //
+ // layoutControlGroup4
+ //
+ this.layoutControlGroup4.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem18,
+ this.emptySpaceItem7,
+ this.layoutControlItem16,
+ this.layoutControlItem22,
+ this.emptySpaceItem8});
+ this.layoutControlGroup4.Location = new System.Drawing.Point(286, 210);
+ this.layoutControlGroup4.Name = "layoutControlGroup4";
+ this.layoutControlGroup4.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup4.Size = new System.Drawing.Size(272, 196);
+ this.layoutControlGroup4.Text = "Anti-Theft (RS-485 Timeout)";
+ //
+ // layoutControlItem18
+ //
+ this.layoutControlItem18.Control = this.BtnRS485TimeoutSet;
+ this.layoutControlItem18.Location = new System.Drawing.Point(188, 133);
+ this.layoutControlItem18.MaxSize = new System.Drawing.Size(0, 34);
+ this.layoutControlItem18.MinSize = new System.Drawing.Size(76, 34);
+ this.layoutControlItem18.Name = "layoutControlItem18";
+ this.layoutControlItem18.Size = new System.Drawing.Size(76, 34);
+ this.layoutControlItem18.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem18.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem18.TextVisible = false;
+ //
+ // emptySpaceItem7
+ //
+ this.emptySpaceItem7.AllowHotTrack = false;
+ this.emptySpaceItem7.Location = new System.Drawing.Point(0, 28);
+ this.emptySpaceItem7.MinSize = new System.Drawing.Size(104, 24);
+ this.emptySpaceItem7.Name = "emptySpaceItem7";
+ this.emptySpaceItem7.Size = new System.Drawing.Size(264, 105);
+ this.emptySpaceItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem7.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem16
+ //
+ this.layoutControlItem16.Control = this.TeCommTimeout;
+ this.layoutControlItem16.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem16.MinSize = new System.Drawing.Size(178, 28);
+ this.layoutControlItem16.Name = "layoutControlItem16";
+ this.layoutControlItem16.Size = new System.Drawing.Size(180, 28);
+ this.layoutControlItem16.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem16.Text = " RS-485 Timeout";
+ this.layoutControlItem16.TextSize = new System.Drawing.Size(93, 14);
+ //
+ // layoutControlItem22
+ //
+ this.layoutControlItem22.Control = this.TeCommTimeoutNew;
+ this.layoutControlItem22.Location = new System.Drawing.Point(180, 0);
+ this.layoutControlItem22.Name = "layoutControlItem22";
+ this.layoutControlItem22.Size = new System.Drawing.Size(84, 28);
+ this.layoutControlItem22.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem22.TextVisible = false;
+ //
+ // emptySpaceItem8
+ //
+ this.emptySpaceItem8.AllowHotTrack = false;
+ this.emptySpaceItem8.Location = new System.Drawing.Point(0, 133);
+ this.emptySpaceItem8.Name = "emptySpaceItem8";
+ this.emptySpaceItem8.Size = new System.Drawing.Size(188, 34);
+ this.emptySpaceItem8.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // emptySpaceItem5
+ //
+ this.emptySpaceItem5.AllowHotTrack = false;
+ this.emptySpaceItem5.Location = new System.Drawing.Point(558, 210);
+ this.emptySpaceItem5.Name = "emptySpaceItem5";
+ this.emptySpaceItem5.Size = new System.Drawing.Size(280, 196);
+ this.emptySpaceItem5.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // ucCalibration
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.layoutControl1);
+ this.Name = "ucCalibration";
+ this.Size = new System.Drawing.Size(838, 406);
+ this.Load += new System.EventHandler(this.ucCalibration_Load);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.TeCommTimeoutNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeCommTimeout.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbBmsDateTime)).EndInit();
+ this.gbBmsDateTime.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit();
+ this.layoutControl3.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.TeCurrDateTime.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeNewDateTime.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbChaModeControl)).EndInit();
+ this.gbChaModeControl.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit();
+ this.layoutControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.TeChgModeValueNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeChgModeValueCurr.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.CbNewChaMode.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeChaMode.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbCapacityControl)).EndInit();
+ this.gbCapacityControl.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl7)).EndInit();
+ this.layoutControl7.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.teNewSoc.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.teCurrSoc.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.teNewCapacity.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.teCurrCapacity.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemDesignCapacity)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem12)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem13)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem25)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeAntiTheftGyroCurr.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeSensitive.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem17)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem21)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem20)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem23)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem18)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem5)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.GroupControl gbCapacityControl;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem19;
+ private DevExpress.XtraLayout.LayoutControl layoutControl7;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup7;
+ private DevExpress.XtraEditors.TextEdit teCurrCapacity;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemDesignCapacity;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem12;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem13;
+ private DevExpress.XtraEditors.SimpleButton btnCapacitySet;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem25;
+ private DevExpress.XtraEditors.TextEdit teNewCapacity;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem1;
+ private DevExpress.XtraEditors.TextEdit teCurrSoc;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraEditors.TextEdit teNewSoc;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem2;
+ private DevExpress.XtraEditors.GroupControl gbChaModeControl;
+ private DevExpress.XtraLayout.LayoutControl layoutControl2;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraEditors.SimpleButton BtnChaModeSet;
+ private DevExpress.XtraEditors.TextEdit TeChaMode;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+ private DevExpress.XtraEditors.GroupControl gbBmsDateTime;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ private DevExpress.XtraLayout.LayoutControl layoutControl3;
+ private DevExpress.XtraEditors.TextEdit TeCurrDateTime;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
+ private DevExpress.XtraEditors.TextEdit TeNewDateTime;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem3;
+ private DevExpress.XtraEditors.SimpleButton BtnBmsDateTimeSet;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem4;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11;
+ private DevExpress.XtraEditors.SimpleButton BtnGetCurrTime;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12;
+ private DevExpress.XtraEditors.ComboBoxEdit CbNewChaMode;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13;
+ private DevExpress.XtraEditors.TextEdit TeChgModeValueCurr;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem3;
+ private DevExpress.XtraEditors.TextEdit TeChgModeValueNew;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem14;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem6;
+ private DevExpress.XtraEditors.TextEdit TeAntiTheftGyroCurr;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem17;
+ private DevExpress.XtraEditors.SimpleButton BtnAntiTheftDisable;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem21;
+ private DevExpress.XtraEditors.SimpleButton BtnClearAntiTheftProtect;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem20;
+ private DevExpress.XtraEditors.SimpleButton BtnAntiTheftEnable;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem15;
+ private DevExpress.XtraEditors.SimpleButton BtnRS485TimeoutSet;
+ private DevExpress.XtraEditors.TextEdit TeCommTimeout;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem16;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem18;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup4;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem7;
+ private DevExpress.XtraEditors.TextEdit TeCommTimeoutNew;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem22;
+ private DevExpress.XtraEditors.TextEdit TeSensitive;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem23;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem8;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem5;
+ }
+}
diff --git a/LFP_Manager/Controls/ucCalibration.cs b/LFP_Manager/Controls/ucCalibration.cs
new file mode 100644
index 0000000..c656ff9
--- /dev/null
+++ b/LFP_Manager/Controls/ucCalibration.cs
@@ -0,0 +1,463 @@
+using DevExpress.XtraLayout;
+using LFP_Manager.DataStructure;
+using LFP_Manager.Utils;
+using System;
+using System.Globalization;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Controls
+{
+ public partial class ucCalibration : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region DELEGATE
+
+ public delegate void setCalibUpdate(object sender);
+ public delegate void setCalibCommand(int mode, int index, int flag, ref DeviceParamData aParm, ref DeviceCalibration aCalib);
+ public delegate Int32 getBattData(int item, int cno);
+
+ #endregion
+
+ #region ENUMS
+
+ private enum ControlLevel
+ {
+ User = 0,
+ Technician = 1,
+ Engineer = 2,
+ Master = 3
+ }
+
+ private enum CommandMode
+ {
+ SetCapacity = 15,
+ SetChargeMode = 16,
+ SetDateTime = 17,
+ SetAntiTheft = 18,
+ ClearAntiTheft = 19,
+ SetRS485Timeout = 20,
+ SetBalanceVoltage = 21,
+ SetBalanceDiff = 22
+ }
+
+ #endregion
+
+ #region VARIABLES
+
+ const int CALC_INDEX = 6;
+
+ CommConfig Config;
+
+ DeviceSystemData SystemData;
+ DeviceCalibration rCalib;
+ DeviceCalibration wCalib;
+
+ DeviceParamData rParam;
+
+ public event setCalibCommand OnCommand = null;
+
+ int wFlag = 0;
+
+ int dFlag;
+
+ int PasswordResult;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ // Battery No:
+ // 0: No 1,3,5,7,9,11,13,15 ODD
+ // 1: No 2,4,6,8,10,12,14 Even
+ public ucCalibration()
+ {
+ InitializeComponent();
+
+ ComponentLoad();
+
+ Config = new CommConfig();
+
+ dFlag = 0;
+ }
+
+ private void ComponentLoad()
+ {
+ CbNewChaMode.Clear();
+ for (int i = 0; i < csConstData.SystemInfo.CHG_MODE.Length; i++)
+ {
+ CbNewChaMode.Properties.Items.Add(csConstData.SystemInfo.CHG_MODE[i]);
+ }
+
+ teNewCapacity.KeyPress += TextBox_KeyPress;
+ teNewSoc.KeyPress += TextBox_KeyPress;
+ TeCommTimeoutNew.KeyPress += TextBox_KeyPress;
+ TeChgModeValueNew.KeyPress += TextBox_KeyPress2;
+ }
+ #endregion
+
+ #region EXT EVENT FUNCTION
+
+ private void OnCommnadEvent(int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib)
+ {
+ OnCommand?.Invoke(mode, index, flag, ref aParam, ref aCalib);
+ }
+
+ #endregion
+
+ #region PUBLIC FUCTIONS
+
+ public void UpdateConfig(CommConfig aConfig)
+ {
+ Config = aConfig;
+ }
+ public void UpdateData(DeviceSystemData aSystemData, DeviceCalibration aCalib)
+ {
+ SystemData = aSystemData;
+ rCalib = aCalib;
+ DisplayCalib();
+ UpdateNewCalib();
+ }
+
+ private void UpdateNewCalib()
+ {
+ if (SystemData != null)
+ {
+ if (wFlag == 0)
+ {
+ teNewCapacity.Text = teCurrCapacity.Text;
+ teNewSoc.Text = teCurrSoc.Text;
+
+ wFlag = 1;
+ }
+ }
+ }
+ #endregion
+
+ #region DISPLAY DATA
+
+ private void DisplayCalib()
+ {
+ if (SystemData != null)
+ {
+ teCurrCapacity.Text = string.Format("{0}", SystemData.ValueData.designedCapacity / 10);
+ teCurrSoc.Text = string.Format("{0}", SystemData.ValueData.rSOC / 10);
+
+ int mode = SystemData.CalibrationData.ChaMode.Mode;
+ int idx = MapChaModeToComboIndex(mode);
+ if (idx >= 0 && idx < csConstData.SystemInfo.CHG_MODE.Length)
+ TeChaMode.Text = csConstData.SystemInfo.CHG_MODE[idx];
+ else
+ TeChaMode.Text = string.Format(CultureInfo.InvariantCulture, "UNKNOWN({0})", mode);
+
+ TeChgModeValueCurr.Text = string.Format("{0:0.00}", Convert.ToDouble(SystemData.CalibrationData.ChaMode.Value) / 100);
+
+ TeCurrDateTime.Text = SystemData.BmsDateTime.DateTimeStr;
+
+ // Anti-Theft Data Display
+ if (SystemData.CalibrationData.AntiTheft.GyroScope == 0)
+ {
+ TeAntiTheftGyroCurr.Text = "DISABLE";
+ }
+ else
+ {
+ TeAntiTheftGyroCurr.Text = "ENABLE";
+ }
+ TeSensitive.Text = string.Format("{0}", SystemData.CalibrationData.AntiTheft.GyroScope);
+
+ // Anti-Theft - RS-485 Comm. Timeout
+ TeCommTimeout.Text = string.Format("{0}", SystemData.CalibrationData.AntiTheft.Comm);
+
+ if (dFlag == 0)
+ {
+ CbNewChaMode.SelectedIndex = 1;
+ CbNewChaMode.SelectedIndex = SystemData.CalibrationData.ChaMode.Mode;
+
+ TeChgModeValueNew.Text = TeChgModeValueCurr.Text;
+
+ dFlag = 1;
+ }
+ }
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+
+ private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
+ {
+ csUtils.TypingOnlyNumber(sender, e, false, false);
+ }
+ private void TextBox_KeyPress2(object sender, KeyPressEventArgs e)
+ {
+ csUtils.TypingOnlyNumber(sender, e, true, false);
+ }
+
+ private void btnCapacitySet_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ if (!ValidateNumericInput(teNewCapacity.Text, "Capacity") ||
+ !ValidateNumericInput(teNewSoc.Text, "SOC"))
+ {
+ return;
+ }
+
+ wCalib = rCalib.DeepCopy();
+ wCalib.CapCalib.DesignCapacity = Convert.ToInt32(teNewCapacity.Text) * 10;
+ wCalib.CapCalib.SocValue = Convert.ToInt32(teNewSoc.Text);
+
+ OnCommnadEvent((int)CommandMode.SetCapacity, CALC_INDEX, 1, ref rParam, ref wCalib);
+ }
+ catch (Exception ex)
+ {
+ ShowError($"Failed to set capacity: {ex.Message}");
+ }
+ }
+
+ private void BtnChaModeSet_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ if (string.IsNullOrEmpty(CbNewChaMode.Text))
+ {
+ ShowError("Please select a charge mode");
+ return;
+ }
+
+ if (CbNewChaMode.SelectedIndex > 1 &&
+ !ValidateNumericInput(TeChgModeValueNew.Text, "Charge Mode Value"))
+ {
+ return;
+ }
+
+ wCalib = rCalib.DeepCopy();
+ wCalib.ChaMode.Mode = CbNewChaMode.SelectedIndex;
+ wCalib.ChaMode.Value = (int)(Convert.ToDouble(TeChgModeValueNew.Text) * 100);
+
+ OnCommnadEvent((int)CommandMode.SetChargeMode, CALC_INDEX, 1, ref rParam, ref wCalib);
+ }
+ catch (Exception ex)
+ {
+ ShowError($"Failed to set charge mode: {ex.Message}");
+ }
+ }
+ private void BtnBmsDateTimeSet_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ if (string.IsNullOrEmpty(TeNewDateTime.Text))
+ {
+ ShowError("Please enter a date/time value");
+ return;
+ }
+
+ DateTime dateTime = Convert.ToDateTime(TeNewDateTime.Text);
+ int iDateTime = CalculateDateTimeValue(dateTime);
+
+ wCalib = rCalib.DeepCopy();
+ wCalib.BmsDateTime.sValue[0] = (short)(iDateTime >> 16);
+ wCalib.BmsDateTime.sValue[1] = (short)(iDateTime >> 0);
+
+ OnCommnadEvent((int)CommandMode.SetDateTime, CALC_INDEX, 1, ref rParam, ref wCalib);
+ }
+ catch (Exception ex)
+ {
+ ShowError($"Failed to set date/time: {ex.Message}");
+ }
+ }
+ private int CalculateDateTimeValue(DateTime dateTime)
+ {
+ return ((dateTime.Year - 2000) << 26)
+ | (dateTime.Month << 22)
+ | (dateTime.Day << 17)
+ | (dateTime.Hour << 12)
+ | (dateTime.Minute << 6)
+ | (dateTime.Second << 0);
+ }
+
+ private void BtnGetCurrTime_Click(object sender, EventArgs e)
+ {
+ TeNewDateTime.Text = string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now);
+ }
+
+ private void BtnClearAntiTheftProtect_Click(object sender, EventArgs e)
+ {
+ wCalib = rCalib.DeepCopy();
+ wCalib.AntiTheft.GyroScope = Config.GyroSensitive;
+
+ OnCommnadEvent(19, CALC_INDEX, 1, ref rParam, ref wCalib);
+ }
+
+ private void PassWordResultProc(int result)
+ {
+ PasswordResult = result;
+ }
+
+ private void BtnAntiTheftEnable_Click(object sender, EventArgs e)
+ {
+ wCalib = rCalib.DeepCopy();
+ wCalib.AntiTheft.GyroScope = Config.GyroSensitive;
+
+ OnCommnadEvent(18, CALC_INDEX, 1, ref rParam, ref wCalib);
+ }
+
+ private void BtnAntiTheftDisable_Click(object sender, EventArgs e)
+ {
+ wCalib = rCalib.DeepCopy();
+ wCalib.AntiTheft.GyroScope = 0;
+
+ OnCommnadEvent(18, CALC_INDEX, 1, ref rParam, ref wCalib);
+ }
+
+ private void BtnRS485TimeoutSet_Click(object sender, EventArgs e)
+ {
+ string stTimeout = TeCommTimeoutNew.Text;
+ int Timeout = 0;
+
+ try
+ {
+ Timeout = Convert.ToInt32(stTimeout);
+ }
+ catch (Exception)
+ {
+ MessageBox.Show("Timeout data Format Error", "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+
+ wCalib = rCalib.DeepCopy();
+ wCalib.AntiTheft.Comm = Timeout;
+
+ OnCommnadEvent(20, CALC_INDEX, 1, ref rParam, ref wCalib);
+ }
+ #endregion
+
+ #region COMPONENT EVENT
+ private void CbNewChaMode_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ switch (CbNewChaMode.SelectedIndex)
+ {
+ case 0:
+ TeChgModeValueNew.Enabled = false;
+ break;
+ case 1:
+ TeChgModeValueNew.Enabled = false;
+ break;
+ case 2:
+ TeChgModeValueNew.Enabled = true;
+ break;
+ case 3:
+ TeChgModeValueNew.Enabled = true;
+ break;
+ case 4:
+ TeChgModeValueNew.Enabled = true;
+ break;
+ default:
+ TeChgModeValueNew.Enabled = false;
+ break;
+ }
+ }
+ #endregion
+
+ #region FORM EVENT
+ private void ucCalibration_Load(object sender, EventArgs e)
+ {
+ CalibConfig_ReLoad();
+ }
+
+ private void CalibConfig_ReLoad()
+ {
+ var level = (ControlLevel)Config.ControlLevel;
+
+ btnCapacitySet.Enabled = level == ControlLevel.Master;
+ BtnChaModeSet.Enabled = level >= ControlLevel.Engineer;
+ BtnBmsDateTimeSet.Enabled = level >= ControlLevel.Engineer;
+ BtnClearAntiTheftProtect.Enabled = level >= ControlLevel.Technician;
+ BtnAntiTheftEnable.Enabled = level >= ControlLevel.Engineer;
+ BtnAntiTheftDisable.Enabled = level >= ControlLevel.Engineer;
+ BtnRS485TimeoutSet.Enabled = level >= ControlLevel.Technician;
+ }
+
+ #endregion
+
+ #region VALIDATION METHODS
+
+ private bool ValidateNumericInput(string input, string fieldName)
+ {
+ if (string.IsNullOrEmpty(input))
+ {
+ ShowError($"Please enter a value for {fieldName}");
+ return false;
+ }
+
+ if (!int.TryParse(input, out _))
+ {
+ ShowError($"Invalid numeric value for {fieldName}");
+ return false;
+ }
+
+ return true;
+ }
+
+ private void ShowError(string message)
+ {
+ MessageBox.Show(message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+
+ #endregion
+
+ #region HELPER FUNCTIONS
+ // Charging Mode 매핑: 콤보 인덱스 <-> ChaMode.Mode
+ private static bool TryMapIndexToChaMode(int comboIndex, out int mode)
+ {
+ // UI: 0=CC,1=CV,2=CC-CV(x),3=Time(x),4=Power(x) (예시)
+ // 장비: 0,1,2,4,8 로 매핑
+ switch (comboIndex)
+ {
+ case 0: mode = 0; return true;
+ case 1: mode = 1; return true;
+ case 2: mode = 2; return true;
+ case 3: mode = 4; return true;
+ case 4: mode = 8; return true;
+ default: mode = -1; return false;
+ }
+ }
+ private static int MapChaModeToComboIndex(int mode)
+ {
+ switch (mode)
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 2;
+ case 4: return 3;
+ case 8: return 4;
+ default: return -1;
+ }
+ }
+ private static bool TryParseDouble(string text, out double value)
+ {
+ return double.TryParse(text, NumberStyles.Float, CultureInfo.InvariantCulture, out value);
+ }
+
+ private static string ToInvStr(double v, string fmt) =>
+ v.ToString(fmt, CultureInfo.InvariantCulture);
+
+ // BMS DateTime 비트 인코딩 (검증 포함)
+ private static bool TryEncodeBmsDateTime(DateTime dt, out short hi, out short lo, out string error)
+ {
+ error = null;
+ int year = dt.Year;
+ if (year < 2000 || year > 2063) { error = "Year must be 2000~2063"; hi = lo = 0; return false; }
+ int y = year - 2000;
+ int m = dt.Month; if (m < 1 || m > 12) { error = "Month out of range"; hi = lo = 0; return false; }
+ int d = dt.Day; if (d < 1 || d > 31) { error = "Day out of range"; hi = lo = 0; return false; }
+ int hh = dt.Hour; if (hh < 0 || hh > 23) { error = "Hour out of range"; hi = lo = 0; return false; }
+ int mm = dt.Minute; if (mm < 0 || mm > 59) { error = "Minute out of range"; hi = lo = 0; return false; }
+ int ss = dt.Second; if (ss < 0 || ss > 59) { error = "Second out of range"; hi = lo = 0; return false; }
+
+ int packed = (y << 26) | (m << 22) | (d << 17) | (hh << 12) | (mm << 6) | ss;
+ hi = (short)(packed >> 16);
+ lo = (short)(packed & 0xFFFF);
+ return true;
+ }
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/ucCalibration.resx b/LFP_Manager/Controls/ucCalibration.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Controls/ucCalibration.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucCalibrationView.Designer.cs b/LFP_Manager/Controls/ucCalibrationView.Designer.cs
new file mode 100644
index 0000000..2ad16c0
--- /dev/null
+++ b/LFP_Manager/Controls/ucCalibrationView.Designer.cs
@@ -0,0 +1,303 @@
+
+namespace LFP_Manager.Controls
+{
+ partial class ucCalibrationView
+ {
+ ///
+ /// 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 Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.edDchCalibration = new DevExpress.XtraEditors.TextEdit();
+ this.edChgCalibration = new DevExpress.XtraEditors.TextEdit();
+ this.edChgOption = new DevExpress.XtraEditors.TextEdit();
+ this.edBattCapacity = new DevExpress.XtraEditors.TextEdit();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.gbBattCapacity = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lbBattCapacity = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.gbCalibrationValue = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lbChgOption = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lbChgCalibration = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lbDchCalibration = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.edDchCalibration.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edChgCalibration.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edChgOption.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edBattCapacity.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbBattCapacity)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbBattCapacity)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbCalibrationValue)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbChgOption)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbChgCalibration)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbDchCalibration)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.AllowCustomization = false;
+ this.layoutControl1.Controls.Add(this.edDchCalibration);
+ this.layoutControl1.Controls.Add(this.edChgCalibration);
+ this.layoutControl1.Controls.Add(this.edChgOption);
+ this.layoutControl1.Controls.Add(this.edBattCapacity);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(993, 152, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(449, 277);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // edDchCalibration
+ //
+ this.edDchCalibration.Location = new System.Drawing.Point(129, 132);
+ this.edDchCalibration.Name = "edDchCalibration";
+ this.edDchCalibration.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.edDchCalibration.Properties.Appearance.Options.UseFont = true;
+ this.edDchCalibration.Properties.Appearance.Options.UseTextOptions = true;
+ this.edDchCalibration.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.edDchCalibration.Size = new System.Drawing.Size(314, 22);
+ this.edDchCalibration.StyleController = this.layoutControl1;
+ this.edDchCalibration.TabIndex = 7;
+ //
+ // edChgCalibration
+ //
+ this.edChgCalibration.Location = new System.Drawing.Point(129, 106);
+ this.edChgCalibration.Name = "edChgCalibration";
+ this.edChgCalibration.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.edChgCalibration.Properties.Appearance.Options.UseFont = true;
+ this.edChgCalibration.Properties.Appearance.Options.UseTextOptions = true;
+ this.edChgCalibration.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.edChgCalibration.Size = new System.Drawing.Size(314, 22);
+ this.edChgCalibration.StyleController = this.layoutControl1;
+ this.edChgCalibration.TabIndex = 6;
+ //
+ // edChgOption
+ //
+ this.edChgOption.Location = new System.Drawing.Point(129, 80);
+ this.edChgOption.Name = "edChgOption";
+ this.edChgOption.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.edChgOption.Properties.Appearance.Options.UseFont = true;
+ this.edChgOption.Properties.Appearance.Options.UseTextOptions = true;
+ this.edChgOption.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.edChgOption.Size = new System.Drawing.Size(314, 22);
+ this.edChgOption.StyleController = this.layoutControl1;
+ this.edChgOption.TabIndex = 5;
+ //
+ // edBattCapacity
+ //
+ this.edBattCapacity.Location = new System.Drawing.Point(129, 27);
+ this.edBattCapacity.Name = "edBattCapacity";
+ this.edBattCapacity.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.edBattCapacity.Properties.Appearance.Options.UseFont = true;
+ this.edBattCapacity.Properties.Appearance.Options.UseTextOptions = true;
+ this.edBattCapacity.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.edBattCapacity.Size = new System.Drawing.Size(314, 22);
+ this.edBattCapacity.StyleController = this.layoutControl1;
+ this.edBattCapacity.TabIndex = 4;
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.emptySpaceItem1,
+ this.gbBattCapacity,
+ this.gbCalibrationValue});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(449, 277);
+ this.Root.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 158);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(447, 117);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // gbBattCapacity
+ //
+ this.gbBattCapacity.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lbBattCapacity,
+ this.layoutControlItem1});
+ this.gbBattCapacity.Location = new System.Drawing.Point(0, 0);
+ this.gbBattCapacity.Name = "gbBattCapacity";
+ this.gbBattCapacity.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.gbBattCapacity.Size = new System.Drawing.Size(447, 53);
+ this.gbBattCapacity.Spacing = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.gbBattCapacity.Text = "Battery Capacity";
+ //
+ // lbBattCapacity
+ //
+ this.lbBattCapacity.AllowHotTrack = false;
+ this.lbBattCapacity.Location = new System.Drawing.Point(0, 0);
+ this.lbBattCapacity.Name = "lbBattCapacity";
+ this.lbBattCapacity.Size = new System.Drawing.Size(123, 26);
+ this.lbBattCapacity.Text = " Battery Capacity";
+ this.lbBattCapacity.TextSize = new System.Drawing.Size(96, 14);
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.edBattCapacity;
+ this.layoutControlItem1.Location = new System.Drawing.Point(123, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(318, 26);
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // gbCalibrationValue
+ //
+ this.gbCalibrationValue.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lbChgOption,
+ this.layoutControlItem2,
+ this.lbChgCalibration,
+ this.layoutControlItem3,
+ this.lbDchCalibration,
+ this.layoutControlItem4});
+ this.gbCalibrationValue.Location = new System.Drawing.Point(0, 53);
+ this.gbCalibrationValue.Name = "gbCalibrationValue";
+ this.gbCalibrationValue.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.gbCalibrationValue.Size = new System.Drawing.Size(447, 105);
+ this.gbCalibrationValue.Spacing = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.gbCalibrationValue.Text = "Calibration Value";
+ //
+ // lbChgOption
+ //
+ this.lbChgOption.AllowHotTrack = false;
+ this.lbChgOption.Location = new System.Drawing.Point(0, 0);
+ this.lbChgOption.Name = "lbChgOption";
+ this.lbChgOption.Size = new System.Drawing.Size(123, 26);
+ this.lbChgOption.Text = " Charge Option";
+ this.lbChgOption.TextSize = new System.Drawing.Size(96, 14);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.edChgOption;
+ this.layoutControlItem2.Location = new System.Drawing.Point(123, 0);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(318, 26);
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // lbChgCalibration
+ //
+ this.lbChgCalibration.AllowHotTrack = false;
+ this.lbChgCalibration.Location = new System.Drawing.Point(0, 26);
+ this.lbChgCalibration.Name = "lbChgCalibration";
+ this.lbChgCalibration.Size = new System.Drawing.Size(123, 26);
+ this.lbChgCalibration.Text = " Calibration (CHG)";
+ this.lbChgCalibration.TextSize = new System.Drawing.Size(96, 14);
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.edChgCalibration;
+ this.layoutControlItem3.Location = new System.Drawing.Point(123, 26);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(318, 26);
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // lbDchCalibration
+ //
+ this.lbDchCalibration.AllowHotTrack = false;
+ this.lbDchCalibration.Location = new System.Drawing.Point(0, 52);
+ this.lbDchCalibration.Name = "lbDchCalibration";
+ this.lbDchCalibration.Size = new System.Drawing.Size(123, 26);
+ this.lbDchCalibration.Text = " Calibration (DCH)";
+ this.lbDchCalibration.TextSize = new System.Drawing.Size(96, 14);
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.edDchCalibration;
+ this.layoutControlItem4.Location = new System.Drawing.Point(123, 52);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(318, 26);
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // ucCalibrationView
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.layoutControl1);
+ this.Name = "ucCalibrationView";
+ this.Size = new System.Drawing.Size(449, 277);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.edDchCalibration.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edChgCalibration.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edChgOption.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edBattCapacity.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbBattCapacity)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbBattCapacity)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbCalibrationValue)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbChgOption)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbChgCalibration)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbDchCalibration)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraEditors.TextEdit edBattCapacity;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraEditors.TextEdit edDchCalibration;
+ private DevExpress.XtraEditors.TextEdit edChgCalibration;
+ private DevExpress.XtraEditors.TextEdit edChgOption;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraLayout.SimpleLabelItem lbBattCapacity;
+ private DevExpress.XtraLayout.SimpleLabelItem lbChgOption;
+ private DevExpress.XtraLayout.SimpleLabelItem lbChgCalibration;
+ private DevExpress.XtraLayout.SimpleLabelItem lbDchCalibration;
+ private DevExpress.XtraLayout.LayoutControlGroup gbBattCapacity;
+ private DevExpress.XtraLayout.LayoutControlGroup gbCalibrationValue;
+ }
+}
diff --git a/LFP_Manager/Controls/ucCalibrationView.cs b/LFP_Manager/Controls/ucCalibrationView.cs
new file mode 100644
index 0000000..6839a25
--- /dev/null
+++ b/LFP_Manager/Controls/ucCalibrationView.cs
@@ -0,0 +1,63 @@
+using DevExpress.XtraEditors;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+using LFP_Manager.DataStructure;
+
+namespace LFP_Manager.Controls
+{
+ public partial class ucCalibrationView : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region VARIABLES
+
+ DeviceSystemData ModuleData;
+
+ #endregion
+
+ public ucCalibrationView()
+ {
+ InitializeComponent();
+
+ edBattCapacity.Enabled = false;
+ edChgOption.Enabled = false;
+ edChgCalibration.Enabled = false;
+ edDchCalibration.Enabled = false;
+ }
+
+ public void DisplayValue(ref DeviceSystemData[] aSystemData)
+ {
+ ModuleData = aSystemData[0];
+
+ if (this.InvokeRequired)
+ {
+ this.Invoke(new MethodInvoker(delegate ()
+ {
+ edBattCapacity.Text = String.Format("{0}", ModuleData.CalibrationData.Battery.Capacity);
+ if (ModuleData.CalibrationData.Current.ChargeOption == 0)
+ edChgOption.Text = "Full Charge";
+ else
+ edChgOption.Text = "Limit Charge";
+ edChgCalibration.Text = String.Format("{0}", ModuleData.CalibrationData.Current.ChgCalibration_K);
+ edDchCalibration.Text = String.Format("{0}", ModuleData.CalibrationData.Current.DchCalibration_K);
+ }));
+ }
+ else
+ {
+ edBattCapacity.Text = String.Format("{0}", ModuleData.CalibrationData.Battery.Capacity);
+ if (ModuleData.CalibrationData.Current.ChargeOption == 0)
+ edChgOption.Text = "Full Charge";
+ else
+ edChgOption.Text = "Limit Charge";
+ edChgCalibration.Text = String.Format("{0}", ModuleData.CalibrationData.Current.ChgCalibration_K);
+ edDchCalibration.Text = String.Format("{0}", ModuleData.CalibrationData.Current.DchCalibration_K);
+ }
+ }
+ }
+}
diff --git a/LFP_Manager/Controls/ucCalibrationView.resx b/LFP_Manager/Controls/ucCalibrationView.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Controls/ucCalibrationView.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucCommConfig.Designer.cs b/LFP_Manager/Controls/ucCommConfig.Designer.cs
new file mode 100644
index 0000000..69f8507
--- /dev/null
+++ b/LFP_Manager/Controls/ucCommConfig.Designer.cs
@@ -0,0 +1,721 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucCommConfig
+ {
+ ///
+ /// 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 Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.RbRS485 = new DevExpress.XtraEditors.CheckEdit();
+ this.CbSnmpModel = new DevExpress.XtraEditors.ComboBoxEdit();
+ this.teTargetIP = new IPAddressControlLib.IPAddressControl();
+ this.RbSnmp = new DevExpress.XtraEditors.CheckEdit();
+ this.edRecvWaitTime = new DevExpress.XtraEditors.TextEdit();
+ this.cbUartModel = new DevExpress.XtraEditors.ComboBoxEdit();
+ this.RbUart = new DevExpress.XtraEditors.CheckEdit();
+ this.cbUartPort = new DevExpress.XtraEditors.ComboBoxEdit();
+ this.cbDbLogPeriod = new DevExpress.XtraEditors.ComboBoxEdit();
+ this.btnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.btnSave = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.gbDbConfig = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lbDbLogPeriod = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem15 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlGroup4 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.LcGroupUart = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.simpleLabelItem3 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.simpleLabelItem4 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.simpleLabelItem2 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.LcGroupSnmp = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.simpleLabelItem6 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.simpleLabelItem1 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.CbModuleQty = new DevExpress.XtraEditors.ComboBoxEdit();
+ this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.simpleLabelItem5 = new DevExpress.XtraLayout.SimpleLabelItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.RbRS485.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.CbSnmpModel.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.RbSnmp.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edRecvWaitTime.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.cbUartModel.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.RbUart.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.cbUartPort.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.cbDbLogPeriod.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbDbConfig)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbDbLogPeriod)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.LcGroupUart)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.LcGroupSnmp)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.CbModuleQty.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem5)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.CbModuleQty);
+ this.layoutControl1.Controls.Add(this.RbRS485);
+ this.layoutControl1.Controls.Add(this.CbSnmpModel);
+ this.layoutControl1.Controls.Add(this.teTargetIP);
+ this.layoutControl1.Controls.Add(this.RbSnmp);
+ this.layoutControl1.Controls.Add(this.edRecvWaitTime);
+ this.layoutControl1.Controls.Add(this.cbUartModel);
+ this.layoutControl1.Controls.Add(this.RbUart);
+ this.layoutControl1.Controls.Add(this.cbUartPort);
+ this.layoutControl1.Controls.Add(this.cbDbLogPeriod);
+ this.layoutControl1.Controls.Add(this.btnClose);
+ this.layoutControl1.Controls.Add(this.btnSave);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(889, 267, 774, 451);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(462, 458);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // RbRS485
+ //
+ this.RbRS485.Location = new System.Drawing.Point(161, 37);
+ this.RbRS485.Name = "RbRS485";
+ this.RbRS485.Properties.Caption = "RS-485";
+ this.RbRS485.Properties.CheckStyle = DevExpress.XtraEditors.Controls.CheckStyles.Radio;
+ this.RbRS485.Properties.RadioGroupIndex = 1;
+ this.RbRS485.Size = new System.Drawing.Size(140, 20);
+ this.RbRS485.StyleController = this.layoutControl1;
+ this.RbRS485.TabIndex = 18;
+ this.RbRS485.TabStop = false;
+ this.RbRS485.CheckStateChanged += new System.EventHandler(this.RbRS485_CheckStateChanged);
+ //
+ // CbSnmpModel
+ //
+ this.CbSnmpModel.EditValue = "LFPS-48100D";
+ this.CbSnmpModel.Location = new System.Drawing.Point(146, 128);
+ this.CbSnmpModel.Name = "CbSnmpModel";
+ this.CbSnmpModel.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.CbSnmpModel.Properties.Appearance.Options.UseFont = true;
+ this.CbSnmpModel.Properties.Appearance.Options.UseTextOptions = true;
+ this.CbSnmpModel.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.CbSnmpModel.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+ new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+ this.CbSnmpModel.Properties.Items.AddRange(new object[] {
+ "LFPR-481000S-J"});
+ this.CbSnmpModel.Size = new System.Drawing.Size(308, 24);
+ this.CbSnmpModel.StyleController = this.layoutControl1;
+ this.CbSnmpModel.TabIndex = 17;
+ //
+ // teTargetIP
+ //
+ this.teTargetIP.AllowInternalTab = false;
+ this.teTargetIP.AutoHeight = true;
+ this.teTargetIP.BackColor = System.Drawing.SystemColors.Window;
+ this.teTargetIP.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.teTargetIP.Cursor = System.Windows.Forms.Cursors.IBeam;
+ this.teTargetIP.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.teTargetIP.Location = new System.Drawing.Point(146, 98);
+ this.teTargetIP.MinimumSize = new System.Drawing.Size(117, 26);
+ this.teTargetIP.Name = "teTargetIP";
+ this.teTargetIP.ReadOnly = false;
+ this.teTargetIP.Size = new System.Drawing.Size(308, 26);
+ this.teTargetIP.TabIndex = 16;
+ this.teTargetIP.Text = "192.168.0.200";
+ //
+ // RbSnmp
+ //
+ this.RbSnmp.Location = new System.Drawing.Point(305, 37);
+ this.RbSnmp.Name = "RbSnmp";
+ this.RbSnmp.Properties.Caption = "SNMP";
+ this.RbSnmp.Properties.CheckBoxOptions.Style = DevExpress.XtraEditors.Controls.CheckBoxStyle.Radio;
+ this.RbSnmp.Properties.RadioGroupIndex = 1;
+ this.RbSnmp.Size = new System.Drawing.Size(141, 20);
+ this.RbSnmp.StyleController = this.layoutControl1;
+ this.RbSnmp.TabIndex = 15;
+ this.RbSnmp.TabStop = false;
+ this.RbSnmp.CheckedChanged += new System.EventHandler(this.RbSnmp_CheckedChanged);
+ //
+ // edRecvWaitTime
+ //
+ this.edRecvWaitTime.EditValue = "100";
+ this.edRecvWaitTime.Location = new System.Drawing.Point(146, 269);
+ this.edRecvWaitTime.Name = "edRecvWaitTime";
+ this.edRecvWaitTime.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.edRecvWaitTime.Properties.Appearance.Options.UseFont = true;
+ this.edRecvWaitTime.Properties.Appearance.Options.UseTextOptions = true;
+ this.edRecvWaitTime.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.edRecvWaitTime.Size = new System.Drawing.Size(308, 24);
+ this.edRecvWaitTime.StyleController = this.layoutControl1;
+ this.edRecvWaitTime.TabIndex = 14;
+ //
+ // cbUartModel
+ //
+ this.cbUartModel.EditValue = "LFPS-48100D";
+ this.cbUartModel.Location = new System.Drawing.Point(146, 213);
+ this.cbUartModel.Name = "cbUartModel";
+ this.cbUartModel.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.cbUartModel.Properties.Appearance.Options.UseFont = true;
+ this.cbUartModel.Properties.Appearance.Options.UseTextOptions = true;
+ this.cbUartModel.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cbUartModel.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+ new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+ this.cbUartModel.Properties.Items.AddRange(new object[] {
+ "LFPS-48100S-J"});
+ this.cbUartModel.Size = new System.Drawing.Size(308, 24);
+ this.cbUartModel.StyleController = this.layoutControl1;
+ this.cbUartModel.TabIndex = 11;
+ //
+ // RbUart
+ //
+ this.RbUart.Location = new System.Drawing.Point(16, 37);
+ this.RbUart.Name = "RbUart";
+ this.RbUart.Properties.Caption = "RS-232";
+ this.RbUart.Properties.CheckStyle = DevExpress.XtraEditors.Controls.CheckStyles.Radio;
+ this.RbUart.Properties.RadioGroupIndex = 1;
+ this.RbUart.Size = new System.Drawing.Size(141, 20);
+ this.RbUart.StyleController = this.layoutControl1;
+ this.RbUart.TabIndex = 8;
+ this.RbUart.TabStop = false;
+ this.RbUart.CheckStateChanged += new System.EventHandler(this.RbUart_CheckStateChanged);
+ //
+ // cbUartPort
+ //
+ this.cbUartPort.EditValue = "";
+ this.cbUartPort.Location = new System.Drawing.Point(146, 185);
+ this.cbUartPort.Name = "cbUartPort";
+ this.cbUartPort.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.cbUartPort.Properties.Appearance.Options.UseFont = true;
+ this.cbUartPort.Properties.Appearance.Options.UseTextOptions = true;
+ this.cbUartPort.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cbUartPort.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+ new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+ this.cbUartPort.Size = new System.Drawing.Size(308, 24);
+ this.cbUartPort.StyleController = this.layoutControl1;
+ this.cbUartPort.TabIndex = 6;
+ //
+ // cbDbLogPeriod
+ //
+ this.cbDbLogPeriod.EditValue = "1";
+ this.cbDbLogPeriod.Location = new System.Drawing.Point(145, 345);
+ this.cbDbLogPeriod.Name = "cbDbLogPeriod";
+ this.cbDbLogPeriod.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.cbDbLogPeriod.Properties.Appearance.Options.UseFont = true;
+ this.cbDbLogPeriod.Properties.Appearance.Options.UseTextOptions = true;
+ this.cbDbLogPeriod.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cbDbLogPeriod.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+ new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+ this.cbDbLogPeriod.Properties.Items.AddRange(new object[] {
+ "1",
+ "5",
+ "10",
+ "15",
+ "30",
+ "60"});
+ this.cbDbLogPeriod.Size = new System.Drawing.Size(310, 24);
+ this.cbDbLogPeriod.StyleController = this.layoutControl1;
+ this.cbDbLogPeriod.TabIndex = 9;
+ //
+ // btnClose
+ //
+ this.btnClose.Appearance.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnClose.Appearance.Options.UseFont = true;
+ this.btnClose.Location = new System.Drawing.Point(233, 418);
+ this.btnClose.Name = "btnClose";
+ this.btnClose.Size = new System.Drawing.Size(225, 36);
+ this.btnClose.StyleController = this.layoutControl1;
+ this.btnClose.TabIndex = 7;
+ this.btnClose.Text = "CLOSE";
+ this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
+ //
+ // btnSave
+ //
+ this.btnSave.Appearance.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnSave.Appearance.Options.UseFont = true;
+ this.btnSave.Location = new System.Drawing.Point(4, 418);
+ this.btnSave.Name = "btnSave";
+ this.btnSave.Size = new System.Drawing.Size(225, 36);
+ this.btnSave.StyleController = this.layoutControl1;
+ this.btnSave.TabIndex = 6;
+ this.btnSave.Text = "SAVE";
+ this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem12,
+ this.layoutControlItem13,
+ this.gbDbConfig,
+ this.emptySpaceItem2,
+ this.layoutControlGroup4,
+ this.LcGroupUart,
+ this.emptySpaceItem1,
+ this.LcGroupSnmp});
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(462, 458);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem12
+ //
+ this.layoutControlItem12.Control = this.btnSave;
+ this.layoutControlItem12.CustomizationFormText = "layoutControlItem12";
+ this.layoutControlItem12.Location = new System.Drawing.Point(0, 414);
+ this.layoutControlItem12.MaxSize = new System.Drawing.Size(0, 40);
+ this.layoutControlItem12.MinSize = new System.Drawing.Size(93, 40);
+ this.layoutControlItem12.Name = "layoutControlItem12";
+ this.layoutControlItem12.Size = new System.Drawing.Size(229, 40);
+ this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem12.TextVisible = false;
+ //
+ // layoutControlItem13
+ //
+ this.layoutControlItem13.Control = this.btnClose;
+ this.layoutControlItem13.CustomizationFormText = "layoutControlItem13";
+ this.layoutControlItem13.Location = new System.Drawing.Point(229, 414);
+ this.layoutControlItem13.MaxSize = new System.Drawing.Size(0, 40);
+ this.layoutControlItem13.MinSize = new System.Drawing.Size(93, 40);
+ this.layoutControlItem13.Name = "layoutControlItem13";
+ this.layoutControlItem13.Size = new System.Drawing.Size(229, 40);
+ this.layoutControlItem13.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem13.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem13.TextVisible = false;
+ //
+ // gbDbConfig
+ //
+ this.gbDbConfig.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lbDbLogPeriod,
+ this.layoutControlItem15});
+ this.gbDbConfig.Location = new System.Drawing.Point(0, 317);
+ this.gbDbConfig.Name = "gbDbConfig";
+ this.gbDbConfig.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.gbDbConfig.Size = new System.Drawing.Size(458, 55);
+ this.gbDbConfig.Spacing = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.gbDbConfig.Text = "Database Config";
+ //
+ // lbDbLogPeriod
+ //
+ this.lbDbLogPeriod.AllowHotTrack = false;
+ this.lbDbLogPeriod.Location = new System.Drawing.Point(0, 0);
+ this.lbDbLogPeriod.MinSize = new System.Drawing.Size(138, 18);
+ this.lbDbLogPeriod.Name = "lbDbLogPeriod";
+ this.lbDbLogPeriod.Size = new System.Drawing.Size(138, 28);
+ this.lbDbLogPeriod.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lbDbLogPeriod.Text = " DB Log Period";
+ this.lbDbLogPeriod.TextSize = new System.Drawing.Size(123, 14);
+ //
+ // layoutControlItem15
+ //
+ this.layoutControlItem15.Control = this.cbDbLogPeriod;
+ this.layoutControlItem15.Location = new System.Drawing.Point(138, 0);
+ this.layoutControlItem15.MaxSize = new System.Drawing.Size(0, 28);
+ this.layoutControlItem15.MinSize = new System.Drawing.Size(54, 28);
+ this.layoutControlItem15.Name = "layoutControlItem15";
+ this.layoutControlItem15.Size = new System.Drawing.Size(314, 28);
+ this.layoutControlItem15.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem15.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem15.TextVisible = false;
+ //
+ // emptySpaceItem2
+ //
+ this.emptySpaceItem2.AllowHotTrack = false;
+ this.emptySpaceItem2.Location = new System.Drawing.Point(0, 372);
+ this.emptySpaceItem2.Name = "emptySpaceItem2";
+ this.emptySpaceItem2.Size = new System.Drawing.Size(458, 42);
+ this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlGroup4
+ //
+ this.layoutControlGroup4.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem3,
+ this.layoutControlItem7,
+ this.layoutControlItem5});
+ this.layoutControlGroup4.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup4.Name = "layoutControlGroup4";
+ this.layoutControlGroup4.Size = new System.Drawing.Size(458, 69);
+ this.layoutControlGroup4.Text = "Comm. Type";
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.RbUart;
+ this.layoutControlItem3.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(145, 24);
+ this.layoutControlItem3.Text = "Comm. Type";
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.RbSnmp;
+ this.layoutControlItem7.Location = new System.Drawing.Point(289, 0);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(145, 24);
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem7.TextVisible = false;
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.RbRS485;
+ this.layoutControlItem5.Location = new System.Drawing.Point(145, 0);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(144, 24);
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // LcGroupUart
+ //
+ this.LcGroupUart.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.simpleLabelItem3,
+ this.layoutControlItem1,
+ this.simpleLabelItem4,
+ this.layoutControlItem4,
+ this.simpleLabelItem2,
+ this.layoutControlItem6,
+ this.layoutControlItem9,
+ this.simpleLabelItem5});
+ this.LcGroupUart.Location = new System.Drawing.Point(0, 156);
+ this.LcGroupUart.Name = "LcGroupUart";
+ this.LcGroupUart.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.LcGroupUart.Size = new System.Drawing.Size(458, 141);
+ this.LcGroupUart.Text = "RS-232 && RS-485 Config";
+ //
+ // simpleLabelItem3
+ //
+ this.simpleLabelItem3.AllowHotTrack = false;
+ this.simpleLabelItem3.Location = new System.Drawing.Point(0, 0);
+ this.simpleLabelItem3.MinSize = new System.Drawing.Size(138, 18);
+ this.simpleLabelItem3.Name = "simpleLabelItem3";
+ this.simpleLabelItem3.Size = new System.Drawing.Size(138, 28);
+ this.simpleLabelItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem3.Text = " Serial Port";
+ this.simpleLabelItem3.TextSize = new System.Drawing.Size(123, 14);
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.cbUartPort;
+ this.layoutControlItem1.Location = new System.Drawing.Point(138, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(312, 28);
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // simpleLabelItem4
+ //
+ this.simpleLabelItem4.AllowHotTrack = false;
+ this.simpleLabelItem4.Location = new System.Drawing.Point(0, 28);
+ this.simpleLabelItem4.MinSize = new System.Drawing.Size(138, 18);
+ this.simpleLabelItem4.Name = "simpleLabelItem4";
+ this.simpleLabelItem4.Size = new System.Drawing.Size(138, 28);
+ this.simpleLabelItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem4.Text = " Model";
+ this.simpleLabelItem4.TextSize = new System.Drawing.Size(123, 14);
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.cbUartModel;
+ this.layoutControlItem4.Location = new System.Drawing.Point(138, 28);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(312, 28);
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // simpleLabelItem2
+ //
+ this.simpleLabelItem2.AllowHotTrack = false;
+ this.simpleLabelItem2.Location = new System.Drawing.Point(0, 84);
+ this.simpleLabelItem2.MinSize = new System.Drawing.Size(138, 18);
+ this.simpleLabelItem2.Name = "simpleLabelItem2";
+ this.simpleLabelItem2.Size = new System.Drawing.Size(138, 28);
+ this.simpleLabelItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem2.Text = " Recv Wait Time (ms)";
+ this.simpleLabelItem2.TextSize = new System.Drawing.Size(123, 14);
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.edRecvWaitTime;
+ this.layoutControlItem6.Location = new System.Drawing.Point(138, 84);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(312, 28);
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 297);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(458, 20);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // LcGroupSnmp
+ //
+ this.LcGroupSnmp.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem8,
+ this.simpleLabelItem6,
+ this.layoutControlItem2,
+ this.simpleLabelItem1});
+ this.LcGroupSnmp.Location = new System.Drawing.Point(0, 69);
+ this.LcGroupSnmp.Name = "LcGroupSnmp";
+ this.LcGroupSnmp.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.LcGroupSnmp.Size = new System.Drawing.Size(458, 87);
+ this.LcGroupSnmp.Text = "SNMP Config";
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.teTargetIP;
+ this.layoutControlItem8.Location = new System.Drawing.Point(138, 0);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(312, 30);
+ this.layoutControlItem8.Text = " IP Address";
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem8.TextVisible = false;
+ //
+ // simpleLabelItem6
+ //
+ this.simpleLabelItem6.AllowHotTrack = false;
+ this.simpleLabelItem6.Location = new System.Drawing.Point(0, 0);
+ this.simpleLabelItem6.MaxSize = new System.Drawing.Size(0, 30);
+ this.simpleLabelItem6.MinSize = new System.Drawing.Size(138, 30);
+ this.simpleLabelItem6.Name = "simpleLabelItem6";
+ this.simpleLabelItem6.Size = new System.Drawing.Size(138, 30);
+ this.simpleLabelItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem6.Text = " IP Address";
+ this.simpleLabelItem6.TextSize = new System.Drawing.Size(123, 14);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.CbSnmpModel;
+ this.layoutControlItem2.Location = new System.Drawing.Point(138, 30);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(312, 28);
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // simpleLabelItem1
+ //
+ this.simpleLabelItem1.AllowHotTrack = false;
+ this.simpleLabelItem1.Location = new System.Drawing.Point(0, 30);
+ this.simpleLabelItem1.MaxSize = new System.Drawing.Size(0, 28);
+ this.simpleLabelItem1.MinSize = new System.Drawing.Size(127, 28);
+ this.simpleLabelItem1.Name = "simpleLabelItem1";
+ this.simpleLabelItem1.Size = new System.Drawing.Size(138, 28);
+ this.simpleLabelItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem1.Text = " Model";
+ this.simpleLabelItem1.TextSize = new System.Drawing.Size(123, 14);
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup2";
+ this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup2.GroupBordersVisible = false;
+ this.layoutControlGroup2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup2.Name = "Root";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(433, 34);
+ this.layoutControlGroup2.TextVisible = false;
+ //
+ // layoutControlGroup3
+ //
+ this.layoutControlGroup3.CustomizationFormText = "layoutControlGroup3";
+ this.layoutControlGroup3.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup3.GroupBordersVisible = false;
+ this.layoutControlGroup3.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup3.Name = "Root";
+ this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup3.Size = new System.Drawing.Size(433, 85);
+ this.layoutControlGroup3.TextVisible = false;
+ //
+ // CbModuleQty
+ //
+ this.CbModuleQty.EditValue = "1";
+ this.CbModuleQty.Location = new System.Drawing.Point(146, 241);
+ this.CbModuleQty.Name = "CbModuleQty";
+ this.CbModuleQty.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.CbModuleQty.Properties.Appearance.Options.UseFont = true;
+ this.CbModuleQty.Properties.Appearance.Options.UseTextOptions = true;
+ this.CbModuleQty.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.CbModuleQty.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+ new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+ this.CbModuleQty.Size = new System.Drawing.Size(308, 24);
+ this.CbModuleQty.StyleController = this.layoutControl1;
+ this.CbModuleQty.TabIndex = 19;
+ //
+ // layoutControlItem9
+ //
+ this.layoutControlItem9.Control = this.CbModuleQty;
+ this.layoutControlItem9.Location = new System.Drawing.Point(138, 56);
+ this.layoutControlItem9.MinSize = new System.Drawing.Size(55, 28);
+ this.layoutControlItem9.Name = "layoutControlItem9";
+ this.layoutControlItem9.Size = new System.Drawing.Size(312, 28);
+ this.layoutControlItem9.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem9.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem9.TextVisible = false;
+ //
+ // simpleLabelItem5
+ //
+ this.simpleLabelItem5.AllowHotTrack = false;
+ this.simpleLabelItem5.Location = new System.Drawing.Point(0, 56);
+ this.simpleLabelItem5.MaxSize = new System.Drawing.Size(0, 28);
+ this.simpleLabelItem5.MinSize = new System.Drawing.Size(127, 28);
+ this.simpleLabelItem5.Name = "simpleLabelItem5";
+ this.simpleLabelItem5.Size = new System.Drawing.Size(138, 28);
+ this.simpleLabelItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem5.Text = " Module Q\'ty";
+ this.simpleLabelItem5.TextSize = new System.Drawing.Size(123, 14);
+ //
+ // ucCommConfig
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.layoutControl1);
+ this.Name = "ucCommConfig";
+ this.Size = new System.Drawing.Size(462, 458);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.RbRS485.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.CbSnmpModel.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.RbSnmp.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edRecvWaitTime.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.cbUartModel.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.RbUart.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.cbUartPort.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.cbDbLogPeriod.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbDbConfig)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbDbLogPeriod)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.LcGroupUart)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.LcGroupSnmp)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.CbModuleQty.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem5)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.SimpleButton btnClose;
+ private DevExpress.XtraEditors.SimpleButton btnSave;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13;
+ private DevExpress.XtraEditors.ComboBoxEdit cbDbLogPeriod;
+ private DevExpress.XtraLayout.LayoutControlGroup gbDbConfig;
+ private DevExpress.XtraLayout.SimpleLabelItem lbDbLogPeriod;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem15;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+ private DevExpress.XtraEditors.ComboBoxEdit cbUartPort;
+ private DevExpress.XtraEditors.CheckEdit RbUart;
+ private DevExpress.XtraEditors.ComboBoxEdit cbUartModel;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup4;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.LayoutControlGroup LcGroupUart;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem3;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem4;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem2;
+ private DevExpress.XtraEditors.TextEdit edRecvWaitTime;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraEditors.CheckEdit RbSnmp;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ private IPAddressControlLib.IPAddressControl teTargetIP;
+ private DevExpress.XtraLayout.LayoutControlGroup LcGroupSnmp;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem6;
+ private DevExpress.XtraEditors.ComboBoxEdit CbSnmpModel;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem1;
+ private DevExpress.XtraEditors.CheckEdit RbRS485;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraEditors.ComboBoxEdit CbModuleQty;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem5;
+ }
+}
diff --git a/LFP_Manager/Controls/ucCommConfig.cs b/LFP_Manager/Controls/ucCommConfig.cs
new file mode 100644
index 0000000..454b658
--- /dev/null
+++ b/LFP_Manager/Controls/ucCommConfig.cs
@@ -0,0 +1,237 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+using System.Runtime.InteropServices;
+using System.IO;
+using System.IO.Ports;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using System.Data.Entity.Infrastructure;
+
+namespace LFP_Manager.Controls
+{
+ public partial class ucCommConfig : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region EVENT
+
+ public delegate void CloseEvent(object aConfig, bool saved);
+
+ #endregion
+
+ #region VARIABLES
+
+ CommConfig Config = new CommConfig();
+ public event CloseEvent OnClose = null;
+
+ DataTable dtComport = new DataTable();
+ private bool saved = false;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public ucCommConfig()
+ {
+ InitializeComponent();
+
+ CommPortLoad();
+
+ IniLoad();
+ }
+
+ private void InitComportDataTable()
+ {
+ dtComport = new DataTable();
+ dtComport.Columns.Add("name", typeof(string));
+ dtComport.Columns.Add("name2", typeof(string));
+ }
+
+ #endregion
+
+ #region DATA LOAD AND SAVE
+
+ private void CommPortLoad()
+ {
+ bool found = false;
+ int ComId = 0;
+
+ InitComportDataTable();
+ foreach (string comport in SerialPort.GetPortNames())
+ {
+ DataRow aRow = dtComport.NewRow();
+ aRow["name"] = comport;
+ dtComport.Rows.Add(aRow);
+ }
+
+ for (int i = 0; i < dtComport.Rows.Count; i++)
+ {
+ cbUartPort.Properties.Items.Add(dtComport.Rows[i]["name"].ToString());
+ }
+
+ if (Config.UartPort != "")
+ {
+ for (int i = 0; i < cbUartPort.Properties.Items.Count; i++)
+ {
+ if (dtComport.Rows[i]["name"].ToString() == Config.UartPort)
+ {
+ found = true;
+ ComId = i;
+ break;
+ }
+ }
+ }
+
+ if (found)
+ {
+ cbUartPort.SelectedIndex = ComId;
+ Config.UartPort = cbUartPort.Properties.Items[ComId].ToString();
+ }
+ else
+ {
+ if (cbUartPort.Properties.Items.Count > 0)
+ {
+ cbUartPort.SelectedIndex = 0;
+ }
+ }
+ }
+
+ private void IniLoad()
+ {
+ csIniControlFunction.IniLoad(Application.ExecutablePath, ref Config);
+
+ cbUartModel.Properties.Items.Clear();
+ CbSnmpModel.Properties.Items.Clear();
+ foreach (string m_name in csConstData.MODEL_STR)
+ {
+ cbUartModel.Properties.Items.Add(m_name);
+ CbSnmpModel.Properties.Items.Add(m_name);
+ }
+ CbModuleQty.Properties.Items.Clear();
+ for (int i = 0; i < csConstData.SystemInfo.MAX_MODULE_SIZE; i++)
+ {
+ CbModuleQty.Properties.Items.Add(string.Format("{0}", i + 1));
+ }
+
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ RbUart.Checked = true;
+ break;
+ case csConstData.CommType.COMM_RS485:
+ RbRS485.Checked = true;
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ RbSnmp.Checked = true;
+ break;
+ default:
+ RbUart.Checked = true;
+ break;
+ }
+
+ if (Config.SnmpIP == "")
+ { Config.SnmpIP = teTargetIP.Text; }
+ teTargetIP.Text = Config.SnmpIP;
+ CbSnmpModel.SelectedIndex = Config.SnmpModelIndex;
+
+ cbUartPort.Text = Config.UartPort;
+ cbUartModel.SelectedIndex = Config.UartModelIndex;
+ CbModuleQty.Text = string.Format("{0}", Config.ModuleQty);
+ edRecvWaitTime.Text = string.Format("{0}", Config.RecvWaitTime);
+
+ cbDbLogPeriod.Text = Config.DbLogPeriod.ToString();
+ }
+
+ private void IniSave()
+ {
+ if (RbUart.Checked)
+ {
+ Config.CommType = csConstData.CommType.COMM_UART;
+ }
+ else if (RbRS485.Checked)
+ {
+ Config.CommType = csConstData.CommType.COMM_RS485;
+ }
+ else if (RbSnmp.Checked)
+ {
+ Config.CommType = csConstData.CommType.COMM_SNMP;
+ }
+
+ try
+ {
+ Config.SnmpIP = teTargetIP.Text;
+ Config.SnmpModelIndex = CbSnmpModel.SelectedIndex;
+
+ Config.UartPort = cbUartPort.Text;
+ Config.UartModelIndex = cbUartModel.SelectedIndex;
+ Config.ModuleQty = Convert.ToInt32(CbModuleQty.Text);
+ Config.RecvWaitTime = Convert.ToInt32(edRecvWaitTime.Text);
+
+ Config.DbLogPeriod = Convert.ToInt32(cbDbLogPeriod.Text);
+
+ csIniControlFunction.IniSave(Application.ExecutablePath, Config);
+
+ saved = true;
+ }
+ catch (Exception)
+ {
+ MessageBox.Show("Save fail - Please check config", "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+ private void btnClose_Click(object sender, EventArgs e)
+ {
+ OnClose?.Invoke(Config, saved);
+ }
+
+ private void btnSave_Click(object sender, EventArgs e)
+ {
+ IniSave();
+ }
+ #endregion
+
+ #region COMPONENT EVENT
+ private void RbUart_CheckStateChanged(object sender, EventArgs e)
+ {
+ if (RbUart.Checked)
+ {
+ LcGroupUart.Enabled = true;
+ LcGroupSnmp.Enabled = false;
+ CbModuleQty.Enabled = false;
+ CbModuleQty.Text = "1";
+ }
+ }
+
+ private void RbRS485_CheckStateChanged(object sender, EventArgs e)
+ {
+ if (RbRS485.Checked)
+ {
+ LcGroupUart.Enabled = true;
+ LcGroupSnmp.Enabled = false;
+ CbModuleQty.Enabled = true;
+ }
+ }
+
+ private void RbSnmp_CheckedChanged(object sender, EventArgs e)
+ {
+ if (RbSnmp.Checked)
+ {
+ LcGroupUart.Enabled = false;
+ LcGroupSnmp.Enabled = true;
+ CbModuleQty.Enabled = true;
+ CbModuleQty.Text = "1";
+ }
+ }
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/ucCommConfig.resx b/LFP_Manager/Controls/ucCommConfig.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Controls/ucCommConfig.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucDataLog.Designer.cs b/LFP_Manager/Controls/ucDataLog.Designer.cs
new file mode 100644
index 0000000..757ffa7
--- /dev/null
+++ b/LFP_Manager/Controls/ucDataLog.Designer.cs
@@ -0,0 +1,257 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucDataLog
+ {
+ ///
+ /// 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 Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.gbDataLog = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl6 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnOpenLogFolder = new DevExpress.XtraEditors.SimpleButton();
+ this.btnLogStart = new DevExpress.XtraEditors.SimpleButton();
+ this.cbLogTime = new DevExpress.XtraEditors.ComboBoxEdit();
+ this.layoutControlGroup6 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lcitemLogTime = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.tmrLogging = new System.Windows.Forms.Timer(this.components);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.gbDataLog)).BeginInit();
+ this.gbDataLog.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl6)).BeginInit();
+ this.layoutControl6.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.cbLogTime.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemLogTime)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.AllowCustomization = false;
+ this.layoutControl1.Controls.Add(this.gbDataLog);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(354, 204);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // gbDataLog
+ //
+ this.gbDataLog.Controls.Add(this.layoutControl6);
+ this.gbDataLog.Location = new System.Drawing.Point(3, 3);
+ this.gbDataLog.Name = "gbDataLog";
+ this.gbDataLog.Size = new System.Drawing.Size(348, 198);
+ this.gbDataLog.TabIndex = 9;
+ this.gbDataLog.Text = "Data Logging";
+ //
+ // layoutControl6
+ //
+ this.layoutControl6.AllowCustomization = false;
+ this.layoutControl6.Controls.Add(this.btnOpenLogFolder);
+ this.layoutControl6.Controls.Add(this.btnLogStart);
+ this.layoutControl6.Controls.Add(this.cbLogTime);
+ this.layoutControl6.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl6.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl6.Name = "layoutControl6";
+ this.layoutControl6.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1209, 389, 250, 350);
+ this.layoutControl6.Root = this.layoutControlGroup6;
+ this.layoutControl6.Size = new System.Drawing.Size(344, 173);
+ this.layoutControl6.TabIndex = 0;
+ this.layoutControl6.Text = "layoutControl6";
+ //
+ // btnOpenLogFolder
+ //
+ this.btnOpenLogFolder.Location = new System.Drawing.Point(3, 108);
+ this.btnOpenLogFolder.Name = "btnOpenLogFolder";
+ this.btnOpenLogFolder.Size = new System.Drawing.Size(338, 62);
+ this.btnOpenLogFolder.StyleController = this.layoutControl6;
+ this.btnOpenLogFolder.TabIndex = 6;
+ this.btnOpenLogFolder.Text = "Open Log Folder";
+ this.btnOpenLogFolder.Click += new System.EventHandler(this.btnOpenLogFolder_Click);
+ //
+ // btnLogStart
+ //
+ this.btnLogStart.Location = new System.Drawing.Point(3, 37);
+ this.btnLogStart.Name = "btnLogStart";
+ this.btnLogStart.Size = new System.Drawing.Size(338, 67);
+ this.btnLogStart.StyleController = this.layoutControl6;
+ this.btnLogStart.TabIndex = 5;
+ this.btnLogStart.Text = "Log Start";
+ this.btnLogStart.Click += new System.EventHandler(this.btnLogStart_Click);
+ //
+ // cbLogTime
+ //
+ this.cbLogTime.EditValue = "5";
+ this.cbLogTime.Location = new System.Drawing.Point(68, 3);
+ this.cbLogTime.Name = "cbLogTime";
+ this.cbLogTime.Properties.Appearance.Options.UseTextOptions = true;
+ this.cbLogTime.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cbLogTime.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+ new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+ this.cbLogTime.Properties.Items.AddRange(new object[] {
+ "1",
+ "5",
+ "10",
+ "15",
+ "30",
+ "60"});
+ this.cbLogTime.Size = new System.Drawing.Size(273, 20);
+ this.cbLogTime.StyleController = this.layoutControl6;
+ this.cbLogTime.TabIndex = 4;
+ //
+ // layoutControlGroup6
+ //
+ this.layoutControlGroup6.CustomizationFormText = "layoutControlGroup6";
+ this.layoutControlGroup6.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup6.GroupBordersVisible = false;
+ this.layoutControlGroup6.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lcitemLogTime,
+ this.layoutControlItem13,
+ this.layoutControlItem12});
+ this.layoutControlGroup6.Name = "layoutControlGroup6";
+ this.layoutControlGroup6.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup6.Size = new System.Drawing.Size(344, 173);
+ this.layoutControlGroup6.TextVisible = false;
+ //
+ // lcitemLogTime
+ //
+ this.lcitemLogTime.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lcitemLogTime.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lcitemLogTime.Control = this.cbLogTime;
+ this.lcitemLogTime.CustomizationFormText = "Log Time";
+ this.lcitemLogTime.Location = new System.Drawing.Point(0, 0);
+ this.lcitemLogTime.MinSize = new System.Drawing.Size(119, 24);
+ this.lcitemLogTime.Name = "lcitemLogTime";
+ this.lcitemLogTime.Size = new System.Drawing.Size(342, 34);
+ this.lcitemLogTime.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemLogTime.Text = "Log Time";
+ this.lcitemLogTime.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemLogTime.TextSize = new System.Drawing.Size(60, 20);
+ this.lcitemLogTime.TextToControlDistance = 5;
+ //
+ // layoutControlItem13
+ //
+ this.layoutControlItem13.Control = this.btnLogStart;
+ this.layoutControlItem13.CustomizationFormText = "layoutControlItem13";
+ this.layoutControlItem13.Location = new System.Drawing.Point(0, 34);
+ this.layoutControlItem13.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem13.Name = "layoutControlItem13";
+ this.layoutControlItem13.Size = new System.Drawing.Size(342, 71);
+ this.layoutControlItem13.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem13.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem13.TextVisible = false;
+ //
+ // layoutControlItem12
+ //
+ this.layoutControlItem12.Control = this.btnOpenLogFolder;
+ this.layoutControlItem12.CustomizationFormText = "layoutControlItem12";
+ this.layoutControlItem12.Location = new System.Drawing.Point(0, 105);
+ this.layoutControlItem12.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem12.Name = "layoutControlItem12";
+ this.layoutControlItem12.Size = new System.Drawing.Size(342, 66);
+ this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem12.TextVisible = false;
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1});
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(354, 204);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.gbDataLog;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(352, 202);
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // tmrLogging
+ //
+ this.tmrLogging.Interval = 500;
+ this.tmrLogging.Tick += new System.EventHandler(this.tmrLogging_Tick);
+ //
+ // ucDataLog
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.layoutControl1);
+ this.Name = "ucDataLog";
+ this.Size = new System.Drawing.Size(354, 204);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.gbDataLog)).EndInit();
+ this.gbDataLog.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl6)).EndInit();
+ this.layoutControl6.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.cbLogTime.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemLogTime)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.GroupControl gbDataLog;
+ private DevExpress.XtraLayout.LayoutControl layoutControl6;
+ private DevExpress.XtraEditors.SimpleButton btnOpenLogFolder;
+ private DevExpress.XtraEditors.SimpleButton btnLogStart;
+ private DevExpress.XtraEditors.ComboBoxEdit cbLogTime;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup6;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemLogTime;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private System.Windows.Forms.Timer tmrLogging;
+ }
+}
diff --git a/LFP_Manager/Controls/ucDataLog.cs b/LFP_Manager/Controls/ucDataLog.cs
new file mode 100644
index 0000000..fcd1f5c
--- /dev/null
+++ b/LFP_Manager/Controls/ucDataLog.cs
@@ -0,0 +1,155 @@
+using LFP_Manager.DataStructure;
+using LFP_Manager.Utils;
+using System;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Controls
+{
+ public delegate void LogDataUpdate(object sender, string LogResult, bool active, int aLogTime);
+
+ public partial class ucDataLog : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region VARIABLES
+
+ private CommConfig Config;
+ private DeviceSystemData[] SystemData;
+ private DateTime bakDateTime;
+
+ private int ModuleID = 1;
+
+ private string LogFileName = "";
+ private string LogFileNameTotal = "";
+
+ private bool logging = false;
+ private bool Active = false;
+
+ public event LogDataUpdate OnUpdate = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public ucDataLog()
+ {
+ InitializeComponent();
+ }
+
+ #endregion
+
+ #region PUBLIC UPDATE
+
+ public void UpdateActiveStatus(bool aStatus, int mID, CommConfig aConfig, DeviceSystemData[] aSystemData)
+ {
+ Active = aStatus;
+ ModuleID = mID;
+ Config = aConfig;
+ SystemData = aSystemData;
+ }
+
+ public void UpdateData(DeviceSystemData[] aSystemData)
+ {
+ SystemData = aSystemData;
+ }
+
+ #endregion
+
+ #region TIMER EVENT
+
+ private void tmrLogging_Tick(object sender, EventArgs e)
+ {
+ DateTime cDate = DateTime.Now;
+ int ss;
+
+ if ((logging) && (Active))
+ {
+ ss = Convert.ToInt16(cbLogTime.Text);
+
+ if (
+ ((bakDateTime.Minute != cDate.Minute)
+ || (bakDateTime.Second != cDate.Second))
+ && ((cDate.Second % ss) == 0)
+ )
+ {
+ try
+ {
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ csLog.SystemDataLog(ModuleID, Config, SystemData[ModuleID - 1], cDate, Application.ExecutablePath, LogFileName);
+ break;
+ case csConstData.CommType.COMM_RS485:
+ if (Config.ModuleQty > 1)
+ {
+ for (int i = 0; i < Config.ModuleQty; i++)
+ {
+ csLog.SystemDataLog(i + 1, Config, SystemData[i], cDate, Application.ExecutablePath, LogFileName);
+ }
+ }
+ else
+ {
+ csLog.SystemDataLog(ModuleID, Config, SystemData[ModuleID - 1], cDate, Application.ExecutablePath, LogFileName);
+ }
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ csLog.SystemDataLog(1, Config, SystemData[0], cDate, Application.ExecutablePath, LogFileName);
+ break;
+ default:
+ break;
+ }
+ bakDateTime = cDate;
+ }
+ catch (Exception)
+ {
+ }
+ }
+ }
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+
+ private void btnLogStart_Click(object sender, EventArgs e)
+ {
+ if (logging == true)
+ {
+ tmrLogging.Stop();
+ cbLogTime.Enabled = true;
+ logging = false;
+ btnLogStart.Text = "Log Start";
+
+ if (OnUpdate != null)
+ {
+ OnUpdate(this, String.Format("LogStop: {0:yyyy/MM/dd HH:mm:ss}", DateTime.Now), false, Convert.ToInt16(cbLogTime.Text));
+ }
+ }
+ else
+ {
+ LogFileNameTotal = String.Format("{0:yyMMddHHmmss}", DateTime.Now);
+ LogFileName = String.Format("{0:yyMMddHHmmss}", DateTime.Now);
+ tmrLogging.Start();
+ cbLogTime.Enabled = false;
+ logging = true;
+ btnLogStart.Text = "Log Stop";
+
+ if (OnUpdate != null)
+ {
+ OnUpdate(this, String.Format("Logging: SHELFX_LOG_{0}.csv", LogFileName), true, Convert.ToInt16(cbLogTime.Text));
+ }
+ }
+ }
+
+ private void btnOpenLogFolder_Click(object sender, EventArgs e)
+ {
+ System.Diagnostics.Process ps = new System.Diagnostics.Process();
+ ps.StartInfo.FileName = "explorer.exe";
+ ps.StartInfo.Arguments = csLog.GetLogFolder(Application.ExecutablePath);
+ ps.StartInfo.WorkingDirectory = csLog.GetLogFolder(Application.ExecutablePath);
+ ps.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
+
+ ps.Start();
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/ucDataLog.resx b/LFP_Manager/Controls/ucDataLog.resx
new file mode 100644
index 0000000..92c9522
--- /dev/null
+++ b/LFP_Manager/Controls/ucDataLog.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucEventLog.Designer.cs b/LFP_Manager/Controls/ucEventLog.Designer.cs
new file mode 100644
index 0000000..6867e73
--- /dev/null
+++ b/LFP_Manager/Controls/ucEventLog.Designer.cs
@@ -0,0 +1,278 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucEventLog
+ {
+ ///
+ /// 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 Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.gcLogging = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
+ this.cbPacketLog = new DevExpress.XtraEditors.CheckEdit();
+ this.btnLogClear = new DevExpress.XtraEditors.SimpleButton();
+ this.tabDataLog = new DevExpress.XtraTab.XtraTabControl();
+ this.tpDataLog = new DevExpress.XtraTab.XtraTabPage();
+ this.panelControl1 = new DevExpress.XtraEditors.PanelControl();
+ this.meDataLog = new DevExpress.XtraEditors.MemoEdit();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem14 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcCheckEdit = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.gcLogging)).BeginInit();
+ this.gcLogging.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit();
+ this.layoutControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.cbPacketLog.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.tabDataLog)).BeginInit();
+ this.tabDataLog.SuspendLayout();
+ this.tpDataLog.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.panelControl1)).BeginInit();
+ this.panelControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.meDataLog.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcCheckEdit)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.AllowCustomization = false;
+ this.layoutControl1.Controls.Add(this.gcLogging);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(302, 140, 250, 350);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(799, 173);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // gcLogging
+ //
+ this.gcLogging.Controls.Add(this.layoutControl2);
+ this.gcLogging.Location = new System.Drawing.Point(3, 3);
+ this.gcLogging.Name = "gcLogging";
+ this.gcLogging.Size = new System.Drawing.Size(793, 167);
+ this.gcLogging.TabIndex = 6;
+ this.gcLogging.Text = "Event";
+ //
+ // layoutControl2
+ //
+ this.layoutControl2.AllowCustomization = false;
+ this.layoutControl2.Controls.Add(this.cbPacketLog);
+ this.layoutControl2.Controls.Add(this.btnLogClear);
+ this.layoutControl2.Controls.Add(this.tabDataLog);
+ this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl2.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl2.Name = "layoutControl2";
+ this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1234, 235, 250, 350);
+ this.layoutControl2.Root = this.layoutControlGroup2;
+ this.layoutControl2.Size = new System.Drawing.Size(789, 142);
+ this.layoutControl2.TabIndex = 0;
+ this.layoutControl2.Text = "layoutControl2";
+ //
+ // cbPacketLog
+ //
+ this.cbPacketLog.Location = new System.Drawing.Point(702, 4);
+ this.cbPacketLog.Name = "cbPacketLog";
+ this.cbPacketLog.Properties.Caption = "Packet";
+ this.cbPacketLog.Size = new System.Drawing.Size(83, 20);
+ this.cbPacketLog.StyleController = this.layoutControl2;
+ this.cbPacketLog.TabIndex = 6;
+ //
+ // btnLogClear
+ //
+ this.btnLogClear.Location = new System.Drawing.Point(702, 28);
+ this.btnLogClear.Name = "btnLogClear";
+ this.btnLogClear.Size = new System.Drawing.Size(83, 110);
+ this.btnLogClear.StyleController = this.layoutControl2;
+ this.btnLogClear.TabIndex = 5;
+ this.btnLogClear.Text = "Clear";
+ this.btnLogClear.Click += new System.EventHandler(this.btnLogClear_Click);
+ //
+ // tabDataLog
+ //
+ this.tabDataLog.Location = new System.Drawing.Point(4, 4);
+ this.tabDataLog.Name = "tabDataLog";
+ this.tabDataLog.SelectedTabPage = this.tpDataLog;
+ this.tabDataLog.Size = new System.Drawing.Size(694, 134);
+ this.tabDataLog.TabIndex = 4;
+ this.tabDataLog.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] {
+ this.tpDataLog});
+ //
+ // tpDataLog
+ //
+ this.tpDataLog.Controls.Add(this.panelControl1);
+ this.tpDataLog.Name = "tpDataLog";
+ this.tpDataLog.Size = new System.Drawing.Size(692, 108);
+ this.tpDataLog.Text = "Data Log";
+ //
+ // panelControl1
+ //
+ this.panelControl1.Controls.Add(this.meDataLog);
+ this.panelControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.panelControl1.Location = new System.Drawing.Point(0, 0);
+ this.panelControl1.Name = "panelControl1";
+ this.panelControl1.Size = new System.Drawing.Size(692, 108);
+ this.panelControl1.TabIndex = 0;
+ //
+ // meDataLog
+ //
+ this.meDataLog.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.meDataLog.Location = new System.Drawing.Point(2, 2);
+ this.meDataLog.Name = "meDataLog";
+ this.meDataLog.Properties.MaxLength = 1000;
+ this.meDataLog.Size = new System.Drawing.Size(688, 104);
+ this.meDataLog.TabIndex = 0;
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup2";
+ this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup2.GroupBordersVisible = false;
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem6,
+ this.layoutControlItem14,
+ this.lcCheckEdit});
+ this.layoutControlGroup2.Name = "layoutControlGroup2";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(789, 142);
+ this.layoutControlGroup2.TextVisible = false;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.tabDataLog;
+ this.layoutControlItem6.CustomizationFormText = "layoutControlItem6";
+ this.layoutControlItem6.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(104, 24);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(698, 138);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // layoutControlItem14
+ //
+ this.layoutControlItem14.Control = this.btnLogClear;
+ this.layoutControlItem14.CustomizationFormText = "layoutControlItem14";
+ this.layoutControlItem14.Location = new System.Drawing.Point(698, 24);
+ this.layoutControlItem14.MinSize = new System.Drawing.Size(60, 26);
+ this.layoutControlItem14.Name = "layoutControlItem14";
+ this.layoutControlItem14.Size = new System.Drawing.Size(87, 114);
+ this.layoutControlItem14.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem14.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem14.TextVisible = false;
+ //
+ // lcCheckEdit
+ //
+ this.lcCheckEdit.Control = this.cbPacketLog;
+ this.lcCheckEdit.CustomizationFormText = "lcCheckEdit";
+ this.lcCheckEdit.Location = new System.Drawing.Point(698, 0);
+ this.lcCheckEdit.MinSize = new System.Drawing.Size(87, 23);
+ this.lcCheckEdit.Name = "lcCheckEdit";
+ this.lcCheckEdit.Size = new System.Drawing.Size(87, 24);
+ this.lcCheckEdit.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcCheckEdit.TextSize = new System.Drawing.Size(0, 0);
+ this.lcCheckEdit.TextVisible = false;
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1});
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(799, 173);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.gcLogging;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(797, 171);
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // ucEventLog
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.layoutControl1);
+ this.Name = "ucEventLog";
+ this.Size = new System.Drawing.Size(799, 173);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.gcLogging)).EndInit();
+ this.gcLogging.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit();
+ this.layoutControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.cbPacketLog.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.tabDataLog)).EndInit();
+ this.tabDataLog.ResumeLayout(false);
+ this.tpDataLog.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.panelControl1)).EndInit();
+ this.panelControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.meDataLog.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcCheckEdit)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.GroupControl gcLogging;
+ private DevExpress.XtraLayout.LayoutControl layoutControl2;
+ private DevExpress.XtraEditors.SimpleButton btnLogClear;
+ private DevExpress.XtraTab.XtraTabControl tabDataLog;
+ private DevExpress.XtraTab.XtraTabPage tpDataLog;
+ private DevExpress.XtraEditors.PanelControl panelControl1;
+ private DevExpress.XtraEditors.MemoEdit meDataLog;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem14;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraEditors.CheckEdit cbPacketLog;
+ private DevExpress.XtraLayout.LayoutControlItem lcCheckEdit;
+ }
+}
diff --git a/LFP_Manager/Controls/ucEventLog.cs b/LFP_Manager/Controls/ucEventLog.cs
new file mode 100644
index 0000000..7de9ca7
--- /dev/null
+++ b/LFP_Manager/Controls/ucEventLog.cs
@@ -0,0 +1,54 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+namespace LFP_Manager.Controls
+{
+ public partial class ucEventLog : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region CONSTRUCTORS
+
+ public ucEventLog()
+ {
+ InitializeComponent();
+ }
+
+ #endregion
+
+ #region PUBLIC UPDATE
+
+ public void EventUpdate(string aEvent)
+ {
+ if (this.InvokeRequired)
+ {
+ this.Invoke(new MethodInvoker(delegate ()
+ {
+ if (cbPacketLog.Checked)
+ meDataLog.Text = aEvent + meDataLog.Text;
+ }));
+ }
+ else
+ {
+ if (cbPacketLog.Checked)
+ meDataLog.Text = aEvent + meDataLog.Text;
+ }
+ }
+
+ #endregion
+
+ #region ENVENT
+
+ private void btnLogClear_Click(object sender, EventArgs e)
+ {
+ meDataLog.Text = "";
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/ucEventLog.resx b/LFP_Manager/Controls/ucEventLog.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Controls/ucEventLog.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucHistroy.Designer.cs b/LFP_Manager/Controls/ucHistroy.Designer.cs
new file mode 100644
index 0000000..0a2d0d7
--- /dev/null
+++ b/LFP_Manager/Controls/ucHistroy.Designer.cs
@@ -0,0 +1,377 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucHistroy
+ {
+ ///
+ /// 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 Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnSearch = new System.Windows.Forms.Button();
+ this.dtpEnd = new System.Windows.Forms.DateTimePicker();
+ this.dtpStart = new System.Windows.Forms.DateTimePicker();
+ this.xtcSearchResult = new DevExpress.XtraTab.XtraTabControl();
+ this.pgGrid = new DevExpress.XtraTab.XtraTabPage();
+ this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnExportExcel = new DevExpress.XtraEditors.SimpleButton();
+ this.gridSearchResult = new System.Windows.Forms.DataGridView();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lcgbSelectDatetime = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.slbStartDate = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.slbEndDate = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcgbSearchResult = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.DbWaitForm = new DevExpress.XtraSplashScreen.SplashScreenManager(this, typeof(global::LFP_Manager.Forms.fmxWait), true, true, typeof(System.Windows.Forms.UserControl));
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.xtcSearchResult)).BeginInit();
+ this.xtcSearchResult.SuspendLayout();
+ this.pgGrid.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit();
+ this.layoutControl3.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.gridSearchResult)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcgbSelectDatetime)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.slbStartDate)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.slbEndDate)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcgbSearchResult)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.btnSearch);
+ this.layoutControl1.Controls.Add(this.dtpEnd);
+ this.layoutControl1.Controls.Add(this.dtpStart);
+ this.layoutControl1.Controls.Add(this.xtcSearchResult);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(947, 249, 650, 400);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(850, 635);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // btnSearch
+ //
+ this.btnSearch.Location = new System.Drawing.Point(592, 28);
+ this.btnSearch.Name = "btnSearch";
+ this.btnSearch.Size = new System.Drawing.Size(251, 25);
+ this.btnSearch.TabIndex = 7;
+ this.btnSearch.Text = "SEARCH";
+ this.btnSearch.UseVisualStyleBackColor = true;
+ this.btnSearch.Click += new System.EventHandler(this.btnSearch_Click);
+ //
+ // dtpEnd
+ //
+ this.dtpEnd.CustomFormat = "yyyy-MM-dd HH:mm:ss";
+ this.dtpEnd.Font = new System.Drawing.Font("Tahoma", 11F);
+ this.dtpEnd.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
+ this.dtpEnd.Location = new System.Drawing.Point(395, 28);
+ this.dtpEnd.Name = "dtpEnd";
+ this.dtpEnd.Size = new System.Drawing.Size(193, 25);
+ this.dtpEnd.TabIndex = 6;
+ //
+ // dtpStart
+ //
+ this.dtpStart.CalendarFont = new System.Drawing.Font("Tahoma", 9F);
+ this.dtpStart.CustomFormat = "yyyy-MM-dd HH:mm:ss";
+ this.dtpStart.Font = new System.Drawing.Font("Tahoma", 11F);
+ this.dtpStart.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
+ this.dtpStart.Location = new System.Drawing.Point(102, 28);
+ this.dtpStart.Name = "dtpStart";
+ this.dtpStart.Size = new System.Drawing.Size(194, 25);
+ this.dtpStart.TabIndex = 5;
+ //
+ // xtcSearchResult
+ //
+ this.xtcSearchResult.Location = new System.Drawing.Point(7, 86);
+ this.xtcSearchResult.Name = "xtcSearchResult";
+ this.xtcSearchResult.SelectedTabPage = this.pgGrid;
+ this.xtcSearchResult.Size = new System.Drawing.Size(836, 542);
+ this.xtcSearchResult.TabIndex = 4;
+ this.xtcSearchResult.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] {
+ this.pgGrid});
+ //
+ // pgGrid
+ //
+ this.pgGrid.Controls.Add(this.layoutControl3);
+ this.pgGrid.Name = "pgGrid";
+ this.pgGrid.Size = new System.Drawing.Size(834, 516);
+ this.pgGrid.Text = "Result Data";
+ //
+ // layoutControl3
+ //
+ this.layoutControl3.Controls.Add(this.btnExportExcel);
+ this.layoutControl3.Controls.Add(this.gridSearchResult);
+ this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl3.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl3.Name = "layoutControl3";
+ this.layoutControl3.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1120, 298, 650, 400);
+ this.layoutControl3.Root = this.Root;
+ this.layoutControl3.Size = new System.Drawing.Size(834, 516);
+ this.layoutControl3.TabIndex = 0;
+ this.layoutControl3.Text = "layoutControl3";
+ //
+ // btnExportExcel
+ //
+ this.btnExportExcel.Location = new System.Drawing.Point(728, 481);
+ this.btnExportExcel.Name = "btnExportExcel";
+ this.btnExportExcel.Size = new System.Drawing.Size(103, 32);
+ this.btnExportExcel.StyleController = this.layoutControl3;
+ this.btnExportExcel.TabIndex = 5;
+ this.btnExportExcel.Text = "Export Excel";
+ this.btnExportExcel.Click += new System.EventHandler(this.btnExportExcel_Click);
+ //
+ // gridSearchResult
+ //
+ this.gridSearchResult.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ this.gridSearchResult.Location = new System.Drawing.Point(3, 3);
+ this.gridSearchResult.Name = "gridSearchResult";
+ this.gridSearchResult.RowTemplate.Height = 23;
+ this.gridSearchResult.Size = new System.Drawing.Size(828, 474);
+ this.gridSearchResult.TabIndex = 4;
+ this.gridSearchResult.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.gridSearchResult_CellFormatting);
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem5,
+ this.layoutControlItem6,
+ this.emptySpaceItem1});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(834, 516);
+ this.Root.TextVisible = false;
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.gridSearchResult;
+ this.layoutControlItem5.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(104, 24);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(832, 478);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.btnExportExcel;
+ this.layoutControlItem6.Location = new System.Drawing.Point(725, 478);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(107, 36);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 478);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(725, 36);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lcgbSelectDatetime,
+ this.lcgbSearchResult});
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(850, 635);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // lcgbSelectDatetime
+ //
+ this.lcgbSelectDatetime.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.slbStartDate,
+ this.layoutControlItem2,
+ this.slbEndDate,
+ this.layoutControlItem4,
+ this.layoutControlItem3});
+ this.lcgbSelectDatetime.Location = new System.Drawing.Point(0, 0);
+ this.lcgbSelectDatetime.Name = "lcgbSelectDatetime";
+ this.lcgbSelectDatetime.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.lcgbSelectDatetime.Size = new System.Drawing.Size(848, 58);
+ this.lcgbSelectDatetime.Text = "Select Datetime";
+ //
+ // slbStartDate
+ //
+ this.slbStartDate.AllowHotTrack = false;
+ this.slbStartDate.Location = new System.Drawing.Point(0, 0);
+ this.slbStartDate.MinSize = new System.Drawing.Size(95, 18);
+ this.slbStartDate.Name = "slbStartDate";
+ this.slbStartDate.Size = new System.Drawing.Size(95, 29);
+ this.slbStartDate.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.slbStartDate.Text = " Start Datetime";
+ this.slbStartDate.TextSize = new System.Drawing.Size(85, 14);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.dtpStart;
+ this.layoutControlItem2.Location = new System.Drawing.Point(95, 0);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(24, 24);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(198, 29);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // slbEndDate
+ //
+ this.slbEndDate.AllowHotTrack = false;
+ this.slbEndDate.Location = new System.Drawing.Point(293, 0);
+ this.slbEndDate.MinSize = new System.Drawing.Size(95, 18);
+ this.slbEndDate.Name = "slbEndDate";
+ this.slbEndDate.Size = new System.Drawing.Size(95, 29);
+ this.slbEndDate.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.slbEndDate.Text = " End Datetime";
+ this.slbEndDate.TextSize = new System.Drawing.Size(85, 14);
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.btnSearch;
+ this.layoutControlItem4.Location = new System.Drawing.Point(585, 0);
+ this.layoutControlItem4.MaxSize = new System.Drawing.Size(0, 29);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(24, 29);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(255, 29);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.dtpEnd;
+ this.layoutControlItem3.Location = new System.Drawing.Point(388, 0);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(24, 24);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(197, 29);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // lcgbSearchResult
+ //
+ this.lcgbSearchResult.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1});
+ this.lcgbSearchResult.Location = new System.Drawing.Point(0, 58);
+ this.lcgbSearchResult.Name = "lcgbSearchResult";
+ this.lcgbSearchResult.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.lcgbSearchResult.Size = new System.Drawing.Size(848, 575);
+ this.lcgbSearchResult.Text = "Search Result";
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.xtcSearchResult;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(840, 546);
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // ucHistroy
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.layoutControl1);
+ this.Name = "ucHistroy";
+ this.Size = new System.Drawing.Size(850, 635);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.xtcSearchResult)).EndInit();
+ this.xtcSearchResult.ResumeLayout(false);
+ this.pgGrid.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit();
+ this.layoutControl3.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.gridSearchResult)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcgbSelectDatetime)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.slbStartDate)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.slbEndDate)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcgbSearchResult)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraTab.XtraTabControl xtcSearchResult;
+ private DevExpress.XtraTab.XtraTabPage pgGrid;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraSplashScreen.SplashScreenManager DbWaitForm;
+ private System.Windows.Forms.Button btnSearch;
+ private System.Windows.Forms.DateTimePicker dtpEnd;
+ private System.Windows.Forms.DateTimePicker dtpStart;
+ private DevExpress.XtraLayout.LayoutControlGroup lcgbSelectDatetime;
+ private DevExpress.XtraLayout.SimpleLabelItem slbStartDate;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.SimpleLabelItem slbEndDate;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraLayout.LayoutControlGroup lcgbSearchResult;
+ private DevExpress.XtraLayout.LayoutControl layoutControl3;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private System.Windows.Forms.DataGridView gridSearchResult;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraEditors.SimpleButton btnExportExcel;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ }
+}
diff --git a/LFP_Manager/Controls/ucHistroy.cs b/LFP_Manager/Controls/ucHistroy.cs
new file mode 100644
index 0000000..e2edaba
--- /dev/null
+++ b/LFP_Manager/Controls/ucHistroy.cs
@@ -0,0 +1,215 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using System.IO;
+
+using DevExpress.XtraWaitForm;
+using DevExpress.XtraSplashScreen;
+using DevExpress.XtraCharts;
+
+using System.Data.SQLite;
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Utils;
+
+namespace LFP_Manager.Controls
+{
+ public partial class ucHistroy : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region VARIABLES
+
+ CommConfig Config;
+
+ DataTable dtHistory;
+
+ #endregion
+
+ #region CONSTRUCTOR
+
+ public ucHistroy()
+ {
+ InitializeComponent();
+
+ dtHistory = new DataTable();
+ }
+
+ public void SetCommCofig(CommConfig aConfig)
+ {
+ Config = aConfig;
+ }
+
+ #endregion
+
+ #region SQL QUARY EXCUTE
+
+ private void quaryExcute(string quary)
+ {
+ string dbFilename = System.IO.Path.GetDirectoryName(Application.ExecutablePath) + csDbConstData.DataBase.FileName;
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilename;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ DataTable aT = new DataTable();
+
+ DbWaitForm.ShowWaitForm();
+
+ csDbUtils.BeginTran(connection);
+ // Update data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = quary;
+
+ try
+ {
+ SQLiteDataReader reader = command.ExecuteReader();
+ aT.Load(reader);
+ }
+ catch (Exception)
+ {
+ }
+ }
+ csDbUtils.CommitTran(connection);
+ dtHistory = aT;
+ //RealGridView.DataSource = dt;
+
+ DbWaitForm.CloseWaitForm();
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, "Result", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ finally
+ {
+ connection.Close();
+ }
+ }
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+
+ private void btnSearch_Click(object sender, EventArgs e)
+ {
+ DateTime start = dtpStart.Value;
+ DateTime mid;
+ DateTime end = dtpEnd.Value;
+ TimeSpan span = end - start;
+
+ int sDay = start.DayOfYear;
+ int eDay = end.DayOfYear;
+
+ dtHistory.Clear();
+
+ int total_days = eDay - sDay;
+
+ DataTable[] dDt = new DataTable[total_days + 1];
+
+ string quary = "";
+
+ try
+ {
+ if (total_days == 0)
+ {
+ quary = String.Format(" where create_date > '{0:yyyy-MM-dd HH:mm:ss}'", start);
+ quary += String.Format(" and create_date < '{0:yyyy-MM-dd HH:mm:ss}'", end);
+ dDt[0] = csDbUtils.BmsDataSelectToDataTable(Config, start, quary);
+ if (dDt[0] == null)
+ MessageBox.Show("No data", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ else
+ {
+ dtHistory = dDt[0];
+ dtHistory.TableName = "THistory";
+ gridSearchResult.DataSource = dtHistory;
+ //gridSearchResult.();
+ }
+ }
+ else
+ {
+ DataTable bDt = new DataTable();
+ for (int i = 0; i < (total_days + 1); i++)
+ {
+ //dDt[i] = new DataTable();
+ if (i == 0)
+ {
+ quary = String.Format(" where create_date > '{0:yyyy-MM-dd HH:mm:ss}'", start);
+ dDt[i] = csDbUtils.BmsDataSelectToDataTable(Config, start, quary);
+ }
+ else if (i == total_days)
+ {
+ quary = String.Format(" where create_date < '{0:yyyy-MM-dd HH:mm:ss}'", end);
+ dDt[i] = csDbUtils.BmsDataSelectToDataTable(Config, end, quary);
+ }
+ else
+ {
+ quary = "";
+ mid = start.AddDays(i);
+ dDt[i] = csDbUtils.BmsDataSelectToDataTable(Config, mid, quary);
+ }
+ if (dDt[i] != null)
+ bDt.Merge(dDt[i]);
+ }
+ if (bDt == null)
+ MessageBox.Show("No data", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ else
+ {
+ dtHistory = bDt;
+ dtHistory.TableName = String.Format("THistory_{0:yyMMdd_HHmmss}", DateTime.Now);
+ gridSearchResult.DataSource = dtHistory;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ private void btnExportExcel_Click(object sender, EventArgs e)
+ {
+ SaveFileDialog sDialog = new SaveFileDialog();
+ sDialog.Title = "Select save file";
+ sDialog.DefaultExt = "xlsx";
+ sDialog.Filter = "Excel files 2003 (*.xls)|*.xls|All files (*.*)|*.*";
+
+ if (sDialog.ShowDialog() == DialogResult.OK)
+ {
+ string filename = sDialog.FileName;
+
+ try
+ {
+ csExcelExport.ExportToExcelExt(dtHistory, filename);
+
+ MessageBox.Show("Complete Export Excel File", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+
+ #endregion
+
+ #region COMPONENT EVENT
+ private void gridSearchResult_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
+ {
+ if (e.Value is DateTime dateTime)
+ {
+ e.Value = csUtils.FormatDateTime(dateTime);
+ e.FormattingApplied = true;
+ }
+ }
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/ucHistroy.resx b/LFP_Manager/Controls/ucHistroy.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Controls/ucHistroy.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucMainStatus.Designer.cs b/LFP_Manager/Controls/ucMainStatus.Designer.cs
new file mode 100644
index 0000000..d3ee152
--- /dev/null
+++ b/LFP_Manager/Controls/ucMainStatus.Designer.cs
@@ -0,0 +1,822 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucMainStatus
+ {
+ ///
+ /// 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 Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ DevExpress.XtraCharts.XYDiagram xyDiagram1 = new DevExpress.XtraCharts.XYDiagram();
+ DevExpress.XtraCharts.Series series1 = new DevExpress.XtraCharts.Series();
+ DevExpress.XtraCharts.LineSeriesView lineSeriesView1 = new DevExpress.XtraCharts.LineSeriesView();
+ DevExpress.XtraCharts.Series series2 = new DevExpress.XtraCharts.Series();
+ DevExpress.XtraCharts.LineSeriesView lineSeriesView2 = new DevExpress.XtraCharts.LineSeriesView();
+ DevExpress.XtraCharts.ChartTitle chartTitle1 = new DevExpress.XtraCharts.ChartTitle();
+ this.tmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.rtGraph = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnChartClear = new DevExpress.XtraEditors.SimpleButton();
+ this.chartVI = new DevExpress.XtraCharts.ChartControl();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.groupControl1 = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl();
+ this.gaugeControl5 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.dgTotalSOH = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent5 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl4 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.dgTotalSOC = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent4 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl3 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.dgTotalTemp = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent3 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl2 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.dgTotalCurrent = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent2 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl1 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.dgTotalVoltage = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent1 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.panelControl11 = new DevExpress.XtraEditors.PanelControl();
+ this.lbStatus = new DevExpress.XtraEditors.LabelControl();
+ this.panelControl2 = new DevExpress.XtraEditors.PanelControl();
+ this.lbAlarm = new DevExpress.XtraEditors.LabelControl();
+ this.lcGroupSystemValue = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lcItemTotalVoltage = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcItemTotalCurrent = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcItemTemp = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcItemSOC = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcItemSOH = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lcitemStatus = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcitemAlarm = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcGroupRoot = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.gbModuleMain = new DevExpress.XtraEditors.GroupControl();
+ this.lcModuleMain = new DevExpress.XtraLayout.LayoutControl();
+ this.lcgbModuleMain = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcMain = new DevExpress.XtraLayout.LayoutControl();
+ this.layoutControlGroup4 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.rtGraph)).BeginInit();
+ this.rtGraph.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit();
+ this.layoutControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.chartVI)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(xyDiagram1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(series1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(lineSeriesView1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(series2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(lineSeriesView2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.groupControl1)).BeginInit();
+ this.groupControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit();
+ this.layoutControl3.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.dgTotalSOH)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgTotalSOC)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgTotalTemp)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgTotalCurrent)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgTotalVoltage)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.panelControl11)).BeginInit();
+ this.panelControl11.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.panelControl2)).BeginInit();
+ this.panelControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.lcGroupSystemValue)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemTotalVoltage)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemTotalCurrent)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemTemp)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemSOC)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemSOH)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemStatus)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemAlarm)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcGroupRoot)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbModuleMain)).BeginInit();
+ this.gbModuleMain.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.lcModuleMain)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcgbModuleMain)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcMain)).BeginInit();
+ this.lcMain.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ this.SuspendLayout();
+ //
+ // tmrDisplay
+ //
+ this.tmrDisplay.Interval = 500;
+ this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick);
+ //
+ // rtGraph
+ //
+ this.rtGraph.Controls.Add(this.layoutControl2);
+ this.rtGraph.Location = new System.Drawing.Point(206, 413);
+ this.rtGraph.Name = "rtGraph";
+ this.rtGraph.Size = new System.Drawing.Size(1093, 158);
+ this.rtGraph.TabIndex = 5;
+ this.rtGraph.Text = "Real Time Graph";
+ //
+ // layoutControl2
+ //
+ this.layoutControl2.AllowCustomization = false;
+ this.layoutControl2.Controls.Add(this.btnChartClear);
+ this.layoutControl2.Controls.Add(this.chartVI);
+ this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl2.HiddenItems.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem3,
+ this.layoutControlItem5});
+ this.layoutControl2.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl2.Name = "layoutControl2";
+ this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1232, 92, 650, 400);
+ this.layoutControl2.Root = this.layoutControlGroup2;
+ this.layoutControl2.Size = new System.Drawing.Size(1089, 133);
+ this.layoutControl2.TabIndex = 0;
+ this.layoutControl2.Text = "layoutControl2";
+ //
+ // btnChartClear
+ //
+ this.btnChartClear.Location = new System.Drawing.Point(3, 3);
+ this.btnChartClear.Name = "btnChartClear";
+ this.btnChartClear.Size = new System.Drawing.Size(1083, 127);
+ this.btnChartClear.StyleController = this.layoutControl2;
+ this.btnChartClear.TabIndex = 5;
+ this.btnChartClear.Text = "Clear";
+ //
+ // chartVI
+ //
+ xyDiagram1.AxisX.NumericScaleOptions.AutoGrid = false;
+ xyDiagram1.AxisX.VisibleInPanesSerializable = "-1";
+ xyDiagram1.AxisX.VisualRange.Auto = false;
+ xyDiagram1.AxisX.VisualRange.AutoSideMargins = false;
+ xyDiagram1.AxisX.VisualRange.EndSideMargin = 0D;
+ xyDiagram1.AxisX.VisualRange.MaxValueSerializable = "9";
+ xyDiagram1.AxisX.VisualRange.MinValueSerializable = "0";
+ xyDiagram1.AxisX.VisualRange.StartSideMargin = 0D;
+ xyDiagram1.AxisY.VisibleInPanesSerializable = "-1";
+ xyDiagram1.DefaultPane.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(242)))), ((int)(((byte)(242)))), ((int)(((byte)(242)))));
+ this.chartVI.Diagram = xyDiagram1;
+ this.chartVI.Legend.Name = "Default Legend";
+ this.chartVI.Location = new System.Drawing.Point(3, 3);
+ this.chartVI.Name = "chartVI";
+ series1.Name = "Series 1";
+ series1.View = lineSeriesView1;
+ series2.Name = "Series 2";
+ series2.View = lineSeriesView2;
+ this.chartVI.SeriesSerializable = new DevExpress.XtraCharts.Series[] {
+ series1,
+ series2};
+ this.chartVI.Size = new System.Drawing.Size(1083, 101);
+ this.chartVI.TabIndex = 4;
+ this.chartVI.Titles.AddRange(new DevExpress.XtraCharts.ChartTitle[] {
+ chartTitle1});
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.chartVI;
+ this.layoutControlItem3.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(1087, 105);
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.btnChartClear;
+ this.layoutControlItem5.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(1087, 131);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup2";
+ this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup2.GroupBordersVisible = false;
+ this.layoutControlGroup2.Name = "Root";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(1089, 133);
+ this.layoutControlGroup2.TextVisible = false;
+ //
+ // groupControl1
+ //
+ this.groupControl1.Controls.Add(this.layoutControl3);
+ this.groupControl1.Location = new System.Drawing.Point(3, 3);
+ this.groupControl1.Name = "groupControl1";
+ this.groupControl1.Size = new System.Drawing.Size(199, 564);
+ this.groupControl1.TabIndex = 5;
+ this.groupControl1.Text = "System Value";
+ //
+ // layoutControl3
+ //
+ this.layoutControl3.AllowCustomization = false;
+ this.layoutControl3.Controls.Add(this.gaugeControl5);
+ this.layoutControl3.Controls.Add(this.gaugeControl4);
+ this.layoutControl3.Controls.Add(this.gaugeControl3);
+ this.layoutControl3.Controls.Add(this.gaugeControl2);
+ this.layoutControl3.Controls.Add(this.gaugeControl1);
+ this.layoutControl3.Controls.Add(this.panelControl11);
+ this.layoutControl3.Controls.Add(this.panelControl2);
+ this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl3.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl3.Name = "layoutControl3";
+ this.layoutControl3.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(498, 165, 250, 350);
+ this.layoutControl3.Root = this.lcGroupSystemValue;
+ this.layoutControl3.Size = new System.Drawing.Size(195, 539);
+ this.layoutControl3.TabIndex = 0;
+ this.layoutControl3.Text = "layoutControl3";
+ //
+ // gaugeControl5
+ //
+ this.gaugeControl5.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.dgTotalSOH});
+ this.gaugeControl5.Location = new System.Drawing.Point(3, 368);
+ this.gaugeControl5.Name = "gaugeControl5";
+ this.gaugeControl5.Size = new System.Drawing.Size(189, 66);
+ this.gaugeControl5.TabIndex = 8;
+ //
+ // dgTotalSOH
+ //
+ this.dgTotalSOH.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.dgTotalSOH.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.dgTotalSOH.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent5});
+ this.dgTotalSOH.Bounds = new System.Drawing.Rectangle(6, 6, 177, 54);
+ this.dgTotalSOH.DigitCount = 5;
+ this.dgTotalSOH.Name = "dgTotalSOH";
+ this.dgTotalSOH.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.dgTotalSOH.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent5
+ //
+ this.digitalBackgroundLayerComponent5.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent5.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent5.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent5.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent5.ZOrder = 1000;
+ //
+ // gaugeControl4
+ //
+ this.gaugeControl4.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.dgTotalSOC});
+ this.gaugeControl4.Location = new System.Drawing.Point(3, 281);
+ this.gaugeControl4.Name = "gaugeControl4";
+ this.gaugeControl4.Size = new System.Drawing.Size(189, 66);
+ this.gaugeControl4.TabIndex = 7;
+ //
+ // dgTotalSOC
+ //
+ this.dgTotalSOC.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.dgTotalSOC.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.dgTotalSOC.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent4});
+ this.dgTotalSOC.Bounds = new System.Drawing.Rectangle(6, 6, 177, 54);
+ this.dgTotalSOC.DigitCount = 5;
+ this.dgTotalSOC.Name = "dgTotalSOC";
+ this.dgTotalSOC.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.dgTotalSOC.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent4
+ //
+ this.digitalBackgroundLayerComponent4.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent4.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent4.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent4.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent4.ZOrder = 1000;
+ //
+ // gaugeControl3
+ //
+ this.gaugeControl3.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.dgTotalTemp});
+ this.gaugeControl3.Location = new System.Drawing.Point(3, 194);
+ this.gaugeControl3.Name = "gaugeControl3";
+ this.gaugeControl3.Size = new System.Drawing.Size(189, 66);
+ this.gaugeControl3.TabIndex = 6;
+ //
+ // dgTotalTemp
+ //
+ this.dgTotalTemp.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.dgTotalTemp.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.dgTotalTemp.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent3});
+ this.dgTotalTemp.Bounds = new System.Drawing.Rectangle(6, 6, 177, 54);
+ this.dgTotalTemp.DigitCount = 5;
+ this.dgTotalTemp.Name = "dgTotalTemp";
+ this.dgTotalTemp.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.dgTotalTemp.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent3
+ //
+ this.digitalBackgroundLayerComponent3.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent3.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent3.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent3.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent3.ZOrder = 1000;
+ //
+ // gaugeControl2
+ //
+ this.gaugeControl2.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.dgTotalCurrent});
+ this.gaugeControl2.Location = new System.Drawing.Point(3, 107);
+ this.gaugeControl2.Name = "gaugeControl2";
+ this.gaugeControl2.Size = new System.Drawing.Size(189, 66);
+ this.gaugeControl2.TabIndex = 5;
+ //
+ // dgTotalCurrent
+ //
+ this.dgTotalCurrent.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.dgTotalCurrent.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.dgTotalCurrent.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent2});
+ this.dgTotalCurrent.Bounds = new System.Drawing.Rectangle(6, 6, 177, 54);
+ this.dgTotalCurrent.DigitCount = 5;
+ this.dgTotalCurrent.Name = "dgTotalCurrent";
+ this.dgTotalCurrent.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.dgTotalCurrent.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent2
+ //
+ this.digitalBackgroundLayerComponent2.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent2.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent2.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent2.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent2.ZOrder = 1000;
+ //
+ // gaugeControl1
+ //
+ this.gaugeControl1.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.dgTotalVoltage});
+ this.gaugeControl1.Location = new System.Drawing.Point(3, 20);
+ this.gaugeControl1.Name = "gaugeControl1";
+ this.gaugeControl1.Size = new System.Drawing.Size(189, 66);
+ this.gaugeControl1.TabIndex = 4;
+ //
+ // dgTotalVoltage
+ //
+ this.dgTotalVoltage.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.dgTotalVoltage.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.dgTotalVoltage.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent1});
+ this.dgTotalVoltage.Bounds = new System.Drawing.Rectangle(6, 6, 177, 54);
+ this.dgTotalVoltage.DigitCount = 5;
+ this.dgTotalVoltage.Name = "dgTotalVoltage";
+ this.dgTotalVoltage.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.dgTotalVoltage.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent1
+ //
+ this.digitalBackgroundLayerComponent1.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent1.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent1.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent1.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent1.ZOrder = 1000;
+ //
+ // panelControl11
+ //
+ this.panelControl11.Controls.Add(this.lbStatus);
+ this.panelControl11.Location = new System.Drawing.Point(49, 464);
+ this.panelControl11.Name = "panelControl11";
+ this.panelControl11.Size = new System.Drawing.Size(138, 31);
+ this.panelControl11.TabIndex = 4;
+ //
+ // lbStatus
+ //
+ this.lbStatus.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbStatus.Appearance.Options.UseFont = true;
+ this.lbStatus.Appearance.Options.UseTextOptions = true;
+ this.lbStatus.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbStatus.AutoSizeMode = DevExpress.XtraEditors.LabelAutoSizeMode.None;
+ this.lbStatus.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.lbStatus.Location = new System.Drawing.Point(2, 2);
+ this.lbStatus.Name = "lbStatus";
+ this.lbStatus.Size = new System.Drawing.Size(134, 27);
+ this.lbStatus.TabIndex = 0;
+ this.lbStatus.Text = "Status";
+ //
+ // panelControl2
+ //
+ this.panelControl2.Controls.Add(this.lbAlarm);
+ this.panelControl2.Location = new System.Drawing.Point(49, 499);
+ this.panelControl2.Name = "panelControl2";
+ this.panelControl2.Size = new System.Drawing.Size(138, 32);
+ this.panelControl2.TabIndex = 5;
+ //
+ // lbAlarm
+ //
+ this.lbAlarm.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbAlarm.Appearance.Options.UseFont = true;
+ this.lbAlarm.Appearance.Options.UseTextOptions = true;
+ this.lbAlarm.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbAlarm.AutoSizeMode = DevExpress.XtraEditors.LabelAutoSizeMode.None;
+ this.lbAlarm.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.lbAlarm.Location = new System.Drawing.Point(2, 2);
+ this.lbAlarm.Name = "lbAlarm";
+ this.lbAlarm.Size = new System.Drawing.Size(134, 28);
+ this.lbAlarm.TabIndex = 0;
+ this.lbAlarm.Text = "Alarm";
+ //
+ // lcGroupSystemValue
+ //
+ this.lcGroupSystemValue.CustomizationFormText = "layoutControlGroup3";
+ this.lcGroupSystemValue.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.lcGroupSystemValue.GroupBordersVisible = false;
+ this.lcGroupSystemValue.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lcItemTotalVoltage,
+ this.lcItemTotalCurrent,
+ this.lcItemTemp,
+ this.lcItemSOC,
+ this.lcItemSOH,
+ this.layoutControlGroup1});
+ this.lcGroupSystemValue.Name = "lcGroupSystemValue";
+ this.lcGroupSystemValue.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.lcGroupSystemValue.Size = new System.Drawing.Size(195, 539);
+ this.lcGroupSystemValue.TextVisible = false;
+ //
+ // lcItemTotalVoltage
+ //
+ this.lcItemTotalVoltage.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lcItemTotalVoltage.AppearanceItemCaption.Options.UseFont = true;
+ this.lcItemTotalVoltage.Control = this.gaugeControl1;
+ this.lcItemTotalVoltage.CustomizationFormText = "layoutControlItem4";
+ this.lcItemTotalVoltage.Location = new System.Drawing.Point(0, 0);
+ this.lcItemTotalVoltage.MaxSize = new System.Drawing.Size(0, 87);
+ this.lcItemTotalVoltage.MinSize = new System.Drawing.Size(109, 87);
+ this.lcItemTotalVoltage.Name = "lcItemTotalVoltage";
+ this.lcItemTotalVoltage.Size = new System.Drawing.Size(193, 87);
+ this.lcItemTotalVoltage.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcItemTotalVoltage.Text = " Voltage";
+ this.lcItemTotalVoltage.TextLocation = DevExpress.Utils.Locations.Top;
+ this.lcItemTotalVoltage.TextSize = new System.Drawing.Size(125, 14);
+ //
+ // lcItemTotalCurrent
+ //
+ this.lcItemTotalCurrent.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lcItemTotalCurrent.AppearanceItemCaption.Options.UseFont = true;
+ this.lcItemTotalCurrent.Control = this.gaugeControl2;
+ this.lcItemTotalCurrent.CustomizationFormText = " Current";
+ this.lcItemTotalCurrent.Location = new System.Drawing.Point(0, 87);
+ this.lcItemTotalCurrent.MaxSize = new System.Drawing.Size(0, 87);
+ this.lcItemTotalCurrent.MinSize = new System.Drawing.Size(109, 87);
+ this.lcItemTotalCurrent.Name = "lcItemTotalCurrent";
+ this.lcItemTotalCurrent.Size = new System.Drawing.Size(193, 87);
+ this.lcItemTotalCurrent.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcItemTotalCurrent.Text = " Current";
+ this.lcItemTotalCurrent.TextLocation = DevExpress.Utils.Locations.Top;
+ this.lcItemTotalCurrent.TextSize = new System.Drawing.Size(125, 14);
+ //
+ // lcItemTemp
+ //
+ this.lcItemTemp.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lcItemTemp.AppearanceItemCaption.Options.UseFont = true;
+ this.lcItemTemp.Control = this.gaugeControl3;
+ this.lcItemTemp.CustomizationFormText = " Temperature";
+ this.lcItemTemp.Location = new System.Drawing.Point(0, 174);
+ this.lcItemTemp.MaxSize = new System.Drawing.Size(0, 87);
+ this.lcItemTemp.MinSize = new System.Drawing.Size(109, 87);
+ this.lcItemTemp.Name = "lcItemTemp";
+ this.lcItemTemp.Size = new System.Drawing.Size(193, 87);
+ this.lcItemTemp.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcItemTemp.Text = " Temperature (Max.)";
+ this.lcItemTemp.TextLocation = DevExpress.Utils.Locations.Top;
+ this.lcItemTemp.TextSize = new System.Drawing.Size(125, 14);
+ //
+ // lcItemSOC
+ //
+ this.lcItemSOC.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lcItemSOC.AppearanceItemCaption.Options.UseFont = true;
+ this.lcItemSOC.Control = this.gaugeControl4;
+ this.lcItemSOC.CustomizationFormText = " SOC";
+ this.lcItemSOC.Location = new System.Drawing.Point(0, 261);
+ this.lcItemSOC.MaxSize = new System.Drawing.Size(0, 87);
+ this.lcItemSOC.MinSize = new System.Drawing.Size(109, 87);
+ this.lcItemSOC.Name = "lcItemSOC";
+ this.lcItemSOC.Size = new System.Drawing.Size(193, 87);
+ this.lcItemSOC.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcItemSOC.Text = " SOC";
+ this.lcItemSOC.TextLocation = DevExpress.Utils.Locations.Top;
+ this.lcItemSOC.TextSize = new System.Drawing.Size(125, 14);
+ //
+ // lcItemSOH
+ //
+ this.lcItemSOH.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold);
+ this.lcItemSOH.AppearanceItemCaption.Options.UseFont = true;
+ this.lcItemSOH.Control = this.gaugeControl5;
+ this.lcItemSOH.Location = new System.Drawing.Point(0, 348);
+ this.lcItemSOH.MaxSize = new System.Drawing.Size(0, 87);
+ this.lcItemSOH.MinSize = new System.Drawing.Size(109, 87);
+ this.lcItemSOH.Name = "lcItemSOH";
+ this.lcItemSOH.Size = new System.Drawing.Size(193, 87);
+ this.lcItemSOH.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcItemSOH.Text = " SOH";
+ this.lcItemSOH.TextLocation = DevExpress.Utils.Locations.Top;
+ this.lcItemSOH.TextSize = new System.Drawing.Size(125, 14);
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lcitemStatus,
+ this.lcitemAlarm});
+ this.layoutControlGroup1.Location = new System.Drawing.Point(0, 435);
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(193, 102);
+ this.layoutControlGroup1.Text = "Operating Status";
+ //
+ // lcitemStatus
+ //
+ this.lcitemStatus.Control = this.panelControl11;
+ this.lcitemStatus.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.lcitemStatus.CustomizationFormText = "Status";
+ this.lcitemStatus.Location = new System.Drawing.Point(0, 0);
+ this.lcitemStatus.MinSize = new System.Drawing.Size(64, 26);
+ this.lcitemStatus.Name = "lcitemStatus";
+ this.lcitemStatus.Size = new System.Drawing.Size(183, 35);
+ this.lcitemStatus.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemStatus.Text = "Status";
+ this.lcitemStatus.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemStatus.TextSize = new System.Drawing.Size(40, 14);
+ this.lcitemStatus.TextToControlDistance = 1;
+ //
+ // lcitemAlarm
+ //
+ this.lcitemAlarm.Control = this.panelControl2;
+ this.lcitemAlarm.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.lcitemAlarm.CustomizationFormText = "Alarm";
+ this.lcitemAlarm.Location = new System.Drawing.Point(0, 35);
+ this.lcitemAlarm.MinSize = new System.Drawing.Size(64, 26);
+ this.lcitemAlarm.Name = "lcitemAlarm";
+ this.lcitemAlarm.Size = new System.Drawing.Size(183, 36);
+ this.lcitemAlarm.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemAlarm.Text = "Alarm";
+ this.lcitemAlarm.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemAlarm.TextSize = new System.Drawing.Size(40, 20);
+ this.lcitemAlarm.TextToControlDistance = 1;
+ //
+ // lcGroupRoot
+ //
+ this.lcGroupRoot.CustomizationFormText = "layoutControlGroup1";
+ this.lcGroupRoot.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.lcGroupRoot.GroupBordersVisible = false;
+ this.lcGroupRoot.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1,
+ this.layoutControlItem6});
+ this.lcGroupRoot.Name = "Root";
+ this.lcGroupRoot.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.lcGroupRoot.Size = new System.Drawing.Size(1302, 570);
+ this.lcGroupRoot.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.groupControl1;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.MaxSize = new System.Drawing.Size(203, 0);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(203, 24);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(203, 568);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.gbModuleMain;
+ this.layoutControlItem6.Location = new System.Drawing.Point(203, 0);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(1097, 568);
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // gbModuleMain
+ //
+ this.gbModuleMain.Controls.Add(this.lcModuleMain);
+ this.gbModuleMain.Location = new System.Drawing.Point(206, 3);
+ this.gbModuleMain.Name = "gbModuleMain";
+ this.gbModuleMain.Size = new System.Drawing.Size(1093, 564);
+ this.gbModuleMain.TabIndex = 6;
+ this.gbModuleMain.Text = "Module";
+ //
+ // lcModuleMain
+ //
+ this.lcModuleMain.AllowCustomization = false;
+ this.lcModuleMain.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.lcModuleMain.Location = new System.Drawing.Point(2, 23);
+ this.lcModuleMain.Name = "lcModuleMain";
+ this.lcModuleMain.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1270, 115, 650, 400);
+ this.lcModuleMain.Root = this.lcgbModuleMain;
+ this.lcModuleMain.Size = new System.Drawing.Size(1089, 539);
+ this.lcModuleMain.TabIndex = 0;
+ this.lcModuleMain.Text = "layoutControl5";
+ //
+ // lcgbModuleMain
+ //
+ this.lcgbModuleMain.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.lcgbModuleMain.GroupBordersVisible = false;
+ this.lcgbModuleMain.Name = "Root";
+ this.lcgbModuleMain.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.lcgbModuleMain.Size = new System.Drawing.Size(1089, 539);
+ this.lcgbModuleMain.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.rtGraph;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(203, 410);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(1097, 162);
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // lcMain
+ //
+ this.lcMain.AllowCustomization = false;
+ this.lcMain.Controls.Add(this.gbModuleMain);
+ this.lcMain.Controls.Add(this.groupControl1);
+ this.lcMain.Controls.Add(this.rtGraph);
+ this.lcMain.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.lcMain.HiddenItems.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem2});
+ this.lcMain.Location = new System.Drawing.Point(0, 0);
+ this.lcMain.Name = "lcMain";
+ this.lcMain.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(955, 282, 650, 400);
+ this.lcMain.Root = this.lcGroupRoot;
+ this.lcMain.Size = new System.Drawing.Size(1302, 570);
+ this.lcMain.TabIndex = 0;
+ this.lcMain.Text = "layoutControl1";
+ //
+ // layoutControlGroup4
+ //
+ this.layoutControlGroup4.CustomizationFormText = "layoutControlGroup3";
+ this.layoutControlGroup4.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup4.GroupBordersVisible = false;
+ this.layoutControlGroup4.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup4.Name = "Root";
+ this.layoutControlGroup4.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup4.Size = new System.Drawing.Size(185, 63);
+ this.layoutControlGroup4.TextVisible = false;
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold);
+ this.layoutControlItem7.AppearanceItemCaption.Options.UseFont = true;
+ this.layoutControlItem7.Control = this.gaugeControl5;
+ this.layoutControlItem7.Location = new System.Drawing.Point(0, 344);
+ this.layoutControlItem7.MinSize = new System.Drawing.Size(109, 41);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(193, 86);
+ this.layoutControlItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem7.Text = " SOH";
+ this.layoutControlItem7.TextLocation = DevExpress.Utils.Locations.Top;
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(82, 14);
+ //
+ // ucMainStatus
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.lcMain);
+ this.Name = "ucMainStatus";
+ this.Size = new System.Drawing.Size(1302, 570);
+ ((System.ComponentModel.ISupportInitialize)(this.rtGraph)).EndInit();
+ this.rtGraph.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit();
+ this.layoutControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(xyDiagram1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(lineSeriesView1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(series1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(lineSeriesView2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(series2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.chartVI)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.groupControl1)).EndInit();
+ this.groupControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit();
+ this.layoutControl3.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.dgTotalSOH)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgTotalSOC)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgTotalTemp)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgTotalCurrent)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgTotalVoltage)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.panelControl11)).EndInit();
+ this.panelControl11.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.panelControl2)).EndInit();
+ this.panelControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.lcGroupSystemValue)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemTotalVoltage)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemTotalCurrent)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemTemp)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemSOC)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemSOH)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemStatus)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemAlarm)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcGroupRoot)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbModuleMain)).EndInit();
+ this.gbModuleMain.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.lcModuleMain)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcgbModuleMain)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcMain)).EndInit();
+ this.lcMain.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+ private System.Windows.Forms.Timer tmrDisplay;
+ private DevExpress.XtraEditors.GroupControl rtGraph;
+ private DevExpress.XtraLayout.LayoutControl layoutControl2;
+ private DevExpress.XtraEditors.SimpleButton btnChartClear;
+ private DevExpress.XtraCharts.ChartControl chartVI;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraEditors.GroupControl groupControl1;
+ private DevExpress.XtraLayout.LayoutControl layoutControl3;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl4;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgTotalSOC;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent4;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl3;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgTotalTemp;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent3;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl2;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgTotalCurrent;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent2;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl1;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgTotalVoltage;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent1;
+ private DevExpress.XtraLayout.LayoutControlGroup lcGroupSystemValue;
+ private DevExpress.XtraLayout.LayoutControlItem lcItemTotalVoltage;
+ private DevExpress.XtraLayout.LayoutControlItem lcItemTotalCurrent;
+ private DevExpress.XtraLayout.LayoutControlItem lcItemTemp;
+ private DevExpress.XtraLayout.LayoutControlItem lcItemSOC;
+ private DevExpress.XtraLayout.LayoutControlGroup lcGroupRoot;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraEditors.GroupControl gbModuleMain;
+ private DevExpress.XtraLayout.LayoutControl lcMain;
+ private DevExpress.XtraLayout.LayoutControl lcModuleMain;
+ private DevExpress.XtraLayout.LayoutControlGroup lcgbModuleMain;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl5;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgTotalSOH;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent5;
+ private DevExpress.XtraLayout.LayoutControlItem lcItemSOH;
+ private DevExpress.XtraEditors.PanelControl panelControl11;
+ private DevExpress.XtraEditors.LabelControl lbStatus;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemStatus;
+ private DevExpress.XtraEditors.PanelControl panelControl2;
+ private DevExpress.XtraEditors.LabelControl lbAlarm;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemAlarm;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup4;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ }
+}
diff --git a/LFP_Manager/Controls/ucMainStatus.cs b/LFP_Manager/Controls/ucMainStatus.cs
new file mode 100644
index 0000000..a19ec94
--- /dev/null
+++ b/LFP_Manager/Controls/ucMainStatus.cs
@@ -0,0 +1,324 @@
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Threading;
+using System.Windows.Forms;
+
+using DevExpress.XtraCharts;
+using LFP_Manager.DataStructure;
+
+namespace LFP_Manager.Controls
+{
+ public delegate void CommandEvent(int sId, int cmd, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib);
+
+ public partial class ucMainStatus : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region VARIABLES
+
+ private CommConfig Config;
+ private DeviceSystemTotalData SystemTotalData;
+ private DeviceSystemData[] SystemData;
+
+ private ucModuleMainHeader ModuleMainHeader;
+ private ucModuleMainB[] ModuleMain;
+ private DevExpress.XtraLayout.LayoutControlItem[] lcitemModuleMain;
+ private DevExpress.XtraLayout.EmptySpaceItem[] emptySpaceItem;
+
+ private int mQty;
+
+ private double TotalVoltage;
+ private double TotalCurrent;
+ private double TotalTemperature;
+ private double TotalSoc;
+ private double TotalSoh;
+
+ private bool active = false;
+
+ public event CommandEvent OnCommand = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public ucMainStatus()
+ {
+ InitializeComponent();
+
+ mQty = csConstData.SystemInfo.MAX_MODULE_SIZE;
+ }
+
+ #endregion
+
+ public void UpdateMainConfig(ref CommConfig aConfig, ref DeviceSystemData[] mSystemData)
+ {
+ Config = aConfig;
+ SystemData = mSystemData;
+
+ mQty = Config.ModuleQty;
+
+ LoadModuleMain(mQty);
+
+ lcgbModuleMain.Invalidate();
+ }
+
+ private void LoadModuleMain(int mQty)
+ {
+ lcModuleMain.Controls.Clear();
+ lcgbModuleMain.Items.Clear();
+
+ ModuleMainHeader = new ucModuleMainHeader();
+ ModuleMain = new ucModuleMainB[mQty];
+ lcitemModuleMain = new DevExpress.XtraLayout.LayoutControlItem[mQty + 1];
+
+ int empsize = csConstData.SystemInfo.MAX_MODULE_SIZE - mQty;
+
+ if (empsize > 0)
+ {
+ emptySpaceItem = new DevExpress.XtraLayout.EmptySpaceItem[empsize];
+ }
+
+ int tWidth = lcgbModuleMain.Size.Width;
+ int tHeight = lcgbModuleMain.Size.Height;
+
+ lcitemModuleMain[0] = new DevExpress.XtraLayout.LayoutControlItem
+ {
+ Control = ModuleMainHeader,
+ Name = String.Format("lcitemModuleMainHeader"),
+ Size = new Size(tWidth - 4, 30),
+ Location = new Point(2, 2),
+ TextVisible = false,
+ Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0)
+ };
+
+ int emp = 0;
+ for (int i = 0; i < csConstData.SystemInfo.MAX_MODULE_SIZE; i++)
+ {
+ if (i < mQty)
+ {
+ ModuleMain[i] = new ucModuleMainB(Config, i + 1, ref SystemData[i]);
+ ModuleMain[i].OnCommand += SetCmdEvent;
+
+ lcitemModuleMain[i + 1] = new DevExpress.XtraLayout.LayoutControlItem
+ {
+ Control = ModuleMain[i],
+ Name = String.Format("lcitemModuleMain_{0}", i + 1),
+ Size = new Size(tWidth - 4, 60),
+ Location = new Point(2, 2 + 30 + (i * 60)),
+ TextVisible = false,
+ Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0)
+ };
+ }
+ else
+ {
+ emptySpaceItem[emp] = new DevExpress.XtraLayout.EmptySpaceItem
+ {
+ Size = new Size(tWidth - 4, 60),
+ Location = new Point(2, 2 + 30 + (i * 60))
+ };
+ emp++;
+ }
+ }
+
+ lcModuleMain.Controls.Add(ModuleMainHeader);
+ for (int i = 0; i < csConstData.SystemInfo.MAX_MODULE_SIZE; i++)
+ {
+ if (i < mQty)
+ lcModuleMain.Controls.Add(ModuleMain[i]);
+ }
+
+ DevExpress.XtraLayout.BaseLayoutItem[] abase = new DevExpress.XtraLayout.BaseLayoutItem[csConstData.SystemInfo.MAX_MODULE_SIZE + 1];
+
+ emp = 0;
+ for (int i = 0; i < csConstData.SystemInfo.MAX_MODULE_SIZE + 1; i++)
+ {
+ if (i < (mQty + 1))
+ abase[i] = lcitemModuleMain[i];
+ else
+ abase[i] = emptySpaceItem[emp++];
+ }
+
+ lcgbModuleMain.Items.AddRange(abase);
+
+ lcgbModuleMain.Invalidate();
+ }
+
+ public void Start(ref CommConfig aConfig, ref DeviceSystemTotalData aSystemTotalData, ref DeviceSystemData[] aSystemData)
+ {
+ Config = aConfig;
+ SystemTotalData = aSystemTotalData;
+ SystemData = aSystemData;
+
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART_MULTI:
+ mQty = Config.ModuleQty;
+ break;
+ default:
+ mQty = Config.ModuleQty;
+ break;
+ }
+ active = true;
+ tmrDisplay.Enabled = true;
+ }
+
+ public void Stop()
+ {
+ active = false;
+ tmrDisplay.Enabled = false;
+ }
+
+ public void UpdateData(ref DeviceSystemTotalData aSystemTotalData, ref DeviceSystemData[] aSystemData)
+ {
+ if (active)
+ {
+ SystemTotalData = aSystemTotalData;
+ SystemData = aSystemData;
+
+ //if (this.InvokeRequired)
+ //{
+ // this.Invoke(new MethodInvoker(delegate ()
+ // {
+ // //mQty = SystemTotalData.IdentData.ModuleQuantity;
+ // LoadModuleMain(mQty);
+
+ // OnCommand?.Invoke(0, 1, mQty, 1, ref Param, ref Calib);
+ // }));
+ //}
+ //else
+ //{
+ // //mQty = SystemTotalData.IdentData.ModuleQuantity;
+ // LoadModuleMain(mQty);
+
+ // OnCommand?.Invoke(0, 1, mQty, 1, ref Param, ref Calib);
+ //}
+
+ TotalVoltage = (double)SystemTotalData.ValueData.TotalVoltage / 10;
+ TotalCurrent = (double)SystemTotalData.ValueData.TotalCurrent / 10;
+ TotalSoc = (double)SystemTotalData.ValueData.TotalSOC / 10;
+ TotalSoh = (double)SystemTotalData.ValueData.TotalSOH / 10;
+ TotalTemperature = (double)SystemTotalData.ValueData.TotalTemp / 10;
+
+ for (int i = 0; i < ModuleMain.Length; i++)
+ {
+ ModuleMain[i].UpdateData(ref SystemData[i]);
+ }
+ }
+ }
+ #region ON EVENT FUNCTION
+
+ private void SetCmdEvent(int sId, int cmd, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib)
+ {
+ OnCommand?.Invoke(sId, cmd, index, flag, ref aParam, ref aCalib);
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+
+ #endregion
+
+ #region TIMER EVENT
+ private void tmrDisplay_Tick(object sender, EventArgs e)
+ {
+ DisplayTotalValue();
+ DisplayStatusAndAlarm();
+ }
+
+ #endregion
+
+ #region DISPLAY FUNCTION
+ private void DisplayTotalValue()
+ {
+ if (active)
+ {
+ rtGraph.Text = String.Format("Real Time Graph - {0} - {1} Modules"
+ , String.Format("V{0}", SystemTotalData.IdentData.FwVerStr)
+ , Config.ModuleQty);
+
+ dgTotalVoltage.Text = String.Format("{0:0.0}", TotalVoltage);
+ dgTotalCurrent.Text = String.Format("{0:0.0}", TotalCurrent);
+ dgTotalTemp.Text = String.Format("{0:0.0}", TotalTemperature);
+ dgTotalSOC.Text = String.Format("{0:0.0}", TotalSoc);
+ dgTotalSOH.Text = String.Format("{0:0.0}", TotalSoh);
+
+ chartVI.Invalidate();
+ }
+ }
+
+ private void DisplayStatusAndAlarm()
+ {
+ if (SystemTotalData.CommFail == false)
+ {
+ // Operating Status
+ if (SystemTotalData.StatusData.status == 0)
+ {
+ lbStatus.Text = "STANDBY";
+ lbStatus.ForeColor = System.Drawing.Color.Black;
+ }
+ else if (SystemTotalData.StatusData.status == 1)
+ {
+ lbStatus.Text = "CHARGING";
+ lbStatus.ForeColor = System.Drawing.Color.Blue;
+ }
+ else if (SystemTotalData.StatusData.status == 2)
+ {
+ lbStatus.Text = "DISCHARGING";
+ lbStatus.ForeColor = System.Drawing.Color.Magenta;
+ }
+ else if (SystemTotalData.StatusData.status == 3)
+ {
+ lbStatus.Text = "FLOATING";
+ lbStatus.ForeColor = System.Drawing.Color.Black;
+ }
+ else
+ {
+ lbStatus.Text = "UNKNOWN";
+ lbStatus.ForeColor = System.Drawing.Color.Black;
+ }
+ // Alarm Display
+ switch (SystemTotalData.StatusData.batteryStatus)
+ {
+ case 0: // NORMAL
+ lbAlarm.Text = "NORMAL";
+ lbAlarm.ForeColor = System.Drawing.Color.Green;
+ break;
+ case 1: // WARNING
+ lbAlarm.Text = "NORMAL";
+ lbAlarm.ForeColor = System.Drawing.Color.Green;
+ break;
+ case 2: // FAULT
+ lbAlarm.Text = "NORMAL";
+ lbAlarm.ForeColor = System.Drawing.Color.Green;
+ break;
+ case 3: // WARMING UP
+ lbAlarm.Text = "WARMING UP";
+ lbAlarm.ForeColor = System.Drawing.Color.Green;
+ break;
+ case 4: // FAULT (Anti-Theft Comm.)
+ lbAlarm.Text = "FAULT (Anti-Theft)";
+ lbAlarm.ForeColor = System.Drawing.Color.Green;
+ break;
+ case 5: // FAULT (Anti-Theft Gyro-Scope)
+ lbAlarm.Text = "FAULT (Anti-Theft)";
+ lbAlarm.ForeColor = System.Drawing.Color.Green;
+ break;
+ default:
+ lbAlarm.Text = string.Format("UNKNOWN ({0})", SystemTotalData.StatusData.batteryStatus);
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ }
+ }
+ else
+ {
+ lbStatus.Text = "OFF-LINE";
+ lbStatus.ForeColor = System.Drawing.Color.Red;
+ lbAlarm.Text = "OFF-LINE";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/ucMainStatus.resx b/LFP_Manager/Controls/ucMainStatus.resx
new file mode 100644
index 0000000..fe317aa
--- /dev/null
+++ b/LFP_Manager/Controls/ucMainStatus.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucModuleMainA.Designer.cs b/LFP_Manager/Controls/ucModuleMainA.Designer.cs
new file mode 100644
index 0000000..43f9d0f
--- /dev/null
+++ b/LFP_Manager/Controls/ucModuleMainA.Designer.cs
@@ -0,0 +1,670 @@
+
+namespace LFP_Manager.Controls
+{
+ partial class ucModuleMainA
+ {
+ ///
+ /// 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()
+ {
+ this.components = new System.ComponentModel.Container();
+ DevExpress.XtraGauges.Core.Model.ScaleLabel scaleLabel2 = new DevExpress.XtraGauges.Core.Model.ScaleLabel();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState21 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState22 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState23 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState24 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState25 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState26 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState27 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState28 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState29 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState30 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState31 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState32 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState33 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState34 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState35 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState36 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState37 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState38 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState39 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState40 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState();
+ this.tabbedView = new DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView(this.components);
+ this.gbModuleMain = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.gaugeControl1 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.lcitemSOC = new DevExpress.XtraLayout.LayoutControlItem();
+ this.Level_Bars = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearGauge();
+ this.linearScaleComponent1 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleComponent();
+ this.linearScaleBackgroundLayerComponent1 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleBackgroundLayerComponent();
+ this.linearScaleStateIndicatorComponent1 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent();
+ this.linearScaleStateIndicatorComponent2 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent();
+ this.linearScaleStateIndicatorComponent3 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent();
+ this.linearScaleStateIndicatorComponent4 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent();
+ this.linearScaleStateIndicatorComponent5 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent();
+ this.linearScaleStateIndicatorComponent6 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent();
+ this.linearScaleStateIndicatorComponent7 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent();
+ this.linearScaleStateIndicatorComponent8 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent();
+ this.linearScaleStateIndicatorComponent9 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent();
+ this.linearScaleStateIndicatorComponent10 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent();
+ this.gaugeControl2 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.digitalGauge4 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent1 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.lcitemMVolt = new DevExpress.XtraLayout.LayoutControlItem();
+ this.gaugeControl3 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.lcitemCurrent = new DevExpress.XtraLayout.LayoutControlItem();
+ this.digitalGauge1 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent2 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl4 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.lcitemAvgTemp = new DevExpress.XtraLayout.LayoutControlItem();
+ this.digitalGauge2 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent3 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.btnDetailView = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ ((System.ComponentModel.ISupportInitialize)(this.tabbedView)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbModuleMain)).BeginInit();
+ this.gbModuleMain.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemSOC)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Level_Bars)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleComponent1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleBackgroundLayerComponent1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent9)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent10)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalGauge4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemMVolt)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemCurrent)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalGauge1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemAvgTemp)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalGauge2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // gbModuleMain
+ //
+ this.gbModuleMain.AppearanceCaption.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.gbModuleMain.AppearanceCaption.Options.UseFont = true;
+ this.gbModuleMain.Controls.Add(this.layoutControl1);
+ this.gbModuleMain.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.gbModuleMain.Location = new System.Drawing.Point(0, 0);
+ this.gbModuleMain.Name = "gbModuleMain";
+ this.gbModuleMain.Size = new System.Drawing.Size(314, 258);
+ this.gbModuleMain.TabIndex = 0;
+ this.gbModuleMain.Text = "Module - #0";
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.btnDetailView);
+ this.layoutControl1.Controls.Add(this.gaugeControl4);
+ this.layoutControl1.Controls.Add(this.gaugeControl3);
+ this.layoutControl1.Controls.Add(this.gaugeControl2);
+ this.layoutControl1.Controls.Add(this.gaugeControl1);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1209, 352, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(310, 233);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lcitemSOC,
+ this.lcitemMVolt,
+ this.lcitemCurrent,
+ this.lcitemAvgTemp,
+ this.layoutControlItem5,
+ this.emptySpaceItem1});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(310, 233);
+ this.Root.TextVisible = false;
+ //
+ // gaugeControl1
+ //
+ this.gaugeControl1.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.Level_Bars});
+ this.gaugeControl1.Location = new System.Drawing.Point(3, 22);
+ this.gaugeControl1.Name = "gaugeControl1";
+ this.gaugeControl1.Size = new System.Drawing.Size(105, 208);
+ this.gaugeControl1.TabIndex = 4;
+ //
+ // lcitemSOC
+ //
+ this.lcitemSOC.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lcitemSOC.AppearanceItemCaption.Options.UseFont = true;
+ this.lcitemSOC.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lcitemSOC.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lcitemSOC.Control = this.gaugeControl1;
+ this.lcitemSOC.Location = new System.Drawing.Point(0, 0);
+ this.lcitemSOC.MinSize = new System.Drawing.Size(109, 50);
+ this.lcitemSOC.Name = "lcitemSOC";
+ this.lcitemSOC.Size = new System.Drawing.Size(109, 231);
+ this.lcitemSOC.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemSOC.Text = "SOC";
+ this.lcitemSOC.TextLocation = DevExpress.Utils.Locations.Top;
+ this.lcitemSOC.TextSize = new System.Drawing.Size(25, 16);
+ //
+ // Level_Bars
+ //
+ this.Level_Bars.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleBackgroundLayerComponent[] {
+ this.linearScaleBackgroundLayerComponent1});
+ this.Level_Bars.Bounds = new System.Drawing.Rectangle(6, 6, 93, 196);
+ this.Level_Bars.Indicators.AddRange(new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent[] {
+ this.linearScaleStateIndicatorComponent1,
+ this.linearScaleStateIndicatorComponent2,
+ this.linearScaleStateIndicatorComponent3,
+ this.linearScaleStateIndicatorComponent4,
+ this.linearScaleStateIndicatorComponent5,
+ this.linearScaleStateIndicatorComponent6,
+ this.linearScaleStateIndicatorComponent7,
+ this.linearScaleStateIndicatorComponent8,
+ this.linearScaleStateIndicatorComponent9,
+ this.linearScaleStateIndicatorComponent10});
+ this.Level_Bars.Name = "Level_Bars";
+ this.Level_Bars.Scales.AddRange(new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleComponent[] {
+ this.linearScaleComponent1});
+ //
+ // linearScaleComponent1
+ //
+ this.linearScaleComponent1.AppearanceTickmarkText.TextBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:Black");
+ this.linearScaleComponent1.EndPoint = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 225F);
+ scaleLabel2.AppearanceText.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold);
+ scaleLabel2.AppearanceText.TextBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:White");
+ scaleLabel2.FormatString = "{0} {2:P0}";
+ scaleLabel2.Name = "Label0";
+ scaleLabel2.Position = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 125F);
+ scaleLabel2.Size = new System.Drawing.SizeF(100F, 30F);
+ scaleLabel2.Text = "";
+ scaleLabel2.TextOrientation = DevExpress.XtraGauges.Core.Model.LabelOrientation.LeftToRight;
+ this.linearScaleComponent1.Labels.AddRange(new DevExpress.XtraGauges.Core.Model.ILabel[] {
+ scaleLabel2});
+ this.linearScaleComponent1.MajorTickCount = 2;
+ this.linearScaleComponent1.MajorTickmark.FormatString = "{0:F0}";
+ this.linearScaleComponent1.MajorTickmark.ShapeOffset = -20F;
+ this.linearScaleComponent1.MajorTickmark.ShapeType = DevExpress.XtraGauges.Core.Model.TickmarkShapeType.Linear_Style1_1;
+ this.linearScaleComponent1.MajorTickmark.ShowText = false;
+ this.linearScaleComponent1.MajorTickmark.ShowTick = false;
+ this.linearScaleComponent1.MajorTickmark.TextOffset = -32F;
+ this.linearScaleComponent1.MaxValue = 100F;
+ this.linearScaleComponent1.MinorTickCount = 0;
+ this.linearScaleComponent1.MinorTickmark.ShapeOffset = -14F;
+ this.linearScaleComponent1.MinorTickmark.ShapeType = DevExpress.XtraGauges.Core.Model.TickmarkShapeType.Linear_Style1_2;
+ this.linearScaleComponent1.MinorTickmark.ShowTick = false;
+ this.linearScaleComponent1.Name = "scale1";
+ this.linearScaleComponent1.StartPoint = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 25F);
+ this.linearScaleComponent1.Value = 75F;
+ //
+ // linearScaleBackgroundLayerComponent1
+ //
+ this.linearScaleBackgroundLayerComponent1.LinearScale = this.linearScaleComponent1;
+ this.linearScaleBackgroundLayerComponent1.Name = "bg1";
+ this.linearScaleBackgroundLayerComponent1.ScaleEndPos = new DevExpress.XtraGauges.Core.Base.PointF2D(0.5F, 0.1F);
+ this.linearScaleBackgroundLayerComponent1.ScaleStartPos = new DevExpress.XtraGauges.Core.Base.PointF2D(0.5F, 0.9F);
+ this.linearScaleBackgroundLayerComponent1.ShapeType = DevExpress.XtraGauges.Core.Model.BackgroundLayerShapeType.Linear_Style10;
+ this.linearScaleBackgroundLayerComponent1.ZOrder = 1000;
+ //
+ // linearScaleStateIndicatorComponent1
+ //
+ this.linearScaleStateIndicatorComponent1.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 225F);
+ this.linearScaleStateIndicatorComponent1.IndicatorScale = this.linearScaleComponent1;
+ this.linearScaleStateIndicatorComponent1.Name = "Indicator0";
+ this.linearScaleStateIndicatorComponent1.Size = new System.Drawing.SizeF(58.5702F, 18.94918F);
+ scaleIndicatorState21.IntervalLength = 100F;
+ scaleIndicatorState21.Name = "Colored";
+ scaleIndicatorState21.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer2;
+ scaleIndicatorState21.StartValue = 0.01F;
+ scaleIndicatorState22.IntervalLength = 0F;
+ scaleIndicatorState22.Name = "Empty";
+ scaleIndicatorState22.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0;
+ this.linearScaleStateIndicatorComponent1.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] {
+ scaleIndicatorState21,
+ scaleIndicatorState22});
+ this.linearScaleStateIndicatorComponent1.ZOrder = 100;
+ //
+ // linearScaleStateIndicatorComponent2
+ //
+ this.linearScaleStateIndicatorComponent2.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 202.7778F);
+ this.linearScaleStateIndicatorComponent2.IndicatorScale = this.linearScaleComponent1;
+ this.linearScaleStateIndicatorComponent2.Name = "Indicator1";
+ this.linearScaleStateIndicatorComponent2.Size = new System.Drawing.SizeF(58.5702F, 18.94918F);
+ scaleIndicatorState23.IntervalLength = 90F;
+ scaleIndicatorState23.Name = "Colored";
+ scaleIndicatorState23.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer2;
+ scaleIndicatorState23.StartValue = 10F;
+ scaleIndicatorState24.IntervalLength = 10F;
+ scaleIndicatorState24.Name = "Empty";
+ scaleIndicatorState24.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0;
+ this.linearScaleStateIndicatorComponent2.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] {
+ scaleIndicatorState23,
+ scaleIndicatorState24});
+ this.linearScaleStateIndicatorComponent2.ZOrder = 99;
+ //
+ // linearScaleStateIndicatorComponent3
+ //
+ this.linearScaleStateIndicatorComponent3.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 180.5556F);
+ this.linearScaleStateIndicatorComponent3.IndicatorScale = this.linearScaleComponent1;
+ this.linearScaleStateIndicatorComponent3.Name = "Indicator2";
+ this.linearScaleStateIndicatorComponent3.Size = new System.Drawing.SizeF(58.5702F, 18.94918F);
+ scaleIndicatorState25.IntervalLength = 80F;
+ scaleIndicatorState25.Name = "Colored";
+ scaleIndicatorState25.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer2;
+ scaleIndicatorState25.StartValue = 20F;
+ scaleIndicatorState26.IntervalLength = 20F;
+ scaleIndicatorState26.Name = "Empty";
+ scaleIndicatorState26.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0;
+ this.linearScaleStateIndicatorComponent3.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] {
+ scaleIndicatorState25,
+ scaleIndicatorState26});
+ this.linearScaleStateIndicatorComponent3.ZOrder = 98;
+ //
+ // linearScaleStateIndicatorComponent4
+ //
+ this.linearScaleStateIndicatorComponent4.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 158.3333F);
+ this.linearScaleStateIndicatorComponent4.IndicatorScale = this.linearScaleComponent1;
+ this.linearScaleStateIndicatorComponent4.Name = "Indicator3";
+ this.linearScaleStateIndicatorComponent4.Size = new System.Drawing.SizeF(58.5702F, 18.94918F);
+ scaleIndicatorState27.IntervalLength = 70F;
+ scaleIndicatorState27.Name = "Colored";
+ scaleIndicatorState27.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer3;
+ scaleIndicatorState27.StartValue = 30F;
+ scaleIndicatorState28.IntervalLength = 30F;
+ scaleIndicatorState28.Name = "Empty";
+ scaleIndicatorState28.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0;
+ this.linearScaleStateIndicatorComponent4.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] {
+ scaleIndicatorState27,
+ scaleIndicatorState28});
+ this.linearScaleStateIndicatorComponent4.ZOrder = 97;
+ //
+ // linearScaleStateIndicatorComponent5
+ //
+ this.linearScaleStateIndicatorComponent5.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 136.1111F);
+ this.linearScaleStateIndicatorComponent5.IndicatorScale = this.linearScaleComponent1;
+ this.linearScaleStateIndicatorComponent5.Name = "Indicator4";
+ this.linearScaleStateIndicatorComponent5.Size = new System.Drawing.SizeF(58.5702F, 18.94918F);
+ scaleIndicatorState29.IntervalLength = 60F;
+ scaleIndicatorState29.Name = "Colored";
+ scaleIndicatorState29.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer3;
+ scaleIndicatorState29.StartValue = 40F;
+ scaleIndicatorState30.IntervalLength = 40F;
+ scaleIndicatorState30.Name = "Empty";
+ scaleIndicatorState30.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0;
+ this.linearScaleStateIndicatorComponent5.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] {
+ scaleIndicatorState29,
+ scaleIndicatorState30});
+ this.linearScaleStateIndicatorComponent5.ZOrder = 96;
+ //
+ // linearScaleStateIndicatorComponent6
+ //
+ this.linearScaleStateIndicatorComponent6.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 113.8889F);
+ this.linearScaleStateIndicatorComponent6.IndicatorScale = this.linearScaleComponent1;
+ this.linearScaleStateIndicatorComponent6.Name = "Indicator5";
+ this.linearScaleStateIndicatorComponent6.Size = new System.Drawing.SizeF(58.5702F, 18.94918F);
+ scaleIndicatorState31.IntervalLength = 50F;
+ scaleIndicatorState31.Name = "Colored";
+ scaleIndicatorState31.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer3;
+ scaleIndicatorState31.StartValue = 50F;
+ scaleIndicatorState32.IntervalLength = 50F;
+ scaleIndicatorState32.Name = "Empty";
+ scaleIndicatorState32.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0;
+ this.linearScaleStateIndicatorComponent6.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] {
+ scaleIndicatorState31,
+ scaleIndicatorState32});
+ this.linearScaleStateIndicatorComponent6.ZOrder = 95;
+ //
+ // linearScaleStateIndicatorComponent7
+ //
+ this.linearScaleStateIndicatorComponent7.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 91.66667F);
+ this.linearScaleStateIndicatorComponent7.IndicatorScale = this.linearScaleComponent1;
+ this.linearScaleStateIndicatorComponent7.Name = "Indicator6";
+ this.linearScaleStateIndicatorComponent7.Size = new System.Drawing.SizeF(58.5702F, 18.94918F);
+ scaleIndicatorState33.IntervalLength = 40F;
+ scaleIndicatorState33.Name = "Colored";
+ scaleIndicatorState33.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer4;
+ scaleIndicatorState33.StartValue = 60F;
+ scaleIndicatorState34.IntervalLength = 60F;
+ scaleIndicatorState34.Name = "Empty";
+ scaleIndicatorState34.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0;
+ this.linearScaleStateIndicatorComponent7.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] {
+ scaleIndicatorState33,
+ scaleIndicatorState34});
+ this.linearScaleStateIndicatorComponent7.ZOrder = 94;
+ //
+ // linearScaleStateIndicatorComponent8
+ //
+ this.linearScaleStateIndicatorComponent8.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 69.44444F);
+ this.linearScaleStateIndicatorComponent8.IndicatorScale = this.linearScaleComponent1;
+ this.linearScaleStateIndicatorComponent8.Name = "Indicator7";
+ this.linearScaleStateIndicatorComponent8.Size = new System.Drawing.SizeF(58.5702F, 18.94918F);
+ scaleIndicatorState35.IntervalLength = 30F;
+ scaleIndicatorState35.Name = "Colored";
+ scaleIndicatorState35.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer4;
+ scaleIndicatorState35.StartValue = 70F;
+ scaleIndicatorState36.IntervalLength = 70F;
+ scaleIndicatorState36.Name = "Empty";
+ scaleIndicatorState36.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0;
+ this.linearScaleStateIndicatorComponent8.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] {
+ scaleIndicatorState35,
+ scaleIndicatorState36});
+ this.linearScaleStateIndicatorComponent8.ZOrder = 93;
+ //
+ // linearScaleStateIndicatorComponent9
+ //
+ this.linearScaleStateIndicatorComponent9.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 47.22222F);
+ this.linearScaleStateIndicatorComponent9.IndicatorScale = this.linearScaleComponent1;
+ this.linearScaleStateIndicatorComponent9.Name = "Indicator8";
+ this.linearScaleStateIndicatorComponent9.Size = new System.Drawing.SizeF(58.5702F, 18.94918F);
+ scaleIndicatorState37.IntervalLength = 20F;
+ scaleIndicatorState37.Name = "Colored";
+ scaleIndicatorState37.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer4;
+ scaleIndicatorState37.StartValue = 80F;
+ scaleIndicatorState38.IntervalLength = 80F;
+ scaleIndicatorState38.Name = "Empty";
+ scaleIndicatorState38.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0;
+ this.linearScaleStateIndicatorComponent9.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] {
+ scaleIndicatorState37,
+ scaleIndicatorState38});
+ this.linearScaleStateIndicatorComponent9.ZOrder = 92;
+ //
+ // linearScaleStateIndicatorComponent10
+ //
+ this.linearScaleStateIndicatorComponent10.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 25F);
+ this.linearScaleStateIndicatorComponent10.IndicatorScale = this.linearScaleComponent1;
+ this.linearScaleStateIndicatorComponent10.Name = "Indicator9";
+ this.linearScaleStateIndicatorComponent10.Size = new System.Drawing.SizeF(58.5702F, 18.94918F);
+ scaleIndicatorState39.IntervalLength = 10F;
+ scaleIndicatorState39.Name = "Colored";
+ scaleIndicatorState39.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer4;
+ scaleIndicatorState39.StartValue = 90F;
+ scaleIndicatorState40.IntervalLength = 90F;
+ scaleIndicatorState40.Name = "Empty";
+ scaleIndicatorState40.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0;
+ this.linearScaleStateIndicatorComponent10.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] {
+ scaleIndicatorState39,
+ scaleIndicatorState40});
+ this.linearScaleStateIndicatorComponent10.ZOrder = 91;
+ //
+ // gaugeControl2
+ //
+ this.gaugeControl2.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.digitalGauge4});
+ this.gaugeControl2.Location = new System.Drawing.Point(167, 3);
+ this.gaugeControl2.Name = "gaugeControl2";
+ this.gaugeControl2.Size = new System.Drawing.Size(140, 56);
+ this.gaugeControl2.TabIndex = 0;
+ //
+ // digitalGauge4
+ //
+ this.digitalGauge4.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.digitalGauge4.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.digitalGauge4.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent1});
+ this.digitalGauge4.Bounds = new System.Drawing.Rectangle(6, 6, 128, 44);
+ this.digitalGauge4.DigitCount = 5;
+ this.digitalGauge4.Name = "digitalGauge4";
+ this.digitalGauge4.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.digitalGauge4.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent1
+ //
+ this.digitalBackgroundLayerComponent1.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent1.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent1.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent1.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent1.ZOrder = 1000;
+ //
+ // lcitemMVolt
+ //
+ this.lcitemMVolt.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lcitemMVolt.AppearanceItemCaption.Options.UseFont = true;
+ this.lcitemMVolt.Control = this.gaugeControl2;
+ this.lcitemMVolt.Location = new System.Drawing.Point(109, 0);
+ this.lcitemMVolt.MinSize = new System.Drawing.Size(100, 24);
+ this.lcitemMVolt.Name = "lcitemMVolt";
+ this.lcitemMVolt.Size = new System.Drawing.Size(199, 60);
+ this.lcitemMVolt.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemMVolt.Text = " Volt";
+ this.lcitemMVolt.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemMVolt.TextSize = new System.Drawing.Size(50, 16);
+ this.lcitemMVolt.TextToControlDistance = 5;
+ //
+ // gaugeControl3
+ //
+ this.gaugeControl3.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.digitalGauge1});
+ this.gaugeControl3.Location = new System.Drawing.Point(167, 63);
+ this.gaugeControl3.Name = "gaugeControl3";
+ this.gaugeControl3.Size = new System.Drawing.Size(140, 56);
+ this.gaugeControl3.TabIndex = 5;
+ //
+ // lcitemCurrent
+ //
+ this.lcitemCurrent.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lcitemCurrent.AppearanceItemCaption.Options.UseFont = true;
+ this.lcitemCurrent.Control = this.gaugeControl3;
+ this.lcitemCurrent.Location = new System.Drawing.Point(109, 60);
+ this.lcitemCurrent.MinSize = new System.Drawing.Size(100, 24);
+ this.lcitemCurrent.Name = "lcitemCurrent";
+ this.lcitemCurrent.Size = new System.Drawing.Size(199, 60);
+ this.lcitemCurrent.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemCurrent.Text = " Curr";
+ this.lcitemCurrent.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemCurrent.TextSize = new System.Drawing.Size(50, 20);
+ this.lcitemCurrent.TextToControlDistance = 5;
+ //
+ // digitalGauge1
+ //
+ this.digitalGauge1.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.digitalGauge1.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.digitalGauge1.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent2});
+ this.digitalGauge1.Bounds = new System.Drawing.Rectangle(6, 6, 128, 44);
+ this.digitalGauge1.DigitCount = 5;
+ this.digitalGauge1.Name = "digitalGauge1";
+ this.digitalGauge1.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.digitalGauge1.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent2
+ //
+ this.digitalBackgroundLayerComponent2.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent2.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent2.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent2.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent2.ZOrder = 1000;
+ //
+ // gaugeControl4
+ //
+ this.gaugeControl4.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.digitalGauge2});
+ this.gaugeControl4.Location = new System.Drawing.Point(167, 123);
+ this.gaugeControl4.Name = "gaugeControl4";
+ this.gaugeControl4.Size = new System.Drawing.Size(140, 56);
+ this.gaugeControl4.TabIndex = 6;
+ //
+ // lcitemAvgTemp
+ //
+ this.lcitemAvgTemp.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lcitemAvgTemp.AppearanceItemCaption.Options.UseFont = true;
+ this.lcitemAvgTemp.Control = this.gaugeControl4;
+ this.lcitemAvgTemp.Location = new System.Drawing.Point(109, 120);
+ this.lcitemAvgTemp.MinSize = new System.Drawing.Size(100, 24);
+ this.lcitemAvgTemp.Name = "lcitemAvgTemp";
+ this.lcitemAvgTemp.Size = new System.Drawing.Size(199, 60);
+ this.lcitemAvgTemp.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemAvgTemp.Text = " Temp";
+ this.lcitemAvgTemp.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemAvgTemp.TextSize = new System.Drawing.Size(50, 16);
+ this.lcitemAvgTemp.TextToControlDistance = 5;
+ //
+ // digitalGauge2
+ //
+ this.digitalGauge2.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.digitalGauge2.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.digitalGauge2.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent3});
+ this.digitalGauge2.Bounds = new System.Drawing.Rectangle(6, 6, 128, 44);
+ this.digitalGauge2.DigitCount = 5;
+ this.digitalGauge2.Name = "digitalGauge2";
+ this.digitalGauge2.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.digitalGauge2.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent3
+ //
+ this.digitalBackgroundLayerComponent3.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent3.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent3.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent3.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent3.ZOrder = 1000;
+ //
+ // btnDetailView
+ //
+ this.btnDetailView.Appearance.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnDetailView.Appearance.Options.UseFont = true;
+ this.btnDetailView.Location = new System.Drawing.Point(222, 183);
+ this.btnDetailView.Name = "btnDetailView";
+ this.btnDetailView.Size = new System.Drawing.Size(85, 47);
+ this.btnDetailView.StyleController = this.layoutControl1;
+ this.btnDetailView.TabIndex = 7;
+ this.btnDetailView.Text = "Detail View";
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.btnDetailView;
+ this.layoutControlItem5.Location = new System.Drawing.Point(219, 180);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(89, 51);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(109, 180);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(110, 51);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // ucModuleMainA
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.gbModuleMain);
+ this.MinimumSize = new System.Drawing.Size(300, 0);
+ this.Name = "ucModuleMainA";
+ this.Size = new System.Drawing.Size(314, 258);
+ ((System.ComponentModel.ISupportInitialize)(this.tabbedView)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbModuleMain)).EndInit();
+ this.gbModuleMain.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemSOC)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Level_Bars)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleComponent1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleBackgroundLayerComponent1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent9)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent10)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalGauge4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemMVolt)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemCurrent)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalGauge1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemAvgTemp)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalGauge2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+ private DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView tabbedView;
+ private DevExpress.XtraEditors.GroupControl gbModuleMain;
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraEditors.SimpleButton btnDetailView;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl4;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge digitalGauge2;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent3;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl3;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge digitalGauge1;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent2;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl2;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge digitalGauge4;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent1;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl1;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearGauge Level_Bars;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleBackgroundLayerComponent linearScaleBackgroundLayerComponent1;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleComponent linearScaleComponent1;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent1;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent2;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent3;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent4;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent5;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent6;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent7;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent8;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent9;
+ private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent10;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemSOC;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemMVolt;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemCurrent;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemAvgTemp;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ }
+}
diff --git a/LFP_Manager/Controls/ucModuleMainA.cs b/LFP_Manager/Controls/ucModuleMainA.cs
new file mode 100644
index 0000000..3ab7480
--- /dev/null
+++ b/LFP_Manager/Controls/ucModuleMainA.cs
@@ -0,0 +1,21 @@
+using DevExpress.XtraEditors;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Controls
+{
+ public partial class ucModuleMainA : DevExpress.XtraEditors.XtraUserControl
+ {
+ public ucModuleMainA()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/LFP_Manager/Controls/ucModuleMainA.resx b/LFP_Manager/Controls/ucModuleMainA.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Controls/ucModuleMainA.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucModuleMainB.Designer.cs b/LFP_Manager/Controls/ucModuleMainB.Designer.cs
new file mode 100644
index 0000000..c5d29ff
--- /dev/null
+++ b/LFP_Manager/Controls/ucModuleMainB.Designer.cs
@@ -0,0 +1,658 @@
+
+namespace LFP_Manager.Controls
+{
+ partial class ucModuleMainB
+ {
+ ///
+ /// 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 Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.gaugeControl6 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.gaugeTempMax = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent7 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl5 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.gaugeGapV = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent6 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl4 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.gaugeSOH = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent4 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.btnModuleDetail = new DevExpress.XtraEditors.SimpleButton();
+ this.gaugeControl3 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.gaugeSOC = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent3 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl2 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.gaugeCurrent = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent2 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl1 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.gaugeVoltage = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent1 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.slbOpStatus = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.slbAlarm = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.lcitemVolt = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcitemCurrent = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcitemSOC = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcitemSOH = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcItemModuleDetail = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lbMdFwVer = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.tmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.digitalGauge1 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.digitalBackgroundLayerComponent5 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.lbModuleNumber = new DevExpress.XtraEditors.LabelControl();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lcitemModuleNumber = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lbMdNo = new System.Windows.Forms.Label();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.gaugeTempMax)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gaugeGapV)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gaugeSOH)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gaugeSOC)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gaugeCurrent)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gaugeVoltage)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.slbOpStatus)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.slbAlarm)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemVolt)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemCurrent)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemSOC)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemSOH)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemModuleDetail)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbMdFwVer)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalGauge1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemModuleNumber)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.AllowCustomization = false;
+ this.layoutControl1.Controls.Add(this.lbMdNo);
+ this.layoutControl1.Controls.Add(this.gaugeControl6);
+ this.layoutControl1.Controls.Add(this.gaugeControl5);
+ this.layoutControl1.Controls.Add(this.gaugeControl4);
+ this.layoutControl1.Controls.Add(this.btnModuleDetail);
+ this.layoutControl1.Controls.Add(this.gaugeControl3);
+ this.layoutControl1.Controls.Add(this.gaugeControl2);
+ this.layoutControl1.Controls.Add(this.gaugeControl1);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(775, 363, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(888, 54);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // gaugeControl6
+ //
+ this.gaugeControl6.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.gaugeTempMax});
+ this.gaugeControl6.Location = new System.Drawing.Point(648, 6);
+ this.gaugeControl6.Name = "gaugeControl6";
+ this.gaugeControl6.Size = new System.Drawing.Size(94, 41);
+ this.gaugeControl6.TabIndex = 11;
+ //
+ // gaugeTempMax
+ //
+ this.gaugeTempMax.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.gaugeTempMax.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.gaugeTempMax.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent7});
+ this.gaugeTempMax.Bounds = new System.Drawing.Rectangle(6, 6, 82, 29);
+ this.gaugeTempMax.DigitCount = 4;
+ this.gaugeTempMax.Name = "gaugeTempMax";
+ this.gaugeTempMax.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.gaugeTempMax.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent7
+ //
+ this.digitalBackgroundLayerComponent7.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(217.85F, 99.9625F);
+ this.digitalBackgroundLayerComponent7.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent7.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent7.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent7.ZOrder = 1000;
+ //
+ // gaugeControl5
+ //
+ this.gaugeControl5.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.gaugeGapV});
+ this.gaugeControl5.Location = new System.Drawing.Point(746, 6);
+ this.gaugeControl5.Name = "gaugeControl5";
+ this.gaugeControl5.Size = new System.Drawing.Size(94, 41);
+ this.gaugeControl5.TabIndex = 10;
+ //
+ // gaugeGapV
+ //
+ this.gaugeGapV.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.gaugeGapV.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.gaugeGapV.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent6});
+ this.gaugeGapV.Bounds = new System.Drawing.Rectangle(6, 6, 82, 29);
+ this.gaugeGapV.DigitCount = 4;
+ this.gaugeGapV.Name = "gaugeGapV";
+ this.gaugeGapV.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.gaugeGapV.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent6
+ //
+ this.digitalBackgroundLayerComponent6.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(217.85F, 99.9625F);
+ this.digitalBackgroundLayerComponent6.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent6.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent6.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent6.ZOrder = 1000;
+ //
+ // gaugeControl4
+ //
+ this.gaugeControl4.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.gaugeSOH});
+ this.gaugeControl4.Location = new System.Drawing.Point(550, 6);
+ this.gaugeControl4.Name = "gaugeControl4";
+ this.gaugeControl4.Size = new System.Drawing.Size(94, 41);
+ this.gaugeControl4.TabIndex = 8;
+ //
+ // gaugeSOH
+ //
+ this.gaugeSOH.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.gaugeSOH.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.gaugeSOH.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent4});
+ this.gaugeSOH.Bounds = new System.Drawing.Rectangle(6, 6, 82, 29);
+ this.gaugeSOH.DigitCount = 4;
+ this.gaugeSOH.Name = "gaugeSOH";
+ this.gaugeSOH.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.gaugeSOH.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent4
+ //
+ this.digitalBackgroundLayerComponent4.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(217.85F, 99.9625F);
+ this.digitalBackgroundLayerComponent4.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent4.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent4.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent4.ZOrder = 1000;
+ //
+ // btnModuleDetail
+ //
+ this.btnModuleDetail.Location = new System.Drawing.Point(844, 6);
+ this.btnModuleDetail.Name = "btnModuleDetail";
+ this.btnModuleDetail.Size = new System.Drawing.Size(37, 41);
+ this.btnModuleDetail.StyleController = this.layoutControl1;
+ this.btnModuleDetail.TabIndex = 7;
+ this.btnModuleDetail.Text = "Detail";
+ this.btnModuleDetail.Click += new System.EventHandler(this.btnModuleDetail_Click);
+ //
+ // gaugeControl3
+ //
+ this.gaugeControl3.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.gaugeSOC});
+ this.gaugeControl3.Location = new System.Drawing.Point(452, 6);
+ this.gaugeControl3.Name = "gaugeControl3";
+ this.gaugeControl3.Size = new System.Drawing.Size(94, 41);
+ this.gaugeControl3.TabIndex = 6;
+ //
+ // gaugeSOC
+ //
+ this.gaugeSOC.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.gaugeSOC.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.gaugeSOC.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent3});
+ this.gaugeSOC.Bounds = new System.Drawing.Rectangle(6, 6, 82, 29);
+ this.gaugeSOC.DigitCount = 4;
+ this.gaugeSOC.Name = "gaugeSOC";
+ this.gaugeSOC.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.gaugeSOC.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent3
+ //
+ this.digitalBackgroundLayerComponent3.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(217.85F, 99.9625F);
+ this.digitalBackgroundLayerComponent3.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent3.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent3.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent3.ZOrder = 1000;
+ //
+ // gaugeControl2
+ //
+ this.gaugeControl2.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.gaugeCurrent});
+ this.gaugeControl2.Location = new System.Drawing.Point(354, 6);
+ this.gaugeControl2.Name = "gaugeControl2";
+ this.gaugeControl2.Size = new System.Drawing.Size(94, 41);
+ this.gaugeControl2.TabIndex = 5;
+ //
+ // gaugeCurrent
+ //
+ this.gaugeCurrent.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.gaugeCurrent.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.gaugeCurrent.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent2});
+ this.gaugeCurrent.Bounds = new System.Drawing.Rectangle(6, 6, 82, 29);
+ this.gaugeCurrent.DigitCount = 4;
+ this.gaugeCurrent.Name = "gaugeCurrent";
+ this.gaugeCurrent.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.gaugeCurrent.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent2
+ //
+ this.digitalBackgroundLayerComponent2.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(217.85F, 99.9625F);
+ this.digitalBackgroundLayerComponent2.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent2.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent2.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent2.ZOrder = 1000;
+ //
+ // gaugeControl1
+ //
+ this.gaugeControl1.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.gaugeVoltage});
+ this.gaugeControl1.Location = new System.Drawing.Point(256, 6);
+ this.gaugeControl1.Name = "gaugeControl1";
+ this.gaugeControl1.Size = new System.Drawing.Size(94, 41);
+ this.gaugeControl1.TabIndex = 4;
+ //
+ // gaugeVoltage
+ //
+ this.gaugeVoltage.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.gaugeVoltage.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.gaugeVoltage.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent1});
+ this.gaugeVoltage.Bounds = new System.Drawing.Rectangle(6, 6, 82, 29);
+ this.gaugeVoltage.DigitCount = 4;
+ this.gaugeVoltage.Name = "gaugeVoltage";
+ this.gaugeVoltage.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.gaugeVoltage.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent1
+ //
+ this.digitalBackgroundLayerComponent1.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(217.85F, 99.9625F);
+ this.digitalBackgroundLayerComponent1.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent1.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent1.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent1.ZOrder = 1000;
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlGroup2});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(888, 54);
+ this.Root.TextVisible = false;
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.AppearanceGroup.Options.UseTextOptions = true;
+ this.layoutControlGroup2.AppearanceGroup.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.layoutControlGroup2.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.layoutControlGroup2.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.layoutControlGroup2.AppearanceItemCaption.TextOptions.VAlignment = DevExpress.Utils.VertAlignment.Center;
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.slbOpStatus,
+ this.slbAlarm,
+ this.lcitemVolt,
+ this.lcitemCurrent,
+ this.lcitemSOC,
+ this.lcitemSOH,
+ this.layoutControlItem1,
+ this.lcItemModuleDetail,
+ this.layoutControlItem3,
+ this.lbMdFwVer,
+ this.layoutControlItem2});
+ this.layoutControlGroup2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup2.Name = "layoutControlGroup2";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(886, 52);
+ this.layoutControlGroup2.Text = "MD";
+ this.layoutControlGroup2.TextLocation = DevExpress.Utils.Locations.Left;
+ //
+ // slbOpStatus
+ //
+ this.slbOpStatus.AllowHotTrack = false;
+ this.slbOpStatus.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Bold);
+ this.slbOpStatus.AppearanceItemCaption.Options.UseFont = true;
+ this.slbOpStatus.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.slbOpStatus.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.slbOpStatus.Location = new System.Drawing.Point(48, 0);
+ this.slbOpStatus.MinSize = new System.Drawing.Size(60, 18);
+ this.slbOpStatus.Name = "slbOpStatus";
+ this.slbOpStatus.Size = new System.Drawing.Size(60, 45);
+ this.slbOpStatus.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.slbOpStatus.Text = "DCH";
+ this.slbOpStatus.TextSize = new System.Drawing.Size(40, 16);
+ //
+ // slbAlarm
+ //
+ this.slbAlarm.AllowHotTrack = false;
+ this.slbAlarm.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Bold);
+ this.slbAlarm.AppearanceItemCaption.Options.UseFont = true;
+ this.slbAlarm.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.slbAlarm.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.slbAlarm.Location = new System.Drawing.Point(108, 0);
+ this.slbAlarm.MinSize = new System.Drawing.Size(60, 18);
+ this.slbAlarm.Name = "slbAlarm";
+ this.slbAlarm.OptionsTableLayoutItem.RowIndex = 2;
+ this.slbAlarm.Size = new System.Drawing.Size(60, 45);
+ this.slbAlarm.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.slbAlarm.Text = "WARN";
+ this.slbAlarm.TextSize = new System.Drawing.Size(40, 16);
+ //
+ // lcitemVolt
+ //
+ this.lcitemVolt.Control = this.gaugeControl1;
+ this.lcitemVolt.Location = new System.Drawing.Point(227, 0);
+ this.lcitemVolt.MinSize = new System.Drawing.Size(98, 41);
+ this.lcitemVolt.Name = "lcitemVolt";
+ this.lcitemVolt.OptionsTableLayoutItem.ColumnIndex = 1;
+ this.lcitemVolt.Size = new System.Drawing.Size(98, 45);
+ this.lcitemVolt.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemVolt.Text = "Voltage";
+ this.lcitemVolt.TextLocation = DevExpress.Utils.Locations.Top;
+ this.lcitemVolt.TextSize = new System.Drawing.Size(0, 0);
+ this.lcitemVolt.TextVisible = false;
+ //
+ // lcitemCurrent
+ //
+ this.lcitemCurrent.Control = this.gaugeControl2;
+ this.lcitemCurrent.Location = new System.Drawing.Point(325, 0);
+ this.lcitemCurrent.MinSize = new System.Drawing.Size(98, 41);
+ this.lcitemCurrent.Name = "lcitemCurrent";
+ this.lcitemCurrent.OptionsTableLayoutItem.RowIndex = 1;
+ this.lcitemCurrent.Size = new System.Drawing.Size(98, 45);
+ this.lcitemCurrent.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemCurrent.Text = "Current";
+ this.lcitemCurrent.TextLocation = DevExpress.Utils.Locations.Top;
+ this.lcitemCurrent.TextSize = new System.Drawing.Size(0, 0);
+ this.lcitemCurrent.TextVisible = false;
+ //
+ // lcitemSOC
+ //
+ this.lcitemSOC.Control = this.gaugeControl3;
+ this.lcitemSOC.Location = new System.Drawing.Point(423, 0);
+ this.lcitemSOC.MinSize = new System.Drawing.Size(98, 41);
+ this.lcitemSOC.Name = "lcitemSOC";
+ this.lcitemSOC.OptionsTableLayoutItem.ColumnIndex = 1;
+ this.lcitemSOC.OptionsTableLayoutItem.RowIndex = 1;
+ this.lcitemSOC.Size = new System.Drawing.Size(98, 45);
+ this.lcitemSOC.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemSOC.Text = "SOC";
+ this.lcitemSOC.TextLocation = DevExpress.Utils.Locations.Top;
+ this.lcitemSOC.TextSize = new System.Drawing.Size(0, 0);
+ this.lcitemSOC.TextVisible = false;
+ //
+ // lcitemSOH
+ //
+ this.lcitemSOH.Control = this.gaugeControl4;
+ this.lcitemSOH.Location = new System.Drawing.Point(521, 0);
+ this.lcitemSOH.MinSize = new System.Drawing.Size(98, 41);
+ this.lcitemSOH.Name = "lcitemSOH";
+ this.lcitemSOH.OptionsTableLayoutItem.RowIndex = 3;
+ this.lcitemSOH.Size = new System.Drawing.Size(98, 45);
+ this.lcitemSOH.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemSOH.Text = "SOH";
+ this.lcitemSOH.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemSOH.TextLocation = DevExpress.Utils.Locations.Left;
+ this.lcitemSOH.TextSize = new System.Drawing.Size(0, 0);
+ this.lcitemSOH.TextToControlDistance = 0;
+ this.lcitemSOH.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.gaugeControl5;
+ this.layoutControlItem1.Location = new System.Drawing.Point(717, 0);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(98, 41);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(98, 45);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.Text = "GapV";
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // lcItemModuleDetail
+ //
+ this.lcItemModuleDetail.Control = this.btnModuleDetail;
+ this.lcItemModuleDetail.Location = new System.Drawing.Point(815, 0);
+ this.lcItemModuleDetail.MinSize = new System.Drawing.Size(41, 26);
+ this.lcItemModuleDetail.Name = "lcItemModuleDetail";
+ this.lcItemModuleDetail.OptionsTableLayoutItem.ColumnIndex = 1;
+ this.lcItemModuleDetail.OptionsTableLayoutItem.RowIndex = 2;
+ this.lcItemModuleDetail.Size = new System.Drawing.Size(41, 45);
+ this.lcItemModuleDetail.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcItemModuleDetail.TextSize = new System.Drawing.Size(0, 0);
+ this.lcItemModuleDetail.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.gaugeControl6;
+ this.layoutControlItem3.CustomizationFormText = "Temp Max.";
+ this.layoutControlItem3.Location = new System.Drawing.Point(619, 0);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(98, 41);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(98, 45);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // lbMdFwVer
+ //
+ this.lbMdFwVer.AllowHotTrack = false;
+ this.lbMdFwVer.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.lbMdFwVer.AppearanceItemCaption.Options.UseFont = true;
+ this.lbMdFwVer.Location = new System.Drawing.Point(168, 0);
+ this.lbMdFwVer.Name = "lbMdFwVer";
+ this.lbMdFwVer.Size = new System.Drawing.Size(59, 45);
+ this.lbMdFwVer.Text = "----";
+ this.lbMdFwVer.TextSize = new System.Drawing.Size(40, 16);
+ //
+ // tmrDisplay
+ //
+ this.tmrDisplay.Enabled = true;
+ this.tmrDisplay.Interval = 500;
+ this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick);
+ //
+ // digitalGauge1
+ //
+ this.digitalGauge1.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.digitalGauge1.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.digitalGauge1.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent5});
+ this.digitalGauge1.Bounds = new System.Drawing.Rectangle(6, 6, 204, 35);
+ this.digitalGauge1.DigitCount = 4;
+ this.digitalGauge1.Name = "digitalGauge1";
+ this.digitalGauge1.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.digitalGauge1.Text = "00,000";
+ //
+ // digitalBackgroundLayerComponent5
+ //
+ this.digitalBackgroundLayerComponent5.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(217.85F, 99.9625F);
+ this.digitalBackgroundLayerComponent5.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent5.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent5.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent5.ZOrder = 1000;
+ //
+ // lbModuleNumber
+ //
+ this.lbModuleNumber.Appearance.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbModuleNumber.Appearance.Options.UseFont = true;
+ this.lbModuleNumber.Appearance.Options.UseTextOptions = true;
+ this.lbModuleNumber.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbModuleNumber.Location = new System.Drawing.Point(3, 3);
+ this.lbModuleNumber.Name = "lbModuleNumber";
+ this.lbModuleNumber.Size = new System.Drawing.Size(0, 19);
+ this.lbModuleNumber.TabIndex = 4;
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lcitemModuleNumber});
+ this.layoutControlGroup1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(46, 33);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // lcitemModuleNumber
+ //
+ this.lcitemModuleNumber.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lcitemModuleNumber.AppearanceItemCaption.Options.UseFont = true;
+ this.lcitemModuleNumber.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lcitemModuleNumber.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lcitemModuleNumber.Control = this.lbModuleNumber;
+ this.lcitemModuleNumber.CustomizationFormText = "lcitemModuleNumber";
+ this.lcitemModuleNumber.Location = new System.Drawing.Point(0, 0);
+ this.lcitemModuleNumber.MinSize = new System.Drawing.Size(40, 18);
+ this.lcitemModuleNumber.Name = "lcitemModuleNumber";
+ this.lcitemModuleNumber.Size = new System.Drawing.Size(44, 31);
+ this.lcitemModuleNumber.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemModuleNumber.TextSize = new System.Drawing.Size(0, 0);
+ this.lcitemModuleNumber.TextVisible = false;
+ //
+ // lbMdNo
+ //
+ this.lbMdNo.Font = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Bold);
+ this.lbMdNo.Location = new System.Drawing.Point(29, 6);
+ this.lbMdNo.Name = "lbMdNo";
+ this.lbMdNo.Size = new System.Drawing.Size(44, 41);
+ this.lbMdNo.TabIndex = 12;
+ this.lbMdNo.Text = "#01";
+ this.lbMdNo.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.lbMdNo;
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(24, 24);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(48, 45);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // ucModuleMainB
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.layoutControl1);
+ this.Margin = new System.Windows.Forms.Padding(0);
+ this.MinimumSize = new System.Drawing.Size(840, 54);
+ this.Name = "ucModuleMainB";
+ this.Size = new System.Drawing.Size(888, 54);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.gaugeTempMax)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gaugeGapV)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gaugeSOH)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gaugeSOC)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gaugeCurrent)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gaugeVoltage)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.slbOpStatus)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.slbAlarm)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemVolt)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemCurrent)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemSOC)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemSOH)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemModuleDetail)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbMdFwVer)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalGauge1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemModuleNumber)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl1;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl2;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge gaugeCurrent;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent2;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl3;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge gaugeSOC;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent3;
+ private DevExpress.XtraEditors.SimpleButton btnModuleDetail;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl4;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge gaugeSOH;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent4;
+ private System.Windows.Forms.Timer tmrDisplay;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge digitalGauge1;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent5;
+ private DevExpress.XtraLayout.LayoutControlItem lcItemModuleDetail;
+ private DevExpress.XtraLayout.SimpleLabelItem slbOpStatus;
+ private DevExpress.XtraLayout.SimpleLabelItem slbAlarm;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemVolt;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemCurrent;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemSOC;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemSOH;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl5;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge gaugeGapV;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent6;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl6;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge gaugeTempMax;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent7;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge gaugeVoltage;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent1;
+ private DevExpress.XtraLayout.SimpleLabelItem lbMdFwVer;
+ private DevExpress.XtraEditors.LabelControl lbModuleNumber;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemModuleNumber;
+ private System.Windows.Forms.Label lbMdNo;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ }
+}
diff --git a/LFP_Manager/Controls/ucModuleMainB.cs b/LFP_Manager/Controls/ucModuleMainB.cs
new file mode 100644
index 0000000..ca9b986
--- /dev/null
+++ b/LFP_Manager/Controls/ucModuleMainB.cs
@@ -0,0 +1,191 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+using DevExpress.XtraEditors;
+using LFP_Manager.DataStructure;
+using static LFP_Manager.DataStructure.csDbConstData;
+
+namespace LFP_Manager.Controls
+{
+ public partial class ucModuleMainB : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region VARIABLES
+
+ private int mID = 0;
+ private CommConfig Config;
+ private DeviceSystemData SystemData;
+ private DeviceParamData ParamData;
+ private DeviceCalibration CalibData;
+
+ public event CommandEvent OnCommand = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+ public ucModuleMainB()
+ {
+ InitializeComponent();
+ }
+
+ public ucModuleMainB(CommConfig aConfig, int aID, ref DeviceSystemData mSystemData)
+ {
+ InitializeComponent();
+
+ Config = aConfig;
+ mID = aID;
+ SystemData = mSystemData;
+
+ lbMdNo.Text = String.Format("#{0:00}", mID);
+
+ tmrDisplay.Start();
+ }
+ #endregion
+
+ #region PUBLIC FUNCTION
+
+ public void UpdateData(ref DeviceSystemData mSystemData)
+ {
+ SystemData = mSystemData;
+ }
+
+ #endregion
+
+ #region TIMER EVENT
+ private void tmrDisplay_Tick(object sender, EventArgs e)
+ {
+ DisplayValue();
+ DisplayStatusAndAlarm();
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+ private void btnModuleDetail_Click(object sender, EventArgs e)
+ {
+ OnCommand?.Invoke(mID, 2, 0, 1, ref ParamData, ref CalibData);
+ }
+ #endregion
+
+ #region DISPLAY DATA
+
+ private void DisplayMainStatus()
+ {
+ if (SystemData.CommFail == false)
+ {
+
+ }
+ else
+ {
+ lbMdNo.BackColor = Color.Orange;
+ }
+
+ }
+
+ private void DisplayValue()
+ {
+ lbMdFwVer.Text = SystemData.Information.SwProductRev;
+ gaugeVoltage.Text = String.Format("{0:0.0}", (double)SystemData.ValueData.voltageOfPack / 10);
+ gaugeCurrent.Text = String.Format("{0:0.0}", (double)SystemData.ValueData.current / 10);
+ gaugeSOC.Text = String.Format("{0:0.0}", (double)SystemData.ValueData.rSOC / 10);
+ gaugeSOH.Text = String.Format("{0:0.0}", (double)SystemData.ValueData.stateOfHealth / 10);
+ gaugeTempMax.Text = String.Format("{0:0.0}", (double)SystemData.AvgData.maxTemp / 10);
+ gaugeGapV.Text = String.Format("{0:0.000}", (double)SystemData.AvgData.diffCellVoltage / 1000);
+ }
+
+ private void DisplayStatusAndAlarm()
+ {
+ if (SystemData.CommFail == false)
+ {
+ if (SystemData.ShelfCommFail == false)
+ {
+ switch (SystemData.StatusData.status)
+ {
+ case 0x0000: // Stand by
+ slbOpStatus.Text = "STANDBY";
+ slbOpStatus.AppearanceItemCaption.ForeColor = System.Drawing.Color.Black;
+ break;
+ case 0x0001: // Charging
+ slbOpStatus.Text = "CHARGING";
+ slbOpStatus.AppearanceItemCaption.ForeColor = System.Drawing.Color.Blue;
+ break;
+ case 0x0002: // Discharging
+ slbOpStatus.Text = "DISCHARGING";
+ slbOpStatus.AppearanceItemCaption.ForeColor = System.Drawing.Color.Magenta;
+ break;
+ case 0x0003: // Float Charging
+ slbOpStatus.Text = "FLOATING";
+ slbOpStatus.AppearanceItemCaption.ForeColor = System.Drawing.Color.Black;
+ break;
+ case 0x0004: // Warming Up
+ slbOpStatus.Text = "WARMING UP";
+ slbOpStatus.AppearanceItemCaption.ForeColor = System.Drawing.Color.Black;
+ break;
+ default:
+ slbOpStatus.Text = "UNKNOWN";
+ slbOpStatus.AppearanceItemCaption.ForeColor = System.Drawing.Color.Black;
+ break;
+ }
+ // Alarm Display
+ switch (SystemData.StatusData.batteryStatus)
+ {
+ case 0: // NORMAL
+ slbAlarm.Text = "NORMAL";
+ slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Green;
+ break;
+ case 1: // WARNING
+ slbAlarm.Text = "WARNING";
+ slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Yellow;
+ break;
+ case 2: // FAULT
+ slbAlarm.Text = "FAULT";
+ slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Red;
+ break;
+ case 3: // WARMING UP
+ slbAlarm.Text = "WARMING UP";
+ slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Black;
+ break;
+ case 4: // FAULT (Anti-Theft Comm.)
+ slbAlarm.Text = "FAULT1";
+ slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Red;
+ break;
+ case 5: // FAULT (Anti-Theft Gyro-Scope)
+ slbAlarm.Text = "FAULT2";
+ slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Red;
+ break;
+ default:
+ slbAlarm.Text = string.Format("UNKNOWN ({0})", SystemData.StatusData.batteryStatus);
+ slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Red;
+ break;
+ }
+ }
+ else
+ {
+ slbOpStatus.Text = "COMM FAIL";
+ slbOpStatus.AppearanceItemCaption.ForeColor = System.Drawing.Color.Red;
+ slbAlarm.Text = "COMM FAIL";
+ slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Red;
+ lbMdNo.BackColor = System.Drawing.Color.Orange;
+ }
+ }
+ else
+ {
+ slbOpStatus.Text = "OFF LINE";
+ slbOpStatus.AppearanceItemCaption.ForeColor = System.Drawing.Color.Red;
+ slbAlarm.Text = "OFF LINE";
+ slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Red;
+ lbMdNo.BackColor = System.Drawing.Color.Orange;
+ }
+
+ // Charge Relay Status Display
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/ucModuleMainB.resx b/LFP_Manager/Controls/ucModuleMainB.resx
new file mode 100644
index 0000000..fe317aa
--- /dev/null
+++ b/LFP_Manager/Controls/ucModuleMainB.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucModuleMainHeader.Designer.cs b/LFP_Manager/Controls/ucModuleMainHeader.Designer.cs
new file mode 100644
index 0000000..b2c1c4f
--- /dev/null
+++ b/LFP_Manager/Controls/ucModuleMainHeader.Designer.cs
@@ -0,0 +1,295 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucModuleMainHeader
+ {
+ ///
+ /// 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 Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.simpleLabelItem1 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.simpleLabelItem2 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.simpleLabelItem4 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.simpleLabelItem3 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.simpleLabelItem5 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.simpleLabelItem6 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.simpleLabelItem7 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.simpleLabelItem8 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.simpleLabelItem9 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.simpleLabelItem10 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.lbFwVer = new DevExpress.XtraLayout.SimpleLabelItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem9)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem10)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbFwVer)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1132, 485, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(888, 30);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlGroup1});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(3, 3, 3, 3);
+ this.Root.Size = new System.Drawing.Size(888, 30);
+ this.Root.TextVisible = false;
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.AppearanceGroup.Options.UseTextOptions = true;
+ this.layoutControlGroup1.AppearanceGroup.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.layoutControlGroup1.CustomizationFormText = "MD";
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.simpleLabelItem1,
+ this.simpleLabelItem2,
+ this.simpleLabelItem4,
+ this.simpleLabelItem3,
+ this.simpleLabelItem5,
+ this.simpleLabelItem6,
+ this.simpleLabelItem7,
+ this.simpleLabelItem8,
+ this.simpleLabelItem9,
+ this.simpleLabelItem10,
+ this.lbFwVer});
+ this.layoutControlGroup1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(882, 24);
+ this.layoutControlGroup1.Spacing = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.layoutControlGroup1.Text = "-";
+ this.layoutControlGroup1.TextLocation = DevExpress.Utils.Locations.Left;
+ //
+ // simpleLabelItem1
+ //
+ this.simpleLabelItem1.AllowHotTrack = false;
+ this.simpleLabelItem1.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.simpleLabelItem1.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.simpleLabelItem1.Location = new System.Drawing.Point(0, 0);
+ this.simpleLabelItem1.MinSize = new System.Drawing.Size(40, 1);
+ this.simpleLabelItem1.Name = "simpleLabelItem1";
+ this.simpleLabelItem1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.simpleLabelItem1.Size = new System.Drawing.Size(40, 23);
+ this.simpleLabelItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem1.Text = "NO";
+ this.simpleLabelItem1.TextSize = new System.Drawing.Size(82, 14);
+ //
+ // simpleLabelItem2
+ //
+ this.simpleLabelItem2.AllowHotTrack = false;
+ this.simpleLabelItem2.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.simpleLabelItem2.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.simpleLabelItem2.Location = new System.Drawing.Point(40, 0);
+ this.simpleLabelItem2.MinSize = new System.Drawing.Size(55, 1);
+ this.simpleLabelItem2.Name = "simpleLabelItem2";
+ this.simpleLabelItem2.Size = new System.Drawing.Size(55, 23);
+ this.simpleLabelItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem2.Text = "Status";
+ this.simpleLabelItem2.TextSize = new System.Drawing.Size(82, 14);
+ //
+ // simpleLabelItem4
+ //
+ this.simpleLabelItem4.AllowHotTrack = false;
+ this.simpleLabelItem4.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.simpleLabelItem4.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.simpleLabelItem4.Location = new System.Drawing.Point(236, 0);
+ this.simpleLabelItem4.MinSize = new System.Drawing.Size(98, 1);
+ this.simpleLabelItem4.Name = "simpleLabelItem4";
+ this.simpleLabelItem4.Size = new System.Drawing.Size(98, 23);
+ this.simpleLabelItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem4.Text = "Voltage [V]";
+ this.simpleLabelItem4.TextSize = new System.Drawing.Size(82, 14);
+ //
+ // simpleLabelItem3
+ //
+ this.simpleLabelItem3.AllowHotTrack = false;
+ this.simpleLabelItem3.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.simpleLabelItem3.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.simpleLabelItem3.Location = new System.Drawing.Point(95, 0);
+ this.simpleLabelItem3.MinSize = new System.Drawing.Size(55, 1);
+ this.simpleLabelItem3.Name = "simpleLabelItem3";
+ this.simpleLabelItem3.Size = new System.Drawing.Size(55, 23);
+ this.simpleLabelItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem3.Text = "Alarm";
+ this.simpleLabelItem3.TextSize = new System.Drawing.Size(82, 14);
+ //
+ // simpleLabelItem5
+ //
+ this.simpleLabelItem5.AllowHotTrack = false;
+ this.simpleLabelItem5.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.simpleLabelItem5.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.simpleLabelItem5.Location = new System.Drawing.Point(334, 0);
+ this.simpleLabelItem5.MinSize = new System.Drawing.Size(98, 1);
+ this.simpleLabelItem5.Name = "simpleLabelItem5";
+ this.simpleLabelItem5.Size = new System.Drawing.Size(98, 23);
+ this.simpleLabelItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem5.Text = "Current [A]";
+ this.simpleLabelItem5.TextSize = new System.Drawing.Size(82, 14);
+ //
+ // simpleLabelItem6
+ //
+ this.simpleLabelItem6.AllowHotTrack = false;
+ this.simpleLabelItem6.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.simpleLabelItem6.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.simpleLabelItem6.Location = new System.Drawing.Point(432, 0);
+ this.simpleLabelItem6.MinSize = new System.Drawing.Size(98, 1);
+ this.simpleLabelItem6.Name = "simpleLabelItem6";
+ this.simpleLabelItem6.Size = new System.Drawing.Size(98, 23);
+ this.simpleLabelItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem6.Text = "SOC [%]";
+ this.simpleLabelItem6.TextSize = new System.Drawing.Size(82, 14);
+ //
+ // simpleLabelItem7
+ //
+ this.simpleLabelItem7.AllowHotTrack = false;
+ this.simpleLabelItem7.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.simpleLabelItem7.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.simpleLabelItem7.Location = new System.Drawing.Point(530, 0);
+ this.simpleLabelItem7.MinSize = new System.Drawing.Size(98, 1);
+ this.simpleLabelItem7.Name = "simpleLabelItem7";
+ this.simpleLabelItem7.Size = new System.Drawing.Size(98, 23);
+ this.simpleLabelItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem7.Text = "SOH [%]";
+ this.simpleLabelItem7.TextSize = new System.Drawing.Size(82, 14);
+ //
+ // simpleLabelItem8
+ //
+ this.simpleLabelItem8.AllowHotTrack = false;
+ this.simpleLabelItem8.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.simpleLabelItem8.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.simpleLabelItem8.Location = new System.Drawing.Point(824, 0);
+ this.simpleLabelItem8.MinSize = new System.Drawing.Size(1, 1);
+ this.simpleLabelItem8.Name = "simpleLabelItem8";
+ this.simpleLabelItem8.Size = new System.Drawing.Size(34, 23);
+ this.simpleLabelItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem8.Text = "CMD";
+ this.simpleLabelItem8.TextSize = new System.Drawing.Size(82, 14);
+ //
+ // simpleLabelItem9
+ //
+ this.simpleLabelItem9.AllowHotTrack = false;
+ this.simpleLabelItem9.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.simpleLabelItem9.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.simpleLabelItem9.CustomizationFormText = "Temp Max. [C]";
+ this.simpleLabelItem9.Location = new System.Drawing.Point(628, 0);
+ this.simpleLabelItem9.MinSize = new System.Drawing.Size(98, 1);
+ this.simpleLabelItem9.Name = "simpleLabelItem9";
+ this.simpleLabelItem9.Size = new System.Drawing.Size(98, 23);
+ this.simpleLabelItem9.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem9.Text = "Temp Max. [C]";
+ this.simpleLabelItem9.TextSize = new System.Drawing.Size(82, 14);
+ //
+ // simpleLabelItem10
+ //
+ this.simpleLabelItem10.AllowHotTrack = false;
+ this.simpleLabelItem10.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.simpleLabelItem10.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.simpleLabelItem10.Location = new System.Drawing.Point(726, 0);
+ this.simpleLabelItem10.MinSize = new System.Drawing.Size(98, 1);
+ this.simpleLabelItem10.Name = "simpleLabelItem10";
+ this.simpleLabelItem10.Size = new System.Drawing.Size(98, 23);
+ this.simpleLabelItem10.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem10.Text = "Cell V Gap [V]";
+ this.simpleLabelItem10.TextSize = new System.Drawing.Size(82, 14);
+ //
+ // lbFwVer
+ //
+ this.lbFwVer.AllowHotTrack = false;
+ this.lbFwVer.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lbFwVer.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbFwVer.Location = new System.Drawing.Point(150, 0);
+ this.lbFwVer.Name = "lbFwVer";
+ this.lbFwVer.Size = new System.Drawing.Size(86, 23);
+ this.lbFwVer.Text = "FW Ver";
+ this.lbFwVer.TextSize = new System.Drawing.Size(82, 14);
+ //
+ // ucModuleMainHeader
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.layoutControl1);
+ this.Margin = new System.Windows.Forms.Padding(0);
+ this.MinimumSize = new System.Drawing.Size(0, 30);
+ this.Name = "ucModuleMainHeader";
+ this.Size = new System.Drawing.Size(888, 30);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem9)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem10)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbFwVer)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem1;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem2;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem4;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem3;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem5;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem6;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem7;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem8;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem9;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem10;
+ private DevExpress.XtraLayout.SimpleLabelItem lbFwVer;
+ }
+}
diff --git a/LFP_Manager/Controls/ucModuleMainHeader.cs b/LFP_Manager/Controls/ucModuleMainHeader.cs
new file mode 100644
index 0000000..091b9e7
--- /dev/null
+++ b/LFP_Manager/Controls/ucModuleMainHeader.cs
@@ -0,0 +1,21 @@
+using DevExpress.XtraEditors;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Controls
+{
+ public partial class ucModuleMainHeader : DevExpress.XtraEditors.XtraUserControl
+ {
+ public ucModuleMainHeader()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/LFP_Manager/Controls/ucModuleMainHeader.resx b/LFP_Manager/Controls/ucModuleMainHeader.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Controls/ucModuleMainHeader.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucParamSet.Designer.cs b/LFP_Manager/Controls/ucParamSet.Designer.cs
new file mode 100644
index 0000000..451856a
--- /dev/null
+++ b/LFP_Manager/Controls/ucParamSet.Designer.cs
@@ -0,0 +1,551 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucParamSet
+ {
+ ///
+ /// 필수 디자이너 변수입니다.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// 사용 중인 모든 리소스를 정리합니다.
+ ///
+ /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region 구성 요소 디자이너에서 생성한 코드
+
+ ///
+ /// 디자이너 지원에 필요한 메서드입니다.
+ /// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오.
+ ///
+ private void InitializeComponent()
+ {
+ this.gbParamSet = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.edReleaseNew = new DevExpress.XtraEditors.TextEdit();
+ this.edWarningNew = new DevExpress.XtraEditors.TextEdit();
+ this.edTripNew = new DevExpress.XtraEditors.TextEdit();
+ this.btnSet = new DevExpress.XtraEditors.SimpleButton();
+ this.edRelease = new DevExpress.XtraEditors.TextEdit();
+ this.edWarning = new DevExpress.XtraEditors.TextEdit();
+ this.edTrip = new DevExpress.XtraEditors.TextEdit();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lcTripParam = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcWarningParam = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcReleaseParam = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.lbTripUnit = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.lbWarningUnit = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.lbReleaseUnit = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.lcTripParamNew = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcReleaseParamNew = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lbCurr = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.lbNew = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.emptySpaceItem3 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.emptySpaceItem4 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.lbFault = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.lbWarning = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.lbRelease = new DevExpress.XtraLayout.SimpleLabelItem();
+ ((System.ComponentModel.ISupportInitialize)(this.gbParamSet)).BeginInit();
+ this.gbParamSet.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.edReleaseNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edWarningNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edTripNew.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edRelease.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edWarning.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edTrip.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcTripParam)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcWarningParam)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcReleaseParam)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbTripUnit)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbWarningUnit)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbReleaseUnit)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcTripParamNew)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcReleaseParamNew)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbCurr)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbNew)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbFault)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbWarning)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbRelease)).BeginInit();
+ this.SuspendLayout();
+ //
+ // gbParamSet
+ //
+ this.gbParamSet.Controls.Add(this.layoutControl1);
+ this.gbParamSet.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.gbParamSet.Location = new System.Drawing.Point(0, 0);
+ this.gbParamSet.Name = "gbParamSet";
+ this.gbParamSet.Size = new System.Drawing.Size(219, 171);
+ this.gbParamSet.TabIndex = 0;
+ this.gbParamSet.Text = "groupControl1";
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.edReleaseNew);
+ this.layoutControl1.Controls.Add(this.edWarningNew);
+ this.layoutControl1.Controls.Add(this.edTripNew);
+ this.layoutControl1.Controls.Add(this.btnSet);
+ this.layoutControl1.Controls.Add(this.edRelease);
+ this.layoutControl1.Controls.Add(this.edWarning);
+ this.layoutControl1.Controls.Add(this.edTrip);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(870, 50, 372, 627);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(215, 146);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // edReleaseNew
+ //
+ this.edReleaseNew.Location = new System.Drawing.Point(124, 79);
+ this.edReleaseNew.Name = "edReleaseNew";
+ this.edReleaseNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.edReleaseNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.edReleaseNew.Size = new System.Drawing.Size(56, 20);
+ this.edReleaseNew.StyleController = this.layoutControl1;
+ this.edReleaseNew.TabIndex = 11;
+ this.edReleaseNew.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.TextBox_KeyPress);
+ //
+ // edWarningNew
+ //
+ this.edWarningNew.Location = new System.Drawing.Point(124, 54);
+ this.edWarningNew.Name = "edWarningNew";
+ this.edWarningNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.edWarningNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.edWarningNew.Size = new System.Drawing.Size(56, 20);
+ this.edWarningNew.StyleController = this.layoutControl1;
+ this.edWarningNew.TabIndex = 10;
+ this.edWarningNew.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.TextBox_KeyPress);
+ //
+ // edTripNew
+ //
+ this.edTripNew.Location = new System.Drawing.Point(124, 29);
+ this.edTripNew.Name = "edTripNew";
+ this.edTripNew.Properties.Appearance.Options.UseTextOptions = true;
+ this.edTripNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.edTripNew.Size = new System.Drawing.Size(56, 20);
+ this.edTripNew.StyleController = this.layoutControl1;
+ this.edTripNew.TabIndex = 9;
+ this.edTripNew.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.TextBox_KeyPress);
+ //
+ // btnSet
+ //
+ this.btnSet.Location = new System.Drawing.Point(135, 116);
+ this.btnSet.Name = "btnSet";
+ this.btnSet.Size = new System.Drawing.Size(76, 26);
+ this.btnSet.StyleController = this.layoutControl1;
+ this.btnSet.TabIndex = 8;
+ this.btnSet.Text = "Set";
+ this.btnSet.Click += new System.EventHandler(this.btnSet_Click);
+ //
+ // edRelease
+ //
+ this.edRelease.Location = new System.Drawing.Point(64, 79);
+ this.edRelease.Name = "edRelease";
+ this.edRelease.Properties.Appearance.Options.UseTextOptions = true;
+ this.edRelease.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.edRelease.Properties.ReadOnly = true;
+ this.edRelease.Size = new System.Drawing.Size(56, 20);
+ this.edRelease.StyleController = this.layoutControl1;
+ this.edRelease.TabIndex = 6;
+ //
+ // edWarning
+ //
+ this.edWarning.Location = new System.Drawing.Point(64, 54);
+ this.edWarning.Name = "edWarning";
+ this.edWarning.Properties.Appearance.Options.UseTextOptions = true;
+ this.edWarning.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.edWarning.Properties.ReadOnly = true;
+ this.edWarning.Size = new System.Drawing.Size(56, 20);
+ this.edWarning.StyleController = this.layoutControl1;
+ this.edWarning.TabIndex = 5;
+ //
+ // edTrip
+ //
+ this.edTrip.Location = new System.Drawing.Point(64, 29);
+ this.edTrip.Name = "edTrip";
+ this.edTrip.Properties.Appearance.Options.UseTextOptions = true;
+ this.edTrip.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.edTrip.Properties.ReadOnly = true;
+ this.edTrip.Size = new System.Drawing.Size(56, 20);
+ this.edTrip.StyleController = this.layoutControl1;
+ this.edTrip.TabIndex = 4;
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "Root";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lcTripParam,
+ this.lcWarningParam,
+ this.lcReleaseParam,
+ this.emptySpaceItem1,
+ this.layoutControlItem5,
+ this.emptySpaceItem2,
+ this.lbTripUnit,
+ this.lbWarningUnit,
+ this.lbReleaseUnit,
+ this.lcTripParamNew,
+ this.layoutControlItem2,
+ this.lcReleaseParamNew,
+ this.lbCurr,
+ this.lbNew,
+ this.emptySpaceItem3,
+ this.emptySpaceItem4,
+ this.lbFault,
+ this.lbWarning,
+ this.lbRelease});
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(215, 146);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // lcTripParam
+ //
+ this.lcTripParam.Control = this.edTrip;
+ this.lcTripParam.CustomizationFormText = "Fault";
+ this.lcTripParam.Location = new System.Drawing.Point(60, 25);
+ this.lcTripParam.MaxSize = new System.Drawing.Size(60, 25);
+ this.lcTripParam.MinSize = new System.Drawing.Size(60, 25);
+ this.lcTripParam.Name = "lcTripParam";
+ this.lcTripParam.Size = new System.Drawing.Size(60, 25);
+ this.lcTripParam.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcTripParam.Text = "Fault";
+ this.lcTripParam.TextSize = new System.Drawing.Size(0, 0);
+ this.lcTripParam.TextVisible = false;
+ //
+ // lcWarningParam
+ //
+ this.lcWarningParam.Control = this.edWarning;
+ this.lcWarningParam.CustomizationFormText = "Warning";
+ this.lcWarningParam.Location = new System.Drawing.Point(60, 50);
+ this.lcWarningParam.MaxSize = new System.Drawing.Size(60, 25);
+ this.lcWarningParam.MinSize = new System.Drawing.Size(60, 25);
+ this.lcWarningParam.Name = "lcWarningParam";
+ this.lcWarningParam.Size = new System.Drawing.Size(60, 25);
+ this.lcWarningParam.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcWarningParam.Text = "Warning";
+ this.lcWarningParam.TextSize = new System.Drawing.Size(0, 0);
+ this.lcWarningParam.TextVisible = false;
+ //
+ // lcReleaseParam
+ //
+ this.lcReleaseParam.Control = this.edRelease;
+ this.lcReleaseParam.CustomizationFormText = "Release";
+ this.lcReleaseParam.Location = new System.Drawing.Point(60, 75);
+ this.lcReleaseParam.MaxSize = new System.Drawing.Size(60, 25);
+ this.lcReleaseParam.MinSize = new System.Drawing.Size(60, 25);
+ this.lcReleaseParam.Name = "lcReleaseParam";
+ this.lcReleaseParam.Size = new System.Drawing.Size(60, 25);
+ this.lcReleaseParam.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcReleaseParam.Text = "Release";
+ this.lcReleaseParam.TextSize = new System.Drawing.Size(0, 0);
+ this.lcReleaseParam.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1";
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 100);
+ this.emptySpaceItem1.MinSize = new System.Drawing.Size(1, 1);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(211, 12);
+ this.emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.btnSet;
+ this.layoutControlItem5.CustomizationFormText = "layoutControlItem5";
+ this.layoutControlItem5.Location = new System.Drawing.Point(131, 112);
+ this.layoutControlItem5.MaxSize = new System.Drawing.Size(80, 30);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(80, 30);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(80, 30);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // emptySpaceItem2
+ //
+ this.emptySpaceItem2.AllowHotTrack = false;
+ this.emptySpaceItem2.CustomizationFormText = "emptySpaceItem2";
+ this.emptySpaceItem2.Location = new System.Drawing.Point(0, 112);
+ this.emptySpaceItem2.MinSize = new System.Drawing.Size(1, 1);
+ this.emptySpaceItem2.Name = "emptySpaceItem2";
+ this.emptySpaceItem2.Size = new System.Drawing.Size(131, 30);
+ this.emptySpaceItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // lbTripUnit
+ //
+ this.lbTripUnit.AllowHotTrack = false;
+ this.lbTripUnit.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lbTripUnit.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbTripUnit.CustomizationFormText = "-";
+ this.lbTripUnit.Location = new System.Drawing.Point(180, 25);
+ this.lbTripUnit.MaxSize = new System.Drawing.Size(31, 25);
+ this.lbTripUnit.MinSize = new System.Drawing.Size(31, 25);
+ this.lbTripUnit.Name = "lbTripUnit";
+ this.lbTripUnit.Size = new System.Drawing.Size(31, 25);
+ this.lbTripUnit.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lbTripUnit.Text = "-";
+ this.lbTripUnit.TextSize = new System.Drawing.Size(45, 14);
+ //
+ // lbWarningUnit
+ //
+ this.lbWarningUnit.AllowHotTrack = false;
+ this.lbWarningUnit.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lbWarningUnit.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbWarningUnit.CustomizationFormText = "-";
+ this.lbWarningUnit.Location = new System.Drawing.Point(180, 50);
+ this.lbWarningUnit.MaxSize = new System.Drawing.Size(31, 25);
+ this.lbWarningUnit.MinSize = new System.Drawing.Size(31, 25);
+ this.lbWarningUnit.Name = "lbWarningUnit";
+ this.lbWarningUnit.Size = new System.Drawing.Size(31, 25);
+ this.lbWarningUnit.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lbWarningUnit.Text = "-";
+ this.lbWarningUnit.TextSize = new System.Drawing.Size(45, 14);
+ //
+ // lbReleaseUnit
+ //
+ this.lbReleaseUnit.AllowHotTrack = false;
+ this.lbReleaseUnit.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lbReleaseUnit.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbReleaseUnit.CustomizationFormText = "-";
+ this.lbReleaseUnit.Location = new System.Drawing.Point(180, 75);
+ this.lbReleaseUnit.MaxSize = new System.Drawing.Size(31, 25);
+ this.lbReleaseUnit.MinSize = new System.Drawing.Size(31, 25);
+ this.lbReleaseUnit.Name = "lbReleaseUnit";
+ this.lbReleaseUnit.Size = new System.Drawing.Size(31, 25);
+ this.lbReleaseUnit.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lbReleaseUnit.Text = "-";
+ this.lbReleaseUnit.TextSize = new System.Drawing.Size(45, 14);
+ //
+ // lcTripParamNew
+ //
+ this.lcTripParamNew.Control = this.edTripNew;
+ this.lcTripParamNew.CustomizationFormText = "layoutControlItem1";
+ this.lcTripParamNew.Location = new System.Drawing.Point(120, 25);
+ this.lcTripParamNew.MaxSize = new System.Drawing.Size(60, 25);
+ this.lcTripParamNew.MinSize = new System.Drawing.Size(60, 25);
+ this.lcTripParamNew.Name = "lcTripParamNew";
+ this.lcTripParamNew.Size = new System.Drawing.Size(60, 25);
+ this.lcTripParamNew.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcTripParamNew.TextSize = new System.Drawing.Size(0, 0);
+ this.lcTripParamNew.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.edWarningNew;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(120, 50);
+ this.layoutControlItem2.MaxSize = new System.Drawing.Size(60, 25);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(60, 25);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(60, 25);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // lcReleaseParamNew
+ //
+ this.lcReleaseParamNew.Control = this.edReleaseNew;
+ this.lcReleaseParamNew.CustomizationFormText = "layoutControlItem3";
+ this.lcReleaseParamNew.Location = new System.Drawing.Point(120, 75);
+ this.lcReleaseParamNew.MaxSize = new System.Drawing.Size(60, 25);
+ this.lcReleaseParamNew.MinSize = new System.Drawing.Size(60, 25);
+ this.lcReleaseParamNew.Name = "lcReleaseParamNew";
+ this.lcReleaseParamNew.Size = new System.Drawing.Size(60, 25);
+ this.lcReleaseParamNew.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcReleaseParamNew.TextSize = new System.Drawing.Size(0, 0);
+ this.lcReleaseParamNew.TextVisible = false;
+ //
+ // lbCurr
+ //
+ this.lbCurr.AllowHotTrack = false;
+ this.lbCurr.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lbCurr.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbCurr.CustomizationFormText = "LabelsimpleLabelItem2";
+ this.lbCurr.Location = new System.Drawing.Point(60, 0);
+ this.lbCurr.MaxSize = new System.Drawing.Size(60, 25);
+ this.lbCurr.MinSize = new System.Drawing.Size(60, 25);
+ this.lbCurr.Name = "lbCurr";
+ this.lbCurr.Size = new System.Drawing.Size(60, 25);
+ this.lbCurr.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lbCurr.Text = "Current";
+ this.lbCurr.TextSize = new System.Drawing.Size(45, 14);
+ //
+ // lbNew
+ //
+ this.lbNew.AllowHotTrack = false;
+ this.lbNew.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lbNew.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbNew.CustomizationFormText = "LabelsimpleLabelItem1";
+ this.lbNew.Location = new System.Drawing.Point(120, 0);
+ this.lbNew.MaxSize = new System.Drawing.Size(60, 25);
+ this.lbNew.MinSize = new System.Drawing.Size(60, 25);
+ this.lbNew.Name = "lbNew";
+ this.lbNew.Size = new System.Drawing.Size(60, 25);
+ this.lbNew.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lbNew.Text = "New";
+ this.lbNew.TextSize = new System.Drawing.Size(45, 14);
+ //
+ // emptySpaceItem3
+ //
+ this.emptySpaceItem3.AllowHotTrack = false;
+ this.emptySpaceItem3.CustomizationFormText = "emptySpaceItem3";
+ this.emptySpaceItem3.Location = new System.Drawing.Point(0, 0);
+ this.emptySpaceItem3.MaxSize = new System.Drawing.Size(60, 25);
+ this.emptySpaceItem3.MinSize = new System.Drawing.Size(60, 25);
+ this.emptySpaceItem3.Name = "emptySpaceItem3";
+ this.emptySpaceItem3.Size = new System.Drawing.Size(60, 25);
+ this.emptySpaceItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem3.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // emptySpaceItem4
+ //
+ this.emptySpaceItem4.AllowHotTrack = false;
+ this.emptySpaceItem4.CustomizationFormText = "emptySpaceItem4";
+ this.emptySpaceItem4.Location = new System.Drawing.Point(180, 0);
+ this.emptySpaceItem4.Name = "emptySpaceItem4";
+ this.emptySpaceItem4.Size = new System.Drawing.Size(31, 25);
+ this.emptySpaceItem4.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // lbFault
+ //
+ this.lbFault.AllowHotTrack = false;
+ this.lbFault.CustomizationFormText = "Fault";
+ this.lbFault.Location = new System.Drawing.Point(0, 25);
+ this.lbFault.MaxSize = new System.Drawing.Size(60, 25);
+ this.lbFault.MinSize = new System.Drawing.Size(60, 25);
+ this.lbFault.Name = "lbFault";
+ this.lbFault.Size = new System.Drawing.Size(60, 25);
+ this.lbFault.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lbFault.Text = "Fault";
+ this.lbFault.TextSize = new System.Drawing.Size(45, 14);
+ //
+ // lbWarning
+ //
+ this.lbWarning.AllowHotTrack = false;
+ this.lbWarning.CustomizationFormText = "Warning";
+ this.lbWarning.Location = new System.Drawing.Point(0, 50);
+ this.lbWarning.MaxSize = new System.Drawing.Size(60, 25);
+ this.lbWarning.MinSize = new System.Drawing.Size(60, 25);
+ this.lbWarning.Name = "lbWarning";
+ this.lbWarning.Size = new System.Drawing.Size(60, 25);
+ this.lbWarning.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lbWarning.Text = "Warning";
+ this.lbWarning.TextSize = new System.Drawing.Size(45, 14);
+ //
+ // lbRelease
+ //
+ this.lbRelease.AllowHotTrack = false;
+ this.lbRelease.CustomizationFormText = "Release";
+ this.lbRelease.Location = new System.Drawing.Point(0, 75);
+ this.lbRelease.MaxSize = new System.Drawing.Size(60, 25);
+ this.lbRelease.MinSize = new System.Drawing.Size(60, 25);
+ this.lbRelease.Name = "lbRelease";
+ this.lbRelease.Size = new System.Drawing.Size(60, 25);
+ this.lbRelease.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lbRelease.Text = "Release";
+ this.lbRelease.TextSize = new System.Drawing.Size(45, 14);
+ //
+ // ucParamSet
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.gbParamSet);
+ this.Name = "ucParamSet";
+ this.Size = new System.Drawing.Size(219, 171);
+ ((System.ComponentModel.ISupportInitialize)(this.gbParamSet)).EndInit();
+ this.gbParamSet.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.edReleaseNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edWarningNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edTripNew.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edRelease.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edWarning.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edTrip.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcTripParam)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcWarningParam)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcReleaseParam)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbTripUnit)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbWarningUnit)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbReleaseUnit)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcTripParamNew)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcReleaseParamNew)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbCurr)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbNew)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbFault)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbWarning)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbRelease)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraEditors.GroupControl gbParamSet;
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.TextEdit edRelease;
+ private DevExpress.XtraEditors.TextEdit edWarning;
+ private DevExpress.XtraEditors.TextEdit edTrip;
+ private DevExpress.XtraLayout.LayoutControlItem lcTripParam;
+ private DevExpress.XtraLayout.LayoutControlItem lcWarningParam;
+ private DevExpress.XtraLayout.LayoutControlItem lcReleaseParam;
+ private DevExpress.XtraEditors.SimpleButton btnSet;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+ private DevExpress.XtraLayout.SimpleLabelItem lbTripUnit;
+ private DevExpress.XtraLayout.SimpleLabelItem lbWarningUnit;
+ private DevExpress.XtraLayout.SimpleLabelItem lbReleaseUnit;
+ private DevExpress.XtraEditors.TextEdit edReleaseNew;
+ private DevExpress.XtraEditors.TextEdit edWarningNew;
+ private DevExpress.XtraEditors.TextEdit edTripNew;
+ private DevExpress.XtraLayout.LayoutControlItem lcTripParamNew;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.LayoutControlItem lcReleaseParamNew;
+ private DevExpress.XtraLayout.SimpleLabelItem lbCurr;
+ private DevExpress.XtraLayout.SimpleLabelItem lbNew;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem3;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem4;
+ private DevExpress.XtraLayout.SimpleLabelItem lbFault;
+ private DevExpress.XtraLayout.SimpleLabelItem lbWarning;
+ private DevExpress.XtraLayout.SimpleLabelItem lbRelease;
+
+ }
+}
diff --git a/LFP_Manager/Controls/ucParamSet.cs b/LFP_Manager/Controls/ucParamSet.cs
new file mode 100644
index 0000000..0d450f3
--- /dev/null
+++ b/LFP_Manager/Controls/ucParamSet.cs
@@ -0,0 +1,289 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Utils;
+
+namespace LFP_Manager.Controls
+{
+ public delegate void setUpdate(object sender);
+ public delegate void setCommand(int mode, int flag, ParamData aParam);
+
+ public struct ParamData
+ {
+ public short Fault;
+ public short Warning;
+ public short Release;
+ public short Time;
+ }
+
+ public partial class ucParamSet : UserControl
+ {
+ #region VARIABLES
+
+ int id = 0;
+ ParamData rParam;
+ ParamData wParam;
+
+ public int wFlag = 0;
+
+ public event setCommand OnCommand = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public ucParamSet()
+ {
+ InitializeComponent();
+ }
+
+ #endregion
+
+ #region EXT EVENT FUNCTION
+
+ private void OnCommnadEvent(int mode, int flag, ParamData aParam)
+ {
+ OnCommand?.Invoke(mode, flag, aParam);
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+
+ private void btnRead_Click(object sender, EventArgs e)
+ {
+ OnCommnadEvent(id, 0, rParam);
+ }
+
+ private void btnSet_Click(object sender, EventArgs e)
+ {
+ if ((edTripNew.Text == "") || (edWarningNew.Text == "") || (edReleaseNew.Text == ""))
+ {
+ return;
+ }
+ wParam = rParam;
+ OnCommnadEvent(id, 1, MakeNewParam(id));
+ }
+
+ private ParamData MakeNewParam(int aId)
+ {
+ switch (aId)
+ {
+ case 0: // Cell Over Voltage
+ case 1: // Cell Under Voltage
+ wParam.Fault = Convert.ToInt16(edTripNew.Text);
+ wParam.Warning = Convert.ToInt16(edWarningNew.Text);
+ wParam.Release = Convert.ToInt16(edReleaseNew.Text);
+ break;
+ case 2: // System Over Voltage
+ case 3: // System Under Voltage
+ wParam.Fault = (short)(Convert.ToDouble(edTripNew.Text) * 10);
+ wParam.Warning = (short)(Convert.ToDouble(edWarningNew.Text) * 10);
+ wParam.Release = (short)(Convert.ToDouble(edReleaseNew.Text) * 10);
+ break;
+ case 4: // Charge High Temperature
+ case 5: // Charge Loq Temperature
+ case 6: // Discharge High Temperature
+ case 7: // Discharge Low Temperature
+ case 10: // Low SOC
+ case 11: // Low SOC
+ wParam.Fault = Convert.ToInt16(edTripNew.Text);
+ wParam.Warning = Convert.ToInt16(edWarningNew.Text);
+ wParam.Release = Convert.ToInt16(edReleaseNew.Text);
+ break;
+ case 8: // Charge Over Current
+ case 9: // Discharge Over Current
+ wParam.Fault = (short)(Convert.ToDouble(edTripNew.Text) * 10);
+ wParam.Warning = (short)(Convert.ToDouble(edWarningNew.Text) * 10);
+ wParam.Release = (short)(Convert.ToDouble(edReleaseNew.Text) * 1);
+ break;
+ }
+ return wParam;
+ }
+
+ #endregion
+
+ #region PUBLIC FUCTIONS
+
+ public void SetId(int aId)
+ {
+ id = aId;
+ }
+
+ public void UpdateData(ParamData aParam)
+ {
+ rParam = aParam;
+ DisplayParam();
+ UpdateNewParam();
+ }
+
+ public void VisibleItem(int item, bool flag)
+ {
+ switch (item)
+ {
+ case 0:
+ lbFault.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ lcTripParam.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ lcTripParamNew.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ lbTripUnit.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ break;
+ case 1:
+ edWarning.Enabled = flag;
+ edWarningNew.Enabled = flag;
+ break;
+ case 2:
+ lbRelease.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ lcReleaseParam.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ lcReleaseParamNew.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ lbReleaseUnit.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ break;
+ }
+ }
+
+ public void EnableItem(int item, bool flag)
+ {
+ switch (item)
+ {
+ case 0:
+ edTrip.Enabled = flag;
+ edTripNew.Enabled = flag;
+ break;
+ case 1:
+ edWarning.Enabled = flag;
+ edWarningNew.Enabled = flag;
+ break;
+ case 2:
+ edRelease.Enabled = flag;
+ edReleaseNew.Enabled = flag;
+ break;
+ }
+ }
+
+ public void EnableDisableSetBtn(bool flag)
+ {
+ btnSet.Enabled = flag;
+ }
+
+ public void SetParamName(int no, string nm)
+ {
+ switch (no)
+ {
+ case 0:
+ gbParamSet.Text = nm;
+
+ if ((nm == "Charge Over Current") || (nm == "Discharge Over Current"))
+ {
+ lbFault.Text = "Fault 2";
+ lbWarning.Text = "Fault 1";
+ }
+ break;
+ case 1:
+ lbTripUnit.Text = nm;
+ lbWarningUnit.Text = nm;
+ if (nm == "A")
+ lbReleaseUnit.Text = "S";
+ else
+ lbReleaseUnit.Text = nm;
+ break;
+ }
+ }
+
+ #endregion
+
+ #region DISPLAY
+
+ private void DisplayParam()
+ {
+ ParamData Param = new ParamData();
+ Param = rParam;
+
+ switch (id)
+ {
+ case 0:
+ case 1:
+ edTrip.Text = String.Format("{0}", Param.Fault);
+ edWarning.Text = String.Format("{0}", Param.Warning);
+ edRelease.Text = String.Format("{0}", Param.Release);
+ break;
+ case 2:
+ case 3:
+ edTrip.Text = String.Format("{0:#0.0}", (float)Param.Fault / 10);
+ edWarning.Text = String.Format("{0:#0.0}", (float)Param.Warning / 10);
+ edRelease.Text = String.Format("{0:#0.0}", (float)Param.Release / 10);
+ break;
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 10:
+ case 11:
+ edTrip.Text = String.Format("{0}", Param.Fault);
+ edWarning.Text = String.Format("{0}", Param.Warning);
+ edRelease.Text = String.Format("{0}", Param.Release);
+ break;
+ case 8: // Charge Over Current
+ case 9: // Discharge Over Current
+ edTrip.Text = String.Format("{0:#0.0}", (float)Param.Fault / 10);
+ edWarning.Text = String.Format("{0:#0.0}", (float)Param.Warning / 10);
+ edRelease.Text = String.Format("{0}", (float)Param.Release / 1);
+ break;
+ }
+ }
+
+ private void UpdateNewParam()
+ {
+ if (wFlag == 0)
+ {
+ ParamData Param = rParam;
+
+ switch (id)
+ {
+ case 0:
+ case 1:
+ edTripNew.Text = String.Format("{0}", Param.Fault);
+ edWarningNew.Text = String.Format("{0}", Param.Warning);
+ edReleaseNew.Text = String.Format("{0}", Param.Release);
+ break;
+ case 2:
+ case 3:
+ edTripNew.Text = String.Format("{0:#0.0}", (float)Param.Fault / 10);
+ edWarningNew.Text = String.Format("{0:#0.0}", (float)Param.Warning / 10);
+ edReleaseNew.Text = String.Format("{0:#0.0}", (float)Param.Release / 10);
+ break;
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 10:
+ case 11:
+ edTripNew.Text = String.Format("{0}", Param.Fault);
+ edWarningNew.Text = String.Format("{0}", Param.Warning);
+ edReleaseNew.Text = String.Format("{0}", Param.Release);
+ break;
+ case 8:
+ case 9:
+ edTripNew.Text = String.Format("{0:#0.0}", (float)Param.Fault / 10);
+ edWarningNew.Text = String.Format("{0:#0.0}", (float)Param.Warning / 10);
+ edReleaseNew.Text = String.Format("{0}", (float)Param.Release / 1);
+ break;
+ }
+ wFlag = 1;
+ }
+ }
+
+ #endregion
+
+ private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
+ {
+ //csUtils.TypingOnlyNumber(sender, e, true, true);
+ }
+ }
+}
diff --git a/LFP_Manager/Controls/ucParamSet.resx b/LFP_Manager/Controls/ucParamSet.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Controls/ucParamSet.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucSerialProcess.Designer.cs b/LFP_Manager/Controls/ucSerialProcess.Designer.cs
new file mode 100644
index 0000000..331adc0
--- /dev/null
+++ b/LFP_Manager/Controls/ucSerialProcess.Designer.cs
@@ -0,0 +1,37 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucSerialProcess
+ {
+ ///
+ /// 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 Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ components = new System.ComponentModel.Container();
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/ucSerialProcess.cs b/LFP_Manager/Controls/ucSerialProcess.cs
new file mode 100644
index 0000000..a4ec1be
--- /dev/null
+++ b/LFP_Manager/Controls/ucSerialProcess.cs
@@ -0,0 +1,283 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+using System.Threading;
+using System.IO.Ports;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Utils;
+
+namespace LFP_Manager.Controls
+{
+ public delegate void DataUpdate(object sender, DeviceSystemData[] aSystemData);
+
+ public partial class ucSerialProcess : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region VARIABLES
+
+ DeviceSystemData[] SystemData;
+
+ //Thread serialComm = null;
+ SerialPort sPort = null;
+ //string CommPort = null;
+
+ bool SerialPortThreadEnd = false;
+
+ public event DataUpdate OnUpdate = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public ucSerialProcess(DeviceSystemData[] aSystemData)
+ {
+ InitializeComponent();
+
+ SystemData = aSystemData;
+ }
+
+ #endregion
+
+ #region COMMPORT CONTROLS
+
+ private bool Open(string cPort, int cBaudrate)
+ {
+ bool result = false;
+
+ sPort = new SerialPort();
+ sPort.PortName = cPort;
+ sPort.BaudRate = cBaudrate;
+
+ try
+ {
+ sPort.Open();
+
+ result = true;
+ }
+ catch (Exception)
+ {
+ }
+
+ return result;
+ }
+
+ private void Close()
+ {
+ if (sPort != null)
+ {
+ if (sPort.IsOpen)
+ {
+ sPort.Close();
+ }
+ sPort = null;
+ }
+ }
+
+ #endregion
+
+ #region Serial Comm Thread
+
+ ushort RequestRegAddr = 0x0000;
+ ushort RequestRegLen = 50;
+ int SS, bakSS;
+
+ private int SerialTxProcess()
+ {
+ byte[] sData;
+
+ SS = DateTime.Now.Second;
+
+ if ((SS == 58) && (bakSS != SS))
+ {
+ // Write
+ RequestRegAddr = 19;
+ RequestRegLen = 5;
+ sData = csSerialCommFunction.MakeWriteRegisterData(0xFF, RequestRegAddr, RequestRegLen);
+ sPort.Write(sData, 0, sData.Length);
+ bakSS = SS;
+
+ return 0;
+ }
+ else
+ {
+ // Read
+ RequestRegAddr = 0x0000;
+ RequestRegLen = 50;
+ sData = csSerialCommFunction.MakeReadRegisterData(0x01, RequestRegAddr, RequestRegLen);
+ sPort.Write(sData, 0, sData.Length);
+ bakSS = SS;
+
+ return 1;
+ }
+ }
+
+ #region Serial Buffering
+
+ private void PutBuff(byte c)
+ {
+ rBuffer[rBufStart++] = c;
+ rBufStart %= BUFFER_SIZE;
+
+ if (rBufStart == rBufEnd)
+ {
+ rBufEnd++;
+ rBufEnd %= BUFFER_SIZE;
+ }
+ }
+
+ private int GetBuff()
+ {
+ int result = 0;
+
+ if (rBufStart != rBufEnd)
+ {
+ result = 0x0100 + rBuffer[rBufEnd++];
+ rBufEnd %= BUFFER_SIZE;
+ }
+ return result;
+ }
+
+ #endregion
+
+ const int BUFFER_SIZE = 512;
+
+ byte[] rBuffer = new byte[BUFFER_SIZE];
+ int rBufStart = 0;
+ int rBufEnd = 0;
+
+ byte[] ReadBuf = new byte[BUFFER_SIZE];
+ ushort rPosition = 0;
+ bool Commfail = true;
+ bool disCommfail = false;
+
+ ushort BTCU_ID = 1;
+
+ private void serialRecvThread()
+ {
+ int getData = 0;
+ byte cData = 0;
+ bool BuffStart = false;
+ int TimeOutCount = 0;
+
+ while (SerialPortThreadEnd == false)
+ {
+StartSend:
+ if (sPort.IsOpen)
+ {
+ if (SerialTxProcess() == 1)
+ {
+ int rTimeOut = 100;
+
+ BuffStart = false;
+ rPosition = 0;
+
+ while (rTimeOut > 0)
+ {
+ if (((getData = GetBuff()) & 0x0100) != 0x0000)
+ {
+ rTimeOut = 100;
+ TimeOutCount = 0;
+
+ cData = (byte)(getData & 0x00FF);
+
+ if (rPosition >= BUFFER_SIZE)
+ {
+ BuffStart = false;
+ rPosition = 0;
+ }
+
+ if (BuffStart == false)
+ {
+ rPosition = 0;
+ if (cData == 0x01)
+ {
+ ReadBuf[rPosition++] = cData;
+ BuffStart = true;
+ }
+ }
+ else
+ {
+ ReadBuf[rPosition++] = cData;
+
+ switch (csSerialCommFunction.ModbusPacketFromSlaveCheck(ReadBuf, rPosition))
+ {
+ case 0: // Need more data
+ break;
+ case 1: // Packet OK, no error
+ byte[] cdata = csUtils.StrToByteArray(ReadBuf, 0, rPosition - 2);
+
+ Commfail = false;
+ SystemData[0] = csSerialCommFunction.SerialRxProcess(ReadBuf, RequestRegAddr, rPosition, SystemData[0]);
+
+ if (OnUpdate != null)
+ {
+ OnUpdate(this, SystemData);
+ }
+
+ Thread.Sleep(100);
+
+ goto StartSend;
+ case -1: // Packet error
+ rPosition = 0;
+ BuffStart = false;
+
+ Thread.Sleep(100);
+
+ goto StartSend;
+ default:
+ break;
+ }
+ }
+ }
+ else
+ {
+ Thread.Sleep(1);
+ if (rTimeOut > 0) rTimeOut--;
+ }
+ }
+
+ if (rPosition > 0)
+ {
+ Thread.Sleep(100);
+ }
+ else
+ {
+ TimeOutCount++;
+ if (TimeOutCount >= 5)
+ {
+ TimeOutCount = 5;
+ Commfail = true;
+ }
+ //if (Commfail == true)
+ //{
+ // BTCU_ID++;
+ // BTCU_ID %= 31;
+ // if (BTCU_ID == 0) BTCU_ID = 1;
+ //}
+ Thread.Sleep(100);
+ }
+ }
+ else
+ {
+ Thread.Sleep(100);
+ }
+ rPosition = 0;
+ }
+ else
+ {
+ Thread.Sleep(500);
+ }
+ }
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/ucShelfStatus.Designer.cs b/LFP_Manager/Controls/ucShelfStatus.Designer.cs
new file mode 100644
index 0000000..1a36f8a
--- /dev/null
+++ b/LFP_Manager/Controls/ucShelfStatus.Designer.cs
@@ -0,0 +1,1375 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucShelfStatus
+ {
+ ///
+ /// 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 Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ DevExpress.XtraCharts.XYDiagram xyDiagram1 = new DevExpress.XtraCharts.XYDiagram();
+ DevExpress.XtraCharts.Series series1 = new DevExpress.XtraCharts.Series();
+ DevExpress.XtraCharts.Series series2 = new DevExpress.XtraCharts.Series();
+ DevExpress.XtraCharts.XYDiagram xyDiagram2 = new DevExpress.XtraCharts.XYDiagram();
+ DevExpress.XtraCharts.Series series3 = new DevExpress.XtraCharts.Series();
+ DevExpress.XtraCharts.Series series4 = new DevExpress.XtraCharts.Series();
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.pictureEdit1 = new DevExpress.XtraEditors.PictureEdit();
+ this.btnCalib = new DevExpress.XtraEditors.SimpleButton();
+ this.gbEtc = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl6 = new DevExpress.XtraLayout.LayoutControl();
+ this.lbAmbTemp = new DevExpress.XtraEditors.LabelControl();
+ this.lbFetTemp = new DevExpress.XtraEditors.LabelControl();
+ this.layoutControlGroup6 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem22 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem23 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.btnParam = new DevExpress.XtraEditors.SimpleButton();
+ this.gbAlarm = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl5 = new DevExpress.XtraLayout.LayoutControl();
+ this.layoutControlGroup5 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.gbStatusAlarm = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl();
+ this.panelControl2 = new DevExpress.XtraEditors.PanelControl();
+ this.lbAlarm = new DevExpress.XtraEditors.LabelControl();
+ this.panelControl1 = new DevExpress.XtraEditors.PanelControl();
+ this.lbStatus = new DevExpress.XtraEditors.LabelControl();
+ this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lcitemStatus = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcitemAlarm = new DevExpress.XtraLayout.LayoutControlItem();
+ this.gbDetail = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl4 = new DevExpress.XtraLayout.LayoutControl();
+ this.TChart = new DevExpress.XtraCharts.ChartControl();
+ this.VChart = new DevExpress.XtraCharts.ChartControl();
+ this.layoutControlGroup4 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.gbValue = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
+ this.gaugeControl5 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.digitalBackgroundLayerComponent5 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl4 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.digitalBackgroundLayerComponent4 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl3 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.digitalBackgroundLayerComponent3 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl2 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.digitalBackgroundLayerComponent2 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.gaugeControl1 = new DevExpress.XtraGauges.Win.GaugeControl();
+ this.digitalBackgroundLayerComponent1 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem24 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lcitemValue = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.icitemStatusAlarm = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem19 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lbHeatbeat = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem21 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem20 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup7 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem25 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.tmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.ucCvDiff = new LFP_Manager.Controls.ucStatus();
+ this.ucLowSOC = new LFP_Manager.Controls.ucStatus();
+ this.ucDchOverCurr = new LFP_Manager.Controls.ucStatus();
+ this.ucChaOverCurr = new LFP_Manager.Controls.ucStatus();
+ this.ucUnderVolt = new LFP_Manager.Controls.ucStatus();
+ this.ucOverVolt = new LFP_Manager.Controls.ucStatus();
+ this.ucCellUnderVolt = new LFP_Manager.Controls.ucStatus();
+ this.ucCellOverVolt = new LFP_Manager.Controls.ucStatus();
+ this.ucLowTemp = new LFP_Manager.Controls.ucStatus();
+ this.ucHighTemp = new LFP_Manager.Controls.ucStatus();
+ this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem14 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem15 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem16 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem17 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem18 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.dgSOH = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.dgTemperature = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.dgSOC = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.dgCurrent = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ this.dgVoltage = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureEdit1.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbEtc)).BeginInit();
+ this.gbEtc.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl6)).BeginInit();
+ this.layoutControl6.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem23)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbAlarm)).BeginInit();
+ this.gbAlarm.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl5)).BeginInit();
+ this.layoutControl5.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbStatusAlarm)).BeginInit();
+ this.gbStatusAlarm.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit();
+ this.layoutControl3.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.panelControl2)).BeginInit();
+ this.panelControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.panelControl1)).BeginInit();
+ this.panelControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemStatus)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemAlarm)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbDetail)).BeginInit();
+ this.gbDetail.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl4)).BeginInit();
+ this.layoutControl4.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.TChart)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(xyDiagram1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(series1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(series2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.VChart)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(xyDiagram2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(series3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(series4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbValue)).BeginInit();
+ this.gbValue.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit();
+ this.layoutControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem24)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemValue)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.icitemStatusAlarm)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbHeatbeat)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem21)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem20)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem25)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem17)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem18)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgSOH)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgTemperature)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgSOC)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgCurrent)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgVoltage)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.AllowCustomization = false;
+ this.layoutControl1.Controls.Add(this.pictureEdit1);
+ this.layoutControl1.Controls.Add(this.btnCalib);
+ this.layoutControl1.Controls.Add(this.gbEtc);
+ this.layoutControl1.Controls.Add(this.btnParam);
+ this.layoutControl1.Controls.Add(this.gbAlarm);
+ this.layoutControl1.Controls.Add(this.gbStatusAlarm);
+ this.layoutControl1.Controls.Add(this.gbDetail);
+ this.layoutControl1.Controls.Add(this.gbValue);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1192, 311, 692, 350);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(948, 572);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // pictureEdit1
+ //
+ this.pictureEdit1.EditValue = global::LFP_Manager.Properties.Resources.Delta_Logo_Small_250522;
+ this.pictureEdit1.Location = new System.Drawing.Point(806, 30);
+ this.pictureEdit1.Name = "pictureEdit1";
+ this.pictureEdit1.Properties.ReadOnly = true;
+ this.pictureEdit1.Properties.ShowCameraMenuItem = DevExpress.XtraEditors.Controls.CameraMenuItemVisibility.Auto;
+ this.pictureEdit1.Properties.ShowMenu = false;
+ this.pictureEdit1.Properties.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Stretch;
+ this.pictureEdit1.Size = new System.Drawing.Size(133, 87);
+ this.pictureEdit1.StyleController = this.layoutControl1;
+ this.pictureEdit1.TabIndex = 14;
+ //
+ // btnCalib
+ //
+ this.btnCalib.Location = new System.Drawing.Point(856, 187);
+ this.btnCalib.Name = "btnCalib";
+ this.btnCalib.Size = new System.Drawing.Size(89, 29);
+ this.btnCalib.StyleController = this.layoutControl1;
+ this.btnCalib.TabIndex = 11;
+ this.btnCalib.Text = "Calib";
+ this.btnCalib.Click += new System.EventHandler(this.btnCalibration_Click);
+ //
+ // gbEtc
+ //
+ this.gbEtc.Controls.Add(this.layoutControl6);
+ this.gbEtc.Location = new System.Drawing.Point(751, 127);
+ this.gbEtc.Name = "gbEtc";
+ this.gbEtc.Size = new System.Drawing.Size(101, 89);
+ this.gbEtc.TabIndex = 10;
+ this.gbEtc.Text = "BMS-Temp";
+ //
+ // layoutControl6
+ //
+ this.layoutControl6.AllowCustomization = false;
+ this.layoutControl6.Controls.Add(this.lbAmbTemp);
+ this.layoutControl6.Controls.Add(this.lbFetTemp);
+ this.layoutControl6.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl6.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl6.Name = "layoutControl6";
+ this.layoutControl6.Root = this.layoutControlGroup6;
+ this.layoutControl6.Size = new System.Drawing.Size(97, 64);
+ this.layoutControl6.TabIndex = 0;
+ this.layoutControl6.Text = "layoutControl6";
+ //
+ // lbAmbTemp
+ //
+ this.lbAmbTemp.Location = new System.Drawing.Point(4, 33);
+ this.lbAmbTemp.Name = "lbAmbTemp";
+ this.lbAmbTemp.Size = new System.Drawing.Size(89, 27);
+ this.lbAmbTemp.StyleController = this.layoutControl6;
+ this.lbAmbTemp.TabIndex = 5;
+ //
+ // lbFetTemp
+ //
+ this.lbFetTemp.Location = new System.Drawing.Point(4, 4);
+ this.lbFetTemp.Name = "lbFetTemp";
+ this.lbFetTemp.Size = new System.Drawing.Size(89, 25);
+ this.lbFetTemp.StyleController = this.layoutControl6;
+ this.lbFetTemp.TabIndex = 4;
+ this.lbFetTemp.Text = " CPU: 0C";
+ //
+ // layoutControlGroup6
+ //
+ this.layoutControlGroup6.CustomizationFormText = "layoutControlGroup6";
+ this.layoutControlGroup6.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup6.GroupBordersVisible = false;
+ this.layoutControlGroup6.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem22,
+ this.layoutControlItem23});
+ this.layoutControlGroup6.Name = "layoutControlGroup6";
+ this.layoutControlGroup6.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
+ this.layoutControlGroup6.Size = new System.Drawing.Size(97, 64);
+ this.layoutControlGroup6.TextVisible = false;
+ //
+ // layoutControlItem22
+ //
+ this.layoutControlItem22.Control = this.lbFetTemp;
+ this.layoutControlItem22.CustomizationFormText = "layoutControlItem22";
+ this.layoutControlItem22.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem22.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem22.Name = "layoutControlItem22";
+ this.layoutControlItem22.Size = new System.Drawing.Size(93, 29);
+ this.layoutControlItem22.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem22.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem22.TextVisible = false;
+ //
+ // layoutControlItem23
+ //
+ this.layoutControlItem23.Control = this.lbAmbTemp;
+ this.layoutControlItem23.CustomizationFormText = "layoutControlItem23";
+ this.layoutControlItem23.Location = new System.Drawing.Point(0, 29);
+ this.layoutControlItem23.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem23.Name = "layoutControlItem23";
+ this.layoutControlItem23.Size = new System.Drawing.Size(93, 31);
+ this.layoutControlItem23.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem23.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem23.TextVisible = false;
+ //
+ // btnParam
+ //
+ this.btnParam.Location = new System.Drawing.Point(856, 152);
+ this.btnParam.Name = "btnParam";
+ this.btnParam.Size = new System.Drawing.Size(89, 31);
+ this.btnParam.StyleController = this.layoutControl1;
+ this.btnParam.TabIndex = 8;
+ this.btnParam.Text = "Param";
+ this.btnParam.Click += new System.EventHandler(this.btnParam_Click);
+ //
+ // gbAlarm
+ //
+ this.gbAlarm.Controls.Add(this.layoutControl5);
+ this.gbAlarm.Location = new System.Drawing.Point(173, 127);
+ this.gbAlarm.Name = "gbAlarm";
+ this.gbAlarm.Size = new System.Drawing.Size(574, 89);
+ this.gbAlarm.TabIndex = 7;
+ this.gbAlarm.Text = "Alarm && Fault";
+ //
+ // layoutControl5
+ //
+ this.layoutControl5.AllowCustomization = false;
+ this.layoutControl5.Controls.Add(this.ucCvDiff);
+ this.layoutControl5.Controls.Add(this.ucLowSOC);
+ this.layoutControl5.Controls.Add(this.ucDchOverCurr);
+ this.layoutControl5.Controls.Add(this.ucChaOverCurr);
+ this.layoutControl5.Controls.Add(this.ucUnderVolt);
+ this.layoutControl5.Controls.Add(this.ucOverVolt);
+ this.layoutControl5.Controls.Add(this.ucCellUnderVolt);
+ this.layoutControl5.Controls.Add(this.ucCellOverVolt);
+ this.layoutControl5.Controls.Add(this.ucLowTemp);
+ this.layoutControl5.Controls.Add(this.ucHighTemp);
+ this.layoutControl5.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl5.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl5.Name = "layoutControl5";
+ this.layoutControl5.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1131, 383, 250, 350);
+ this.layoutControl5.Root = this.layoutControlGroup5;
+ this.layoutControl5.Size = new System.Drawing.Size(570, 64);
+ this.layoutControl5.TabIndex = 0;
+ this.layoutControl5.Text = "layoutControl5";
+ //
+ // layoutControlGroup5
+ //
+ this.layoutControlGroup5.CustomizationFormText = "layoutControlGroup5";
+ this.layoutControlGroup5.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup5.GroupBordersVisible = false;
+ this.layoutControlGroup5.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem9,
+ this.layoutControlItem10,
+ this.layoutControlItem11,
+ this.layoutControlItem12,
+ this.layoutControlItem13,
+ this.layoutControlItem14,
+ this.layoutControlItem15,
+ this.layoutControlItem16,
+ this.layoutControlItem17,
+ this.layoutControlItem18});
+ this.layoutControlGroup5.Name = "layoutControlGroup5";
+ this.layoutControlGroup5.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.layoutControlGroup5.Size = new System.Drawing.Size(570, 64);
+ this.layoutControlGroup5.TextVisible = false;
+ //
+ // gbStatusAlarm
+ //
+ this.gbStatusAlarm.Controls.Add(this.layoutControl3);
+ this.gbStatusAlarm.Location = new System.Drawing.Point(3, 127);
+ this.gbStatusAlarm.Name = "gbStatusAlarm";
+ this.gbStatusAlarm.Size = new System.Drawing.Size(166, 89);
+ this.gbStatusAlarm.TabIndex = 6;
+ this.gbStatusAlarm.Text = "Operating Status";
+ //
+ // layoutControl3
+ //
+ this.layoutControl3.AllowCustomization = false;
+ this.layoutControl3.Controls.Add(this.panelControl2);
+ this.layoutControl3.Controls.Add(this.panelControl1);
+ this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl3.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl3.Name = "layoutControl3";
+ this.layoutControl3.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1163, 334, 250, 350);
+ this.layoutControl3.Root = this.layoutControlGroup3;
+ this.layoutControl3.Size = new System.Drawing.Size(162, 64);
+ this.layoutControl3.TabIndex = 0;
+ this.layoutControl3.Text = "layoutControl3";
+ //
+ // panelControl2
+ //
+ this.panelControl2.Controls.Add(this.lbAlarm);
+ this.panelControl2.Location = new System.Drawing.Point(44, 34);
+ this.panelControl2.Name = "panelControl2";
+ this.panelControl2.Size = new System.Drawing.Size(115, 27);
+ this.panelControl2.TabIndex = 5;
+ //
+ // lbAlarm
+ //
+ this.lbAlarm.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbAlarm.Appearance.Options.UseFont = true;
+ this.lbAlarm.Appearance.Options.UseTextOptions = true;
+ this.lbAlarm.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbAlarm.AutoSizeMode = DevExpress.XtraEditors.LabelAutoSizeMode.None;
+ this.lbAlarm.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.lbAlarm.Location = new System.Drawing.Point(2, 2);
+ this.lbAlarm.Name = "lbAlarm";
+ this.lbAlarm.Size = new System.Drawing.Size(111, 23);
+ this.lbAlarm.TabIndex = 0;
+ this.lbAlarm.Text = "Alarm";
+ //
+ // panelControl1
+ //
+ this.panelControl1.Controls.Add(this.lbStatus);
+ this.panelControl1.Location = new System.Drawing.Point(44, 3);
+ this.panelControl1.Name = "panelControl1";
+ this.panelControl1.Size = new System.Drawing.Size(115, 27);
+ this.panelControl1.TabIndex = 4;
+ //
+ // lbStatus
+ //
+ this.lbStatus.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbStatus.Appearance.Options.UseFont = true;
+ this.lbStatus.Appearance.Options.UseTextOptions = true;
+ this.lbStatus.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbStatus.AutoSizeMode = DevExpress.XtraEditors.LabelAutoSizeMode.None;
+ this.lbStatus.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.lbStatus.Location = new System.Drawing.Point(2, 2);
+ this.lbStatus.Name = "lbStatus";
+ this.lbStatus.Size = new System.Drawing.Size(111, 23);
+ this.lbStatus.TabIndex = 0;
+ this.lbStatus.Text = "Status";
+ //
+ // layoutControlGroup3
+ //
+ this.layoutControlGroup3.CustomizationFormText = "layoutControlGroup3";
+ this.layoutControlGroup3.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup3.GroupBordersVisible = false;
+ this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lcitemStatus,
+ this.lcitemAlarm});
+ this.layoutControlGroup3.Name = "layoutControlGroup3";
+ this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup3.Size = new System.Drawing.Size(162, 64);
+ this.layoutControlGroup3.TextVisible = false;
+ //
+ // lcitemStatus
+ //
+ this.lcitemStatus.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lcitemStatus.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lcitemStatus.Control = this.panelControl1;
+ this.lcitemStatus.CustomizationFormText = "Status";
+ this.lcitemStatus.Location = new System.Drawing.Point(0, 0);
+ this.lcitemStatus.MaxSize = new System.Drawing.Size(0, 31);
+ this.lcitemStatus.MinSize = new System.Drawing.Size(100, 31);
+ this.lcitemStatus.Name = "lcitemStatus";
+ this.lcitemStatus.Size = new System.Drawing.Size(160, 31);
+ this.lcitemStatus.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemStatus.Text = "Status";
+ this.lcitemStatus.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemStatus.TextSize = new System.Drawing.Size(40, 14);
+ this.lcitemStatus.TextToControlDistance = 1;
+ //
+ // lcitemAlarm
+ //
+ this.lcitemAlarm.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lcitemAlarm.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lcitemAlarm.Control = this.panelControl2;
+ this.lcitemAlarm.CustomizationFormText = "Alarm";
+ this.lcitemAlarm.Location = new System.Drawing.Point(0, 31);
+ this.lcitemAlarm.MinSize = new System.Drawing.Size(100, 24);
+ this.lcitemAlarm.Name = "lcitemAlarm";
+ this.lcitemAlarm.Size = new System.Drawing.Size(160, 31);
+ this.lcitemAlarm.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemAlarm.Text = "Alarm";
+ this.lcitemAlarm.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemAlarm.TextSize = new System.Drawing.Size(40, 20);
+ this.lcitemAlarm.TextToControlDistance = 1;
+ //
+ // gbDetail
+ //
+ this.gbDetail.Controls.Add(this.layoutControl4);
+ this.gbDetail.Location = new System.Drawing.Point(3, 220);
+ this.gbDetail.Name = "gbDetail";
+ this.gbDetail.Size = new System.Drawing.Size(942, 349);
+ this.gbDetail.TabIndex = 5;
+ this.gbDetail.Text = "Detail Status";
+ //
+ // layoutControl4
+ //
+ this.layoutControl4.AllowCustomization = false;
+ this.layoutControl4.Controls.Add(this.TChart);
+ this.layoutControl4.Controls.Add(this.VChart);
+ this.layoutControl4.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl4.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl4.Name = "layoutControl4";
+ this.layoutControl4.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1246, 275, 650, 400);
+ this.layoutControl4.Root = this.layoutControlGroup4;
+ this.layoutControl4.Size = new System.Drawing.Size(938, 324);
+ this.layoutControl4.TabIndex = 0;
+ this.layoutControl4.Text = "layoutControl4";
+ //
+ // TChart
+ //
+ xyDiagram1.AxisX.VisibleInPanesSerializable = "-1";
+ xyDiagram1.AxisY.VisibleInPanesSerializable = "-1";
+ xyDiagram1.DefaultPane.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(242)))), ((int)(((byte)(242)))), ((int)(((byte)(242)))));
+ this.TChart.Diagram = xyDiagram1;
+ this.TChart.Legend.Name = "Default Legend";
+ this.TChart.Location = new System.Drawing.Point(687, 20);
+ this.TChart.Name = "TChart";
+ series1.Name = "Series 1";
+ series2.Name = "Series 2";
+ this.TChart.SeriesSerializable = new DevExpress.XtraCharts.Series[] {
+ series1,
+ series2};
+ this.TChart.Size = new System.Drawing.Size(248, 301);
+ this.TChart.TabIndex = 7;
+ //
+ // VChart
+ //
+ xyDiagram2.AxisX.VisibleInPanesSerializable = "-1";
+ xyDiagram2.AxisY.MinorCount = 1;
+ xyDiagram2.AxisY.NumericScaleOptions.AutoGrid = false;
+ xyDiagram2.AxisY.NumericScaleOptions.GridSpacing = 0.1D;
+ xyDiagram2.AxisY.VisibleInPanesSerializable = "-1";
+ xyDiagram2.AxisY.VisualRange.Auto = false;
+ xyDiagram2.AxisY.VisualRange.AutoSideMargins = false;
+ xyDiagram2.AxisY.VisualRange.EndSideMargin = 0D;
+ xyDiagram2.AxisY.VisualRange.MaxValueSerializable = "4";
+ xyDiagram2.AxisY.VisualRange.MinValueSerializable = "2";
+ xyDiagram2.AxisY.VisualRange.StartSideMargin = 0D;
+ xyDiagram2.DefaultPane.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(242)))), ((int)(((byte)(242)))), ((int)(((byte)(242)))));
+ this.VChart.Diagram = xyDiagram2;
+ this.VChart.Legend.Name = "Default Legend";
+ this.VChart.Location = new System.Drawing.Point(3, 20);
+ this.VChart.Name = "VChart";
+ series3.Name = "Series 1";
+ series4.Name = "Series 2";
+ this.VChart.SeriesSerializable = new DevExpress.XtraCharts.Series[] {
+ series3,
+ series4};
+ this.VChart.Size = new System.Drawing.Size(680, 301);
+ this.VChart.TabIndex = 6;
+ //
+ // layoutControlGroup4
+ //
+ this.layoutControlGroup4.CustomizationFormText = "layoutControlGroup4";
+ this.layoutControlGroup4.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup4.GroupBordersVisible = false;
+ this.layoutControlGroup4.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1,
+ this.layoutControlItem7});
+ this.layoutControlGroup4.Name = "Root";
+ this.layoutControlGroup4.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup4.Size = new System.Drawing.Size(938, 324);
+ this.layoutControlGroup4.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.VChart;
+ this.layoutControlItem1.CustomizationFormText = "Cell Voltage";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(684, 322);
+ this.layoutControlItem1.Text = "Cell Voltage";
+ this.layoutControlItem1.TextLocation = DevExpress.Utils.Locations.Top;
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(94, 14);
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.TChart;
+ this.layoutControlItem7.Location = new System.Drawing.Point(684, 0);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(252, 322);
+ this.layoutControlItem7.Text = "Cell Temperature";
+ this.layoutControlItem7.TextLocation = DevExpress.Utils.Locations.Top;
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(94, 14);
+ //
+ // gbValue
+ //
+ this.gbValue.Controls.Add(this.layoutControl2);
+ this.gbValue.Location = new System.Drawing.Point(3, 3);
+ this.gbValue.Name = "gbValue";
+ this.gbValue.Size = new System.Drawing.Size(793, 120);
+ this.gbValue.TabIndex = 4;
+ this.gbValue.Text = "Value";
+ //
+ // layoutControl2
+ //
+ this.layoutControl2.AllowCustomization = false;
+ this.layoutControl2.Controls.Add(this.gaugeControl5);
+ this.layoutControl2.Controls.Add(this.gaugeControl4);
+ this.layoutControl2.Controls.Add(this.gaugeControl3);
+ this.layoutControl2.Controls.Add(this.gaugeControl2);
+ this.layoutControl2.Controls.Add(this.gaugeControl1);
+ this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl2.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl2.Name = "layoutControl2";
+ this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1123, 466, 650, 400);
+ this.layoutControl2.Root = this.layoutControlGroup2;
+ this.layoutControl2.Size = new System.Drawing.Size(789, 95);
+ this.layoutControl2.TabIndex = 0;
+ this.layoutControl2.Text = "layoutControl2";
+ //
+ // gaugeControl5
+ //
+ this.gaugeControl5.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.dgSOH});
+ this.gaugeControl5.Location = new System.Drawing.Point(475, 20);
+ this.gaugeControl5.Name = "gaugeControl5";
+ this.gaugeControl5.Size = new System.Drawing.Size(153, 72);
+ this.gaugeControl5.TabIndex = 8;
+ //
+ // digitalBackgroundLayerComponent5
+ //
+ this.digitalBackgroundLayerComponent5.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent5.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent5.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent5.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent5.ZOrder = 1000;
+ //
+ // gaugeControl4
+ //
+ this.gaugeControl4.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.dgTemperature});
+ this.gaugeControl4.Location = new System.Drawing.Point(632, 20);
+ this.gaugeControl4.Name = "gaugeControl4";
+ this.gaugeControl4.Size = new System.Drawing.Size(154, 72);
+ this.gaugeControl4.TabIndex = 7;
+ //
+ // digitalBackgroundLayerComponent4
+ //
+ this.digitalBackgroundLayerComponent4.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent4.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent4.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent4.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent4.ZOrder = 1000;
+ //
+ // gaugeControl3
+ //
+ this.gaugeControl3.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.dgSOC});
+ this.gaugeControl3.Location = new System.Drawing.Point(317, 20);
+ this.gaugeControl3.Name = "gaugeControl3";
+ this.gaugeControl3.Size = new System.Drawing.Size(154, 72);
+ this.gaugeControl3.TabIndex = 6;
+ //
+ // digitalBackgroundLayerComponent3
+ //
+ this.digitalBackgroundLayerComponent3.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent3.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent3.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent3.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent3.ZOrder = 1000;
+ //
+ // gaugeControl2
+ //
+ this.gaugeControl2.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.dgCurrent});
+ this.gaugeControl2.Location = new System.Drawing.Point(160, 20);
+ this.gaugeControl2.Name = "gaugeControl2";
+ this.gaugeControl2.Size = new System.Drawing.Size(153, 72);
+ this.gaugeControl2.TabIndex = 5;
+ //
+ // digitalBackgroundLayerComponent2
+ //
+ this.digitalBackgroundLayerComponent2.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent2.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent2.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent2.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent2.ZOrder = 1000;
+ //
+ // gaugeControl1
+ //
+ this.gaugeControl1.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] {
+ this.dgVoltage});
+ this.gaugeControl1.Location = new System.Drawing.Point(3, 20);
+ this.gaugeControl1.Name = "gaugeControl1";
+ this.gaugeControl1.Size = new System.Drawing.Size(153, 72);
+ this.gaugeControl1.TabIndex = 4;
+ //
+ // digitalBackgroundLayerComponent1
+ //
+ this.digitalBackgroundLayerComponent1.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F);
+ this.digitalBackgroundLayerComponent1.Name = "digitalBackgroundLayerComponent1";
+ this.digitalBackgroundLayerComponent1.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18;
+ this.digitalBackgroundLayerComponent1.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F);
+ this.digitalBackgroundLayerComponent1.ZOrder = 1000;
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup2";
+ this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup2.GroupBordersVisible = false;
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem3,
+ this.layoutControlItem4,
+ this.layoutControlItem5,
+ this.layoutControlItem6,
+ this.layoutControlItem24});
+ this.layoutControlGroup2.Name = "Root";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(789, 95);
+ this.layoutControlGroup2.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.gaugeControl1;
+ this.layoutControlItem3.CustomizationFormText = " Voltage";
+ this.layoutControlItem3.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(157, 93);
+ this.layoutControlItem3.Text = " Voltage";
+ this.layoutControlItem3.TextLocation = DevExpress.Utils.Locations.Top;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(76, 14);
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.gaugeControl2;
+ this.layoutControlItem4.CustomizationFormText = " Current";
+ this.layoutControlItem4.Location = new System.Drawing.Point(157, 0);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(157, 93);
+ this.layoutControlItem4.Text = " Current";
+ this.layoutControlItem4.TextLocation = DevExpress.Utils.Locations.Top;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(76, 14);
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.gaugeControl3;
+ this.layoutControlItem5.CustomizationFormText = " SOC";
+ this.layoutControlItem5.Location = new System.Drawing.Point(314, 0);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(158, 93);
+ this.layoutControlItem5.Text = " SOC";
+ this.layoutControlItem5.TextLocation = DevExpress.Utils.Locations.Top;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(76, 14);
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.gaugeControl4;
+ this.layoutControlItem6.CustomizationFormText = " Temperature";
+ this.layoutControlItem6.Location = new System.Drawing.Point(629, 0);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(104, 41);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(158, 93);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.Text = " Temperature";
+ this.layoutControlItem6.TextLocation = DevExpress.Utils.Locations.Top;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(76, 14);
+ //
+ // layoutControlItem24
+ //
+ this.layoutControlItem24.Control = this.gaugeControl5;
+ this.layoutControlItem24.CustomizationFormText = " SOH";
+ this.layoutControlItem24.Location = new System.Drawing.Point(472, 0);
+ this.layoutControlItem24.MinSize = new System.Drawing.Size(100, 24);
+ this.layoutControlItem24.Name = "layoutControlItem24";
+ this.layoutControlItem24.Size = new System.Drawing.Size(157, 93);
+ this.layoutControlItem24.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem24.Text = " SOH";
+ this.layoutControlItem24.TextLocation = DevExpress.Utils.Locations.Top;
+ this.layoutControlItem24.TextSize = new System.Drawing.Size(76, 14);
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lcitemValue,
+ this.layoutControlItem2,
+ this.layoutControlItem8,
+ this.icitemStatusAlarm,
+ this.layoutControlItem19,
+ this.lbHeatbeat,
+ this.layoutControlItem21,
+ this.layoutControlItem20,
+ this.layoutControlGroup7});
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(948, 572);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // lcitemValue
+ //
+ this.lcitemValue.Control = this.gbValue;
+ this.lcitemValue.CustomizationFormText = "lcitemValue";
+ this.lcitemValue.Location = new System.Drawing.Point(0, 0);
+ this.lcitemValue.MaxSize = new System.Drawing.Size(0, 124);
+ this.lcitemValue.MinSize = new System.Drawing.Size(104, 124);
+ this.lcitemValue.Name = "lcitemValue";
+ this.lcitemValue.Size = new System.Drawing.Size(797, 124);
+ this.lcitemValue.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemValue.TextSize = new System.Drawing.Size(0, 0);
+ this.lcitemValue.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.gbDetail;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 217);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(104, 24);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(946, 353);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.gbAlarm;
+ this.layoutControlItem8.CustomizationFormText = "layoutControlItem8";
+ this.layoutControlItem8.Location = new System.Drawing.Point(170, 124);
+ this.layoutControlItem8.MaxSize = new System.Drawing.Size(0, 93);
+ this.layoutControlItem8.MinSize = new System.Drawing.Size(483, 93);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(578, 93);
+ this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem8.TextVisible = false;
+ //
+ // icitemStatusAlarm
+ //
+ this.icitemStatusAlarm.Control = this.gbStatusAlarm;
+ this.icitemStatusAlarm.CustomizationFormText = "icitemStatusAlarm";
+ this.icitemStatusAlarm.Location = new System.Drawing.Point(0, 124);
+ this.icitemStatusAlarm.MinSize = new System.Drawing.Size(104, 24);
+ this.icitemStatusAlarm.Name = "icitemStatusAlarm";
+ this.icitemStatusAlarm.Size = new System.Drawing.Size(170, 93);
+ this.icitemStatusAlarm.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.icitemStatusAlarm.TextSize = new System.Drawing.Size(0, 0);
+ this.icitemStatusAlarm.TextVisible = false;
+ //
+ // layoutControlItem19
+ //
+ this.layoutControlItem19.Control = this.btnParam;
+ this.layoutControlItem19.CustomizationFormText = "layoutControlItem19";
+ this.layoutControlItem19.Location = new System.Drawing.Point(853, 149);
+ this.layoutControlItem19.MinSize = new System.Drawing.Size(50, 26);
+ this.layoutControlItem19.Name = "layoutControlItem19";
+ this.layoutControlItem19.Size = new System.Drawing.Size(93, 35);
+ this.layoutControlItem19.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem19.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem19.TextVisible = false;
+ //
+ // lbHeatbeat
+ //
+ this.lbHeatbeat.AllowHotTrack = false;
+ this.lbHeatbeat.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Bold);
+ this.lbHeatbeat.AppearanceItemCaption.Options.UseFont = true;
+ this.lbHeatbeat.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lbHeatbeat.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbHeatbeat.CustomizationFormText = "HB";
+ this.lbHeatbeat.Location = new System.Drawing.Point(853, 124);
+ this.lbHeatbeat.MinSize = new System.Drawing.Size(50, 25);
+ this.lbHeatbeat.Name = "lbHeatbeat";
+ this.lbHeatbeat.Size = new System.Drawing.Size(93, 25);
+ this.lbHeatbeat.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lbHeatbeat.Text = "HB";
+ this.lbHeatbeat.TextSize = new System.Drawing.Size(17, 16);
+ //
+ // layoutControlItem21
+ //
+ this.layoutControlItem21.Control = this.gbEtc;
+ this.layoutControlItem21.CustomizationFormText = "layoutControlItem21";
+ this.layoutControlItem21.Location = new System.Drawing.Point(748, 124);
+ this.layoutControlItem21.Name = "layoutControlItem21";
+ this.layoutControlItem21.Size = new System.Drawing.Size(105, 93);
+ this.layoutControlItem21.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem21.TextVisible = false;
+ //
+ // layoutControlItem20
+ //
+ this.layoutControlItem20.Control = this.btnCalib;
+ this.layoutControlItem20.Location = new System.Drawing.Point(853, 184);
+ this.layoutControlItem20.MinSize = new System.Drawing.Size(44, 26);
+ this.layoutControlItem20.Name = "layoutControlItem20";
+ this.layoutControlItem20.Size = new System.Drawing.Size(93, 33);
+ this.layoutControlItem20.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem20.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem20.TextVisible = false;
+ //
+ // layoutControlGroup7
+ //
+ this.layoutControlGroup7.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem25});
+ this.layoutControlGroup7.Location = new System.Drawing.Point(797, 0);
+ this.layoutControlGroup7.Name = "layoutControlGroup7";
+ this.layoutControlGroup7.Padding = new DevExpress.XtraLayout.Utils.Padding(3, 3, 3, 3);
+ this.layoutControlGroup7.Size = new System.Drawing.Size(149, 124);
+ this.layoutControlGroup7.Text = " ";
+ //
+ // layoutControlItem25
+ //
+ this.layoutControlItem25.Control = this.pictureEdit1;
+ this.layoutControlItem25.CustomizationFormText = "Logo";
+ this.layoutControlItem25.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem25.MaxSize = new System.Drawing.Size(137, 0);
+ this.layoutControlItem25.MinSize = new System.Drawing.Size(137, 24);
+ this.layoutControlItem25.Name = "layoutControlItem25";
+ this.layoutControlItem25.Size = new System.Drawing.Size(137, 91);
+ this.layoutControlItem25.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem25.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem25.TextVisible = false;
+ //
+ // tmrDisplay
+ //
+ this.tmrDisplay.Interval = 500;
+ this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick);
+ //
+ // ucCvDiff
+ //
+ this.ucCvDiff.Location = new System.Drawing.Point(459, 35);
+ this.ucCvDiff.MinimumSize = new System.Drawing.Size(0, 27);
+ this.ucCvDiff.Name = "ucCvDiff";
+ this.ucCvDiff.Size = new System.Drawing.Size(109, 27);
+ this.ucCvDiff.TabIndex = 13;
+ //
+ // ucLowSOC
+ //
+ this.ucLowSOC.Location = new System.Drawing.Point(459, 2);
+ this.ucLowSOC.MinimumSize = new System.Drawing.Size(0, 27);
+ this.ucLowSOC.Name = "ucLowSOC";
+ this.ucLowSOC.Size = new System.Drawing.Size(109, 29);
+ this.ucLowSOC.TabIndex = 12;
+ //
+ // ucDchOverCurr
+ //
+ this.ucDchOverCurr.Location = new System.Drawing.Point(344, 35);
+ this.ucDchOverCurr.MinimumSize = new System.Drawing.Size(0, 27);
+ this.ucDchOverCurr.Name = "ucDchOverCurr";
+ this.ucDchOverCurr.Size = new System.Drawing.Size(111, 27);
+ this.ucDchOverCurr.TabIndex = 11;
+ //
+ // ucChaOverCurr
+ //
+ this.ucChaOverCurr.Location = new System.Drawing.Point(344, 2);
+ this.ucChaOverCurr.MinimumSize = new System.Drawing.Size(0, 27);
+ this.ucChaOverCurr.Name = "ucChaOverCurr";
+ this.ucChaOverCurr.Size = new System.Drawing.Size(111, 29);
+ this.ucChaOverCurr.TabIndex = 10;
+ //
+ // ucUnderVolt
+ //
+ this.ucUnderVolt.Location = new System.Drawing.Point(116, 35);
+ this.ucUnderVolt.MinimumSize = new System.Drawing.Size(0, 27);
+ this.ucUnderVolt.Name = "ucUnderVolt";
+ this.ucUnderVolt.Size = new System.Drawing.Size(111, 27);
+ this.ucUnderVolt.TabIndex = 9;
+ //
+ // ucOverVolt
+ //
+ this.ucOverVolt.Location = new System.Drawing.Point(116, 2);
+ this.ucOverVolt.MinimumSize = new System.Drawing.Size(0, 27);
+ this.ucOverVolt.Name = "ucOverVolt";
+ this.ucOverVolt.Size = new System.Drawing.Size(111, 29);
+ this.ucOverVolt.TabIndex = 8;
+ //
+ // ucCellUnderVolt
+ //
+ this.ucCellUnderVolt.Location = new System.Drawing.Point(231, 35);
+ this.ucCellUnderVolt.MinimumSize = new System.Drawing.Size(0, 27);
+ this.ucCellUnderVolt.Name = "ucCellUnderVolt";
+ this.ucCellUnderVolt.Size = new System.Drawing.Size(109, 27);
+ this.ucCellUnderVolt.TabIndex = 7;
+ //
+ // ucCellOverVolt
+ //
+ this.ucCellOverVolt.Location = new System.Drawing.Point(231, 2);
+ this.ucCellOverVolt.MinimumSize = new System.Drawing.Size(0, 27);
+ this.ucCellOverVolt.Name = "ucCellOverVolt";
+ this.ucCellOverVolt.Size = new System.Drawing.Size(109, 29);
+ this.ucCellOverVolt.TabIndex = 6;
+ //
+ // ucLowTemp
+ //
+ this.ucLowTemp.Location = new System.Drawing.Point(2, 35);
+ this.ucLowTemp.MinimumSize = new System.Drawing.Size(0, 27);
+ this.ucLowTemp.Name = "ucLowTemp";
+ this.ucLowTemp.Size = new System.Drawing.Size(110, 27);
+ this.ucLowTemp.TabIndex = 5;
+ //
+ // ucHighTemp
+ //
+ this.ucHighTemp.Location = new System.Drawing.Point(2, 2);
+ this.ucHighTemp.MinimumSize = new System.Drawing.Size(0, 27);
+ this.ucHighTemp.Name = "ucHighTemp";
+ this.ucHighTemp.Size = new System.Drawing.Size(110, 29);
+ this.ucHighTemp.TabIndex = 4;
+ //
+ // layoutControlItem9
+ //
+ this.layoutControlItem9.Control = this.ucHighTemp;
+ this.layoutControlItem9.CustomizationFormText = "layoutControlItem9";
+ this.layoutControlItem9.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem9.MinSize = new System.Drawing.Size(95, 33);
+ this.layoutControlItem9.Name = "layoutControlItem9";
+ this.layoutControlItem9.Size = new System.Drawing.Size(114, 33);
+ this.layoutControlItem9.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem9.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem9.TextVisible = false;
+ //
+ // layoutControlItem10
+ //
+ this.layoutControlItem10.Control = this.ucLowTemp;
+ this.layoutControlItem10.CustomizationFormText = "layoutControlItem10";
+ this.layoutControlItem10.Location = new System.Drawing.Point(0, 33);
+ this.layoutControlItem10.MinSize = new System.Drawing.Size(24, 31);
+ this.layoutControlItem10.Name = "layoutControlItem10";
+ this.layoutControlItem10.Size = new System.Drawing.Size(114, 31);
+ this.layoutControlItem10.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem10.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem10.TextVisible = false;
+ //
+ // layoutControlItem11
+ //
+ this.layoutControlItem11.Control = this.ucCellOverVolt;
+ this.layoutControlItem11.CustomizationFormText = "layoutControlItem11";
+ this.layoutControlItem11.Location = new System.Drawing.Point(229, 0);
+ this.layoutControlItem11.MinSize = new System.Drawing.Size(95, 33);
+ this.layoutControlItem11.Name = "layoutControlItem11";
+ this.layoutControlItem11.Size = new System.Drawing.Size(113, 33);
+ this.layoutControlItem11.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem11.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem11.TextVisible = false;
+ //
+ // layoutControlItem12
+ //
+ this.layoutControlItem12.Control = this.ucCellUnderVolt;
+ this.layoutControlItem12.CustomizationFormText = "layoutControlItem12";
+ this.layoutControlItem12.Location = new System.Drawing.Point(229, 33);
+ this.layoutControlItem12.MinSize = new System.Drawing.Size(24, 31);
+ this.layoutControlItem12.Name = "layoutControlItem12";
+ this.layoutControlItem12.Size = new System.Drawing.Size(113, 31);
+ this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem12.TextVisible = false;
+ //
+ // layoutControlItem13
+ //
+ this.layoutControlItem13.Control = this.ucOverVolt;
+ this.layoutControlItem13.CustomizationFormText = "layoutControlItem13";
+ this.layoutControlItem13.Location = new System.Drawing.Point(114, 0);
+ this.layoutControlItem13.MinSize = new System.Drawing.Size(95, 33);
+ this.layoutControlItem13.Name = "layoutControlItem13";
+ this.layoutControlItem13.Size = new System.Drawing.Size(115, 33);
+ this.layoutControlItem13.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem13.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem13.TextVisible = false;
+ //
+ // layoutControlItem14
+ //
+ this.layoutControlItem14.Control = this.ucUnderVolt;
+ this.layoutControlItem14.CustomizationFormText = "layoutControlItem14";
+ this.layoutControlItem14.Location = new System.Drawing.Point(114, 33);
+ this.layoutControlItem14.MinSize = new System.Drawing.Size(24, 31);
+ this.layoutControlItem14.Name = "layoutControlItem14";
+ this.layoutControlItem14.Size = new System.Drawing.Size(115, 31);
+ this.layoutControlItem14.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem14.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem14.TextVisible = false;
+ //
+ // layoutControlItem15
+ //
+ this.layoutControlItem15.Control = this.ucChaOverCurr;
+ this.layoutControlItem15.CustomizationFormText = "layoutControlItem15";
+ this.layoutControlItem15.Location = new System.Drawing.Point(342, 0);
+ this.layoutControlItem15.MinSize = new System.Drawing.Size(95, 33);
+ this.layoutControlItem15.Name = "layoutControlItem15";
+ this.layoutControlItem15.Size = new System.Drawing.Size(115, 33);
+ this.layoutControlItem15.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem15.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem15.TextVisible = false;
+ //
+ // layoutControlItem16
+ //
+ this.layoutControlItem16.Control = this.ucDchOverCurr;
+ this.layoutControlItem16.CustomizationFormText = "layoutControlItem16";
+ this.layoutControlItem16.Location = new System.Drawing.Point(342, 33);
+ this.layoutControlItem16.MinSize = new System.Drawing.Size(24, 31);
+ this.layoutControlItem16.Name = "layoutControlItem16";
+ this.layoutControlItem16.Size = new System.Drawing.Size(115, 31);
+ this.layoutControlItem16.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem16.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem16.TextVisible = false;
+ //
+ // layoutControlItem17
+ //
+ this.layoutControlItem17.Control = this.ucLowSOC;
+ this.layoutControlItem17.CustomizationFormText = "layoutControlItem17";
+ this.layoutControlItem17.Location = new System.Drawing.Point(457, 0);
+ this.layoutControlItem17.MinSize = new System.Drawing.Size(95, 33);
+ this.layoutControlItem17.Name = "layoutControlItem17";
+ this.layoutControlItem17.Size = new System.Drawing.Size(113, 33);
+ this.layoutControlItem17.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem17.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem17.TextVisible = false;
+ //
+ // layoutControlItem18
+ //
+ this.layoutControlItem18.Control = this.ucCvDiff;
+ this.layoutControlItem18.CustomizationFormText = "layoutControlItem18";
+ this.layoutControlItem18.Location = new System.Drawing.Point(457, 33);
+ this.layoutControlItem18.MinSize = new System.Drawing.Size(24, 31);
+ this.layoutControlItem18.Name = "layoutControlItem18";
+ this.layoutControlItem18.Size = new System.Drawing.Size(113, 31);
+ this.layoutControlItem18.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem18.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem18.TextVisible = false;
+ //
+ // dgSOH
+ //
+ this.dgSOH.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.dgSOH.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.dgSOH.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent5});
+ this.dgSOH.Bounds = new System.Drawing.Rectangle(6, 6, 141, 60);
+ this.dgSOH.DigitCount = 5;
+ this.dgSOH.Name = "dgSOH";
+ this.dgSOH.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.dgSOH.Text = "00,000";
+ //
+ // dgTemperature
+ //
+ this.dgTemperature.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.dgTemperature.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.dgTemperature.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent4});
+ this.dgTemperature.Bounds = new System.Drawing.Rectangle(6, 6, 142, 60);
+ this.dgTemperature.DigitCount = 5;
+ this.dgTemperature.Name = "dgTemperature";
+ this.dgTemperature.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.dgTemperature.Text = "00,000";
+ //
+ // dgSOC
+ //
+ this.dgSOC.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.dgSOC.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.dgSOC.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent3});
+ this.dgSOC.Bounds = new System.Drawing.Rectangle(6, 6, 142, 60);
+ this.dgSOC.DigitCount = 5;
+ this.dgSOC.Name = "dgSOC";
+ this.dgSOC.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.dgSOC.Text = "00,000";
+ //
+ // dgCurrent
+ //
+ this.dgCurrent.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.dgCurrent.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.dgCurrent.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent2});
+ this.dgCurrent.Bounds = new System.Drawing.Rectangle(6, 6, 141, 60);
+ this.dgCurrent.DigitCount = 5;
+ this.dgCurrent.Name = "dgCurrent";
+ this.dgCurrent.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.dgCurrent.Text = "00,000";
+ //
+ // dgVoltage
+ //
+ this.dgVoltage.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA");
+ this.dgVoltage.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F");
+ this.dgVoltage.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] {
+ this.digitalBackgroundLayerComponent1});
+ this.dgVoltage.Bounds = new System.Drawing.Rectangle(6, 6, 141, 60);
+ this.dgVoltage.DigitCount = 5;
+ this.dgVoltage.Name = "dgVoltage";
+ this.dgVoltage.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20);
+ this.dgVoltage.Text = "00,000";
+ //
+ // ucShelfStatus
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.layoutControl1);
+ this.Name = "ucShelfStatus";
+ this.Size = new System.Drawing.Size(948, 572);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.pictureEdit1.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbEtc)).EndInit();
+ this.gbEtc.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl6)).EndInit();
+ this.layoutControl6.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem23)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbAlarm)).EndInit();
+ this.gbAlarm.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl5)).EndInit();
+ this.layoutControl5.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbStatusAlarm)).EndInit();
+ this.gbStatusAlarm.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit();
+ this.layoutControl3.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.panelControl2)).EndInit();
+ this.panelControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.panelControl1)).EndInit();
+ this.panelControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemStatus)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemAlarm)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbDetail)).EndInit();
+ this.gbDetail.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl4)).EndInit();
+ this.layoutControl4.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(xyDiagram1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(series1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(series2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TChart)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(xyDiagram2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(series3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(series4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.VChart)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbValue)).EndInit();
+ this.gbValue.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit();
+ this.layoutControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem24)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemValue)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.icitemStatusAlarm)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lbHeatbeat)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem21)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem20)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem25)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem17)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem18)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgSOH)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgTemperature)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgSOC)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgCurrent)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dgVoltage)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.GroupControl gbDetail;
+ private DevExpress.XtraEditors.GroupControl gbValue;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemValue;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.LayoutControl layoutControl2;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl4;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgTemperature;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent4;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl3;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgSOC;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent3;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl2;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgCurrent;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent2;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl1;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgVoltage;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraEditors.GroupControl gbStatusAlarm;
+ private DevExpress.XtraLayout.LayoutControlItem icitemStatusAlarm;
+ private DevExpress.XtraLayout.LayoutControl layoutControl3;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3;
+ private DevExpress.XtraEditors.PanelControl panelControl2;
+ private DevExpress.XtraEditors.PanelControl panelControl1;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemStatus;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemAlarm;
+ private DevExpress.XtraEditors.LabelControl lbStatus;
+ private DevExpress.XtraEditors.LabelControl lbAlarm;
+ private DevExpress.XtraLayout.LayoutControl layoutControl4;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup4;
+ private System.Windows.Forms.Timer tmrDisplay;
+ private DevExpress.XtraEditors.GroupControl gbAlarm;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ private DevExpress.XtraLayout.LayoutControl layoutControl5;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup5;
+ private ucStatus ucCellUnderVolt;
+ private ucStatus ucCellOverVolt;
+ private ucStatus ucLowTemp;
+ private ucStatus ucHighTemp;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12;
+ private ucStatus ucCvDiff;
+ private ucStatus ucLowSOC;
+ private ucStatus ucDchOverCurr;
+ private ucStatus ucChaOverCurr;
+ private ucStatus ucUnderVolt;
+ private ucStatus ucOverVolt;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem14;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem15;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem16;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem17;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem18;
+ private DevExpress.XtraEditors.SimpleButton btnParam;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem19;
+ private DevExpress.XtraLayout.SimpleLabelItem lbHeatbeat;
+ private DevExpress.XtraEditors.GroupControl gbEtc;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem21;
+ private DevExpress.XtraLayout.LayoutControl layoutControl6;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup6;
+ private DevExpress.XtraEditors.LabelControl lbAmbTemp;
+ private DevExpress.XtraEditors.LabelControl lbFetTemp;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem22;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem23;
+ private DevExpress.XtraCharts.ChartControl VChart;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraCharts.ChartControl TChart;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ private DevExpress.XtraEditors.SimpleButton btnCalib;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem20;
+ private DevExpress.XtraGauges.Win.GaugeControl gaugeControl5;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgSOH;
+ private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent5;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem24;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup7;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem25;
+ private DevExpress.XtraEditors.PictureEdit pictureEdit1;
+ }
+}
diff --git a/LFP_Manager/Controls/ucShelfStatus.cs b/LFP_Manager/Controls/ucShelfStatus.cs
new file mode 100644
index 0000000..2b2a60a
--- /dev/null
+++ b/LFP_Manager/Controls/ucShelfStatus.cs
@@ -0,0 +1,1729 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+using DevExpress.XtraCharts;
+
+using LFP_Manager.Forms;
+using LFP_Manager.DataStructure;
+using LFP_Manager.Utils;
+using DevExpress.Utils.Text;
+
+namespace LFP_Manager.Controls
+{
+ public delegate void paramCommand(int sId, int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib);
+
+ public partial class ucShelfStatus : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region CONSTDATA
+ const int STATUS_QTY = 10;
+ #endregion
+
+ #region VARIABLES
+ int ModuleID = 1;
+ bool start = false;
+
+ CommConfig Config;
+
+ DeviceSystemData[] SystemData;
+
+ DataTable[] dtVolt;
+ DataTable[] dtTemp;
+ Series[] seriesVolt;
+ Series[] seriesTemp;
+
+ ucStatus[] alarmTrip;
+
+ Palette paletteV;
+ Palette paletteT;
+
+ public event paramCommand OnCommand = null;
+ public event SendDataUartEvent OnSendUartData = null;
+ #endregion
+
+ #region CONSTRUCTORS
+ public ucShelfStatus()
+ {
+ InitializeComponent();
+
+ InitStatusName();
+ }
+ #endregion
+
+ #region PROPERTIES
+ public void UpdateSystemId(int mID)
+ {
+ ModuleID = mID;
+ }
+
+ public void Start(int mID, ref CommConfig aConfig, ref DeviceSystemData[] aSystemData)
+ {
+ ModuleID = mID;
+ Config = aConfig;
+ SystemData = aSystemData;
+
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ btnParam.Text = "Param";
+ btnParam.Enabled = true;
+ btnCalib.Enabled = true;
+ btnCalib.Text = "Calib";
+ break;
+ case csConstData.CommType.COMM_RS485:
+ btnParam.Text = "Information";
+ btnParam.Enabled = true;
+ btnCalib.Enabled = true;
+ btnCalib.Text = "Calib";
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ btnParam.Text = "Information";
+ btnParam.Enabled = true;
+ btnCalib.Enabled = false;
+ btnCalib.Text = "";
+ break;
+ default:
+ break;
+ }
+
+ InitDataTableVolt();
+ InitDataTableTemp();
+ vSeriesInit();
+ tSeriesInit();
+
+ tmrDisplay.Start();
+
+ start = true;
+ }
+
+ public void Stop()
+ {
+ start = false;
+ tmrDisplay.Stop();
+ }
+
+ public void ModuleIDSet(int mID)
+ {
+ ModuleID = mID;
+ }
+
+ public int ModuleIDGet()
+ {
+ return ModuleID;
+ }
+
+ public void UpdateData(ref DeviceSystemData[] aSystemData)
+ {
+ SystemData = aSystemData;
+ }
+ #endregion
+
+ #region INIT_COMPONENT
+
+ private void InitStatusName()
+ {
+ ucHighTemp.SetName("High Temp");
+ //ucHighTemp.SetTextWidth(80);
+ ucLowTemp.SetName("Low Temp");
+ //ucLowTemp.SetTextWidth(80);
+ ucOverVolt.SetName("Pack OV");
+ //ucOverVolt.SetTextWidth(80);
+ ucUnderVolt.SetName("Pack UV");
+ //ucUnderVolt.SetTextWidth(80);
+ ucCellOverVolt.SetName("Cell OV");
+ //ucOverVolt.SetTextWidth(80);
+ ucCellUnderVolt.SetName("Cell UV");
+ //ucUnderVolt.SetTextWidth(80);
+ ucChaOverCurr.SetName("Cha OC");
+ //ucChaOverCurr.SetTextWidth(110);
+ ucDchOverCurr.SetName("Dch OC");
+ //ucDchOverCurr.SetTextWidth(110);
+ ucLowSOC.SetName("Low SOC");
+ //ucLowSOC.SetTextWidth(80);
+ ucCvDiff.SetName("ETC. Alarm");
+ //ucMdComm.SetTextWidth(80);
+
+ alarmTrip = new ucStatus[STATUS_QTY];
+
+ alarmTrip[0] = ucHighTemp;
+ alarmTrip[1] = ucLowTemp;
+ alarmTrip[2] = ucOverVolt;
+ alarmTrip[3] = ucUnderVolt;
+ alarmTrip[4] = ucCellOverVolt;
+ alarmTrip[5] = ucCellUnderVolt;
+ alarmTrip[6] = ucChaOverCurr;
+ alarmTrip[7] = ucDchOverCurr;
+ alarmTrip[8] = ucLowSOC;
+ alarmTrip[9] = ucCvDiff;
+ }
+
+ private void InitDataTableVolt()
+ {
+ dtVolt = new DataTable[SystemData[ModuleID - 1].cellQty];
+
+ for (int i = 0; i < dtVolt.Length; i++)
+ {
+ dtVolt[i] = new DataTable();
+ dtVolt[i].Columns.Add("C_No", typeof(Int32));
+ dtVolt[i].Columns.Add("Alarm", typeof(Int32));
+ dtVolt[i].Columns.Add("Value", typeof(double));
+
+ // Add data rows to the table.
+ DataRow row = null;
+
+ row = dtVolt[i].NewRow();
+ row["C_No"] = i + 1;
+ row["Alarm"] = 0;
+ row["Value"] = 3.2;
+
+ dtVolt[i].Rows.Add(row);
+ }
+ }
+
+ private void InitDataTableTemp()
+ {
+ dtTemp = new DataTable[SystemData[ModuleID - 1].tempQty];
+ for (int i = 0; i < dtTemp.Length; i++)
+ {
+ dtTemp[i] = new DataTable();
+ dtTemp[i].Columns.Add("T_No", typeof(Int32));
+ dtTemp[i].Columns.Add("Alarm", typeof(Int32));
+ dtTemp[i].Columns.Add("Value", typeof(double));
+
+ // Add data rows to the table.
+ DataRow row = null;
+
+ row = dtTemp[i].NewRow();
+ row["T_No"] = i + 1;
+ row["Alarm"] = 0;
+ row["Value"] = 25.4;
+ dtTemp[i].Rows.Add(row);
+ }
+ }
+
+ private Palette vPaletteInit(string bName, short bValue)
+ {
+ paletteV = new Palette(bName);
+ for (int i = 0; i < dtVolt.Length; i++)
+ {
+ if (((bValue >> i) & 0x0001) == 0x0001)
+ paletteV.Add(Color.Orange);
+ else
+ paletteV.Add(Color.Green);
+ }
+ return paletteV;
+ }
+
+ private void vPaletteUpdate(short bValue)
+ {
+ paletteV.Clear();
+ for (int i = 0; i < dtVolt.Length; i++)
+ {
+ if (((bValue >> i) & 0x0001) == 0x0001)
+ paletteV.Add(Color.Orange);
+ else
+ paletteV.Add(Color.Green);
+ }
+ }
+
+ private Palette tPaletteInit(string bName, short bValue)
+ {
+ paletteT = new Palette(bName);
+
+ for (int i = 0; i < dtTemp.Length; i++)
+ {
+ if (((bValue >> i) & 0x0001) == 0x0001)
+ paletteT.Add(Color.Orange);
+ else
+ paletteT.Add(Color.Green);
+ }
+
+ return paletteT;
+ }
+
+ private void tPaletteUpdate(short bValue)
+ {
+ paletteT.Clear();
+ for (int i = 0; i < dtTemp.Length; i++)
+ {
+ if (((bValue >> i) & 0x0001) == 0x0001)
+ paletteT.Add(Color.Orange);
+ else
+ paletteT.Add(Color.Green);
+ }
+ }
+
+ private void vSeriesInit()
+ {
+ VChart.Series.Clear();
+ VChart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
+
+ seriesVolt = new Series[SystemData[ModuleID - 1].cellQty];
+
+ for (int i = 0; i < seriesVolt.Length; i++)
+ {
+ seriesVolt[i] = new Series(String.Format("C_{0:00}", i + 1), ViewType.Bar)
+ {
+ DataSource = dtVolt[i],
+ //Label.PointOptions.PointView = PointView.ArgumentAndValues,
+ //Label.PointOptions.ValueNumericOptions.Format = NumericFormat.Number,
+ //Label.PointOptions.ValueNumericOptions.Precision = 3,
+ CrosshairLabelPattern = "C_{A:00} : {V:F3}",
+
+ // Specify data members to bind the series.
+ ArgumentScaleType = ScaleType.Numerical,
+ ArgumentDataMember = "C_No",
+ ValueScaleType = ScaleType.Numerical,
+ };
+ ((SideBySideBarSeriesView)(seriesVolt[i].View)).BarWidth = 10.0;
+ seriesVolt[i].ValueDataMembers.AddRange(new string[] { "Value" });
+ VChart.Series.Add(seriesVolt[i]);
+ }
+
+ VChart.PaletteRepository.Clear();
+ VChart.PaletteRepository.Add("V Palette", vPaletteInit("V Palette", 0));
+ VChart.PaletteName = "V Palette";
+
+ // Cast the chart's diagram to the XYDiagram type, to access its axes.
+ XYDiagram diagram = (XYDiagram)VChart.Diagram;
+ if (diagram.AxisY.ConstantLines.Count > 0)
+ diagram.AxisY.ConstantLines.Clear();
+
+ // Create a constant line.
+ ConstantLine constantLineMax = new ConstantLine("Limit(Max)");
+ ConstantLine constantLineMin = new ConstantLine("Limit(Min)");
+ ConstantLine constantDataMax = new ConstantLine(
+ String.Format(" Max({0:#0.000}V:{1:00})", 0, 0));
+ ConstantLine constantDataAvg = new ConstantLine(
+ String.Format(" Avg({0:#0.000}V) - ({1:#0.000}V)", 0, 0));
+ ConstantLine constantDataMin = new ConstantLine(
+ String.Format("Min({0:#0.000}V:{1:00})", 0, 0));
+
+ constantLineMax.Color = Color.Red;
+ constantLineMin.Color = Color.Red;
+
+ // Customize the behavior of the constant line.
+ constantLineMax.Visible = true;
+ constantLineMax.ShowInLegend = true;
+ constantLineMax.LegendText = "Limit(Max)";
+ constantLineMax.ShowBehind = false;
+
+ constantLineMin.Visible = true;
+ constantLineMin.ShowInLegend = true;
+ constantLineMin.LegendText = "Limit(Min)";
+ constantLineMin.ShowBehind = false;
+
+ constantDataMax.Visible = true;
+ constantDataMax.ShowInLegend = true;
+ constantDataMax.LegendText = "Max";
+ constantDataMax.ShowBehind = false;
+ constantDataMax.Color = Color.MediumVioletRed;
+ constantDataMax.Title.TextColor = Color.Black;
+ constantDataMax.Title.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Bold);
+
+ constantDataAvg.Visible = true;
+ constantDataAvg.ShowInLegend = true;
+ constantDataAvg.LegendText = "Avg";
+ constantDataAvg.ShowBehind = false;
+ constantDataAvg.Color = Color.LawnGreen;
+ constantDataAvg.Title.TextColor = Color.Black;
+ constantDataAvg.Title.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Bold);
+
+ constantDataMin.Visible = true;
+ constantDataMin.ShowInLegend = true;
+ constantDataMin.LegendText = "Min";
+ constantDataMin.ShowBehind = false;
+ constantDataMin.Color = Color.BlueViolet;
+ constantDataMin.Title.TextColor = Color.Black;
+ constantDataMin.Title.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Bold);
+
+ // Define its axis value.
+ constantLineMax.AxisValue = 3.85;
+ constantLineMin.AxisValue = 2.5;
+ constantDataMax.AxisValue = 0;
+ constantDataAvg.AxisValue = 0;
+ constantDataMin.AxisValue = 0;
+
+ diagram.AxisY.ConstantLines.Add(constantLineMax);
+ diagram.AxisY.ConstantLines.Add(constantLineMin);
+ diagram.AxisY.ConstantLines.Add(constantDataMax);
+ diagram.AxisY.ConstantLines.Add(constantDataAvg);
+ diagram.AxisY.ConstantLines.Add(constantDataMin);
+
+ // Axis Y
+ diagram.AxisY.VisualRange.Auto = false;
+ diagram.AxisY.VisualRange.AutoSideMargins = false;
+ diagram.AxisY.VisualRange.StartSideMargin = 0;
+ diagram.AxisY.VisualRange.EndSideMargin = 0;
+ diagram.AxisY.VisualRange.MaxValue = 4.0;
+ diagram.AxisY.VisualRange.MinValue = 2.0;
+ diagram.AxisY.WholeRange.MaxValue = 4.0;
+ diagram.AxisY.WholeRange.MinValue = 2.0;
+
+ diagram.AxisY.NumericScaleOptions.AutoGrid = false;
+ diagram.AxisY.NumericScaleOptions.GridAlignment = NumericGridAlignment.Ones;
+ diagram.AxisY.NumericScaleOptions.GridOffset = 0;
+ diagram.AxisY.NumericScaleOptions.GridSpacing = 0.1;
+
+ //diagram.AxisY.GridSpacing = 0.1;
+ diagram.AxisY.Title.Text = "Voltage(V)";
+ //diagram.AxisY.Label.NumericOptions.Precision = 3;
+ diagram.AxisY.Title.Visibility = DevExpress.Utils.DefaultBoolean.True;
+ diagram.AxisY.Title.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular);
+
+ // Axis X
+ diagram.AxisX.VisualRange.MaxValue = seriesVolt.Length;
+ diagram.AxisX.VisualRange.MinValue = 1;
+ diagram.AxisX.VisualRange.Auto = false;
+ diagram.AxisX.VisualRange.AutoSideMargins = false;
+ diagram.AxisX.VisualRange.SideMarginsValue = 0.5;
+
+ diagram.AxisX.Title.Text = "Cell No";
+ diagram.AxisX.Title.Visibility = DevExpress.Utils.DefaultBoolean.False;
+ diagram.AxisX.Title.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular);
+ }
+
+ private void tSeriesInit()
+ {
+ TChart.Series.Clear();
+ TChart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
+
+ seriesTemp = new Series[SystemData[ModuleID - 1].tempQty];
+
+ for (int i = 0; i < seriesTemp.Length; i++)
+ {
+ seriesTemp[i] = new Series(String.Format("T_{0:00}", i + 1), ViewType.Bar)
+ {
+ DataSource = dtTemp[i],
+ //Label.PointOptions.PointView = PointView.ArgumentAndValues,
+ //Label.PointOptions.ValueNumericOptions.Format = NumericFormat.Number,
+ //Label.PointOptions.ValueNumericOptions.Precision = 3,
+ CrosshairLabelPattern = "T_{A:00} : {V:F1}",
+
+ // Specify data members to bind the series.
+ ArgumentScaleType = ScaleType.Numerical,
+ ArgumentDataMember = "T_No",
+ ValueScaleType = ScaleType.Numerical,
+ };
+ ((SideBySideBarSeriesView)(seriesTemp[i].View)).BarWidth = 2.5;
+ seriesTemp[i].ValueDataMembers.AddRange(new string[] { "Value" });
+ TChart.Series.Add(seriesTemp[i]);
+ }
+
+ TChart.PaletteRepository.Clear();
+ TChart.PaletteRepository.Add("T Palette", tPaletteInit("T Palette", 0));
+ TChart.PaletteName = "T Palette";
+
+ // Cast the chart's diagram to the XYDiagram type, to access its axes.
+ XYDiagram diagram = (XYDiagram)TChart.Diagram;
+ if (diagram.AxisY.ConstantLines.Count > 0)
+ diagram.AxisY.ConstantLines.Clear();
+
+ diagram.Margins.All = 0;
+
+ ConstantLine constantLineMax = new ConstantLine("Limit(Max)");
+ ConstantLine constantLineMin = new ConstantLine("Limit(Min)");
+ ConstantLine constantDataMax = new ConstantLine(String.Format(" Max({0:#0.0}C)", 0));
+ ConstantLine constantDataAvg = new ConstantLine(String.Format(" Avg({0:#0.0}C)", 0));
+ ConstantLine constantDataMin = new ConstantLine(String.Format("Min({0:#0.0}C)", 0));
+
+ constantLineMax.Color = Color.Red;
+ constantLineMin.Color = Color.Red;
+
+ // Customize the behavior of the constant line.
+ constantLineMax.Visible = true;
+ constantLineMax.ShowInLegend = true;
+ constantLineMax.LegendText = "Limit(Max)";
+ constantLineMax.ShowBehind = false;
+
+ constantLineMin.Visible = true;
+ constantLineMin.ShowInLegend = true;
+ constantLineMin.LegendText = "Limit(Min)";
+ constantLineMin.ShowBehind = false;
+
+ constantDataMax.Visible = true;
+ constantDataMax.ShowInLegend = true;
+ constantDataMax.LegendText = "Max";
+ constantDataMax.ShowBehind = false;
+ constantDataMax.Color = Color.MediumVioletRed;
+ constantDataMax.Title.TextColor = Color.Black;
+ constantDataMax.Title.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Bold);
+
+ constantDataAvg.Visible = true;
+ constantDataAvg.ShowInLegend = true;
+ constantDataAvg.LegendText = "Avg";
+ constantDataAvg.ShowBehind = false;
+ constantDataAvg.Color = Color.LawnGreen;
+ constantDataAvg.Title.TextColor = Color.Black;
+ constantDataAvg.Title.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Bold);
+
+ constantDataMin.Visible = true;
+ constantDataMin.ShowInLegend = true;
+ constantDataMin.LegendText = "Min";
+ constantDataMin.ShowBehind = false;
+ constantDataMin.Color = Color.BlueViolet;
+ constantDataMin.Title.TextColor = Color.Black;
+ constantDataMin.Title.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Bold);
+
+ // Define its axis value.
+ constantLineMax.AxisValue = 60.0;
+ constantLineMin.AxisValue = -20.0;
+ constantDataMax.AxisValue = 0;
+ constantDataAvg.AxisValue = 0;
+ constantDataMin.AxisValue = 0;
+
+ diagram.AxisY.ConstantLines.Add(constantLineMax);
+ diagram.AxisY.ConstantLines.Add(constantLineMin);
+ diagram.AxisY.ConstantLines.Add(constantDataMax);
+ diagram.AxisY.ConstantLines.Add(constantDataAvg);
+ diagram.AxisY.ConstantLines.Add(constantDataMin);
+
+ // Axis Y
+ diagram.AxisY.VisualRange.Auto = false;
+ diagram.AxisY.VisualRange.AutoSideMargins = false;
+ diagram.AxisY.VisualRange.StartSideMargin = 0;
+ diagram.AxisY.VisualRange.EndSideMargin = 0;
+ diagram.AxisY.VisualRange.MaxValue = 80.0;
+ diagram.AxisY.VisualRange.MinValue = -30.0;
+ diagram.AxisY.WholeRange.MaxValue = 80.0;
+ diagram.AxisY.WholeRange.MinValue = -30.0;
+
+ diagram.AxisY.NumericScaleOptions.AutoGrid = false;
+ diagram.AxisY.NumericScaleOptions.GridAlignment = NumericGridAlignment.Ones;
+ diagram.AxisY.NumericScaleOptions.GridOffset = 0;
+ diagram.AxisY.NumericScaleOptions.GridSpacing = 5;
+
+ diagram.AxisY.Title.Text = "Temperature(C)";
+ diagram.AxisY.Title.Visibility = DevExpress.Utils.DefaultBoolean.True;
+ diagram.AxisY.Title.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular);
+
+ // Axis X
+ diagram.AxisX.VisualRange.MaxValue = seriesTemp.Length;
+ diagram.AxisX.VisualRange.MinValue = 1;
+ diagram.AxisX.VisualRange.Auto = false;
+ diagram.AxisX.VisualRange.AutoSideMargins = false;
+ diagram.AxisX.VisualRange.SideMarginsValue = 0.5;
+
+ diagram.AxisX.Title.Text = "Temperature No";
+ diagram.AxisX.Title.Visibility = DevExpress.Utils.DefaultBoolean.False;
+ diagram.AxisX.Title.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular);
+ }
+
+ #endregion
+
+ #region DISPLAY DATA
+
+ private void tmrDisplay_Tick(object sender, EventArgs e)
+ {
+ DisplayLevelMasking();
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ switch (Config.UartModelIndex)
+ {
+ case csConstData.MODEL_INDEX.LFPM_124050D: // 124050
+ DisplayDataUart124050();
+ break;
+ default:
+ DisplayDataUart();
+ break;
+ }
+ break;
+ case csConstData.CommType.COMM_RS485:
+ DisplayDataRs485();
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ DisplayDataSnmp();
+ break;
+ default:
+ break;
+ }
+ }
+
+ void DisplayLevelMasking()
+ {
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ // UART Mode
+ switch (Config.ControlLevel)
+ {
+ case 0: // User Level
+ btnCalib.Text = "Calib";
+ btnCalib.Enabled = false;
+ break;
+ case 1: // Technician Level
+ btnCalib.Text = "Calib";
+ btnCalib.Enabled = true;
+ break;
+ case 2: // Engineer Level
+ btnCalib.Text = "Calib";
+ btnCalib.Enabled = true;
+ break;
+ case 3: // Master Level
+ btnCalib.Text = "Calib";
+ btnCalib.Enabled = true;
+ break;
+ default: // User Level
+ btnCalib.Text = "Calib";
+ btnCalib.Enabled = true;
+ break;
+ }
+ break;
+ case csConstData.CommType.COMM_RS485:
+ switch (Config.ControlLevel)
+ {
+ case 0: // User Level
+ btnCalib.Text = "Calib";
+ btnCalib.Enabled = false;
+ break;
+ case 1: // Technician Level
+ btnCalib.Text = "Calib";
+ btnCalib.Enabled = true;
+ break;
+ case 2: // Engineer Level
+ btnCalib.Text = "Calib";
+ btnCalib.Enabled = true;
+ break;
+ case 3: // Master Level
+ btnCalib.Text = "Calib";
+ btnCalib.Enabled = true;
+ break;
+ default: // User Level
+ btnCalib.Text = "Calib";
+ btnCalib.Enabled = true;
+ break;
+ }
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ // SNMP Mode
+ btnCalib.Enabled = false;
+ btnCalib.Text = "";
+ break;
+ default:
+ break;
+ }
+ }
+
+ void DisplayDataUart()
+ {
+ if (start)
+ {
+ dgVoltage.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.voltageOfPack) / 10);
+ dgCurrent.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.current) / 10);
+ dgSOC.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.rSOC) / 10);
+ dgSOH.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.stateOfHealth) / 10);
+ dgTemperature.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].AvgData.maxTemp) / 10); //Byul 21.08.09 "maxTemp"
+ lbFetTemp.Text = String.Format(" FET: {0:##0.0}C", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.Ext1Temperature) / 10);
+ lbAmbTemp.Text = String.Format(" AMB: {0:##0.0}C", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.Ext2Temperature) / 10);
+
+ //lbFetTemp.Text = String.Format(" FAULT: 0x{0:X4}", SystemData[ModuleID - 1].StatusData.protection);
+
+ lbHeatbeat.Text = String.Format("Cycle: {0}", SystemData[ModuleID - 1].ValueData.cycleCount);
+
+ DisplayCellVoltage();
+ DisplayCellTemperature();
+
+ DisplayInformationUart();
+ DisplayAlarmUart();
+ DisplayStatusStrUart();
+ DisplayAlarmStrUart();
+ }
+ }
+
+ void DisplayDataUart124050()
+ {
+ if (start)
+ {
+ dgVoltage.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.voltageOfPack) / 10);
+ dgCurrent.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.current) / 10);
+ dgSOC.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.rSOC) / 10);
+ dgSOH.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.stateOfHealth) / 10);
+ dgTemperature.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].AvgData.maxTemp) / 10); //Byul 21.08.09 "maxTemp"
+ lbFetTemp.Text = String.Format(" FET: {0:##0.0}C", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.Ext1Temperature) / 10);
+ lbAmbTemp.Text = String.Format(" AMB: {0:##0.0}C", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.Ext2Temperature) / 10);
+
+ //lbFetTemp.Text = String.Format(" FAULT: 0x{0:X4}", SystemData[ModuleID - 1].StatusData.specialAlarm);
+
+ lbHeatbeat.Text = String.Format("Cycle: {0}", SystemData[ModuleID - 1].ValueData.cycleCount);
+
+ DisplayCellVoltage();
+ DisplayCellTemperature();
+
+ DisplayInformationUart();
+ DisplayAlarmUart124050();
+ DisplayStatusStrUart124050();
+ DisplayAlarmStrUart124050();
+ }
+ }
+ void DisplayDataRs485()
+ {
+ if (start)
+ {
+ dgVoltage.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.voltageOfPack) / 10);
+ dgCurrent.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.current) / 10);
+ dgSOC.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.rSOC) / 10);
+ dgSOH.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.stateOfHealth) / 10);
+ dgTemperature.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].AvgData.maxTemp) / 10); //Byul 21.08.09 "maxTemp"
+ lbFetTemp.Text = String.Format(@" AVG: {0:##0.0}C", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.Ext1Temperature) / 10);
+ lbAmbTemp.Text = String.Format(@" AMB: {0:##0.0}C", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.Ext2Temperature) / 10);
+
+ lbHeatbeat.Text = String.Format("Cycle: {0}", SystemData[ModuleID - 1].ValueData.cycleCount);
+ //lbHeatbeat.Text = String.Format("Cycle: {0}", SystemData[ModuleID - 1].MaxValue.MaxChgCurrent);
+
+ DisplayCellVoltage();
+ DisplayCellTemperature();
+
+ DisplayInformationRs485();
+ DisplayAlarmRs485();
+
+ DisplayStatusStrRs485();
+ DisplayAlarmStrRs485();
+ }
+ }
+
+ void DisplayDataSnmp()
+ {
+ if (start)
+ {
+ dgVoltage.Text = string.Format("{0:0.0}", Convert.ToDouble(SystemData[0].ValueData.voltageOfPack) / 10);
+ dgCurrent.Text = string.Format("{0:0.0}", Convert.ToDouble(SystemData[0].ValueData.current) / 10);
+ dgSOC.Text = string.Format("{0:0.0}", Convert.ToDouble(SystemData[0].ValueData.rSOC) / 10);
+ dgSOH.Text = string.Format("{0:0.0}", Convert.ToDouble(SystemData[0].ValueData.stateOfHealth) / 10);
+ dgTemperature.Text = string.Format("{0:0.0}", Convert.ToDouble(SystemData[0].AvgData.maxTemp) / 10); //Byul 21.08.09 "maxTemp"
+ lbFetTemp.Text = string.Format(" FET: {0:##0.0}C", Convert.ToDouble(SystemData[0].ValueData.Ext1Temperature) / 10);
+ lbAmbTemp.Text = string.Format(" AMB: {0:##0.0}C", Convert.ToDouble(SystemData[0].ValueData.Ext2Temperature) / 10);
+
+ lbHeatbeat.Text = string.Format("Cycle: {0}", SystemData[0].ValueData.cycleCount);
+
+ DisplayCellVoltage();
+ DisplayCellTemperature();
+
+ DisplayInformationUart();
+ DisplayAlarmSnmp();
+ DisplayStatusStrSnmp();
+ DisplayAlarmStrSnmp();
+ }
+ }
+
+ private void DisplayInformationUart()
+ {
+ string strInfor = string.Format("V: {0} - Model: {1} - SN: {2}"
+ , SystemData[ModuleID - 1].Information.SwProductRev
+ , SystemData[ModuleID - 1].Information.ModelName
+ , SystemData[ModuleID - 1].Information.HwSerialNumber
+ );
+ gbValue.Text = "Value - " + strInfor;
+ }
+
+ private void DisplayInformationRs485()
+ {
+ string strInfor = string.Format("V: {0} - Model: {1} - SN: {2}"
+ , SystemData[ModuleID - 1].Information.SwProductRev
+ , SystemData[ModuleID - 1].Information.ModelName
+ , SystemData[ModuleID - 1].Information.HwSerialNumber
+ );
+ gbValue.Text = "Value - " + strInfor;
+ }
+
+ private void DisplayInformationSnmp()
+ {
+ string strInfor = string.Format("V: {0} - Model: {1} ({2}) - SN: {3} ({4})"
+ , SystemData[0].Information.SwProductRev
+ , SystemData[0].Information.ModelName
+ , SystemData[0].Information.ProductCode
+ , SystemData[0].Information.HwSerialNumber
+ , SystemData[0].Information.ManufacturingDate
+ );
+ gbValue.Text = "Value - " + strInfor;
+ }
+
+ private void DisplayCellVoltage()
+ {
+ try
+ {
+ for (int i = 0; i < seriesVolt.Length; i++)
+ dtVolt[i].Rows[0]["Value"] = Convert.ToDouble(SystemData[ModuleID - 1].ValueData.CellVoltage[i]) / 1000;
+
+ if (SystemData[ModuleID - 1].StatusData.cellBallanceStatus != 0x0000)
+ vPaletteUpdate(SystemData[ModuleID - 1].StatusData.cellBallanceStatus);
+ else
+ vPaletteUpdate(0);
+
+ double maxValue = Convert.ToDouble(SystemData[ModuleID - 1].AvgData.maxCellVoltage) / 1000;
+ double avgValue = Convert.ToDouble(SystemData[ModuleID - 1].AvgData.avgCellVoltage) / 1000;
+ double minValue = Convert.ToDouble(SystemData[ModuleID - 1].AvgData.minCellVoltage) / 1000;
+ double gapValue = Convert.ToDouble(SystemData[ModuleID - 1].AvgData.diffCellVoltage) / 1000;
+ int maxCno = Convert.ToInt32(SystemData[ModuleID - 1].AvgData.maxCellNum);
+ int minCno = Convert.ToInt32(SystemData[ModuleID - 1].AvgData.minCellNum);
+
+ // Cast the chart's diagram to the XYDiagram type, to access its axes.
+ ((XYDiagram)VChart.Diagram).AxisY.ConstantLines[2].Name =
+ String.Format(" Max({0:#0.000}V:{1:00})", maxValue, maxCno);
+ ((XYDiagram)VChart.Diagram).AxisY.ConstantLines[3].Name =
+ String.Format(" Avg({0:#0.000}V) - ({1:#0.000}V)", avgValue, gapValue);
+ ((XYDiagram)VChart.Diagram).AxisY.ConstantLines[4].Name =
+ String.Format("Min({0:#0.000}V:{1:00})", minValue, minCno);
+
+ // Define its axis value.
+ ((XYDiagram)VChart.Diagram).AxisY.ConstantLines[2].AxisValue = maxValue;
+ ((XYDiagram)VChart.Diagram).AxisY.ConstantLines[3].AxisValue = avgValue;
+ ((XYDiagram)VChart.Diagram).AxisY.ConstantLines[4].AxisValue = minValue;
+
+ //VChart.Legend.Visible = true;
+
+ //VChart.Titles[0].Text =
+ // String.Format("Voltage Status");
+
+ //VChart.Invalidate();
+ }
+ catch (Exception)
+ {
+ //MsgBox.ErrorShow(ex);
+ }
+
+ }
+ private void DisplayCellTemperature()
+ {
+ try
+ {
+ for (int i = 0; i < seriesTemp.Length; i++)
+ dtTemp[i].Rows[0]["Value"] = Convert.ToDouble(SystemData[ModuleID - 1].ValueData.CellTemperature[i]) / 10;
+
+ double maxValue = Convert.ToDouble(SystemData[ModuleID - 1].AvgData.maxTemp) / 10;
+ double avgValue = Convert.ToDouble(SystemData[ModuleID - 1].AvgData.avgTemp) / 10;
+ double minValue = Convert.ToDouble(SystemData[ModuleID - 1].AvgData.minTemp) / 10;
+ int maxCno = Convert.ToInt32(SystemData[ModuleID - 1].AvgData.maxTempNum);
+ int minCno = Convert.ToInt32(SystemData[ModuleID - 1].AvgData.minTempNum);
+
+ ((XYDiagram)TChart.Diagram).AxisY.ConstantLines[2].Name = String.Format(" Max({0:#0.0}C:{1:00})", maxValue, maxCno);
+ ((XYDiagram)TChart.Diagram).AxisY.ConstantLines[3].Name = String.Format(" Avg({0:#0.0}C)", avgValue);
+ ((XYDiagram)TChart.Diagram).AxisY.ConstantLines[4].Name = String.Format("Min({0:#0.0}C:{1:00})", minValue, minCno);
+
+ // Define its axis value.
+ ((XYDiagram)TChart.Diagram).AxisY.ConstantLines[2].AxisValue = maxValue;
+ ((XYDiagram)TChart.Diagram).AxisY.ConstantLines[3].AxisValue = avgValue;
+ ((XYDiagram)TChart.Diagram).AxisY.ConstantLines[4].AxisValue = minValue;
+
+ //TChart.Legend.Visible = true;
+
+ //TChart.Titles[0].Text =
+ // String.Format("Temperature Status");
+ }
+ catch (Exception)
+ {
+ //MsgBox.ErrorShow(ex);
+ }
+
+ }
+
+ private void DisplayStatusStrUart()
+ {
+ if (SystemData[ModuleID - 1].CommFail == false)
+ {
+ if (SystemData[ModuleID - 1].ShelfCommFail == false)
+ {
+ switch ((int)SystemData[ModuleID - 1].StatusData.status)
+ {
+ case 0x0000: // Stand by
+ lbStatus.Text = "STANDBY";
+ lbStatus.ForeColor = System.Drawing.Color.Black;
+ break;
+ case 0x0001: // Charging
+ lbStatus.Text = "CHARGING";
+ lbStatus.ForeColor = System.Drawing.Color.Blue;
+ break;
+ case 0x0002: // Discharging
+ lbStatus.Text = "DISCHARGING";
+ lbStatus.ForeColor = System.Drawing.Color.Magenta;
+ break;
+ case 0x0004: // TRIP
+ if ((SystemData[ModuleID - 1].StatusData.specialAlarm & 0x0001) != 0)
+ {
+ lbStatus.Text = "PWR-OFF"; // "ANTI -THEFT (Comm.)";
+ lbStatus.ForeColor = Color.Red;
+ }
+ else if ((SystemData[ModuleID - 1].StatusData.specialAlarm & 0x0002) != 0)
+ {
+ lbStatus.Text = "PWR-OFF"; // "ANTI -THEFT (Gyro)";
+ lbStatus.ForeColor = Color.Red;
+ }
+ else
+ {
+ lbStatus.Text = "TRIP";
+ lbStatus.ForeColor = Color.Red;
+ }
+ break;
+ case 0x0008: // Chg-Lmt
+ lbStatus.Text = "CHG-LIMIT";
+ lbStatus.ForeColor = System.Drawing.Color.Blue;
+ break;
+ case 0x8000: // Stand by - Heat
+ lbStatus.Text = "STANDBY-HEAT";
+ lbStatus.ForeColor = System.Drawing.Color.Blue;
+ break;
+ case 0x8001: // Charging
+ lbStatus.Text = "CHARGING-HEAT";
+ lbStatus.ForeColor = System.Drawing.Color.Blue;
+ break;
+ case 0x8002: // Discharging
+ lbStatus.Text = "DISCHARGING-HEAT";
+ lbStatus.ForeColor = System.Drawing.Color.Magenta;
+ break;
+ case 0x8004: // TRIP
+ lbStatus.Text = "TRIP-HEAT";
+ lbStatus.ForeColor = System.Drawing.Color.Red;
+ break;
+ case 0x8008: // Chg-Lmt
+ lbStatus.Text = "CHG-LIMIT-HEAT";
+ lbStatus.ForeColor = System.Drawing.Color.Blue;
+ break;
+ default:
+ lbStatus.Text = "UNKNOWN";
+ lbStatus.ForeColor = System.Drawing.Color.Black;
+ break;
+ }
+ }
+ else
+ {
+ lbStatus.Text = "COMM FAIL";
+ lbStatus.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+ else
+ {
+ lbStatus.Text = "OFF LINE";
+ lbStatus.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+ private void DisplayStatusStrUart124050()
+ {
+ if (SystemData[ModuleID - 1].CommFail == false)
+ {
+ if (SystemData[ModuleID - 1].ShelfCommFail == false)
+ {
+ switch ((int)SystemData[ModuleID - 1].StatusData.status)
+ {
+ case 0x0000: // Stand by
+ lbStatus.Text = "STANDBY";
+ lbStatus.ForeColor = System.Drawing.Color.Black;
+ break;
+ case 0x0001: // Charging
+ lbStatus.Text = "CHARGING";
+ lbStatus.ForeColor = System.Drawing.Color.Blue;
+ break;
+ case 0x0002: // Discharging
+ lbStatus.Text = "DISCHARGING";
+ lbStatus.ForeColor = System.Drawing.Color.Magenta;
+ break;
+ case 0x0004: // TRIP
+ if ((SystemData[ModuleID - 1].StatusData.errorCode & 0x8000) != 0)
+ {
+ lbStatus.Text = "PWR-OFF"; // "ANTI -THEFT (Comm.)";
+ lbStatus.ForeColor = Color.Red;
+ }
+ else if ((SystemData[ModuleID - 1].StatusData.errorCode & 0x4000) != 0)
+ {
+ lbStatus.Text = "PWR-OFF"; // "ANTI -THEFT (Gyro)";
+ lbStatus.ForeColor = Color.Red;
+ }
+ else
+ {
+ lbStatus.Text = "TRIP";
+ lbStatus.ForeColor = Color.Red;
+ }
+ break;
+ case 0x0008: // Chg-Lmt
+ lbStatus.Text = "CHG-LIMIT";
+ lbStatus.ForeColor = System.Drawing.Color.Blue;
+ break;
+ case 0x8000: // Stand by - Heat
+ lbStatus.Text = "STANDBY-HEAT";
+ lbStatus.ForeColor = System.Drawing.Color.Blue;
+ break;
+ case 0x8001: // Charging
+ lbStatus.Text = "CHARGING-HEAT";
+ lbStatus.ForeColor = System.Drawing.Color.Blue;
+ break;
+ case 0x8002: // Discharging
+ lbStatus.Text = "DISCHARGING-HEAT";
+ lbStatus.ForeColor = System.Drawing.Color.Magenta;
+ break;
+ case 0x8004: // TRIP
+ lbStatus.Text = "TRIP-HEAT";
+ lbStatus.ForeColor = System.Drawing.Color.Red;
+ break;
+ case 0x8008: // Chg-Lmt
+ lbStatus.Text = "CHG-LIMIT-HEAT";
+ lbStatus.ForeColor = System.Drawing.Color.Blue;
+ break;
+ default:
+ lbStatus.Text = "UNKNOWN";
+ lbStatus.ForeColor = System.Drawing.Color.Black;
+ break;
+ }
+ }
+ else
+ {
+ lbStatus.Text = "COMM FAIL";
+ lbStatus.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+ else
+ {
+ lbStatus.Text = "OFF LINE";
+ lbStatus.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+
+ private void DisplayAlarmStrUart()
+ {
+ if (SystemData[ModuleID - 1].CommFail == false)
+ {
+ if (SystemData[ModuleID - 1].ShelfCommFail == false)
+ {
+ switch (SystemData[ModuleID - 1].StatusData.batteryStatus)
+ {
+ case 0: // NORMAL
+ if ((SystemData[ModuleID - 1].StatusData.specialAlarm & 0x0001) != 0)
+ {
+ lbAlarm.Text = "FAULT (Comm)";
+ lbAlarm.ForeColor = Color.Red;
+ }
+ else if ((SystemData[ModuleID - 1].StatusData.specialAlarm & 0x0002) != 0)
+ {
+ lbAlarm.Text = "FAULT (GyroScope)";
+ lbAlarm.ForeColor = Color.Red;
+ }
+ else
+ {
+ if ((SystemData[ModuleID - 1].StatusData.specialAlarm & 0x0004) != 0)
+ {
+ lbAlarm.Text = "WARNING";
+ lbAlarm.ForeColor = System.Drawing.Color.Orange;
+ }
+ else
+ {
+ lbAlarm.Text = "NORMAL";
+ lbAlarm.ForeColor = System.Drawing.Color.Green;
+ }
+ }
+ break;
+ case 1: // WARNING
+ lbAlarm.Text = "WARNING";
+ lbAlarm.ForeColor = System.Drawing.Color.Orange;
+ break;
+ case 2: // FAULT
+ lbAlarm.Text = "FAULT";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ case 3: // WARMING UP
+ lbAlarm.Text = "WARMING UP";
+ lbAlarm.ForeColor = System.Drawing.Color.Black;
+ break;
+ case 4: // FAULT (Anti-Theft GyroScope.)
+ lbAlarm.Text = "FAULT (GyroScope)";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ case 5: // FAULT (Anti-Theft Gyro-Scope)
+ lbAlarm.Text = "FAULT (Comm)";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ default:
+ lbAlarm.Text = string.Format("UNKNOWN ({0})", SystemData[ModuleID - 1].StatusData.batteryStatus);
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ }
+ }
+ else
+ {
+ lbAlarm.Text = "COMM FAIL";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+ else
+ {
+ lbAlarm.Text = "OFF LINE";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+ private void DisplayAlarmStrUart124050()
+ {
+ if (SystemData[ModuleID - 1].CommFail == false)
+ {
+ if (SystemData[ModuleID - 1].ShelfCommFail == false)
+ {
+ switch (SystemData[ModuleID - 1].StatusData.batteryStatus)
+ {
+ case 0: // NORMAL
+ if ((SystemData[ModuleID - 1].StatusData.errorCode & 0x8000) != 0)
+ {
+ lbAlarm.Text = "FAULT (Comm)";
+ lbAlarm.ForeColor = Color.Red;
+ }
+ else if ((SystemData[ModuleID - 1].StatusData.errorCode & 0x4000) != 0)
+ {
+ lbAlarm.Text = "FAULT (GyroScope)";
+ lbAlarm.ForeColor = Color.Red;
+ }
+ else
+ {
+ if ((SystemData[ModuleID - 1].StatusData.specialAlarm & 0x4000) != 0)
+ {
+ lbAlarm.Text = "WARNING";
+ lbAlarm.ForeColor = System.Drawing.Color.Orange;
+ }
+ else
+ {
+ lbAlarm.Text = "NORMAL";
+ lbAlarm.ForeColor = System.Drawing.Color.Green;
+ }
+ }
+ break;
+ case 1: // WARNING
+ lbAlarm.Text = "WARNING";
+ lbAlarm.ForeColor = System.Drawing.Color.Orange;
+ break;
+ case 2: // FAULT
+ lbAlarm.Text = "FAULT";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ case 3: // WARMING UP
+ lbAlarm.Text = "WARMING UP";
+ lbAlarm.ForeColor = System.Drawing.Color.Black;
+ break;
+ case 4: // FAULT (Anti-Theft GyroScope.)
+ lbAlarm.Text = "FAULT (GyroScope)";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ case 5: // FAULT (Anti-Theft Gyro-Scope)
+ lbAlarm.Text = "FAULT (Comm)";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ default:
+ lbAlarm.Text = string.Format("UNKNOWN ({0})", SystemData[ModuleID - 1].StatusData.batteryStatus);
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ }
+ }
+ else
+ {
+ lbAlarm.Text = "COMM FAIL";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+ else
+ {
+ lbAlarm.Text = "OFF LINE";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+
+ private void DisplayStatusStrRs485()
+ {
+ if (SystemData[ModuleID - 1].CommFail == false)
+ {
+ if (SystemData[ModuleID - 1].ShelfCommFail == false)
+ {
+ if ((SystemData[ModuleID - 1].StatusData.batteryStatus == 4)
+ || (SystemData[ModuleID - 1].StatusData.batteryStatus == 5))
+ {
+ lbStatus.Text = "PWR-OFF";
+ lbStatus.ForeColor = Color.Red;
+ }
+ else if (SystemData[ModuleID - 1].StatusData.batteryStatus == 2)
+ {
+ lbStatus.Text = "TRIP";
+ lbStatus.ForeColor = Color.Red;
+ }
+ else
+ {
+ switch (SystemData[ModuleID - 1].StatusData.status)
+ {
+ case 0x0000: // Stand by
+ lbStatus.Text = "STANDBY";
+ lbStatus.ForeColor = Color.Black;
+ break;
+ case 0x0001: // Charging
+ lbStatus.Text = "CHARGING";
+ lbStatus.ForeColor = Color.Blue;
+ break;
+ case 0x0002: // Discharging
+ lbStatus.Text = "DISCHARGING";
+ lbStatus.ForeColor = Color.Magenta;
+ break;
+ case 0x0003: // Float Charging
+ lbStatus.Text = "FLOATING";
+ lbStatus.ForeColor = Color.Black;
+ break;
+ case 0x0004: // Warming Up
+ lbStatus.Text = "WARMING UP";
+ lbStatus.ForeColor = Color.Black;
+ break;
+ default:
+ lbStatus.Text = string.Format("UNKNOWN({0})", SystemData[ModuleID - 1].StatusData.status);
+ lbStatus.ForeColor = Color.Black;
+ break;
+ }
+ }
+ }
+ else
+ {
+ lbStatus.Text = "COMM FAIL";
+ lbStatus.ForeColor = Color.Red;
+ }
+ }
+ else
+ {
+ lbStatus.Text = "OFF LINE";
+ lbStatus.ForeColor = Color.Red;
+ }
+ }
+
+ private void DisplayAlarmStrRs485()
+ {
+ if (SystemData[ModuleID - 1].CommFail == false)
+ {
+ if (SystemData[ModuleID - 1].ShelfCommFail == false)
+ {
+ switch (SystemData[ModuleID - 1].StatusData.batteryStatus)
+ {
+ case 0: // NORMAL
+ lbAlarm.Text = "NORMAL";
+ lbAlarm.ForeColor = System.Drawing.Color.Green;
+ break;
+ case 1: // WARNING
+ lbAlarm.Text = "WARNING";
+ lbAlarm.ForeColor = System.Drawing.Color.Orange;
+ break;
+ case 2: // FAULT
+ lbAlarm.Text = "FAULT";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ case 3: // WARMING UP
+ lbAlarm.Text = "WARMING UP";
+ lbAlarm.ForeColor = System.Drawing.Color.Black;
+ break;
+ case 4: // FAULT (Anti-Theft GyroScope.)
+ lbAlarm.Text = "FAULT (GyroScope)";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ case 5: // FAULT (Anti-Theft Gyro-Scope)
+ lbAlarm.Text = "FAULT (Comm)";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ default:
+ lbAlarm.Text = string.Format("UNKNOWN ({0})", SystemData[ModuleID - 1].StatusData.batteryStatus);
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ }
+ }
+ else
+ {
+ lbAlarm.Text = "COMM FAIL";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+ else
+ {
+ lbAlarm.Text = "OFF LINE";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+
+ private void DisplayStatusStrSnmp()
+ {
+ if (SystemData[0].CommFail == false)
+ {
+ if (SystemData[0].ShelfCommFail == false)
+ {
+ if ((SystemData[0].StatusData.batteryStatus == 4)
+ || (SystemData[0].StatusData.batteryStatus == 5))
+ {
+ lbStatus.Text = "PWR-OFF";
+ lbStatus.ForeColor = Color.Red;
+ }
+ else
+ {
+ switch (SystemData[0].StatusData.status)
+ {
+ case 0x0000: // Stand by
+ lbStatus.Text = "STANDBY";
+ lbStatus.ForeColor = Color.Black;
+ break;
+ case 0x0001: // Charging
+ lbStatus.Text = "CHARGING";
+ lbStatus.ForeColor = Color.Blue;
+ break;
+ case 0x0002: // Discharging
+ lbStatus.Text = "DISCHARGING";
+ lbStatus.ForeColor = Color.Magenta;
+ break;
+ case 0x0004: // PROTECT
+ lbStatus.Text = "TRIP";
+ lbStatus.ForeColor = Color.Red;
+ break;
+ case 0x0008: // Charging Lmt
+ lbStatus.Text = "CHG-LIMIT";
+ lbStatus.ForeColor = Color.Blue;
+ break;
+ default:
+ lbStatus.Text = "UNKNOWN";
+ lbStatus.ForeColor = Color.Black;
+ break;
+ }
+ }
+ }
+ else
+ {
+ lbStatus.Text = "COMM FAIL";
+ lbStatus.ForeColor = Color.Red;
+ }
+ }
+ else
+ {
+ lbStatus.Text = "OFF LINE";
+ lbStatus.ForeColor = Color.Red;
+ }
+ }
+
+ private void DisplayAlarmStrSnmp()
+ {
+ if (SystemData[0].CommFail == false)
+ {
+ if (SystemData[0].ShelfCommFail == false)
+ {
+ switch (SystemData[0].StatusData.batteryStatus)
+ {
+ case 0: // NORMAL
+ lbAlarm.Text = "NORMAL";
+ lbAlarm.ForeColor = System.Drawing.Color.Green;
+ break;
+ case 1: // WARNING
+ lbAlarm.Text = "WARNING";
+ lbAlarm.ForeColor = System.Drawing.Color.Orange;
+ break;
+ case 2: // FAULT
+ lbAlarm.Text = "FAULT";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ case 3: // WARMING UP
+ lbAlarm.Text = "WARMING UP";
+ lbAlarm.ForeColor = System.Drawing.Color.Black;
+ break;
+ case 4: // FAULT (Anti-Theft GyroScope.)
+ lbAlarm.Text = "FAULT (GyroScope)";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ case 5: // FAULT (Anti-Theft Gyro-Scope)
+ lbAlarm.Text = "FAULT (Comm)";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ default:
+ lbAlarm.Text = string.Format("UNKNOWN ({0})", SystemData[0].StatusData.batteryStatus);
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ break;
+ }
+ }
+ else
+ {
+ lbAlarm.Text = "COMM FAIL";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+ else
+ {
+ lbAlarm.Text = "OFF LINE";
+ lbAlarm.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+
+ private void DisplayAlarmUart()
+ {
+ bool[] aFault = csUtils.Int16ToBitArray(SystemData[ModuleID - 1].StatusData.protection);
+ bool[] aWarining = csUtils.Int16ToBitArray(SystemData[ModuleID - 1].StatusData.warning);
+ bool aCommfail;
+
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ aCommfail = SystemData[ModuleID - 1].ShelfCommFail;
+ break;
+ case csConstData.CommType.COMM_RS485:
+ aCommfail = SystemData[ModuleID - 1].ShelfCommFail;
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ aCommfail = SystemData[ModuleID - 1].CommFail;
+ break;
+ default:
+ break;
+ }
+
+ for (int i = 0; i < 8; i++)
+ {
+ if (aFault[i] == true)
+ alarmTrip[i].SetValue(2);
+ else if (aWarining[i] == true)
+ alarmTrip[i].SetValue(1);
+ else
+ alarmTrip[i].SetValue(0);
+
+ // Charge Over Current protect
+ if (i == 6)
+ {
+ if ((aFault[i] == true) && (aFault[i]))
+ alarmTrip[i].SetValue(2);
+ else if (aWarining[i] == true)
+ alarmTrip[i].SetValue(1);
+ else
+ alarmTrip[i].SetValue(0);
+ }
+ }
+
+ // Cell Voltage Difference
+ if (aFault[9] == true)
+ {
+ alarmTrip[9].SetName("Cell Volt Diff");
+ alarmTrip[9].SetValue(2);
+ }
+ else if (aWarining[9] == true)
+ {
+ alarmTrip[9].SetName("Cell Volt Diff");
+ alarmTrip[9].SetValue(1);
+ }
+ else
+ {
+ if ((SystemData[ModuleID - 1].StatusData.specialAlarm & 0x0004) != 0)
+ {
+ alarmTrip[9].SetName("CB OFF");
+ alarmTrip[9].SetValue(1);
+ }
+ else
+ {
+ alarmTrip[9].SetName("ETC. Alarm");
+ alarmTrip[9].SetValue(0);
+ }
+ }
+
+ // Low SOC
+ if (aWarining[11] == true)
+ alarmTrip[8].SetValue(1);
+ else
+ alarmTrip[8].SetValue(0);
+ }
+
+ private void DisplayAlarmUart124050()
+ {
+ bool[] aFault = csUtils.Int16ToBitArray(SystemData[ModuleID - 1].StatusData.protection);
+ bool[] aWarining = csUtils.Int16ToBitArray(SystemData[ModuleID - 1].StatusData.warning);
+ bool aCommfail;
+
+ aCommfail = SystemData[ModuleID - 1].ShelfCommFail;
+
+ for (int i = 0; i < 8; i++)
+ {
+ if (aFault[i] == true)
+ alarmTrip[i].SetValue(2);
+ else if (aWarining[i] == true)
+ alarmTrip[i].SetValue(1);
+ else
+ alarmTrip[i].SetValue(0);
+
+ // Charge Over Current protect
+ if (i == 6)
+ {
+ if ((aFault[i] == true) && (aFault[i]))
+ alarmTrip[i].SetValue(2);
+ else if (aWarining[i] == true)
+ alarmTrip[i].SetValue(1);
+ else
+ alarmTrip[i].SetValue(0);
+ }
+ }
+
+ // Cell Voltage Difference
+ if (aFault[9] == true)
+ {
+ alarmTrip[9].SetName("Cell Volt Diff");
+ alarmTrip[9].SetValue(2);
+ }
+ else if (aWarining[9] == true)
+ {
+ alarmTrip[9].SetName("Cell Volt Diff");
+ alarmTrip[9].SetValue(1);
+ }
+ else
+ {
+ if ((SystemData[ModuleID - 1].StatusData.specialAlarm & 0x4000) != 0)
+ {
+ alarmTrip[9].SetName("CB OFF");
+ alarmTrip[9].SetValue(1);
+ }
+ else
+ {
+ alarmTrip[9].SetName("ETC. Alarm");
+ alarmTrip[9].SetValue(0);
+ }
+ }
+
+ // Low SOC
+ if (aWarining[11] == true)
+ alarmTrip[8].SetValue(1);
+ else
+ alarmTrip[8].SetValue(0);
+ }
+
+ private void DisplayAlarmRs485()
+ {
+ bool[] aFault = csUtils.Int16ToBitArray(SystemData[ModuleID - 1].StatusData.protection);
+ bool[] aWarining = csUtils.Int16ToBitArray(SystemData[ModuleID - 1].StatusData.warning);
+ bool aCommfail;
+
+ if (Config.ModuleQty == 1)
+ {
+ aCommfail = SystemData[ModuleID - 1].ShelfCommFail;
+ }
+ else
+ {
+ aCommfail = SystemData[ModuleID - 1].CommFail;
+ }
+
+ for (int i = 0; i < 8; i++)
+ {
+ if (aFault[i] == true)
+ alarmTrip[i].SetValue(2);
+ else if (aWarining[i] == true)
+ alarmTrip[i].SetValue(1);
+ else
+ alarmTrip[i].SetValue(0);
+
+ // Charge Over Current protect
+ if (i == 6)
+ {
+ if ((aFault[i] == true) && (aFault[i]))
+ alarmTrip[i].SetValue(2);
+ else if (aWarining[i] == true)
+ alarmTrip[i].SetValue(1);
+ else
+ alarmTrip[i].SetValue(0);
+ }
+ }
+
+ // Low SOC
+ if (aWarining[11] == true)
+ alarmTrip[8].SetValue(1);
+ else
+ alarmTrip[8].SetValue(0);
+
+ // Cell Voltage Difference
+ // Cell ETC. Alarm
+ if (aFault[8] == true)
+ {
+ // Short Circuit Protect
+ alarmTrip[9].SetName("Short Circuit");
+ alarmTrip[9].SetValue(2);
+ }
+ else if (aWarining[9] == true)
+ {
+ alarmTrip[9].SetName("Cell Volt Diff");
+ alarmTrip[9].SetValue(1);
+ }
+ else if (aWarining[13] == true)
+ {
+ alarmTrip[9].SetName("CB OFF");
+ alarmTrip[9].SetValue(1);
+ }
+ else if (aWarining[14] == true)
+ {
+ alarmTrip[9].SetName("ENV OT");
+ alarmTrip[9].SetValue(1);
+ }
+ else if (aWarining[15] == true)
+ {
+ alarmTrip[9].SetName("ENV UT");
+ alarmTrip[9].SetValue(1);
+ }
+ else
+ {
+ alarmTrip[9].SetName("ETC. Alarm");
+ alarmTrip[9].SetValue(0);
+ }
+ }
+
+ private void DisplayAlarmSnmp()
+ {
+ bool[] aFault = csUtils.Int16ToBitArray(SystemData[0].StatusData.protection);
+ bool[] aWarining = csUtils.Int16ToBitArray(SystemData[0].StatusData.warning);
+ bool aCommfail;
+
+ if (Config.CommType == 0)
+ {
+ aCommfail = SystemData[0].ShelfCommFail;
+ }
+ else
+ {
+ aCommfail = SystemData[0].CommFail;
+ }
+
+ for (int i = 0; i < 8; i++)
+ {
+ if (aFault[i] == true)
+ alarmTrip[i].SetValue(2);
+ else if (aWarining[i] == true)
+ alarmTrip[i].SetValue(1);
+ else
+ alarmTrip[i].SetValue(0);
+
+ // Charge Over Current protect
+ if (i == 6)
+ {
+ if ((aFault[i] == true) && (aFault[i]))
+ alarmTrip[i].SetValue(2);
+ else if (aWarining[i] == true)
+ alarmTrip[i].SetValue(1);
+ else
+ alarmTrip[i].SetValue(0);
+ }
+ }
+
+ // Low SOC
+ if (aWarining[11] == true) { alarmTrip[8].SetValue(1); }
+ else { alarmTrip[8].SetValue(0); }
+
+ // ETC. Alarm
+ if (aFault[9] == true)
+ {
+ // Short Circuit Protect
+ alarmTrip[9].SetName("Short Circuit");
+ alarmTrip[9].SetValue(2);
+ }
+ else if (aWarining[13] == true)
+ {
+ // Cell Voltage Diff
+ alarmTrip[9].SetName("Cell Volt Diff");
+ alarmTrip[9].SetValue(1);
+ }
+ else if (aWarining[14] == true)
+ {
+ // Circuit Breaker Off
+ alarmTrip[9].SetName("CB OFF");
+ alarmTrip[9].SetValue(1);
+ }
+ else if (aWarining[8] == true)
+ {
+ alarmTrip[9].SetName("ENV OT");
+ alarmTrip[9].SetValue(1);
+ }
+ else if (aWarining[9] == true)
+ {
+ alarmTrip[9].SetName("ENV UT");
+ alarmTrip[9].SetValue(1);
+ }
+ else
+ {
+ alarmTrip[9].SetName("ETC. Alarm");
+ alarmTrip[9].SetValue(0);
+ }
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+
+ private void btnParam_Click(object sender, EventArgs e)
+ {
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ foreach (Form frm in Application.OpenForms)
+ {
+ if (frm.Name == "fmxParamConfig")
+ {
+ frm.Activate();
+ return;
+ }
+ }
+ fmxParamConfig ParamConfigForm = new fmxParamConfig(ModuleID, Config, SystemData[ModuleID - 1].ParamData);
+
+ ParamConfigForm.OnUpdate += UpdateParam;
+ ParamConfigForm.OnCommand += ParamSetCmd;
+ ParamConfigForm.Show();
+ break;
+ case csConstData.CommType.COMM_RS485:
+ FmxInformation InformationForm1 = new FmxInformation(ModuleID, Config, ref SystemData[ModuleID - 1]);
+
+ InformationForm1.ShowDialog();
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ FmxInformation InformationForm2 = new FmxInformation(ModuleID, Config, ref SystemData[ModuleID - 1]);
+
+ InformationForm2.ShowDialog();
+ break;
+ default:
+ break;
+ }
+ }
+
+ private void btnCalibration_Click(object sender, EventArgs e)
+ {
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ fmxCalibration CalibrationForm =
+ new fmxCalibration(ModuleID, Config, SystemData[ModuleID - 1].ParamData, SystemData[ModuleID - 1].CalibrationData);
+
+ CalibrationForm.OnUpdate += UpdateCalibration;
+ CalibrationForm.OnCommand += ParamSetCmd;
+ CalibrationForm.ShowDialog();
+ break;
+ case csConstData.CommType.COMM_RS485:
+ fmxAntiTheft AntiTheftForm = new fmxAntiTheft(ModuleID, SystemData[ModuleID - 1].CalibrationData);
+
+ AntiTheftForm.OnUpdate += UpdateCalibrationRS485;
+ AntiTheftForm.OnCommand += AntiTheftSetCmd; // OnSendUartData
+ AntiTheftForm.OnSendUartData += OnSendUartData;
+ AntiTheftForm.ShowDialog();
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ break;
+ }
+ }
+
+ #endregion
+
+ #region CONTROL EVENT FUNCTION
+
+ private void UpdateParam(object sendor)
+ {
+ ((fmxParamConfig)sendor).UpdateData(SystemData[ModuleID - 1].ParamData, SystemData[ModuleID - 1].CalibrationData);
+ }
+
+ private void UpdateCalibration(object sendor)
+ {
+ ((fmxCalibration)sendor).UpdateData(SystemData[ModuleID - 1].ParamData, SystemData[ModuleID - 1].CalibrationData, SystemData[ModuleID - 1]);
+ }
+
+ private void UpdateCalibrationRS485(object sendor)
+ {
+ ((fmxAntiTheft)sendor).UpdateData(SystemData[ModuleID - 1].ParamData, SystemData[ModuleID - 1].CalibrationData, SystemData[ModuleID - 1]);
+ }
+
+ private void ParamSetCmd(int mID, int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib)
+ {
+ OnCommand?.Invoke(mID, mode, index, flag, ref aParam, ref aCalib);
+ }
+
+ // RS485 Control Function
+ private void AntiTheftSetCmd(int mID, int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib)
+ {
+ OnCommand?.Invoke(mID, mode, index, flag, ref aParam, ref aCalib);
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/ucShelfStatus.resx b/LFP_Manager/Controls/ucShelfStatus.resx
new file mode 100644
index 0000000..9427740
--- /dev/null
+++ b/LFP_Manager/Controls/ucShelfStatus.resx
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ True
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucStatus.Designer.cs b/LFP_Manager/Controls/ucStatus.Designer.cs
new file mode 100644
index 0000000..df7f47b
--- /dev/null
+++ b/LFP_Manager/Controls/ucStatus.Designer.cs
@@ -0,0 +1,188 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucStatus
+ {
+ ///
+ /// 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 Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.pcStatus = new DevExpress.XtraEditors.PanelControl();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lcStatus = new DevExpress.XtraEditors.LabelControl();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pcStatus)).BeginInit();
+ this.pcStatus.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit();
+ this.layoutControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(236)))), ((int)(((byte)(239)))));
+ this.layoutControl1.Controls.Add(this.pcStatus);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(717, 178, 250, 350);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(147, 27);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1});
+ this.layoutControlGroup1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(147, 27);
+ this.layoutControlGroup1.Text = "Root";
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // pcStatus
+ //
+ this.pcStatus.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Style3D;
+ this.pcStatus.Controls.Add(this.layoutControl2);
+ this.pcStatus.Location = new System.Drawing.Point(1, 1);
+ this.pcStatus.Margin = new System.Windows.Forms.Padding(0);
+ this.pcStatus.Name = "pcStatus";
+ this.pcStatus.Size = new System.Drawing.Size(145, 25);
+ this.pcStatus.TabIndex = 4;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.pcStatus;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlItem1.Size = new System.Drawing.Size(147, 27);
+ this.layoutControlItem1.Text = "layoutControlItem1";
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextToControlDistance = 0;
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // layoutControl2
+ //
+ this.layoutControl2.Controls.Add(this.lcStatus);
+ this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl2.Location = new System.Drawing.Point(2, 2);
+ this.layoutControl2.Name = "layoutControl2";
+ this.layoutControl2.Padding = new System.Windows.Forms.Padding(1);
+ this.layoutControl2.Root = this.layoutControlGroup2;
+ this.layoutControl2.Size = new System.Drawing.Size(141, 21);
+ this.layoutControl2.TabIndex = 0;
+ this.layoutControl2.Text = "layoutControl2";
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup2";
+ this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup2.GroupBordersVisible = false;
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem2});
+ this.layoutControlGroup2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup2.Name = "layoutControlGroup2";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(141, 21);
+ this.layoutControlGroup2.Text = "layoutControlGroup2";
+ this.layoutControlGroup2.TextVisible = false;
+ //
+ // lcStatus
+ //
+ this.lcStatus.Appearance.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lcStatus.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lcStatus.Location = new System.Drawing.Point(2, 2);
+ this.lcStatus.Name = "lcStatus";
+ this.lcStatus.Size = new System.Drawing.Size(137, 17);
+ this.lcStatus.StyleController = this.layoutControl2;
+ this.lcStatus.TabIndex = 4;
+ this.lcStatus.Text = "labelControl1";
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.lcStatus;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlItem2.Size = new System.Drawing.Size(139, 19);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.Text = "layoutControlItem2";
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextToControlDistance = 0;
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // ucStatus
+ //
+ this.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(236)))), ((int)(((byte)(239)))));
+ this.Appearance.Options.UseBackColor = true;
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.layoutControl1);
+ this.MinimumSize = new System.Drawing.Size(0, 27);
+ this.Name = "ucStatus";
+ this.Size = new System.Drawing.Size(147, 27);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pcStatus)).EndInit();
+ this.pcStatus.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit();
+ this.layoutControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.PanelControl pcStatus;
+ private DevExpress.XtraLayout.LayoutControl layoutControl2;
+ private DevExpress.XtraEditors.LabelControl lcStatus;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ }
+}
diff --git a/LFP_Manager/Controls/ucStatus.cs b/LFP_Manager/Controls/ucStatus.cs
new file mode 100644
index 0000000..8febe9c
--- /dev/null
+++ b/LFP_Manager/Controls/ucStatus.cs
@@ -0,0 +1,49 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+namespace LFP_Manager.Controls
+{
+ public partial class ucStatus : DevExpress.XtraEditors.XtraUserControl
+ {
+ public ucStatus()
+ {
+ InitializeComponent();
+ }
+
+ public void SetName(string name)
+ {
+ lcStatus.Text = " " + name + " ";
+ }
+
+ public void SetTextWidth(int width)
+ {
+ lcStatus.Size = new System.Drawing.Size(width, 14);
+ }
+
+ public void SetValue(int nValue)
+ {
+ switch (nValue)
+ {
+ case 0:
+ pcStatus.BackColor = System.Drawing.Color.Green;
+ lcStatus.ForeColor = System.Drawing.Color.White;
+ break;
+ case 1:
+ pcStatus.BackColor = System.Drawing.Color.Orange;
+ lcStatus.ForeColor = System.Drawing.Color.Black;
+ break;
+ case 2:
+ pcStatus.BackColor = System.Drawing.Color.Red;
+ lcStatus.ForeColor = System.Drawing.Color.White;
+ break;
+ }
+ }
+ }
+}
diff --git a/LFP_Manager/Controls/ucStatus.resx b/LFP_Manager/Controls/ucStatus.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Controls/ucStatus.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucTargetControl.Designer.cs b/LFP_Manager/Controls/ucTargetControl.Designer.cs
new file mode 100644
index 0000000..3fd6f85
--- /dev/null
+++ b/LFP_Manager/Controls/ucTargetControl.Designer.cs
@@ -0,0 +1,298 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucTargetControl
+ {
+ ///
+ /// 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 Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.gcTargetConfig = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
+ this.lbStatus = new DevExpress.XtraEditors.LabelControl();
+ this.lbTargetInfo = new DevExpress.XtraEditors.LabelControl();
+ this.btnConfig = new DevExpress.XtraEditors.SimpleButton();
+ this.btnStart = new DevExpress.XtraEditors.SimpleButton();
+ this.lbTarget = new DevExpress.XtraEditors.LabelControl();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.gcTargetConfig)).BeginInit();
+ this.gcTargetConfig.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit();
+ this.layoutControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.AllowCustomization = false;
+ this.layoutControl1.Controls.Add(this.gcTargetConfig);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(803, 61);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // gcTargetConfig
+ //
+ this.gcTargetConfig.Controls.Add(this.layoutControl2);
+ this.gcTargetConfig.Location = new System.Drawing.Point(3, 3);
+ this.gcTargetConfig.Name = "gcTargetConfig";
+ this.gcTargetConfig.Size = new System.Drawing.Size(797, 55);
+ this.gcTargetConfig.TabIndex = 6;
+ this.gcTargetConfig.Text = "Target Config";
+ //
+ // layoutControl2
+ //
+ this.layoutControl2.AllowCustomization = false;
+ this.layoutControl2.Controls.Add(this.lbStatus);
+ this.layoutControl2.Controls.Add(this.lbTargetInfo);
+ this.layoutControl2.Controls.Add(this.btnConfig);
+ this.layoutControl2.Controls.Add(this.btnStart);
+ this.layoutControl2.Controls.Add(this.lbTarget);
+ this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl2.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl2.Name = "layoutControl2";
+ this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(932, 307, 250, 350);
+ this.layoutControl2.Root = this.layoutControlGroup2;
+ this.layoutControl2.Size = new System.Drawing.Size(793, 30);
+ this.layoutControl2.TabIndex = 0;
+ this.layoutControl2.Text = "layoutControl2";
+ //
+ // lbStatus
+ //
+ this.lbStatus.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbStatus.Appearance.Options.UseFont = true;
+ this.lbStatus.Appearance.Options.UseTextOptions = true;
+ this.lbStatus.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbStatus.Location = new System.Drawing.Point(526, 4);
+ this.lbStatus.Name = "lbStatus";
+ this.lbStatus.Size = new System.Drawing.Size(77, 22);
+ this.lbStatus.StyleController = this.layoutControl2;
+ this.lbStatus.TabIndex = 9;
+ this.lbStatus.Text = "STOP";
+ //
+ // lbTargetInfo
+ //
+ this.lbTargetInfo.Appearance.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbTargetInfo.Appearance.Options.UseFont = true;
+ this.lbTargetInfo.Location = new System.Drawing.Point(78, 4);
+ this.lbTargetInfo.Name = "lbTargetInfo";
+ this.lbTargetInfo.Size = new System.Drawing.Size(444, 22);
+ this.lbTargetInfo.StyleController = this.layoutControl2;
+ this.lbTargetInfo.TabIndex = 8;
+ //
+ // btnConfig
+ //
+ this.btnConfig.Location = new System.Drawing.Point(607, 4);
+ this.btnConfig.Name = "btnConfig";
+ this.btnConfig.Size = new System.Drawing.Size(89, 22);
+ this.btnConfig.StyleController = this.layoutControl2;
+ this.btnConfig.TabIndex = 7;
+ this.btnConfig.Text = "CONFIG";
+ this.btnConfig.Click += new System.EventHandler(this.btnConfig_Click);
+ //
+ // btnStart
+ //
+ this.btnStart.Location = new System.Drawing.Point(700, 4);
+ this.btnStart.Name = "btnStart";
+ this.btnStart.Size = new System.Drawing.Size(89, 22);
+ this.btnStart.StyleController = this.layoutControl2;
+ this.btnStart.TabIndex = 6;
+ this.btnStart.Text = "START";
+ this.btnStart.Click += new System.EventHandler(this.btnStart_Click);
+ //
+ // lbTarget
+ //
+ this.lbTarget.Appearance.Options.UseTextOptions = true;
+ this.lbTarget.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbTarget.Location = new System.Drawing.Point(4, 4);
+ this.lbTarget.Name = "lbTarget";
+ this.lbTarget.Size = new System.Drawing.Size(70, 22);
+ this.lbTarget.StyleController = this.layoutControl2;
+ this.lbTarget.TabIndex = 4;
+ this.lbTarget.Text = "Target";
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup2.GroupBordersVisible = false;
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem2,
+ this.layoutControlItem4,
+ this.layoutControlItem3,
+ this.layoutControlItem5,
+ this.layoutControlItem6});
+ this.layoutControlGroup2.Name = "Root";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(793, 30);
+ this.layoutControlGroup2.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.lbTarget;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem2.MaxSize = new System.Drawing.Size(74, 0);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(74, 26);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.btnStart;
+ this.layoutControlItem4.CustomizationFormText = "layoutControlItem4";
+ this.layoutControlItem4.Location = new System.Drawing.Point(696, 0);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(53, 26);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(93, 26);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.btnConfig;
+ this.layoutControlItem3.CustomizationFormText = "layoutControlItem3";
+ this.layoutControlItem3.Location = new System.Drawing.Point(603, 0);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(57, 26);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(93, 26);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.lbTargetInfo;
+ this.layoutControlItem5.CustomizationFormText = "layoutControlItem5";
+ this.layoutControlItem5.Location = new System.Drawing.Point(74, 0);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(448, 26);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.lbStatus;
+ this.layoutControlItem6.CustomizationFormText = "layoutControlItem6";
+ this.layoutControlItem6.Location = new System.Drawing.Point(522, 0);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(81, 26);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1});
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(803, 61);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.gcTargetConfig;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(801, 59);
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // ucTargetControl
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.layoutControl1);
+ this.Name = "ucTargetControl";
+ this.Size = new System.Drawing.Size(803, 61);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.gcTargetConfig)).EndInit();
+ this.gcTargetConfig.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit();
+ this.layoutControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.GroupControl gcTargetConfig;
+ private DevExpress.XtraLayout.LayoutControl layoutControl2;
+ private DevExpress.XtraEditors.LabelControl lbTargetInfo;
+ private DevExpress.XtraEditors.SimpleButton btnConfig;
+ private DevExpress.XtraEditors.SimpleButton btnStart;
+ private DevExpress.XtraEditors.LabelControl lbTarget;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraEditors.LabelControl lbStatus;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ }
+}
diff --git a/LFP_Manager/Controls/ucTargetControl.cs b/LFP_Manager/Controls/ucTargetControl.cs
new file mode 100644
index 0000000..c26f9c9
--- /dev/null
+++ b/LFP_Manager/Controls/ucTargetControl.cs
@@ -0,0 +1,119 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+using LFP_Manager.Forms;
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+
+namespace LFP_Manager.Controls
+{
+ public partial class ucTargetControl : DevExpress.XtraEditors.XtraUserControl
+ {
+ public delegate void ButtonEvent(object sender, EventArgs e);
+
+ #region VARIABLES
+
+ public event ButtonEvent OnConfig = null;
+ public event ButtonEvent OnStart = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public ucTargetControl()
+ {
+ InitializeComponent();
+
+ lbStatus.Appearance.ForeColor = System.Drawing.Color.Red;
+ }
+
+ #endregion
+
+ #region UPDATE DATA
+
+ public void UpdateConfig(ref CommConfig Config)
+ {
+ string info = "";
+
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ if (Config.UartModelIndex >= csConstData.MODEL_STR.Length)
+ {
+ Config.UartModelIndex = 0;
+ }
+ info = String.Format("INTERFACE: RS-232 - {0}, MODEL: {1}" //, M-QTY: {2}, PROTOCOL: {2}"
+ , Config.UartPort
+ , csConstData.MODEL_STR[Config.UartModelIndex]
+ );
+ break;
+ case csConstData.CommType.COMM_RS485:
+ if (Config.UartModelIndex >= csConstData.MODEL_STR.Length)
+ {
+ Config.UartModelIndex = 0;
+ }
+ info = String.Format("INTERFACE: RS-485 - {0}, MODEL: {1}" //, M-QTY: {2}, PROTOCOL: {2}"
+ , Config.UartPort
+ , csConstData.MODEL_STR[Config.UartModelIndex]
+ );
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ if (Config.SnmpModelIndex >= csConstData.MODEL_STR.Length)
+ {
+ Config.SnmpModelIndex = 0;
+ }
+ info = String.Format("INTERFACE: SNMP - {0}, MODEL: {1}" //, M-QTY: {2}, PROTOCOL: {2}"
+ , Config.SnmpIP
+ , csConstData.MODEL_STR[Config.SnmpModelIndex]
+ );
+ break;
+ default:
+ break;
+ }
+
+ lbTargetInfo.Text = info;
+ }
+
+ public void UpdateStatus(bool flag)
+ {
+ if (flag)
+ {
+ btnConfig.Enabled = false;
+ btnStart.Text = "STOP";
+
+ lbStatus.Text = "RUN";
+ lbStatus.Appearance.ForeColor = System.Drawing.Color.Blue;
+ }
+ else
+ {
+ btnConfig.Enabled = true;
+ btnStart.Text = "START";
+
+ lbStatus.Text = "STOP";
+ lbStatus.Appearance.ForeColor = System.Drawing.Color.Red;
+ }
+ }
+ #endregion
+
+ #region BUTTON EVENT
+
+ private void btnConfig_Click(object sender, EventArgs e)
+ {
+ OnConfig?.Invoke(sender, e);
+ }
+
+ private void btnStart_Click(object sender, EventArgs e)
+ {
+ OnStart?.Invoke(sender, e);
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/ucTargetControl.resx b/LFP_Manager/Controls/ucTargetControl.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Controls/ucTargetControl.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Controls/ucTftpClientcs.Designer.cs b/LFP_Manager/Controls/ucTftpClientcs.Designer.cs
new file mode 100644
index 0000000..a829d32
--- /dev/null
+++ b/LFP_Manager/Controls/ucTftpClientcs.Designer.cs
@@ -0,0 +1,386 @@
+namespace LFP_Manager.Controls
+{
+ partial class ucTftpClientcs
+ {
+ ///
+ /// 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 Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.groupFwUpdate = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnSystemReset = new DevExpress.XtraEditors.SimpleButton();
+ this.btnReset = new DevExpress.XtraEditors.SimpleButton();
+ this.btnDownload = new DevExpress.XtraEditors.SimpleButton();
+ this.lbDownloadStatus = new DevExpress.XtraEditors.LabelControl();
+ this.btnFindFile = new DevExpress.XtraEditors.SimpleButton();
+ this.teFilename = new DevExpress.XtraEditors.TextEdit();
+ this.progressDownload = new DevExpress.XtraEditors.ProgressBarControl();
+ this.lbFilename = new DevExpress.XtraEditors.LabelControl();
+ this.lbDeviceInfo = new DevExpress.XtraEditors.LabelControl();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.groupFwUpdate)).BeginInit();
+ this.groupFwUpdate.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.teFilename.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.progressDownload.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ this.SuspendLayout();
+ //
+ // groupFwUpdate
+ //
+ this.groupFwUpdate.Controls.Add(this.layoutControl1);
+ this.groupFwUpdate.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.groupFwUpdate.Location = new System.Drawing.Point(0, 0);
+ this.groupFwUpdate.Name = "groupFwUpdate";
+ this.groupFwUpdate.Size = new System.Drawing.Size(462, 242);
+ this.groupFwUpdate.TabIndex = 0;
+ this.groupFwUpdate.Text = "Firmware Update";
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.btnSystemReset);
+ this.layoutControl1.Controls.Add(this.btnReset);
+ this.layoutControl1.Controls.Add(this.btnDownload);
+ this.layoutControl1.Controls.Add(this.lbDownloadStatus);
+ this.layoutControl1.Controls.Add(this.btnFindFile);
+ this.layoutControl1.Controls.Add(this.teFilename);
+ this.layoutControl1.Controls.Add(this.progressDownload);
+ this.layoutControl1.Controls.Add(this.lbFilename);
+ this.layoutControl1.Controls.Add(this.lbDeviceInfo);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(756, 30, 250, 350);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(458, 217);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // btnSystemReset
+ //
+ this.btnSystemReset.Location = new System.Drawing.Point(3, 185);
+ this.btnSystemReset.Name = "btnSystemReset";
+ this.btnSystemReset.Size = new System.Drawing.Size(140, 29);
+ this.btnSystemReset.StyleController = this.layoutControl1;
+ this.btnSystemReset.TabIndex = 14;
+ this.btnSystemReset.Text = "System Reset";
+ this.btnSystemReset.Click += new System.EventHandler(this.btnLcdHistoryDelete_Click);
+ //
+ // btnReset
+ //
+ this.btnReset.Location = new System.Drawing.Point(354, 185);
+ this.btnReset.Name = "btnReset";
+ this.btnReset.Size = new System.Drawing.Size(101, 29);
+ this.btnReset.StyleController = this.layoutControl1;
+ this.btnReset.TabIndex = 13;
+ this.btnReset.Text = "RBMS Reset";
+ this.btnReset.Click += new System.EventHandler(this.btnReset_Click);
+ //
+ // btnDownload
+ //
+ this.btnDownload.Enabled = false;
+ this.btnDownload.Location = new System.Drawing.Point(366, 35);
+ this.btnDownload.Name = "btnDownload";
+ this.btnDownload.Size = new System.Drawing.Size(89, 22);
+ this.btnDownload.StyleController = this.layoutControl1;
+ this.btnDownload.TabIndex = 12;
+ this.btnDownload.Text = "Update";
+ this.btnDownload.Click += new System.EventHandler(this.btnDownload_Click);
+ //
+ // lbDownloadStatus
+ //
+ this.lbDownloadStatus.Appearance.Options.UseTextOptions = true;
+ this.lbDownloadStatus.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.lbDownloadStatus.AutoSizeMode = DevExpress.XtraEditors.LabelAutoSizeMode.None;
+ this.lbDownloadStatus.Location = new System.Drawing.Point(3, 102);
+ this.lbDownloadStatus.Name = "lbDownloadStatus";
+ this.lbDownloadStatus.Size = new System.Drawing.Size(452, 79);
+ this.lbDownloadStatus.StyleController = this.layoutControl1;
+ this.lbDownloadStatus.TabIndex = 9;
+ this.lbDownloadStatus.Text = "None";
+ //
+ // btnFindFile
+ //
+ this.btnFindFile.Location = new System.Drawing.Point(273, 35);
+ this.btnFindFile.Name = "btnFindFile";
+ this.btnFindFile.Size = new System.Drawing.Size(89, 22);
+ this.btnFindFile.StyleController = this.layoutControl1;
+ this.btnFindFile.TabIndex = 8;
+ this.btnFindFile.Text = "Find...";
+ this.btnFindFile.Click += new System.EventHandler(this.btnFindFile_Click);
+ //
+ // teFilename
+ //
+ this.teFilename.Location = new System.Drawing.Point(105, 35);
+ this.teFilename.Name = "teFilename";
+ this.teFilename.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.teFilename.Properties.Appearance.Options.UseFont = true;
+ this.teFilename.Size = new System.Drawing.Size(164, 22);
+ this.teFilename.StyleController = this.layoutControl1;
+ this.teFilename.TabIndex = 7;
+ //
+ // progressDownload
+ //
+ this.progressDownload.Location = new System.Drawing.Point(3, 61);
+ this.progressDownload.Name = "progressDownload";
+ this.progressDownload.Size = new System.Drawing.Size(452, 37);
+ this.progressDownload.StyleController = this.layoutControl1;
+ this.progressDownload.TabIndex = 6;
+ //
+ // lbFilename
+ //
+ this.lbFilename.Location = new System.Drawing.Point(3, 35);
+ this.lbFilename.Name = "lbFilename";
+ this.lbFilename.Size = new System.Drawing.Size(98, 22);
+ this.lbFilename.StyleController = this.layoutControl1;
+ this.lbFilename.TabIndex = 5;
+ this.lbFilename.Text = " Filename";
+ //
+ // lbDeviceInfo
+ //
+ this.lbDeviceInfo.Location = new System.Drawing.Point(3, 3);
+ this.lbDeviceInfo.Name = "lbDeviceInfo";
+ this.lbDeviceInfo.Size = new System.Drawing.Size(452, 28);
+ this.lbDeviceInfo.StyleController = this.layoutControl1;
+ this.lbDeviceInfo.TabIndex = 4;
+ this.lbDeviceInfo.Text = " Device Information";
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1,
+ this.layoutControlItem2,
+ this.layoutControlItem3,
+ this.emptySpaceItem1,
+ this.layoutControlItem4,
+ this.layoutControlItem5,
+ this.layoutControlItem6,
+ this.layoutControlItem9,
+ this.layoutControlItem7,
+ this.layoutControlItem8});
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(458, 217);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.lbDeviceInfo;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(456, 32);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.lbFilename;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 32);
+ this.layoutControlItem2.MaxSize = new System.Drawing.Size(102, 0);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(102, 18);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(102, 26);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.progressDownload;
+ this.layoutControlItem3.CustomizationFormText = "layoutControlItem3";
+ this.layoutControlItem3.Location = new System.Drawing.Point(0, 58);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(54, 16);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(456, 41);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1";
+ this.emptySpaceItem1.Location = new System.Drawing.Point(144, 182);
+ this.emptySpaceItem1.MinSize = new System.Drawing.Size(104, 24);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(207, 33);
+ this.emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.teFilename;
+ this.layoutControlItem4.CustomizationFormText = "layoutControlItem4";
+ this.layoutControlItem4.Location = new System.Drawing.Point(102, 32);
+ this.layoutControlItem4.MaxSize = new System.Drawing.Size(0, 26);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(54, 26);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(168, 26);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.btnFindFile;
+ this.layoutControlItem5.CustomizationFormText = "layoutControlItem5";
+ this.layoutControlItem5.Location = new System.Drawing.Point(270, 32);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(93, 26);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.lbDownloadStatus;
+ this.layoutControlItem6.CustomizationFormText = "layoutControlItem6";
+ this.layoutControlItem6.Location = new System.Drawing.Point(0, 99);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(456, 83);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // layoutControlItem9
+ //
+ this.layoutControlItem9.Control = this.btnDownload;
+ this.layoutControlItem9.CustomizationFormText = "layoutControlItem9";
+ this.layoutControlItem9.Location = new System.Drawing.Point(363, 32);
+ this.layoutControlItem9.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem9.Name = "layoutControlItem9";
+ this.layoutControlItem9.Size = new System.Drawing.Size(93, 26);
+ this.layoutControlItem9.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem9.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem9.TextVisible = false;
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.btnReset;
+ this.layoutControlItem7.CustomizationFormText = "layoutControlItem7";
+ this.layoutControlItem7.Location = new System.Drawing.Point(351, 182);
+ this.layoutControlItem7.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(105, 33);
+ this.layoutControlItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem7.TextVisible = false;
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.btnSystemReset;
+ this.layoutControlItem8.CustomizationFormText = "layoutControlItem8";
+ this.layoutControlItem8.Location = new System.Drawing.Point(0, 182);
+ this.layoutControlItem8.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(144, 33);
+ this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem8.TextVisible = false;
+ //
+ // ucTftpClientcs
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.groupFwUpdate);
+ this.Name = "ucTftpClientcs";
+ this.Size = new System.Drawing.Size(462, 242);
+ ((System.ComponentModel.ISupportInitialize)(this.groupFwUpdate)).EndInit();
+ this.groupFwUpdate.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.teFilename.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.progressDownload.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraEditors.GroupControl groupFwUpdate;
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.SimpleButton btnFindFile;
+ private DevExpress.XtraEditors.TextEdit teFilename;
+ private DevExpress.XtraEditors.ProgressBarControl progressDownload;
+ private DevExpress.XtraEditors.LabelControl lbFilename;
+ private DevExpress.XtraEditors.LabelControl lbDeviceInfo;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraEditors.LabelControl lbDownloadStatus;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraEditors.SimpleButton btnDownload;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
+ private DevExpress.XtraEditors.SimpleButton btnReset;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ private DevExpress.XtraEditors.SimpleButton btnSystemReset;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ }
+}
diff --git a/LFP_Manager/Controls/ucTftpClientcs.cs b/LFP_Manager/Controls/ucTftpClientcs.cs
new file mode 100644
index 0000000..a5c1c19
--- /dev/null
+++ b/LFP_Manager/Controls/ucTftpClientcs.cs
@@ -0,0 +1,256 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+using System.Threading;
+using System.Net;
+using System.IO;
+using Tftp.Net;
+
+using LFP_Manager.Utils;
+using LFP_Manager.DataStructure;
+
+namespace LFP_Manager.Controls
+{
+ public delegate void ResetEvent(object sender, int mode, UInt32 value);
+
+ public partial class ucTftpClientcs : DevExpress.XtraEditors.XtraUserControl
+ {
+ #region CONST
+
+ const string BMCB_FILE_NAME = "App.bin";
+ const string mBMS_FILE_NAME = "mBMS_APP_DL.bin";
+
+ #endregion
+
+ #region VARIABLES
+
+ int ID = 0;
+ string hostIP = "";
+ byte[] RbmsVersion;
+ string TarGetFileName = "";
+
+ int transferedBytes = 0;
+
+ public event ResetEvent OnReset = null;
+
+ #endregion
+
+ #region CONSTRUCTOR
+
+ public ucTftpClientcs()
+ {
+ InitializeComponent();
+
+ TarGetFileName = "APP.BIN";
+ }
+
+ #endregion
+
+ #region RESET EVENT
+
+ private void OnResetEvent(object sender, int mode, UInt16 value)
+ {
+ if (OnReset != null)
+ {
+ OnReset(sender, mode, value);
+ }
+ }
+
+ #endregion
+
+ #region INFORMATION UPDATE
+
+ public void UpdateInfor(int sid, string IpAddr, byte[] fwVersion)
+ {
+ ID = sid;
+ hostIP = IpAddr;
+ RbmsVersion = fwVersion;
+
+ lbDeviceInfo.Text = String.Format(" RBMS ID: {0} IP: {1}"
+ , sid + 1
+ , hostIP
+ );
+ }
+
+ #endregion
+
+ #region TFTP FUNCTION
+
+ public void FwDownload(string host, string filename)
+ {
+ //Setup a TftpClient instance
+ TftpClient client = new TftpClient(host);
+ ITftpTransfer transfer = client.Upload(TarGetFileName);
+
+ transfer.RetryTimeout = TimeSpan.FromMilliseconds(500);
+ transfer.RetryCount = 3;
+ transfer.TransferMode = TftpTransferMode.octet;
+
+ //Capture the events that may happen during the transfer
+ transfer.OnProgress += new TftpProgressHandler(transfer_OnProgress);
+ transfer.OnFinished += new TftpEventHandler(transfer_OnFinshed);
+ transfer.OnError += new TftpErrorHandler(transfer_OnError);
+
+ //Start the transfer and write the data that we're downloading into a memory stream
+ FileStream upLoadFile = new FileStream(teFilename.Text, FileMode.Open);
+ progressDownload.Properties.Maximum = (int)(upLoadFile.Length / 1024);
+ transfer.Start(upLoadFile);
+ }
+
+ void transfer_OnProgress(ITftpTransfer transfer, TftpTransferProgress progress)
+ {
+ string msg = String.Format("Transfer running. Progress: " + progress);
+ transferedBytes = progress.TransferredBytes / 1024;
+
+ TftpMsgProcess(msg, 0);
+ }
+
+ void transfer_OnError(ITftpTransfer transfer, TftpTransferError error)
+ {
+ string msg = String.Format("Transfer failed: " + error);
+
+ TftpMsgProcess(msg, 2);
+ }
+
+ void transfer_OnFinshed(ITftpTransfer transfer)
+ {
+ string msg = String.Format("Transfer succeeded.");
+
+ TftpMsgProcess(msg, 1);
+ }
+
+ private void TftpMsgProcess(string msg, int msgType)
+ {
+ if (this.InvokeRequired)
+ {
+ this.Invoke(new MethodInvoker(delegate()
+ {
+ lbDownloadStatus.Text = msg;
+ if (msgType == 0)
+ {
+ // transfer progress
+ progressDownload.Position = transferedBytes;
+ }
+ else if (msgType == 1)
+ {
+ progressDownload.Position = transferedBytes;
+ MessageBox.Show(msg, "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else if (msgType == 2)
+ {
+ MessageBox.Show(msg, "Result", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }));
+ }
+ else
+ {
+ lbDownloadStatus.Text = msg;
+ if (msgType == 0)
+ {
+ // transfer progress
+ progressDownload.Position = transferedBytes;
+ }
+ else if (msgType == 1)
+ {
+ progressDownload.Position = transferedBytes;
+ MessageBox.Show(msg, "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else if (msgType == 2)
+ {
+ MessageBox.Show(msg, "Result", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+
+ private void btnFindFile_Click(object sender, EventArgs e)
+ {
+ OpenFileDialog fwOpenFile;
+
+ fwOpenFile = new OpenFileDialog();
+
+ if (fwOpenFile.ShowDialog() == DialogResult.OK)
+ {
+ teFilename.Text = fwOpenFile.FileName;
+
+ byte[] bName = csUtils.StringToByte(Path.GetFileName(teFilename.Text));
+ if ((bName[0] == (byte)'B')
+ && (bName[1] == (byte)'M')
+ && (bName[2] == (byte)'C')
+ && (bName[3] == (byte)'B')
+ )
+ {
+ TarGetFileName = BMCB_FILE_NAME;
+ }
+ else if ((bName[0] == (byte)'m')
+ && (bName[1] == (byte)'B')
+ && (bName[2] == (byte)'M')
+ && (bName[3] == (byte)'S')
+ )
+ {
+ TarGetFileName = mBMS_FILE_NAME;
+ }
+
+ if (TarGetFileName != "")
+ lbDownloadStatus.Text = TarGetFileName;
+
+ btnDownload.Enabled = true;
+ }
+ }
+
+ private void btnDownload_Click(object sender, EventArgs e)
+ {
+ if ((hostIP != "")&&(teFilename.Text != ""))
+ {
+ FwDownload(hostIP, teFilename.Text);
+ }
+ }
+
+ #endregion
+
+ #region RBMS RESET EVENT
+
+ private void btnReset_Click(object sender, EventArgs e)
+ {
+ OnResetEvent(this, 1, csConstData.ResetCommandFlag.SystemReset);
+ }
+
+ private void btnLcdHistoryDelete_Click(object sender, EventArgs e)
+ {
+ OnResetEvent(this, 1, csConstData.ResetCommandFlag.SystemResetAll);
+ }
+
+ public void Reset_Result(string result, bool error)
+ {
+ if (this.InvokeRequired)
+ {
+ this.Invoke(new MethodInvoker(delegate()
+ {
+ if (error)
+ MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ else
+ MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }));
+ }
+ else
+ {
+ if (error)
+ MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ else
+ MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Controls/ucTftpClientcs.resx b/LFP_Manager/Controls/ucTftpClientcs.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Controls/ucTftpClientcs.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/DB Schema/DB_SCHEMA_TABLE.sql b/LFP_Manager/DB Schema/DB_SCHEMA_TABLE.sql
new file mode 100644
index 0000000..f845b66
--- /dev/null
+++ b/LFP_Manager/DB Schema/DB_SCHEMA_TABLE.sql
@@ -0,0 +1,49 @@
+/*
+ * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ * Table Name : TInventoryData
+ * Description : BMS Inventory Data
+ * createAt : 2020.12.02
+ * createBy : JK.Woo
+ * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ */
+drop table if exists TInventoryData;
+--drop sequence if exists inventory_data_seq;
+
+--create sequence inventory_data_seq start 1;
+
+create table TInventoryData
+(
+ manufacture_date integer not null ,
+ pcb_sn varchar(20) not null ,
+ module_sn varchar(32) null ,
+ create_date timestamp not null ,
+ modify_date timestamp not null ,
+
+ primary key (pcb_sn)
+);
+create index inventory_data_idx1 on TInventoryData (pcb_sn);
+create index inventory_data_idx2 on TInventoryData (module_sn);
+
+/*
+ * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ * Table Name : TErrorLogTable
+ * Description : Error Message Log Table
+ * createAt : 2019.11.04
+ * createBy : JK.Woo
+ * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ */
+drop table if exists TErrorLogTable;
+--drop sequence if exists module_group_seq;
+
+--create sequence module_group_seq start 1;
+
+create table TErrorLogTable
+(
+ create_date timestamp not null ,
+ pcb_sn varchar(20) not null ,
+ module_sn varchar(32) null ,
+ PROCESS varchar(20) not null ,
+ ERROR_TYPE varchar(100) not null ,
+ ERROR_MSG varchar(200) not null
+);
+
diff --git a/LFP_Manager/DB Schema/LOG_DB_SCHEMA_TABLE.sql b/LFP_Manager/DB Schema/LOG_DB_SCHEMA_TABLE.sql
new file mode 100644
index 0000000..15dc136
--- /dev/null
+++ b/LFP_Manager/DB Schema/LOG_DB_SCHEMA_TABLE.sql
@@ -0,0 +1,86 @@
+/********************************** BATTERY VALUE TABLE **************************************************/
+
+/*
+ * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ * Table Name : TModuleValue
+ * Description : Battery Module Value and Status Table
+ * createAt : 2021.03.04
+ * createBy : JK.Woo
+ * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ */
+drop table if exists TModuleValue;
+
+create table TModuleValue
+(
+ create_date timestamp not null ,
+ module_no smallint not null ,
+ model_name varchar(32) null ,
+ module_sn varchar(32) null ,
+ fw_ver varchar(10) null , -- "V2.4.1.4"
+ comm_fail BOOLEAN null ,
+ op_status smallint null ,
+ alarm_status smallint null ,
+ warning smallint null ,
+ fault smallint null ,
+ module_voltage NUMERIC null ,
+ module_current NUMERIC null ,
+ module_soc NUMERIC null ,
+ module_soh NUMERIC null ,
+ module_cyclecount NUMERIC null ,
+ cv_diff NUMERIC null ,
+ cell_voltage_01 NUMERIC null ,
+ cell_voltage_02 NUMERIC null ,
+ cell_voltage_03 NUMERIC null ,
+ cell_voltage_04 NUMERIC null ,
+ cell_voltage_05 NUMERIC null ,
+ cell_voltage_06 NUMERIC null ,
+ cell_voltage_07 NUMERIC null ,
+ cell_voltage_08 NUMERIC null ,
+ cell_voltage_09 NUMERIC null ,
+ cell_voltage_10 NUMERIC null ,
+ cell_voltage_11 NUMERIC null ,
+ cell_voltage_12 NUMERIC null ,
+ cell_voltage_13 NUMERIC null ,
+ cell_voltage_14 NUMERIC null ,
+ cell_voltage_15 NUMERIC null ,
+ cell_voltage_16 NUMERIC null ,
+ cell_voltage_17 NUMERIC null ,
+ cell_voltage_18 NUMERIC null ,
+ cell_voltage_19 NUMERIC null ,
+ cell_voltage_20 NUMERIC null ,
+ cell_voltage_21 NUMERIC null ,
+ cell_voltage_22 NUMERIC null ,
+ cell_voltage_23 NUMERIC null ,
+ cell_voltage_24 NUMERIC null ,
+ cell_voltage_25 NUMERIC null ,
+ cell_voltage_26 NUMERIC null ,
+ cell_voltage_27 NUMERIC null ,
+ cell_voltage_28 NUMERIC null ,
+ cell_voltage_29 NUMERIC null ,
+ cell_voltage_30 NUMERIC null ,
+ cell_voltage_31 NUMERIC null ,
+ cell_voltage_32 NUMERIC null ,
+ cell_voltage_33 NUMERIC null ,
+ cell_voltage_34 NUMERIC null ,
+ cell_voltage_35 NUMERIC null ,
+ cell_voltage_36 NUMERIC null ,
+ cell_voltage_37 NUMERIC null ,
+ cell_voltage_38 NUMERIC null ,
+ cell_voltage_39 NUMERIC null ,
+ tp_diff NUMERIC null ,
+ temperature_01 NUMERIC null ,
+ temperature_02 NUMERIC null ,
+ temperature_03 NUMERIC null ,
+ temperature_04 NUMERIC null ,
+ temperature_05 NUMERIC null ,
+ temperature_06 NUMERIC null ,
+ temperature_07 NUMERIC null ,
+ temperature_08 NUMERIC null ,
+ ext1_temp NUMERIC null ,
+ ext2_temp NUMERIC null ,
+ chg_option smallint null ,
+
+ primary key (create_date, module_no)
+);
+
+create index ModuleValue_data_idx1 on TModuleValue (create_date);
diff --git a/LFP_Manager/DataStructure/CsSnmpConstData.cs b/LFP_Manager/DataStructure/CsSnmpConstData.cs
new file mode 100644
index 0000000..753d9f0
--- /dev/null
+++ b/LFP_Manager/DataStructure/CsSnmpConstData.cs
@@ -0,0 +1,79 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace LFP_Manager.DataStructure
+{
+ internal class CsSnmpConstData
+ {
+ public static readonly string[] SnmpOidInfo =
+ {
+ ".1.3.6.1.2.1.15.1.0", // 0 Voltage - 10mV
+ ".1.3.6.1.2.1.15.2.0", // 1 Current - 10mA
+ ".1.3.6.1.2.1.15.3.0", // 2 #01 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.4.0", // 3 #02 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.5.0", // 4 #03 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.6.0", // 5 #04 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.7.0", // 6 #05 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.8.0", // 7 #06 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.9.0", // 8 #07 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.10.0", // 9 #08 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.11.0", // 10 #09 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.12.0", // 11 #10 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.13.0", // 12 #11 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.14.0", // 13 #12 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.15.0", // 14 #13 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.16.0", // 15 #14 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.17.0", // 16 #15 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.18.0", // 17 #16 Cell Voltage - mV
+
+ ".1.3.6.1.2.1.15.19.0", // 18 Temp of PCB - C
+ ".1.3.6.1.2.1.15.20.0", // 19 Temp of Ambient - C
+ ".1.3.6.1.2.1.15.21.0", // 20 Temp Max. - C
+ ".1.3.6.1.2.1.15.22.0", // 21 Remaining Capacity - 0.1AH
+
+ ".1.3.6.1.2.1.15.24.0", // 23 SOH - 0.00%
+ ".1.3.6.1.2.1.15.25.0", // 24 SOC - 0.00%
+ ".1.3.6.1.2.1.15.26.0", // 25 Status
+ ".1.3.6.1.2.1.15.27.0", // 26 Warning
+ ".1.3.6.1.2.1.15.28.0", // 27 Protection
+ ".1.3.6.1.2.1.15.29.0", // 28 FailAndStatus
+ ".1.3.6.1.2.1.15.30.0", // 29 Cycle Count
+
+ ".1.3.6.1.2.1.15.31.0", // 30 #01 Temp - C
+ ".1.3.6.1.2.1.15.32.0", // 31 #02 Temp - C
+ ".1.3.6.1.2.1.15.33.0", // 32 #03 Temp - C
+ ".1.3.6.1.2.1.15.34.0", // 33 #04 Temp - C
+
+ ".1.3.6.1.2.1.15.37.0", // 34 Cell Number
+ ".1.3.6.1.2.1.15.38.0", // 35 Designed Capacity - 0.1AH
+ ".1.3.6.1.2.1.15.39.0", // 36 Average Temp - C
+ ".1.3.6.1.2.1.15.40.0", // 37 Max Charge Current - A
+ ".1.3.6.1.2.1.15.41.0", // 38 Temp Number
+
+ ".1.3.6.1.2.1.15.42.0", // 39 DateTime - Year
+ ".1.3.6.1.2.1.15.43.0", // 40 DateTime - Month
+ ".1.3.6.1.2.1.15.44.0", // 41 DateTime - Date
+ ".1.3.6.1.2.1.15.45.0", // 42 DateTime - Hour
+ ".1.3.6.1.2.1.15.46.0", // 43 DateTime - Minute
+ ".1.3.6.1.2.1.15.47.0", // 44 DateTime - Second
+
+ ".1.3.6.1.2.1.15.48.0", // 45 Flaot Voltage - 0.00V
+ ".1.3.6.1.2.1.15.49.0", // 46 Boost Voltage - 0.00V
+
+ ".1.3.6.1.2.1.15.50.0", // 47 Min. Charge Temp - C
+ ".1.3.6.1.2.1.15.51.0", // 48 Max. Charge Temp - C
+
+ ".1.3.6.1.2.1.15.60.0", // 49 Model - String
+ ".1.3.6.1.2.1.15.61.0", // 50 BMS Firmware - String
+ ".1.3.6.1.2.1.15.62.0", // 51 Pack Serial Number - String
+ ".1.3.6.1.2.1.15.63.0", // 52 Vendor Name - String
+ ".1.3.6.1.2.1.15.64.0", // 53 Product Code - String
+ ".1.3.6.1.2.1.15.65.0", // 54 MajorMinorRev - String
+ ".1.3.6.1.2.1.15.66.0", // 55 HwProductRev - String
+ ".1.3.6.1.2.1.15.67.0", // 56 Manufacture Date - String
+ };
+ }
+}
diff --git a/LFP_Manager/DataStructure/CsSnmpConstData124050.cs b/LFP_Manager/DataStructure/CsSnmpConstData124050.cs
new file mode 100644
index 0000000..fc323f6
--- /dev/null
+++ b/LFP_Manager/DataStructure/CsSnmpConstData124050.cs
@@ -0,0 +1,106 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace LFP_Manager.DataStructure
+{
+ internal class CsSnmpConstData124050
+ {
+ public static readonly string[] SnmpOidInfo =
+ {
+ ".1.3.6.1.2.1.15.1.0", // 0 Voltage - 10mV
+ ".1.3.6.1.2.1.15.2.0", // 1 Current - 10mA
+ ".1.3.6.1.2.1.15.3.0", // 2 #01 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.4.0", // 3 #02 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.5.0", // 4 #03 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.6.0", // 5 #04 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.7.0", // 6 #05 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.8.0", // 7 #06 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.9.0", // 8 #07 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.10.0", // 9 #08 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.11.0", // 10 #09 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.12.0", // 11 #10 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.13.0", // 12 #11 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.14.0", // 13 #12 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.15.0", // 14 #13 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.16.0", // 15 #14 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.17.0", // 16 #15 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.18.0", // 17 #16 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.19.0", // 18 #17 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.20.0", // 19 #18 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.21.0", // 20 #19 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.22.0", // 21 #20 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.23.0", // 22 #21 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.24.0", // 23 #22 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.25.0", // 24 #23 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.26.0", // 25 #24 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.27.0", // 26 #25 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.28.0", // 27 #26 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.29.0", // 28 #27 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.30.0", // 29 #28 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.31.0", // 30 #29 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.32.0", // 31 #30 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.33.0", // 32 #31 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.34.0", // 33 #32 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.35.0", // 34 #33 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.36.0", // 35 #34 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.37.0", // 36 #35 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.38.0", // 37 #36 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.39.0", // 38 #37 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.40.0", // 39 #38 Cell Voltage - mV
+ ".1.3.6.1.2.1.15.41.0", // 40 #39 Cell Voltage - mV
+
+ ".1.3.6.1.2.1.15.43.0", // 41 Temp of PCB - C
+ ".1.3.6.1.2.1.15.44.0", // 42 Temp of Ambient - C
+ ".1.3.6.1.2.1.15.45.0", // 43 Temp Max. - C
+ ".1.3.6.1.2.1.15.46.0", // 44 Remaining Capacity - 0.1AH
+
+ ".1.3.6.1.2.1.15.47.0", // 45 SOH - 0.00%
+ ".1.3.6.1.2.1.15.48.0", // 46 SOC - 0.00%
+ ".1.3.6.1.2.1.15.49.0", // 47 Status
+ ".1.3.6.1.2.1.15.50.0", // 48 Warning
+ ".1.3.6.1.2.1.15.51.0", // 49 Protection
+ ".1.3.6.1.2.1.15.52.0", // 50 FailAndStatus
+ ".1.3.6.1.2.1.15.53.0", // 51 Cycle Count
+
+ ".1.3.6.1.2.1.15.54.0", // 52 #01 Temp - C
+ ".1.3.6.1.2.1.15.55.0", // 53 #02 Temp - C
+ ".1.3.6.1.2.1.15.56.0", // 54 #03 Temp - C
+ ".1.3.6.1.2.1.15.57.0", // 55 #04 Temp - C
+ ".1.3.6.1.2.1.15.58.0", // 56 #05 Temp - C
+ ".1.3.6.1.2.1.15.59.0", // 57 #06 Temp - C
+ ".1.3.6.1.2.1.15.60.0", // 58 #07 Temp - C
+ ".1.3.6.1.2.1.15.61.0", // 59 #08 Temp - C
+
+ ".1.3.6.1.2.1.15.68.0", // 64 Cell Number
+ ".1.3.6.1.2.1.15.69.0", // 65 Designed Capacity - 0.1AH
+ ".1.3.6.1.2.1.15.70.0", // 66 Average Temp - C
+ ".1.3.6.1.2.1.15.71.0", // 67 Max Charge Current - A
+ ".1.3.6.1.2.1.15.72.0", // 69 Temp Number
+
+ ".1.3.6.1.2.1.15.74.0", // 69 DateTime - Year
+ ".1.3.6.1.2.1.15.75.0", // 70 DateTime - Month
+ ".1.3.6.1.2.1.15.76.0", // 71 DateTime - Date
+ ".1.3.6.1.2.1.15.77.0", // 72 DateTime - Hour
+ ".1.3.6.1.2.1.15.78.0", // 73 DateTime - Minute
+ ".1.3.6.1.2.1.15.79.0", // 74 DateTime - Second
+
+ ".1.3.6.1.2.1.15.81.0", // 75 Flaot Voltage - 0.00V
+ ".1.3.6.1.2.1.15.82.0", // 76 Boost Voltage - 0.00V
+
+ ".1.3.6.1.2.1.15.83.0", // 77 Min. Charge Temp - C
+ ".1.3.6.1.2.1.15.84.0", // 78 Max. Charge Temp - C
+
+ ".1.3.6.1.2.1.15.90.0", // 79 Model - String
+ ".1.3.6.1.2.1.15.91.0", // 80 BMS Firmware - String
+ ".1.3.6.1.2.1.15.92.0", // 81 Pack Serial Number - String
+ ".1.3.6.1.2.1.15.93.0", // 82 Vendor Name - String
+ ".1.3.6.1.2.1.15.94.0", // 83 Product Code - String
+ ".1.3.6.1.2.1.15.95.0", // 84 MajorMinorRev - String
+ ".1.3.6.1.2.1.15.96.0", // 85 HwProductRev - String
+ ".1.3.6.1.2.1.15.97.0", // 86 Manufacture Date - String
+ };
+ }
+}
diff --git a/LFP_Manager/DataStructure/csCanConstData.cs b/LFP_Manager/DataStructure/csCanConstData.cs
new file mode 100644
index 0000000..db8a0bf
--- /dev/null
+++ b/LFP_Manager/DataStructure/csCanConstData.cs
@@ -0,0 +1,192 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace LFP_Manager.DataStructure
+{
+ class csCanConstData
+ {
+ public class CanDeviceInfo
+ {
+ public const int VCI_PCI5121 = 1;
+ public const int VCI_PCI9810 = 2;
+ public const int VCI_USBCAN1 = 3;
+ public const int VCI_USBCAN2 = 4;
+ public const int VCI_USBCAN2A = 4;
+ public const int VCI_PCI9820 = 5;
+ public const int VCI_CAN232 = 6;
+ public const int VCI_PCI5110 = 7;
+ public const int VCI_CANLITE = 8;
+ public const int VCI_ISA9620 = 9;
+ public const int VCI_ISA5420 = 10;
+ public const int VCI_PC104CAN = 11;
+ public const int VCI_CANETUDP = 12;
+ public const int VCI_CANETE = 12;
+ public const int VCI_DNP9810 = 13;
+ public const int VCI_PCI9840 = 14;
+ public const int VCI_PC104CAN2 = 15;
+ public const int VCI_PCI9820I = 16;
+ public const int VCI_CANETTCP = 17;
+ public const int VCI_PEC9920 = 18;
+ public const int VCI_PCI5010U = 19;
+ public const int VCI_USBCAN_E_U = 20;
+ public const int VCI_USBCAN_2E_U = 21;
+ public const int VCI_PCI5020U = 22;
+ public const int VCI_EG20T_CAN = 23;
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ }
+
+ public static readonly string[] DEVICE_NAME =
+ {
+ "PCI5121",
+ "PCI9810",
+ "USBCAN1",
+ "USBCAN2",
+ "USBCAN2A",
+ "PCI9820",
+ "CAN232",
+ "PCI5110",
+ "CANLITE",
+ "ISA9620",
+ "ISA5420",
+ "PC104CAN",
+ "CANETUDP",
+ "CANETE",
+ "DNP9810",
+ "PCI9840",
+ "PC104CAN2",
+ "PCI9820I",
+ "CANETTCP",
+ "PEC9920",
+ "PCI5010U",
+ "USBCAN_E_U",
+ "USBCAN_2E_U",
+ "PCI5020U",
+ "EG20T_CAN",
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ };
+
+ public static readonly int[] DEVICE_ID =
+ {
+ 1,
+ 2,
+ 3,
+ 4,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ };
+
+ //0x060003--1000Kbps
+ //0x060004--800Kbps
+ //0x060007--500Kbps
+ //0x1C0008--250Kbps
+ //0x1C0011--125Kbps
+ //0x160023--100Kbps
+ //0x1C002C--50Kbps
+ //0x1600B3--20Kbps
+ //0x1C00E0--10Kbps
+ //0x1C01C1--5Kbps
+
+ public static readonly int[] CAN_BAUDRATE =
+ {
+ 0x060003,
+ 0x060004,
+ 0x060007,
+ 0x1C0008,
+ 0x1C0011,
+ 0x160023,
+ 0x1C002C,
+ 0x1600B3,
+ 0x1C00E0,
+ 0x1C01C1
+ };
+
+ //USBCAN II Baudrate
+ public static readonly int[] CAN_BAUDRATE_OTHER = // Timer 0 + Timer 1
+ {
+ 0x0014, // 1000Kbps
+ 0x0016, // 800Kbps
+ 0x001C, // 500Kbps
+ 0x011C, // 250Kbps
+ 0x031C, // 125Kbps
+ 0x041C, // 100Kbps
+ 0x091C, // 50Kbps
+ 0x181C, // 20Kbps
+ 0x311C, // 10Kbps
+ 0xBFFF // 5Kbps
+ };
+
+ public static readonly string[] CAN_BAUDRATE_STR =
+ {
+ "1000Kbps",
+ "800Kbps",
+ "500Kbps",
+ "250Kbps",
+ "125Kbps",
+ "100Kbps",
+ "50Kbps",
+ "20Kbps",
+ "10Kbps",
+ "5Kbps"
+ };
+
+ public class SendType
+ {
+ public const int Normal = 0;
+ public const int Single_Normal = 1;
+ public const int Loop_Back = 2;
+ public const int Single_Loop_Back = 3;
+ }
+
+ public class FrameType
+ {
+ public const int Standard = 0;
+ public const int Extended = 1;
+ }
+
+ public class FrameFormat
+ {
+ public const int Data_Frame = 0;
+ public const int Remote_Frame = 1;
+ }
+ }
+}
diff --git a/LFP_Manager/DataStructure/csConstData.cs b/LFP_Manager/DataStructure/csConstData.cs
new file mode 100644
index 0000000..62d1384
--- /dev/null
+++ b/LFP_Manager/DataStructure/csConstData.cs
@@ -0,0 +1,273 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace LFP_Manager.DataStructure
+{
+ class csConstData
+ {
+ public class SystemInfo
+ {
+ public const int BASE_CAN_TARGET_ADDR = 200;
+ public const int MAX_MODULE_SIZE = 16;
+
+ public const int MAX_MODULE_CELL_SIZE = 39;
+ public const int MAX_MODULE_TEMP_SIZE = 8; //Byul 21.08.09 Initial : 8
+
+ public static readonly int FLOATING_VOLTAGE = (int)(3.55 * MAX_MODULE_CELL_SIZE * 10);
+
+ public static readonly string[] CHG_MODE =
+ {
+ "NO CURR LMT",
+ "ALWAYS CURR LMT",
+ "PRE-CHG PROTECT",
+ "CHG LMT AFTER OC",
+ "PRE-CHG + LMT",
+ };
+ }
+
+ public class CommType
+ {
+ public const int COMM_UART = 0;
+ public const int COMM_RS485 = 1;
+ public const int COMM_SNMP = 2;
+ public const int COMM_UART_MULTI = 9;
+ }
+
+ public class MODEL_INDEX
+ {
+ public const int LFPM_48100D = 0;
+ public const int LFPM_48150D = 1;
+ public const int LFPM_48200D = 2;
+ public const int LFPM_48250D = 3;
+ public const int LFPM_48300D = 4;
+ public const int LFPM_124050D = 5;
+ }
+
+ public static readonly string[] MODEL_STR =
+ {
+ "LFPM-48100D", // 0
+ "LFPM-48150D", // 1
+ "LFPM-48200D", // 2
+ "LFPM-48250D", // 3
+ "LFPM-48300D", // 4
+ "LFPM-124050D", // 5
+ };
+
+ public static readonly string[] UART_PROTOCOL =
+ {
+ "AMG",
+ };
+
+ public class UART_PARAM_LIST
+ {
+ public const int DEFAULT_PARAM = 0;
+ public const int CELL_UNDER_VOLTAGE = 61; //67
+ public const int PACK_UNDER_VOLTAGE = 64; //64
+ public const int CELL_OVER_VOLTAGE = 67; //
+ public const int PACK_OVER_VOLTAGE = 70; //61
+ public const int CHG_OVER_CURRENT2 = 83;
+ public const int DCH_OVER_CURRENT2 = 84;
+ public const int CHG_OVER_CURRENT = 78;
+ public const int DCH_OVER_CURRENT = 79;
+
+ public const int ENV_LOW_TEMPERATURE = 0x82; // 130, 131, 132 0x82, 0x83, 0x84 - Warning, Trip, Release
+ public const int ENV_HIGH_TEMPERATURE = 0x85; // 133, 134, 135 0x85, 0x86, 0x87 - Warning, Trip, Release
+
+ public const int CHG_LOW_TEMPERATURE = 90;
+ public const int CHG_HIGH_TEMPERATURE = 93; //93
+ public const int DCH_LOW_TEMPERATURE = 96;
+ public const int DCH_HIGH_TEMPERATURE = 99; //99
+ public const int PCB_HIGH_TEMPERATURE = 102;
+
+ public const int LOW_CAPACITY = 58;
+
+ public const int DESIGN_CAPACITY = 37;
+ public const int SOC_VALUE = 24;
+ public const int CYCLE_COUNT = 29;
+ }
+
+ public class UART_CALIB_ADDR_LIST
+ {
+ public const int LIMIT_CHARGE = 0x502E; //
+ public const int BMS_DATETIME = 0x002D;
+ public const int CHAGE_MODE = 0x002F; //
+ public const int ANTI_THEFT_COMM = 0x0088;
+ public const int ANTI_THEFT_GYRO = 0x0089;
+
+ public const int BAL_VOLT = 0x38;
+ public const int BAL_DIFF = 0x39;
+ }
+
+ public class UART_PARAM_DEFAULT
+ {
+ public const int Warn_Cell_UV = 2800;
+ public const int Protect_Cell_UV = 2500;
+ public const int Release_Cell_UV = 3000;
+ public const int Warn_Pack_UV = 4300;
+ public const int Protect_Pack_UV = 4200;
+ public const int Release_Pack_UV = 4500;
+
+ public const int Warn_Cell_OV = 3750;
+ public const int Protect_Cell_OV = 3850;
+ public const int Release_Cell_OV = 3580;
+ public const int Warn_Pack_OV = 5600;
+ public const int Protect_Pack_OV = 5700;
+ public const int Release_Pack_OV = 5400;
+
+ public const int Protect_Charge_OC1 = 11000;
+ public const int Protect_Discharge_OC1 = 11000;
+ public const int Protect_Charge_OC2 = 12000;
+ public const int Protect_Discharge_OC2 = 12000;
+ public const int ReleaseTime_Charge_OC = 60;
+ public const int ReleaseTime_Discharge_OC = 60;
+ public const int Delay_Charge_OC1 = 5;
+ public const int Delay_Discharge_OC1 = 5;
+ public const int Delay_Charge_OC2 = 1;
+ public const int Delay_Discharge_OC2 = 1;
+ public const int Times_Charge_OC = 5;
+ public const int Times_Discharge_OC = 5;
+
+ public const int Warn_Charge_UT = -5;
+ public const int Protect_Charge_UT = -10;
+ public const int Release_Charge_UT = -3;
+ public const int Warn_Charge_OT = 60;
+ public const int Protect_Charge_OT = 65;
+ public const int Release_Charge_OT = 55;
+
+ public const int Warn_Discharge_UT = -20;
+ public const int Protect_Discharge_UT = -25;
+ public const int Release_Discharge_UT = -15;
+ public const int Warn_Discharge_OT = 65;
+ public const int Protect_Discharge_OT = 70;
+ public const int Release_Discharge_OT = 60;
+
+ public const int Warn_Low_Capacity = 5;
+ }
+
+ public class UART_124050_PARAM_DEFAULT
+ {
+ public const int Warn_Cell_UV = 2800;
+ public const int Protect_Cell_UV = 2500;
+ public const int Release_Cell_UV = 3000;
+ public const int Warn_Pack_UV = 10900;
+ public const int Protect_Pack_UV = 9795;
+ public const int Release_Pack_UV = 11700;
+
+ public const int Warn_Cell_OV = 3750;
+ public const int Protect_Cell_OV = 3850;
+ public const int Release_Cell_OV = 3580;
+ public const int Warn_Pack_OV = 14600;
+ public const int Protect_Pack_OV = 15000;
+ public const int Release_Pack_OV = 14000;
+
+ public const int Protect_Charge_OC1 = 11000;
+ public const int Protect_Discharge_OC1 = 11000;
+ public const int Protect_Charge_OC2 = 12000;
+ public const int Protect_Discharge_OC2 = 12000;
+ public const int ReleaseTime_Charge_OC = 60;
+ public const int ReleaseTime_Discharge_OC = 60;
+ public const int Delay_Charge_OC1 = 5;
+ public const int Delay_Discharge_OC1 = 5;
+ public const int Delay_Charge_OC2 = 1;
+ public const int Delay_Discharge_OC2 = 1;
+ public const int Times_Charge_OC = 5;
+ public const int Times_Discharge_OC = 5;
+
+ public const int Warn_Charge_UT = -5;
+ public const int Protect_Charge_UT = -10;
+ public const int Release_Charge_UT = -3;
+ public const int Warn_Charge_OT = 60;
+ public const int Protect_Charge_OT = 65;
+ public const int Release_Charge_OT = 55;
+
+ public const int Warn_Discharge_UT = -20;
+ public const int Protect_Discharge_UT = -25;
+ public const int Release_Discharge_UT = -15;
+ public const int Warn_Discharge_OT = 65;
+ public const int Protect_Discharge_OT = 70;
+ public const int Release_Discharge_OT = 60;
+
+ public const int Warn_Low_Capacity = 5;
+
+ public const int Warn_Env_UT = -20;
+ public const int Protect_Env_UT = -25;
+ public const int Release_Env_UT = -15;
+ public const int Warn_Env_OT = 65;
+ public const int Protect_Env_OT = 70;
+ public const int Release_Env_OT = 60;
+ }
+
+ public class ResetCommandFlag
+ {
+ public static readonly ushort SystemReset = 0x0001;
+ public static readonly ushort LcdHistoryDelete = 0x0002;
+ public static readonly ushort SystemResetAll = 0x0003;
+ }
+
+ public class Eltek_Data
+ {
+ public static readonly ushort MD_BASE_REG = 4000;
+ public static readonly ushort MD_OFFSET = 400;
+
+ public static readonly ushort OpDataRegAddr = 0;
+ public static readonly ushort OpDataRegSize = 15;
+ public static readonly ushort ParaDataRegAddr = 200;
+ public static readonly ushort ParaDataRegSize = 71;
+
+ public static ushort GetOpDataRegAddr(int mID)
+ {
+ return (ushort)(MD_BASE_REG + (MD_OFFSET * mID) + OpDataRegAddr);
+ }
+ public static ushort GetParamDataRegAddr(int mID)
+ {
+ return (ushort)(MD_BASE_REG + (MD_OFFSET * mID) + ParaDataRegAddr);
+ }
+ }
+ public class CRC_Data
+ {
+ public static readonly byte[] auchCRCHi =
+ {
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
+ 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
+ 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
+ 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,
+ 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
+ 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
+ 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
+ 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
+ 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
+ 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
+ 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
+ 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
+ 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40
+ };
+
+ public static readonly byte[] auchCRCLo =
+ {
+ 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4,
+ 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,
+ 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD,
+ 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,
+ 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7,
+ 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A,
+ 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE,
+ 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,
+ 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2,
+ 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,
+ 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB,
+ 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,
+ 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91,
+ 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,
+ 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88,
+ 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
+ 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80,0x40
+ };
+ }
+ }
+}
diff --git a/LFP_Manager/DataStructure/csDataStructure.cs b/LFP_Manager/DataStructure/csDataStructure.cs
new file mode 100644
index 0000000..f1aef6b
--- /dev/null
+++ b/LFP_Manager/DataStructure/csDataStructure.cs
@@ -0,0 +1,961 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Runtime.InteropServices;
+using System.Windows.Forms;
+using static DevExpress.Utils.MVVM.Internal.ILReader;
+using LFP_Manager.Function;
+
+namespace LFP_Manager.DataStructure
+{
+ public class CommConfig
+ {
+ public int CommType;
+
+ public string SnmpIP;
+ public int SnmpModelIndex;
+ public int ModuleQty;
+ public int RecvWaitTime;
+
+ public string UartPort;
+ public int UartBaudrate;
+ public int UartModelIndex;
+ public int UartProtocol;
+
+ public int DbLogPeriod;
+
+ public int GyroSensitive;
+
+ public int ControlLevel;
+
+ public string MasterPw;
+ public string EngineerPw;
+ public string TechnicianPw;
+
+ public CommConfig()
+ {
+ CommType = 0;
+
+ SnmpIP = "192.168.0.200";
+ SnmpModelIndex = 0;
+ ModuleQty = 1;
+ RecvWaitTime = 1500; // 1500ms
+
+ UartPort = "";
+ UartBaudrate = 9600;
+ UartModelIndex = 0;
+ UartProtocol = 0;
+
+ DbLogPeriod = 5;
+
+ GyroSensitive = 120;
+
+ ControlLevel = 0;
+
+ MasterPw = "8003";
+ EngineerPw = "7003";
+ TechnicianPw = "6003";
+ }
+ }
+
+ public class TMinMax
+ {
+ public short value;
+ public short num;
+
+ public TMinMax()
+ {
+ value = 0;
+ num = 0;
+ }
+ }
+
+ public class DeviceSystemTotalData
+ {
+ public bool CommFail;
+
+ public DeviceSystemIdent IdentData;
+ public DeviceValueTotalData ValueData;
+ public DeviceStatusTotalData StatusData;
+
+ public DeviceSystemTotalData()
+ {
+ IdentData = new DeviceSystemIdent();
+ ValueData = new DeviceValueTotalData();
+ StatusData = new DeviceStatusTotalData();
+ }
+ }
+
+ public class DeviceSystemIdent
+ {
+ public string Manufacturer;
+ public string DeviceModel;
+ //public int ModuleQuantity;
+
+ public byte[] fw_ver;
+ public string FwVerStr;
+
+ public int AlarmOutputMode;
+
+ public UInt32 ManufactureDate;
+ public string SerialNumber;
+
+ public DeviceSystemIdent()
+ {
+ Manufacturer = "";
+ DeviceModel = "";
+ //ModuleQuantity = 1;
+
+ fw_ver = new byte[4];
+ FwVerStr = "";
+
+ AlarmOutputMode = 0;
+ ManufactureDate = 0;
+ SerialNumber = "";
+ }
+ }
+
+ public class DateTimeStruct
+ {
+ public int year;
+ public int month;
+ public int day;
+ public int hour;
+ public int minute;
+ public int second;
+
+ public string DateTimeStr;
+
+ public DateTimeStruct()
+ {
+ DateTimeStr = "-";
+ }
+ }
+
+ public class DeviceSystemData
+ {
+ public bool active;
+
+ public int mNo;
+ public int cellQty;
+ public int recv_cellQty;
+ public int tempQty;
+ public int ntcQty;
+ public int ChargeVoltage;
+ public int DOD;
+ public int MaxChaCurrent;
+ public int MaxDchCurrent;
+
+ public int FloatVoltage;
+ public int BoostVoltage;
+
+ public int MinChargeTemp;
+ public int MaxChargeTemp;
+
+ public UInt32 heatbeat;
+ public bool CommFail;
+ public bool ShelfCommFail;
+ public DateTime LastRxTime;
+ public Int32 BmsDateTimeInt;
+ public ushort BmsDateTimeShort1;
+ public ushort BmsDateTimeShort2;
+
+ public DateTimeStruct BmsDateTime;
+
+ public DeviceValueData ValueData;
+ public DeviceAvgData AvgData;
+ public DeviceStatusData StatusData;
+ public DeviceParamData ParamData;
+ public DeviceCalibration CalibrationData;
+ public DeviceInforation Information;
+ public DeviceEtcStatus EtcStatus;
+
+ public DeviceMaxValue MaxValue;
+ public DeviceGyroValue GyroValue;
+
+ public DeviceSystemData()
+ {
+ active = false;
+
+ mNo = 0;
+ cellQty = csConstData.SystemInfo.MAX_MODULE_CELL_SIZE;
+ tempQty = csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE;
+ ChargeVoltage = 0;
+ DOD = 0;
+ MaxChaCurrent = 0;
+ MaxDchCurrent = 0;
+
+ heatbeat = 0;
+ CommFail = false;
+ ShelfCommFail = false;
+ LastRxTime = DateTime.MinValue;
+ BmsDateTimeInt = 0;
+
+ BmsDateTime = new DateTimeStruct();
+
+ ValueData = new DeviceValueData();
+ AvgData = new DeviceAvgData();
+ StatusData = new DeviceStatusData();
+ ParamData = new DeviceParamData();
+ CalibrationData = new DeviceCalibration();
+ Information = new DeviceInforation();
+ EtcStatus = new DeviceEtcStatus();
+
+ MaxValue = new DeviceMaxValue();
+ GyroValue = new DeviceGyroValue();
+ }
+ }
+
+ public class DeviceValueTotalData
+ {
+ public short TotalVoltage;
+ public short TotalCurrent;
+ public short TotalSOC;
+ public short TotalSOH;
+ public short TotalTemp;
+
+ public DeviceValueTotalData()
+ {
+ TotalVoltage = 0;
+ TotalCurrent = 0;
+ TotalSOC = 0;
+ TotalSOH = 0;
+ TotalTemp = 0;
+ }
+ }
+
+ public class DeviceValueData
+ {
+ public byte[] fw_ver;
+
+ public short voltageOfPack;
+ public short current;
+ public short cha_current;
+ public short dch_current;
+ public short averageCurrent;
+ public short rSOC;
+
+ public short NumOfCells;
+ public short NumOfTemps;
+
+ public ushort[] CellVoltage;
+ public short[] CellTemperature;
+
+ public short Ext1Temperature;
+ public short Ext2Temperature;
+
+ public short remainingCapacity;
+ public short stateOfHealth;
+ public int cycleCount;
+ public int fullChargeCapacity;
+ public int designedCapacity;
+
+ public int TimeLeft;
+
+ public int Ah_Charged;
+ public int Ah_Discharged;
+ public int NoOfDischargeCycles;
+ public int NoOfChargeCycles;
+
+ public int ModuleAlarms;
+ public int ModuleWarnings;
+ public int ModuleStatus;
+ public int ModuleVoltage_int;
+ public int ModBusDocVersion;
+
+ public int ParametersChanged;
+ public int MaxBattChargeCurr;
+ public int MaxBattDischargeCurr;
+
+ public int BatteryProdDateYear;
+ public int BatteryProdDateMonth;
+ public int BatteryProdDateDay;
+
+ public int BatteryModelDescription;
+ public int BatteryType;
+
+ public DeviceValueData()
+ {
+ fw_ver = new byte[6];
+
+ CellVoltage = new ushort[csConstData.SystemInfo.MAX_MODULE_CELL_SIZE];
+ CellTemperature = new short[csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE];
+ }
+ }
+
+ public class DeviceAvgData
+ {
+ public int maxCellVoltage;
+ public int minCellVoltage;
+ public int avgCellVoltage;
+ public int diffCellVoltage;
+ public int maxCellNum;
+ public int minCellNum;
+ public int maxTemp;
+ public int minTemp;
+ public int avgTemp;
+ public int diffTemp;
+ public int maxTempNum;
+ public int minTempNum;
+
+ public DeviceAvgData()
+ {
+
+ }
+ }
+
+ public class DeviceStatusTotalData
+ {
+ public short batteryStatus;
+ public short warning;
+ public short protection;
+ public short status;
+ }
+
+ public class DeviceStatusData
+ {
+ public short batteryStatus;
+ public short batteryStatus1;
+ public short warning;
+ public short protection;
+ public short protection1;
+ public short status;
+ public short faultAndStatus;
+ public short relayStatus;
+ public short errorCode;
+ public short specialAlarm; // 1: Commfail, 2. Gyro, 3, Breaker
+
+ public short faultstatus; // Only for RS-485
+
+ public short cellBallanceStatus;
+ public short cellBalanceValue;
+ public short cellBalanceFlag;
+ }
+
+ public class DeviceCommStatus
+ {
+ public DateTime LastRxTime;
+ public bool CommFail;
+ }
+
+ public class DeviceParamData
+ {
+ public short CellOverVoltageTrip;
+ public short CellOverVoltageWarning;
+ public short CellOverVoltageRelease;
+ public short CellUnderVoltageTrip;
+ public short CellUnderVoltageWarning;
+ public short CellUnderVoltageRelease;
+
+ public short SysOverVoltageTrip;
+ public short SysOverVoltageWarning;
+ public short SysOverVoltageRelease;
+ public short SysUnderVoltageTrip;
+ public short SysUnderVoltageWarning;
+ public short SysUnderVoltageRelease;
+
+ public short ChaHighTempTrip;
+ public short ChaHighTempWarning;
+ public short ChaHighTempRelease;
+ public short ChaLowTempTrip;
+ public short ChaLowTempWarning;
+ public short ChaLowTempRelease;
+ public short DchHighTempTrip;
+ public short DchHighTempWarning;
+ public short DchHighTempRelease;
+ public short DchLowTempTrip;
+ public short DchLowTempWarning;
+ public short DchLowTempRelease;
+
+ public short ChaOverCurrentTrip1;
+ public short ChaOverCurrentTrip2;
+ public short ChaOverCurrentWarning;
+ public short ChaOverCurrentReleaseTime;
+ public short ChaOverCurrentTimes;
+ public short ChaOverCurrentDelay1;
+ public short ChaOverCurrentDelay2;
+
+ public short DchOverCurrentTrip1;
+ public short DchOverCurrentTrip2;
+ public short DchOverCurrentWarning;
+ public short DchOverCurrentReleaseTime;
+ public short DchOverCurrentTimes;
+ public short DchOverCurrentDelay1;
+ public short DchOverCurrentDelay2;
+
+ public short PcbHighTempTrip;
+ public short PcbHighTempWarning;
+ public short PcbHighTempRelease;
+
+ public short EnvLowTempWarning;
+ public short EnvLowTempTrip;
+ public short EnvLowTempRelease;
+ public short EnvHighTempWarning;
+ public short EnvHighTempTrip;
+ public short EnvHighTempRelease;
+
+ public short ShortCircuit;
+
+ public short LowSocTrip;
+ public short LowSocWarning;
+ public short LowSocRelease;
+
+ public short CellVoltageDifferenceTrip;
+ public short CellVoltageDifferenceWarning;
+ public short CellVoltageDifferenceRelease;
+ public short CellVoltageDifferenceTime;
+
+ public short DefalutParamOption;
+ public short DefalutParamAll;
+ public ushort ReadParamAll;
+
+ public DeviceParamData DeepCopy()
+ {
+ DeviceParamData newCopy = new DeviceParamData
+ {
+ CellOverVoltageTrip = CellOverVoltageTrip,
+ CellOverVoltageWarning = CellOverVoltageWarning,
+ CellOverVoltageRelease = CellOverVoltageRelease,
+ CellUnderVoltageTrip = CellUnderVoltageTrip,
+ CellUnderVoltageWarning = CellUnderVoltageWarning,
+ CellUnderVoltageRelease = CellUnderVoltageRelease,
+
+ SysOverVoltageTrip = SysOverVoltageTrip,
+ SysOverVoltageWarning = SysOverVoltageWarning,
+ SysOverVoltageRelease = SysOverVoltageRelease,
+ SysUnderVoltageTrip = SysUnderVoltageTrip,
+ SysUnderVoltageWarning = SysUnderVoltageWarning,
+ SysUnderVoltageRelease = SysUnderVoltageRelease,
+
+ ChaHighTempTrip = ChaHighTempTrip,
+ ChaHighTempWarning = ChaHighTempWarning,
+ ChaHighTempRelease = ChaHighTempRelease,
+ ChaLowTempTrip = ChaLowTempTrip,
+ ChaLowTempWarning = ChaLowTempWarning,
+ ChaLowTempRelease = ChaLowTempRelease,
+ DchHighTempTrip = DchHighTempTrip,
+ DchHighTempWarning = DchHighTempWarning,
+ DchHighTempRelease = DchHighTempRelease,
+ DchLowTempTrip = DchLowTempTrip,
+ DchLowTempWarning = DchLowTempWarning,
+ DchLowTempRelease = DchLowTempRelease,
+
+ ChaOverCurrentTrip1 = ChaOverCurrentTrip1,
+ ChaOverCurrentTrip2 = ChaOverCurrentTrip2,
+ ChaOverCurrentWarning = ChaOverCurrentWarning,
+ ChaOverCurrentReleaseTime = ChaOverCurrentReleaseTime,
+ ChaOverCurrentTimes = ChaOverCurrentTimes,
+ ChaOverCurrentDelay1 = ChaOverCurrentDelay1,
+ ChaOverCurrentDelay2 = ChaOverCurrentDelay2,
+
+ DchOverCurrentTrip1 = DchOverCurrentTrip1,
+ DchOverCurrentTrip2 = DchOverCurrentTrip2,
+ DchOverCurrentWarning = DchOverCurrentWarning,
+ DchOverCurrentReleaseTime = DchOverCurrentReleaseTime,
+ DchOverCurrentTimes = DchOverCurrentTimes,
+ DchOverCurrentDelay1 = DchOverCurrentDelay1,
+ DchOverCurrentDelay2 = DchOverCurrentDelay2,
+
+ PcbHighTempTrip = PcbHighTempTrip,
+ PcbHighTempWarning = PcbHighTempWarning,
+ PcbHighTempRelease = PcbHighTempRelease,
+
+ EnvLowTempWarning = EnvLowTempWarning,
+ EnvLowTempTrip = EnvLowTempTrip,
+ EnvLowTempRelease = EnvLowTempRelease,
+ EnvHighTempWarning = EnvHighTempWarning,
+ EnvHighTempTrip = EnvHighTempTrip,
+ EnvHighTempRelease = EnvHighTempRelease,
+
+ ShortCircuit = ShortCircuit,
+
+ LowSocTrip = LowSocTrip,
+ LowSocWarning = LowSocWarning,
+ LowSocRelease = LowSocRelease,
+
+ CellVoltageDifferenceTrip = CellVoltageDifferenceTrip,
+ CellVoltageDifferenceWarning = CellVoltageDifferenceWarning,
+ CellVoltageDifferenceRelease = CellVoltageDifferenceRelease,
+ CellVoltageDifferenceTime = CellVoltageDifferenceTime,
+
+ DefalutParamOption = DefalutParamOption,
+ DefalutParamAll = DefalutParamAll,
+ ReadParamAll = ReadParamAll,
+ };
+ return newCopy;
+ }
+ }
+
+ public class DeviceCalibration
+ {
+ public CellVoltageCalib CellVoltge;
+ public SystemVoltageCalib SystemVoltage;
+ public ForcedBalControl ForcedBalancing;
+ public BatteryParameter Battery;
+ public CurrentCalib Current;
+ public SystemInfor SystemInfo;
+ public CapCalibration CapCalib;
+ public FetCalibration FetCalib;
+ public ChargeMode ChaMode;
+ public TAntiTheft AntiTheft;
+ public TBmsDateTime BmsDateTime;
+
+ public TBalCalib BalCalib;
+
+ public DeviceInforation InvData;
+
+ public TAntiTheftComm AntiTheftComm;
+ public TAntiTheftGyro AntiTheftGyro;
+
+ public DeviceCalibration()
+ {
+ CellVoltge = new CellVoltageCalib();
+ SystemVoltage = new SystemVoltageCalib();
+ ForcedBalancing = new ForcedBalControl();
+ Battery = new BatteryParameter();
+ Current = new CurrentCalib();
+ SystemInfo = new SystemInfor();
+ CapCalib = new CapCalibration();
+ FetCalib = new FetCalibration();
+ ChaMode = new ChargeMode();
+ AntiTheft = new TAntiTheft();
+ BmsDateTime = new TBmsDateTime();
+
+ BalCalib = new TBalCalib();
+
+ InvData = new DeviceInforation();
+
+ AntiTheftComm = new TAntiTheftComm();
+ AntiTheftGyro = new TAntiTheftGyro();
+ }
+ public DeviceCalibration DeepCopy()
+ {
+ DeviceCalibration newCopy = new DeviceCalibration
+ {
+ CellVoltge = CellVoltge,
+ SystemVoltage = SystemVoltage,
+ ForcedBalancing = ForcedBalancing,
+ Battery = Battery,
+ Current = Current,
+ SystemInfo = SystemInfo,
+
+ CapCalib = CapCalib.DeepCopy(),
+ AntiTheft = AntiTheft.DeepCopy(),
+ BalCalib = BalCalib.DeepCopy(),
+
+ FetCalib = FetCalib,
+ ChaMode = ChaMode.DeepCopy(),
+ };
+ return newCopy;
+ }
+ }
+
+ public class TAntiTheftComm
+ {
+ public int TimeOut;
+ public int FuncSwitch;
+ public int Unlock;
+
+ public TAntiTheftComm()
+ {
+ TimeOut = 0;
+ FuncSwitch = 0;
+ Unlock = 0;
+ }
+ public TAntiTheftComm DeepCopy()
+ {
+ TAntiTheftComm newCopy = new TAntiTheftComm
+ {
+ TimeOut = TimeOut,
+ FuncSwitch = FuncSwitch,
+ Unlock = Unlock
+ };
+ return newCopy;
+ }
+ }
+ public class TAntiTheftGyro
+ {
+ public int XAxis;
+ public int YAxis;
+ public int ZAxis;
+ public int GyroPolicySel;
+ public int GyroFuncSwitch;
+ public int GyroState;
+ public int Unlock;
+
+ public TAntiTheftGyro()
+ {
+ XAxis = 0;
+ YAxis = 0;
+ ZAxis = 0;
+ GyroPolicySel = 0;
+ GyroFuncSwitch = 0;
+ GyroState = 0;
+ Unlock = 0;
+ }
+ public TAntiTheftGyro DeepCopy()
+ {
+ TAntiTheftGyro newCopy = new TAntiTheftGyro
+ {
+ XAxis = XAxis,
+ YAxis = YAxis,
+ ZAxis = ZAxis,
+ GyroPolicySel = GyroPolicySel,
+ GyroFuncSwitch = GyroFuncSwitch,
+ GyroState = GyroState,
+ Unlock = Unlock,
+ };
+ return newCopy;
+ }
+ }
+
+ public class CellVoltageCalib
+ {
+ public short CurrentCellNo; // 0: ODD, 1: EVEN
+ public short OddCellVoltageCalibration_K;
+ public short OddCellVoltageCalibration_B;
+ public short EvenCellVoltageCalibration_K;
+ public short EvenCellVoltageCalibration_B;
+ }
+
+ public class SystemVoltageCalib
+ {
+ [MarshalAs(UnmanagedType.I2, SizeConst = 2)]
+ public short Calibration_K;
+ public short Calibration_B;
+ }
+
+ public class ForcedBalControl
+ {
+ public short Control;
+ public short CellNo;
+ public bool AutoB;
+ }
+
+ public class BatteryParameter
+ {
+ public short CellQty;
+ public short TempQty;
+ public UInt32 Capacity;
+ }
+
+ public class CurrentCalib
+ {
+ public short SelectSubItem;
+ public short ShuntRange;
+ public short CurrentZero;
+ public short VoltageZero;
+ public Int32 ChgCalibration_K;
+ public Int32 DchCalibration_K;
+ public short ChaAndDchSelect;
+ public short ChargeOption;
+ }
+
+ public class SystemInfor
+ {
+ //public short Id;
+ public DateTime devTime;
+ public ushort LastRebootCause;
+ }
+
+ public class CapCalibration
+ {
+ public int DesignCapacity;
+ public int SocValue;
+ public int CycleCount;
+
+ public CapCalibration()
+ {
+ DesignCapacity = 0;
+ SocValue = 0;
+ CycleCount = 0;
+ }
+ public CapCalibration DeepCopy()
+ {
+ CapCalibration newCopy = new CapCalibration
+ {
+ DesignCapacity = DesignCapacity,
+ SocValue = SocValue,
+ CycleCount = CycleCount,
+ };
+ return newCopy;
+ }
+ }
+
+ public class ChargeMode
+ {
+ public int Mode;
+ public int Value;
+
+ public ChargeMode()
+ {
+ Mode = 0;
+ Value = 0;
+ }
+ public ChargeMode DeepCopy()
+ {
+ ChargeMode newCopy = new ChargeMode
+ {
+ Mode = Mode,
+ Value = Value,
+ };
+ return newCopy;
+ }
+ }
+ public class TAntiTheft
+ {
+ public int Comm;
+ public int GyroScope;
+
+ public TAntiTheft()
+ {
+ Comm = 0;
+ GyroScope = 0;
+ }
+ public TAntiTheft DeepCopy()
+ {
+ TAntiTheft newCopy = new TAntiTheft
+ {
+ Comm = Comm,
+ GyroScope = GyroScope,
+ };
+ return newCopy;
+ }
+ }
+ public class TBmsDateTime
+ {
+ public string Str;
+ public int lValue;
+ public short[] sValue;
+
+ public TBmsDateTime()
+ {
+ Str = "";
+ lValue = 0;
+ sValue = new short[2];
+ }
+ public TBmsDateTime DeepCopy()
+ {
+ TBmsDateTime newCopy = new TBmsDateTime
+ {
+ Str = Str,
+ lValue = lValue,
+ };
+ for (int i = 0; i < 2; i++)
+ {
+ newCopy.sValue[i] = sValue[i];
+ }
+ return newCopy;
+ }
+ }
+ public class TBalCalib
+ {
+ public int Volt;
+ public int Diff;
+
+ public TBalCalib()
+ {
+ Volt = 0;
+ Diff = 0;
+ }
+ public TBalCalib DeepCopy()
+ {
+ TBalCalib newCopy = new TBalCalib
+ {
+ Volt = Volt,
+ Diff = Diff,
+ };
+ return newCopy;
+ }
+ }
+
+
+ public class FetCalibration
+ {
+ public short FetStatus;
+ public short DchFetOff; // 6010
+ public short ChaFetOff; // 6011
+ public short LmtChaFetOff; // 6012
+ public short PreChaFetOn; // 6013
+ public short HeaterFetOn; // 6014
+ public short ChaFetOn; // 6015
+ }
+
+ public class DeviceInforation
+ {
+ //public string ManuDate_Str;
+ public byte[] ManuDate_Byte;
+
+ public byte[] Model_Byte;
+ public byte[] FwVer_Byte;
+ //public string Model_Str;
+ //public string FwVer_Str;
+ public byte[] BMS_SN;
+ //public string BMS_SN_Str;
+ public byte[] Module_SN;
+ public byte[] Vendor_Byte;
+
+ public string VendorName;
+ public string ProductCode;
+ public string MajorMinorRev;
+ public string ModelName;
+ public string HwSerialNumber;
+ public string HwProductRev;
+ public string ManufacturingDate;
+ public string SwProductRev;
+
+ public DeviceInforation()
+ {
+ ManuDate_Byte = new byte[10];
+
+ Model_Byte = new byte[24];
+ FwVer_Byte = new byte[6];
+ //Model_Str = " ";
+ //FwVer_Str = " ";
+ BMS_SN = new byte[32];
+ //BMS_SN_Str = " ";
+ Module_SN = new byte[32];
+ Vendor_Byte = new byte[10];
+
+ VendorName = "-";
+ ProductCode = "-";
+ MajorMinorRev = "-";
+ ModelName = "-";
+ HwSerialNumber = "-";
+ HwProductRev = "-";
+ ManufacturingDate = "-";
+ SwProductRev = "-";
+ }
+ }
+
+ public class DeviceEtcStatus
+ {
+ public short SwitchHW;
+ public short SwitchWarning;
+ public short SwitchProtect;
+ public ushort LogDurationIdle; // min
+ public ushort LogDurationActive; // min
+ public UInt32 DataAndTime;
+ public ushort ChgOCPModel; /* 充电限流
+ 0:不限流保护
+ 1:始终限流充电
+ 2:预充保护
+ 4:充电过流后限流
+ 8:预充+充电过流后限流 */
+ public short ChgLmtVoltage; // mv
+ public short SOC_StopFloat; // % 暂停浮充Soc
+ public short SOC_RecvFloat; // % 恢复浮充电压
+ public short DurationFloat; // sec
+ public short DurationIdle; // sec
+ public short VoltageStopFloat; // 0.1V
+ public short VoltageRecvFloat; // 0.1V
+ public short FloatMode; /* 0000: 持续浮充
+ 0001:检测电压
+ 0002:定时浮充
+ 0003:检测SOC */
+ public short BalanceVoltage; // mV 均衡启动电压
+ public short BalanceDeltaV; // mV 均衡启动压差
+ public short WarnLowCapacity; // 低容量告警
+ public short HistroyDelete; // 删除数据记录
+ }
+
+ public class DeviceMaxValue
+ {
+ public short MaxChgCurrent;
+ public short MaxChgTemperature;
+ public short MinChgTemperature;
+ public short FloatChgVolt;
+ public short BoostChgVolt;
+
+ public DeviceMaxValue()
+ {
+
+ }
+ }
+ public class DeviceGyroValue
+ {
+ public short X_axis;
+ public short Y_axis;
+ public short Z_axis;
+ public short Gyro_policy_sel;
+ public short Gyro_func_sw;
+ public short Gyro_state;
+
+ public DeviceGyroValue()
+ {
+
+ }
+ }
+
+ public class TUartTRxData
+ {
+ public int type;
+ public int length;
+ public byte[] data;
+
+ public TUartTRxData()
+ {
+ type = 0;
+ length = 0;
+ data = new byte[256];
+ }
+ public TUartTRxData DeepCopy()
+ {
+ TUartTRxData newCopy = new TUartTRxData
+ {
+ type = type,
+ length = length,
+ data = data
+ };
+ for (int i = 0; i < data.Length; i++)
+ {
+ newCopy.data[i] = data[i];
+ }
+
+ return newCopy;
+ }
+ }
+
+ public class TUartTxBuff
+ {
+ public int InPos;
+ public int OutPos;
+ public TUartTRxData[] Buf;
+ public TUartTxBuff()
+ {
+ InPos = 0;
+ OutPos = 0;
+ Buf = new TUartTRxData[50];
+ for (int i = 0; i < 50; i++)
+ {
+ Buf[i] = new TUartTRxData();
+ }
+ }
+
+ public bool CheckBuff()
+ {
+ if (InPos != OutPos) { return true; }
+ else { return false; }
+ }
+ public void PutBuff(TUartTRxData UartTxData)
+ {
+ if (UartTxData != null)
+ {
+ Buf[InPos++] = UartTxData.DeepCopy();
+ InPos %= 50;
+ }
+ }
+ public TUartTRxData GetBuff()
+ {
+ TUartTRxData result = null;
+
+ if (InPos != OutPos)
+ {
+ result = Buf[OutPos++].DeepCopy();
+ OutPos %= 50;
+ }
+ return result;
+ }
+ }
+}
diff --git a/LFP_Manager/DataStructure/csDbConstData.cs b/LFP_Manager/DataStructure/csDbConstData.cs
new file mode 100644
index 0000000..07d7057
--- /dev/null
+++ b/LFP_Manager/DataStructure/csDbConstData.cs
@@ -0,0 +1,67 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace LFP_Manager.DataStructure
+{
+ class csDbConstData
+ {
+ public class DataBase
+ {
+ public static string FileName = @"\db\AlamrHistory.db";
+ public static string TableName = "History";
+ public static string CreateTable =
+ "CREATE TABLE " + TableName + " ("
+ + "HTime DateTime NOT NULL, "
+ + "model varchar(10), "
+ + "sno int, "
+ + "alarm_name varchar(20), "
+ + "alarm_code int, "
+ + "flag_name varchar(20), "
+ + "flag int, "
+ + "param1 float, "
+ + "param2 float, "
+ + ");";
+ }
+
+ public static readonly int ALARM_NAME_SIZE = 9;
+
+ public class DB_ALARM
+ {
+ public static int CELL_UNDER_VOLTAGE = 0;
+ public static int CELL_OVER_VOLTAGE = 1;
+ public static int SYSTEM_UNDER_VOLTAGE = 2;
+ public static int SYSTEM_OVER_VOLTAGAE = 3;
+ public static int HIGH_TEMPERATURE = 4;
+ public static int LOW_TEMPERATURE = 5;
+ public static int CHARGE_OVER_CURRENT = 6;
+ public static int DISCHARGE_OVER_CURRENT = 7;
+ public static int LOW_SOC = 8;
+
+ public static readonly string[] ALARM_NAME =
+ {
+ "CELL UNDER VOLTAGE",
+ "CELL OVER VOLTAGE",
+ "SYSTEM UNDER VOLTAGE",
+ "SYSTEM OVER VOLTAGAE",
+ "HIGH TEMPERATURE",
+ "LOW TEMPERATURE",
+ "CHARGE OVER CURRENT",
+ "DISCHARGE OVER CURRENT",
+ "LOW SOC",
+ };
+
+ public static int FLAG_RELEASE = 0;
+ public static int FLAG_WARNING = 1;
+ public static int FLAG_TRIP = 2;
+
+ public static readonly string[] FLAG_NAME =
+ {
+ "RELEASE",
+ "WARNING",
+ "FAULT",
+ };
+ }
+ }
+}
diff --git a/LFP_Manager/Form1.Designer.cs b/LFP_Manager/Form1.Designer.cs
new file mode 100644
index 0000000..24932dc
--- /dev/null
+++ b/LFP_Manager/Form1.Designer.cs
@@ -0,0 +1,47 @@
+namespace snmp_sim
+{
+ partial class fmMain
+ {
+ ///
+ /// 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()
+ {
+ this.SuspendLayout();
+ //
+ // fmMain
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(284, 262);
+ this.Name = "fmMain";
+ this.Text = "Form1";
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+ }
+}
+
diff --git a/LFP_Manager/Form1.cs b/LFP_Manager/Form1.cs
new file mode 100644
index 0000000..9a387a9
--- /dev/null
+++ b/LFP_Manager/Form1.cs
@@ -0,0 +1,19 @@
+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 snmp_sim
+{
+ public partial class fmMain : Form
+ {
+ public fmMain()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/LFP_Manager/Form1.resx b/LFP_Manager/Form1.resx
new file mode 100644
index 0000000..19dc0dd
--- /dev/null
+++ b/LFP_Manager/Form1.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxChangePw.Designer.cs b/LFP_Manager/Forms/FmxChangePw.Designer.cs
new file mode 100644
index 0000000..111805f
--- /dev/null
+++ b/LFP_Manager/Forms/FmxChangePw.Designer.cs
@@ -0,0 +1,374 @@
+namespace LFP_Manager.Forms
+{
+ partial class FmxChangePw
+ {
+ ///
+ /// 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()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.RbMaster = new System.Windows.Forms.RadioButton();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.RbEngineer = new System.Windows.Forms.RadioButton();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.RbTechnician = new System.Windows.Forms.RadioButton();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.LbCurrentLevel = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.TePW = new DevExpress.XtraEditors.TextEdit();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.BtnApply = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.BtnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.TmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.RbUser = new System.Windows.Forms.RadioButton();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.LbCurrentLevel)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TePW.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.RbUser);
+ this.layoutControl1.Controls.Add(this.BtnClose);
+ this.layoutControl1.Controls.Add(this.BtnApply);
+ this.layoutControl1.Controls.Add(this.TePW);
+ this.layoutControl1.Controls.Add(this.RbTechnician);
+ this.layoutControl1.Controls.Add(this.RbEngineer);
+ this.layoutControl1.Controls.Add(this.RbMaster);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(751, 0, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(500, 233);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.emptySpaceItem1,
+ this.layoutControlGroup1,
+ this.layoutControlGroup2,
+ this.layoutControlGroup3,
+ this.layoutControlItem5,
+ this.layoutControlItem6});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(500, 233);
+ this.Root.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 176);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(498, 16);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem2,
+ this.layoutControlItem1,
+ this.layoutControlItem3,
+ this.layoutControlItem7});
+ this.layoutControlGroup1.Location = new System.Drawing.Point(0, 61);
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(498, 58);
+ this.layoutControlGroup1.Text = "Control Level";
+ //
+ // RbMaster
+ //
+ this.RbMaster.Location = new System.Drawing.Point(7, 89);
+ this.RbMaster.Name = "RbMaster";
+ this.RbMaster.Size = new System.Drawing.Size(118, 25);
+ this.RbMaster.TabIndex = 8;
+ this.RbMaster.TabStop = true;
+ this.RbMaster.Text = "Master";
+ this.RbMaster.UseVisualStyleBackColor = true;
+ this.RbMaster.CheckedChanged += new System.EventHandler(this.RbMaster_CheckedChanged);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.RbMaster;
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem2.MaxSize = new System.Drawing.Size(0, 29);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(24, 29);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(122, 29);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // RbEngineer
+ //
+ this.RbEngineer.Location = new System.Drawing.Point(129, 89);
+ this.RbEngineer.Name = "RbEngineer";
+ this.RbEngineer.Size = new System.Drawing.Size(119, 25);
+ this.RbEngineer.TabIndex = 9;
+ this.RbEngineer.TabStop = true;
+ this.RbEngineer.Text = "Engineer";
+ this.RbEngineer.UseVisualStyleBackColor = true;
+ this.RbEngineer.CheckedChanged += new System.EventHandler(this.RbEngineer_CheckedChanged);
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.RbEngineer;
+ this.layoutControlItem1.Location = new System.Drawing.Point(122, 0);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(24, 29);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(123, 29);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // RbTechnician
+ //
+ this.RbTechnician.Location = new System.Drawing.Point(252, 89);
+ this.RbTechnician.Name = "RbTechnician";
+ this.RbTechnician.Size = new System.Drawing.Size(118, 25);
+ this.RbTechnician.TabIndex = 10;
+ this.RbTechnician.TabStop = true;
+ this.RbTechnician.Text = "Technician";
+ this.RbTechnician.UseVisualStyleBackColor = true;
+ this.RbTechnician.CheckedChanged += new System.EventHandler(this.RbTechnician_CheckedChanged);
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.RbTechnician;
+ this.layoutControlItem3.Location = new System.Drawing.Point(245, 0);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(24, 29);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(122, 29);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // LbCurrentLevel
+ //
+ this.LbCurrentLevel.AllowHotTrack = false;
+ this.LbCurrentLevel.Location = new System.Drawing.Point(0, 0);
+ this.LbCurrentLevel.MaxSize = new System.Drawing.Size(0, 32);
+ this.LbCurrentLevel.MinSize = new System.Drawing.Size(126, 32);
+ this.LbCurrentLevel.Name = "LbCurrentLevel";
+ this.LbCurrentLevel.Size = new System.Drawing.Size(490, 32);
+ this.LbCurrentLevel.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.LbCurrentLevel.Text = " Current Level: ";
+ this.LbCurrentLevel.TextSize = new System.Drawing.Size(85, 14);
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.LbCurrentLevel});
+ this.layoutControlGroup2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup2.Name = "layoutControlGroup2";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(498, 61);
+ this.layoutControlGroup2.Text = "Control Level";
+ //
+ // TePW
+ //
+ this.TePW.Location = new System.Drawing.Point(7, 147);
+ this.TePW.Name = "TePW";
+ this.TePW.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11F);
+ this.TePW.Properties.Appearance.Options.UseFont = true;
+ this.TePW.Properties.Appearance.Options.UseTextOptions = true;
+ this.TePW.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.TePW.Properties.PasswordChar = '*';
+ this.TePW.Size = new System.Drawing.Size(486, 24);
+ this.TePW.StyleController = this.layoutControl1;
+ this.TePW.TabIndex = 11;
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.TePW;
+ this.layoutControlItem4.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem4.MaxSize = new System.Drawing.Size(0, 28);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(171, 28);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(490, 28);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // layoutControlGroup3
+ //
+ this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem4});
+ this.layoutControlGroup3.Location = new System.Drawing.Point(0, 119);
+ this.layoutControlGroup3.Name = "layoutControlGroup3";
+ this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup3.Size = new System.Drawing.Size(498, 57);
+ this.layoutControlGroup3.Text = "Password";
+ //
+ // BtnApply
+ //
+ this.BtnApply.Location = new System.Drawing.Point(3, 195);
+ this.BtnApply.Name = "BtnApply";
+ this.BtnApply.Size = new System.Drawing.Size(245, 35);
+ this.BtnApply.StyleController = this.layoutControl1;
+ this.BtnApply.TabIndex = 12;
+ this.BtnApply.Text = "Apply";
+ this.BtnApply.Click += new System.EventHandler(this.BtnApply_Click);
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.BtnApply;
+ this.layoutControlItem5.Location = new System.Drawing.Point(0, 192);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(249, 39);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // BtnClose
+ //
+ this.BtnClose.Location = new System.Drawing.Point(252, 195);
+ this.BtnClose.Name = "BtnClose";
+ this.BtnClose.Size = new System.Drawing.Size(245, 35);
+ this.BtnClose.StyleController = this.layoutControl1;
+ this.BtnClose.TabIndex = 13;
+ this.BtnClose.Text = "Close";
+ this.BtnClose.Click += new System.EventHandler(this.BtnClose_Click);
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.BtnClose;
+ this.layoutControlItem6.Location = new System.Drawing.Point(249, 192);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(249, 39);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // TmrDisplay
+ //
+ this.TmrDisplay.Interval = 500;
+ this.TmrDisplay.Tick += new System.EventHandler(this.TmrDisplay_Tick);
+ //
+ // RbUser
+ //
+ this.RbUser.Location = new System.Drawing.Point(374, 89);
+ this.RbUser.Name = "RbUser";
+ this.RbUser.Size = new System.Drawing.Size(119, 25);
+ this.RbUser.TabIndex = 14;
+ this.RbUser.TabStop = true;
+ this.RbUser.Text = "User";
+ this.RbUser.UseVisualStyleBackColor = true;
+ this.RbUser.CheckedChanged += new System.EventHandler(this.RbUser_CheckedChanged);
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.RbUser;
+ this.layoutControlItem7.Location = new System.Drawing.Point(367, 0);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(123, 29);
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem7.TextVisible = false;
+ //
+ // FmxLevelConfig
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(500, 233);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Image = global::LFP_Manager.Properties.Resources.AMO_LOGO1;
+ this.Name = "FmxLevelConfig";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Control Level Config";
+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FmxLevelConfig_FormClosing);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.LbCurrentLevel)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TePW.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private System.Windows.Forms.RadioButton RbTechnician;
+ private System.Windows.Forms.RadioButton RbEngineer;
+ private System.Windows.Forms.RadioButton RbMaster;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.SimpleLabelItem LbCurrentLevel;
+ private DevExpress.XtraEditors.TextEdit TePW;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraEditors.SimpleButton BtnClose;
+ private DevExpress.XtraEditors.SimpleButton BtnApply;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private System.Windows.Forms.Timer TmrDisplay;
+ private System.Windows.Forms.RadioButton RbUser;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxChangePw.cs b/LFP_Manager/Forms/FmxChangePw.cs
new file mode 100644
index 0000000..685b299
--- /dev/null
+++ b/LFP_Manager/Forms/FmxChangePw.cs
@@ -0,0 +1,184 @@
+using DevExpress.XtraEditors;
+using DevExpress.XtraPrinting.Native.LayoutAdjustment;
+using LFP_Manager.DataStructure;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Forms
+{
+ public partial class FmxChangePw : DevExpress.XtraEditors.XtraForm
+ {
+ #region VARIABLES
+
+ CommConfig Config;
+
+ #endregion
+
+ #region CONSTRUCTORS
+ public FmxChangePw()
+ {
+ InitializeComponent();
+ }
+
+ public FmxChangePw(CommConfig aConfig)
+ {
+ InitializeComponent();
+
+ Config = aConfig;
+
+ switch (Config.ControlLevel)
+ {
+ case 0: // User Level
+ RbUser.Checked = true;
+ break;
+ case 1: // Technician Level
+ RbTechnician.Checked = true;
+ break;
+ case 2: // Engineer Level
+ RbEngineer.Checked = true;
+ break;
+ case 3: // Master Level
+ RbMaster.Checked = true;
+ break;
+ default: // User Level
+ RbUser.Checked = true;
+ break;
+ }
+ DisplayStatus();
+ TmrDisplay.Start();
+ }
+ #endregion
+
+ #region BUTTON EVENT
+ private void BtnClose_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+ private void BtnApply_Click(object sender, EventArgs e)
+ {
+ string cPW = TePW.Text;
+
+ if (RbMaster.Checked)
+ {
+ if (Config.MasterPw == cPW)
+ {
+ Config.ControlLevel = 3;
+ MessageBox.Show("Complete change to Mastar Level", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else
+ {
+ MessageBox.Show("Wrong password for Master Level", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ else if (RbEngineer.Checked)
+ {
+ if (Config.EngineerPw == cPW)
+ {
+ Config.ControlLevel = 2;
+ MessageBox.Show("Complete change to Engineer Level", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else
+ {
+ MessageBox.Show("Wrong password for Engineer Level", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ else if (RbTechnician.Checked)
+ {
+ if (Config.TechnicianPw == cPW)
+ {
+ Config.ControlLevel = 1;
+ MessageBox.Show("Complete change to Technician Level", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else
+ {
+ MessageBox.Show("Wrong password for Technician Level", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ else if (RbUser.Checked)
+ {
+ Config.ControlLevel = 0;
+ }
+ }
+ #endregion
+
+ #region DISPLAY FUNCTION
+ private void DisplayStatus()
+ {
+ switch (Config.ControlLevel)
+ {
+ case 0: // User Level
+ LbCurrentLevel.Text = " Current Level: User Level";
+ break;
+ case 1: // Technician Level
+ LbCurrentLevel.Text = " Current Level: Technician Level";
+ break;
+ case 2: // Engineer Level
+ LbCurrentLevel.Text = " Current Level: Engineer Level";
+ break;
+ case 3: // Master Level
+ LbCurrentLevel.Text = " Current Level: Master Level";
+ break;
+ }
+ }
+ #endregion
+
+ #region FORM EVENT
+ private void FmxLevelConfig_FormClosing(object sender, FormClosingEventArgs e)
+ {
+ TmrDisplay.Stop();
+ }
+ #endregion
+
+ #region COMPONENT EVENT
+ private void RbMaster_CheckedChanged(object sender, EventArgs e)
+ {
+ if (RbMaster.Checked)
+ {
+ TePW.Enabled = true;
+ }
+ TePW.Text = "";
+ }
+
+ private void RbEngineer_CheckedChanged(object sender, EventArgs e)
+ {
+ if (RbEngineer.Checked)
+ {
+ TePW.Enabled = true;
+ }
+ TePW.Text = "";
+ }
+
+ private void RbTechnician_CheckedChanged(object sender, EventArgs e)
+ {
+ if (RbTechnician.Checked)
+ {
+ TePW.Enabled = true;
+ }
+ TePW.Text = "";
+ }
+
+ private void RbUser_CheckedChanged(object sender, EventArgs e)
+ {
+ if (RbUser.Checked)
+ {
+ TePW.Enabled = false;
+ }
+ TePW.Text = "";
+ }
+ #endregion
+
+ #region TIMER EVENT
+ private void TmrDisplay_Tick(object sender, EventArgs e)
+ {
+ DisplayStatus();
+ }
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxChangePw.resx b/LFP_Manager/Forms/FmxChangePw.resx
new file mode 100644
index 0000000..c9162a8
--- /dev/null
+++ b/LFP_Manager/Forms/FmxChangePw.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxInformation.Designer.cs b/LFP_Manager/Forms/FmxInformation.Designer.cs
new file mode 100644
index 0000000..f6bdce1
--- /dev/null
+++ b/LFP_Manager/Forms/FmxInformation.Designer.cs
@@ -0,0 +1,195 @@
+namespace LFP_Manager.Forms
+{
+ partial class FmxInformation
+ {
+ ///
+ /// 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()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.LbDeviceId = new DevExpress.XtraEditors.LabelControl();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.BtnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.TmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.BtnClose);
+ this.layoutControl1.Controls.Add(this.LbDeviceId);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1018, 137, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(767, 398);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.emptySpaceItem1,
+ this.layoutControlItem2,
+ this.layoutControlGroup1});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(767, 398);
+ this.Root.TextVisible = false;
+ //
+ // LbDeviceId
+ //
+ this.LbDeviceId.Appearance.Font = new System.Drawing.Font("Tahoma", 20F);
+ this.LbDeviceId.Appearance.Options.UseFont = true;
+ this.LbDeviceId.Appearance.Options.UseTextOptions = true;
+ this.LbDeviceId.Appearance.TextOptions.VAlignment = DevExpress.Utils.VertAlignment.Top;
+ this.LbDeviceId.Location = new System.Drawing.Point(23, 28);
+ this.LbDeviceId.Name = "LbDeviceId";
+ this.LbDeviceId.Size = new System.Drawing.Size(737, 332);
+ this.LbDeviceId.StyleController = this.layoutControl1;
+ this.LbDeviceId.TabIndex = 4;
+ this.LbDeviceId.Text = "-";
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.LbDeviceId;
+ this.layoutControlItem1.Location = new System.Drawing.Point(16, 0);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(741, 336);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 365);
+ this.emptySpaceItem1.MinSize = new System.Drawing.Size(104, 24);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(648, 31);
+ this.emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // BtnClose
+ //
+ this.BtnClose.Location = new System.Drawing.Point(651, 368);
+ this.BtnClose.Name = "BtnClose";
+ this.BtnClose.Size = new System.Drawing.Size(113, 27);
+ this.BtnClose.StyleController = this.layoutControl1;
+ this.BtnClose.TabIndex = 5;
+ this.BtnClose.Text = "Close";
+ this.BtnClose.Click += new System.EventHandler(this.BtnClose_Click);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.BtnClose;
+ this.layoutControlItem2.Location = new System.Drawing.Point(648, 365);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(117, 31);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // emptySpaceItem2
+ //
+ this.emptySpaceItem2.AllowHotTrack = false;
+ this.emptySpaceItem2.Location = new System.Drawing.Point(0, 0);
+ this.emptySpaceItem2.MinSize = new System.Drawing.Size(10, 24);
+ this.emptySpaceItem2.Name = "emptySpaceItem2";
+ this.emptySpaceItem2.Size = new System.Drawing.Size(16, 336);
+ this.emptySpaceItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // TmrDisplay
+ //
+ this.TmrDisplay.Enabled = true;
+ this.TmrDisplay.Interval = 500;
+ this.TmrDisplay.Tick += new System.EventHandler(this.TmrDisplay_Tick);
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.emptySpaceItem2,
+ this.layoutControlItem1});
+ this.layoutControlGroup1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(765, 365);
+ this.layoutControlGroup1.Text = "Device ID";
+ //
+ // FmxInformation
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(767, 398);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Image = global::LFP_Manager.Properties.Resources.AMO_LOGO1;
+ this.Name = "FmxInformation";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Information";
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraEditors.SimpleButton BtnClose;
+ private DevExpress.XtraEditors.LabelControl LbDeviceId;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+ private System.Windows.Forms.Timer TmrDisplay;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxInformation.cs b/LFP_Manager/Forms/FmxInformation.cs
new file mode 100644
index 0000000..dbc3a28
--- /dev/null
+++ b/LFP_Manager/Forms/FmxInformation.cs
@@ -0,0 +1,66 @@
+using DevExpress.XtraEditors;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+using LFP_Manager.DataStructure;
+
+namespace LFP_Manager.Forms
+{
+ public partial class FmxInformation : DevExpress.XtraEditors.XtraForm
+ {
+ #region VARIABLES
+ private int sID;
+ private CommConfig Config;
+ private DeviceSystemData SystemData;
+ #endregion
+
+ #region CONSTRUCTORS
+ public FmxInformation(int SystemID, CommConfig aConfig, ref DeviceSystemData aSystemData)
+ {
+ InitializeComponent();
+
+ sID = SystemID;
+ Config = aConfig;
+ SystemData = aSystemData;
+ }
+ #endregion
+
+ #region TIMER EVENT
+ private void TmrDisplay_Tick(object sender, EventArgs e)
+ {
+ DisplayDeviceID();
+ }
+ #endregion
+
+ #region DISPLAY FUNCTION
+ private void DisplayDeviceID()
+ {
+ string tmp = "";
+ tmp += string.Format("Vendor Name : {0}\r\n", SystemData.Information.VendorName);
+ tmp += string.Format("Product Code : {0}\r\n", SystemData.Information.ProductCode);
+ tmp += string.Format("Major Minor Revision : {0}\r\n", SystemData.Information.MajorMinorRev);
+ tmp += string.Format("Model Name : {0}\r\n", SystemData.Information.ModelName);
+ tmp += string.Format("Hardware Serial Number : {0}\r\n", SystemData.Information.HwSerialNumber);
+ tmp += string.Format("Hardware Product Revision : {0}\r\n", SystemData.Information.HwProductRev);
+ tmp += string.Format("Manufacturing date : {0}\r\n", SystemData.Information.ManufacturingDate);
+ tmp += string.Format("SW Product Revision : {0}\r\n", SystemData.Information.SwProductRev);
+
+ LbDeviceId.Text = tmp;
+ }
+ #endregion
+
+ #region BUTTON EVENT
+ private void BtnClose_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxInformation.resx b/LFP_Manager/Forms/FmxInformation.resx
new file mode 100644
index 0000000..c9162a8
--- /dev/null
+++ b/LFP_Manager/Forms/FmxInformation.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxLevelConfig.Designer.cs b/LFP_Manager/Forms/FmxLevelConfig.Designer.cs
new file mode 100644
index 0000000..dac7b1a
--- /dev/null
+++ b/LFP_Manager/Forms/FmxLevelConfig.Designer.cs
@@ -0,0 +1,374 @@
+namespace LFP_Manager.Forms
+{
+ partial class FmxLevelConfig
+ {
+ ///
+ /// 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()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.RbMaster = new System.Windows.Forms.RadioButton();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.RbEngineer = new System.Windows.Forms.RadioButton();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.RbTechnician = new System.Windows.Forms.RadioButton();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.LbCurrentLevel = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.TePW = new DevExpress.XtraEditors.TextEdit();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.BtnApply = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.BtnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.TmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.RbUser = new System.Windows.Forms.RadioButton();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.LbCurrentLevel)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TePW.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.RbUser);
+ this.layoutControl1.Controls.Add(this.BtnClose);
+ this.layoutControl1.Controls.Add(this.BtnApply);
+ this.layoutControl1.Controls.Add(this.TePW);
+ this.layoutControl1.Controls.Add(this.RbTechnician);
+ this.layoutControl1.Controls.Add(this.RbEngineer);
+ this.layoutControl1.Controls.Add(this.RbMaster);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(751, 0, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(500, 233);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.emptySpaceItem1,
+ this.layoutControlGroup1,
+ this.layoutControlGroup2,
+ this.layoutControlGroup3,
+ this.layoutControlItem5,
+ this.layoutControlItem6});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(500, 233);
+ this.Root.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 176);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(498, 16);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem2,
+ this.layoutControlItem1,
+ this.layoutControlItem3,
+ this.layoutControlItem7});
+ this.layoutControlGroup1.Location = new System.Drawing.Point(0, 61);
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(498, 58);
+ this.layoutControlGroup1.Text = "Control Level";
+ //
+ // RbMaster
+ //
+ this.RbMaster.Location = new System.Drawing.Point(7, 89);
+ this.RbMaster.Name = "RbMaster";
+ this.RbMaster.Size = new System.Drawing.Size(118, 25);
+ this.RbMaster.TabIndex = 8;
+ this.RbMaster.TabStop = true;
+ this.RbMaster.Text = "Master";
+ this.RbMaster.UseVisualStyleBackColor = true;
+ this.RbMaster.CheckedChanged += new System.EventHandler(this.RbMaster_CheckedChanged);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.RbMaster;
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem2.MaxSize = new System.Drawing.Size(0, 29);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(24, 29);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(122, 29);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // RbEngineer
+ //
+ this.RbEngineer.Location = new System.Drawing.Point(129, 89);
+ this.RbEngineer.Name = "RbEngineer";
+ this.RbEngineer.Size = new System.Drawing.Size(119, 25);
+ this.RbEngineer.TabIndex = 9;
+ this.RbEngineer.TabStop = true;
+ this.RbEngineer.Text = "Engineer";
+ this.RbEngineer.UseVisualStyleBackColor = true;
+ this.RbEngineer.CheckedChanged += new System.EventHandler(this.RbEngineer_CheckedChanged);
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.RbEngineer;
+ this.layoutControlItem1.Location = new System.Drawing.Point(122, 0);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(24, 29);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(123, 29);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // RbTechnician
+ //
+ this.RbTechnician.Location = new System.Drawing.Point(252, 89);
+ this.RbTechnician.Name = "RbTechnician";
+ this.RbTechnician.Size = new System.Drawing.Size(118, 25);
+ this.RbTechnician.TabIndex = 10;
+ this.RbTechnician.TabStop = true;
+ this.RbTechnician.Text = "Technician";
+ this.RbTechnician.UseVisualStyleBackColor = true;
+ this.RbTechnician.CheckedChanged += new System.EventHandler(this.RbTechnician_CheckedChanged);
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.RbTechnician;
+ this.layoutControlItem3.Location = new System.Drawing.Point(245, 0);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(24, 29);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(122, 29);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // LbCurrentLevel
+ //
+ this.LbCurrentLevel.AllowHotTrack = false;
+ this.LbCurrentLevel.Location = new System.Drawing.Point(0, 0);
+ this.LbCurrentLevel.MaxSize = new System.Drawing.Size(0, 32);
+ this.LbCurrentLevel.MinSize = new System.Drawing.Size(126, 32);
+ this.LbCurrentLevel.Name = "LbCurrentLevel";
+ this.LbCurrentLevel.Size = new System.Drawing.Size(490, 32);
+ this.LbCurrentLevel.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.LbCurrentLevel.Text = " Current Level: ";
+ this.LbCurrentLevel.TextSize = new System.Drawing.Size(85, 14);
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.LbCurrentLevel});
+ this.layoutControlGroup2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup2.Name = "layoutControlGroup2";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(498, 61);
+ this.layoutControlGroup2.Text = "Control Level";
+ //
+ // TePW
+ //
+ this.TePW.Location = new System.Drawing.Point(7, 147);
+ this.TePW.Name = "TePW";
+ this.TePW.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11F);
+ this.TePW.Properties.Appearance.Options.UseFont = true;
+ this.TePW.Properties.Appearance.Options.UseTextOptions = true;
+ this.TePW.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.TePW.Properties.PasswordChar = '*';
+ this.TePW.Size = new System.Drawing.Size(486, 24);
+ this.TePW.StyleController = this.layoutControl1;
+ this.TePW.TabIndex = 11;
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.TePW;
+ this.layoutControlItem4.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem4.MaxSize = new System.Drawing.Size(0, 28);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(171, 28);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(490, 28);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // layoutControlGroup3
+ //
+ this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem4});
+ this.layoutControlGroup3.Location = new System.Drawing.Point(0, 119);
+ this.layoutControlGroup3.Name = "layoutControlGroup3";
+ this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup3.Size = new System.Drawing.Size(498, 57);
+ this.layoutControlGroup3.Text = "Password";
+ //
+ // BtnApply
+ //
+ this.BtnApply.Location = new System.Drawing.Point(3, 195);
+ this.BtnApply.Name = "BtnApply";
+ this.BtnApply.Size = new System.Drawing.Size(245, 35);
+ this.BtnApply.StyleController = this.layoutControl1;
+ this.BtnApply.TabIndex = 12;
+ this.BtnApply.Text = "Apply";
+ this.BtnApply.Click += new System.EventHandler(this.BtnApply_Click);
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.BtnApply;
+ this.layoutControlItem5.Location = new System.Drawing.Point(0, 192);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(249, 39);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // BtnClose
+ //
+ this.BtnClose.Location = new System.Drawing.Point(252, 195);
+ this.BtnClose.Name = "BtnClose";
+ this.BtnClose.Size = new System.Drawing.Size(245, 35);
+ this.BtnClose.StyleController = this.layoutControl1;
+ this.BtnClose.TabIndex = 13;
+ this.BtnClose.Text = "Close";
+ this.BtnClose.Click += new System.EventHandler(this.BtnClose_Click);
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.BtnClose;
+ this.layoutControlItem6.Location = new System.Drawing.Point(249, 192);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(249, 39);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // TmrDisplay
+ //
+ this.TmrDisplay.Interval = 500;
+ this.TmrDisplay.Tick += new System.EventHandler(this.TmrDisplay_Tick);
+ //
+ // RbUser
+ //
+ this.RbUser.Location = new System.Drawing.Point(374, 89);
+ this.RbUser.Name = "RbUser";
+ this.RbUser.Size = new System.Drawing.Size(119, 25);
+ this.RbUser.TabIndex = 14;
+ this.RbUser.TabStop = true;
+ this.RbUser.Text = "User";
+ this.RbUser.UseVisualStyleBackColor = true;
+ this.RbUser.CheckedChanged += new System.EventHandler(this.RbUser_CheckedChanged);
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.RbUser;
+ this.layoutControlItem7.Location = new System.Drawing.Point(367, 0);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(123, 29);
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem7.TextVisible = false;
+ //
+ // FmxLevelConfig
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(500, 233);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Image = global::LFP_Manager.Properties.Resources.AMO_LOGO1;
+ this.Name = "FmxLevelConfig";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Control Level Config";
+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FmxLevelConfig_FormClosing);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.LbCurrentLevel)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TePW.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private System.Windows.Forms.RadioButton RbTechnician;
+ private System.Windows.Forms.RadioButton RbEngineer;
+ private System.Windows.Forms.RadioButton RbMaster;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.SimpleLabelItem LbCurrentLevel;
+ private DevExpress.XtraEditors.TextEdit TePW;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraEditors.SimpleButton BtnClose;
+ private DevExpress.XtraEditors.SimpleButton BtnApply;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private System.Windows.Forms.Timer TmrDisplay;
+ private System.Windows.Forms.RadioButton RbUser;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxLevelConfig.cs b/LFP_Manager/Forms/FmxLevelConfig.cs
new file mode 100644
index 0000000..ba1bbe9
--- /dev/null
+++ b/LFP_Manager/Forms/FmxLevelConfig.cs
@@ -0,0 +1,184 @@
+using DevExpress.XtraEditors;
+using DevExpress.XtraPrinting.Native.LayoutAdjustment;
+using LFP_Manager.DataStructure;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Forms
+{
+ public partial class FmxLevelConfig : DevExpress.XtraEditors.XtraForm
+ {
+ #region VARIABLES
+
+ CommConfig Config;
+
+ #endregion
+
+ #region CONSTRUCTORS
+ public FmxLevelConfig()
+ {
+ InitializeComponent();
+ }
+
+ public FmxLevelConfig(CommConfig aConfig)
+ {
+ InitializeComponent();
+
+ Config = aConfig;
+
+ switch (Config.ControlLevel)
+ {
+ case 0: // User Level
+ RbUser.Checked = true;
+ break;
+ case 1: // Technician Level
+ RbTechnician.Checked = true;
+ break;
+ case 2: // Engineer Level
+ RbEngineer.Checked = true;
+ break;
+ case 3: // Master Level
+ RbMaster.Checked = true;
+ break;
+ default: // User Level
+ RbUser.Checked = true;
+ break;
+ }
+ DisplayStatus();
+ TmrDisplay.Start();
+ }
+ #endregion
+
+ #region BUTTON EVENT
+ private void BtnClose_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+ private void BtnApply_Click(object sender, EventArgs e)
+ {
+ string cPW = TePW.Text;
+
+ if (RbMaster.Checked)
+ {
+ if (Config.MasterPw == cPW)
+ {
+ Config.ControlLevel = 3;
+ MessageBox.Show("Complete change to Mastar Level", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else
+ {
+ MessageBox.Show("Wrong password for Master Level", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ else if (RbEngineer.Checked)
+ {
+ if (Config.EngineerPw == cPW)
+ {
+ Config.ControlLevel = 2;
+ MessageBox.Show("Complete change to Engineer Level", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else
+ {
+ MessageBox.Show("Wrong password for Engineer Level", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ else if (RbTechnician.Checked)
+ {
+ if (Config.TechnicianPw == cPW)
+ {
+ Config.ControlLevel = 1;
+ MessageBox.Show("Complete change to Technician Level", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else
+ {
+ MessageBox.Show("Wrong password for Technician Level", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ else if (RbUser.Checked)
+ {
+ Config.ControlLevel = 0;
+ }
+ }
+ #endregion
+
+ #region DISPLAY FUNCTION
+ private void DisplayStatus()
+ {
+ switch (Config.ControlLevel)
+ {
+ case 0: // User Level
+ LbCurrentLevel.Text = " Current Level: User Level";
+ break;
+ case 1: // Technician Level
+ LbCurrentLevel.Text = " Current Level: Technician Level";
+ break;
+ case 2: // Engineer Level
+ LbCurrentLevel.Text = " Current Level: Engineer Level";
+ break;
+ case 3: // Master Level
+ LbCurrentLevel.Text = " Current Level: Master Level";
+ break;
+ }
+ }
+ #endregion
+
+ #region FORM EVENT
+ private void FmxLevelConfig_FormClosing(object sender, FormClosingEventArgs e)
+ {
+ TmrDisplay.Stop();
+ }
+ #endregion
+
+ #region COMPONENT EVENT
+ private void RbMaster_CheckedChanged(object sender, EventArgs e)
+ {
+ if (RbMaster.Checked)
+ {
+ TePW.Enabled = true;
+ }
+ TePW.Text = "";
+ }
+
+ private void RbEngineer_CheckedChanged(object sender, EventArgs e)
+ {
+ if (RbEngineer.Checked)
+ {
+ TePW.Enabled = true;
+ }
+ TePW.Text = "";
+ }
+
+ private void RbTechnician_CheckedChanged(object sender, EventArgs e)
+ {
+ if (RbTechnician.Checked)
+ {
+ TePW.Enabled = true;
+ }
+ TePW.Text = "";
+ }
+
+ private void RbUser_CheckedChanged(object sender, EventArgs e)
+ {
+ if (RbUser.Checked)
+ {
+ TePW.Enabled = false;
+ }
+ TePW.Text = "";
+ }
+ #endregion
+
+ #region TIMER EVENT
+ private void TmrDisplay_Tick(object sender, EventArgs e)
+ {
+ DisplayStatus();
+ }
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxLevelConfig.resx b/LFP_Manager/Forms/FmxLevelConfig.resx
new file mode 100644
index 0000000..c9162a8
--- /dev/null
+++ b/LFP_Manager/Forms/FmxLevelConfig.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxPassword.Designer.cs b/LFP_Manager/Forms/FmxPassword.Designer.cs
new file mode 100644
index 0000000..a359b48
--- /dev/null
+++ b/LFP_Manager/Forms/FmxPassword.Designer.cs
@@ -0,0 +1,238 @@
+namespace LFP_Manager.Forms
+{
+ partial class FmxPassword
+ {
+ ///
+ /// 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()
+ {
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.BtnCancel = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnOk = new DevExpress.XtraEditors.SimpleButton();
+ this.TeResetPW = new DevExpress.XtraEditors.TextEdit();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.emptySpaceItem3 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.emptySpaceItem4 = new DevExpress.XtraLayout.EmptySpaceItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.TeResetPW.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.BtnCancel);
+ this.layoutControl1.Controls.Add(this.BtnOk);
+ this.layoutControl1.Controls.Add(this.TeResetPW);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(804, 0, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(500, 206);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // BtnCancel
+ //
+ this.BtnCancel.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.BtnCancel.Appearance.Options.UseFont = true;
+ this.BtnCancel.Location = new System.Drawing.Point(246, 169);
+ this.BtnCancel.Name = "BtnCancel";
+ this.BtnCancel.Size = new System.Drawing.Size(251, 34);
+ this.BtnCancel.StyleController = this.layoutControl1;
+ this.BtnCancel.TabIndex = 6;
+ this.BtnCancel.Text = "CANCEL";
+ this.BtnCancel.Click += new System.EventHandler(this.BtnCancel_Click);
+ //
+ // BtnOk
+ //
+ this.BtnOk.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.BtnOk.Appearance.Options.UseFont = true;
+ this.BtnOk.Location = new System.Drawing.Point(3, 169);
+ this.BtnOk.Name = "BtnOk";
+ this.BtnOk.Size = new System.Drawing.Size(239, 34);
+ this.BtnOk.StyleController = this.layoutControl1;
+ this.BtnOk.TabIndex = 5;
+ this.BtnOk.Text = "OK";
+ this.BtnOk.Click += new System.EventHandler(this.BtnOk_Click);
+ //
+ // TeResetPW
+ //
+ this.TeResetPW.Location = new System.Drawing.Point(111, 71);
+ this.TeResetPW.Name = "TeResetPW";
+ this.TeResetPW.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 12F);
+ this.TeResetPW.Properties.Appearance.Options.UseFont = true;
+ this.TeResetPW.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeResetPW.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.TeResetPW.Properties.PasswordChar = '*';
+ this.TeResetPW.Size = new System.Drawing.Size(282, 26);
+ this.TeResetPW.StyleController = this.layoutControl1;
+ this.TeResetPW.TabIndex = 4;
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.emptySpaceItem1,
+ this.layoutControlItem2,
+ this.layoutControlItem3,
+ this.layoutControlItem1,
+ this.emptySpaceItem2,
+ this.emptySpaceItem3,
+ this.emptySpaceItem4});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(500, 206);
+ this.Root.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(394, 68);
+ this.emptySpaceItem1.MinSize = new System.Drawing.Size(104, 24);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(104, 30);
+ this.emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.BtnOk;
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 166);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(42, 26);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(243, 38);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.BtnCancel;
+ this.layoutControlItem3.Location = new System.Drawing.Point(243, 166);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(56, 26);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(255, 38);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 12F);
+ this.layoutControlItem1.AppearanceItemCaption.Options.UseFont = true;
+ this.layoutControlItem1.Control = this.TeResetPW;
+ this.layoutControlItem1.Location = new System.Drawing.Point(108, 68);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(188, 30);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(286, 30);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.Text = "Password";
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // emptySpaceItem2
+ //
+ this.emptySpaceItem2.AllowHotTrack = false;
+ this.emptySpaceItem2.Location = new System.Drawing.Point(0, 0);
+ this.emptySpaceItem2.MinSize = new System.Drawing.Size(104, 24);
+ this.emptySpaceItem2.Name = "emptySpaceItem2";
+ this.emptySpaceItem2.Size = new System.Drawing.Size(498, 68);
+ this.emptySpaceItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // emptySpaceItem3
+ //
+ this.emptySpaceItem3.AllowHotTrack = false;
+ this.emptySpaceItem3.Location = new System.Drawing.Point(0, 98);
+ this.emptySpaceItem3.MinSize = new System.Drawing.Size(104, 24);
+ this.emptySpaceItem3.Name = "emptySpaceItem3";
+ this.emptySpaceItem3.Size = new System.Drawing.Size(498, 68);
+ this.emptySpaceItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem3.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // emptySpaceItem4
+ //
+ this.emptySpaceItem4.AllowHotTrack = false;
+ this.emptySpaceItem4.Location = new System.Drawing.Point(0, 68);
+ this.emptySpaceItem4.Name = "emptySpaceItem4";
+ this.emptySpaceItem4.Size = new System.Drawing.Size(108, 30);
+ this.emptySpaceItem4.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // FmxPassword
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(500, 206);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Image = global::LFP_Manager.Properties.Resources.AMO_LOGO1;
+ this.Name = "FmxPassword";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Reset Password";
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.TeResetPW.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraEditors.SimpleButton BtnOk;
+ private DevExpress.XtraEditors.TextEdit TeResetPW;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraEditors.SimpleButton BtnCancel;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem3;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem4;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxPassword.cs b/LFP_Manager/Forms/FmxPassword.cs
new file mode 100644
index 0000000..a637c6a
--- /dev/null
+++ b/LFP_Manager/Forms/FmxPassword.cs
@@ -0,0 +1,63 @@
+using DevExpress.Pdf.Native;
+using DevExpress.XtraEditors;
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Forms
+{
+ public partial class FmxPassword : DevExpress.XtraEditors.XtraForm
+ {
+ #region DELEGATE
+ public delegate void PasswordResut(int result);
+ #endregion
+
+ #region VARIABLES
+
+ private CommConfig Config;
+
+ public event PasswordResut OnResult = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+ public FmxPassword(CommConfig aConfig)
+ {
+ InitializeComponent();
+
+ Config = aConfig;
+ }
+ #endregion
+
+ #region BUTTON EVENT
+ private void BtnCancel_Click(object sender, EventArgs e)
+ {
+ this.DialogResult = DialogResult.Cancel;
+ Close();
+ }
+
+ private void BtnOk_Click(object sender, EventArgs e)
+ {
+ string resetPW = TeResetPW.Text;
+
+ if (resetPW == "Delta Electronics")
+ {
+ this.DialogResult = DialogResult.OK;
+ Close();
+ }
+ else
+ {
+ MessageBox.Show("Wrong Password - Try again", "Result", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxPassword.resx b/LFP_Manager/Forms/FmxPassword.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Forms/FmxPassword.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxPasswordChange.Designer.cs b/LFP_Manager/Forms/FmxPasswordChange.Designer.cs
new file mode 100644
index 0000000..e772be8
--- /dev/null
+++ b/LFP_Manager/Forms/FmxPasswordChange.Designer.cs
@@ -0,0 +1,481 @@
+namespace LFP_Manager.Forms
+{
+ partial class FmxPasswordChange
+ {
+ ///
+ /// 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()
+ {
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.BtnResetPW = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnCancel = new DevExpress.XtraEditors.SimpleButton();
+ this.BtnOk = new DevExpress.XtraEditors.SimpleButton();
+ this.TeCurrentPW = new DevExpress.XtraEditors.TextEdit();
+ this.TeNewPW = new DevExpress.XtraEditors.TextEdit();
+ this.TeCornfirmPW = new DevExpress.XtraEditors.TextEdit();
+ this.RbMaster = new System.Windows.Forms.RadioButton();
+ this.RbEngineer = new System.Windows.Forms.RadioButton();
+ this.RbTechnician = new System.Windows.Forms.RadioButton();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.simpleLabelItem1 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.simpleLabelItem2 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.simpleLabelItem3 = new DevExpress.XtraLayout.SimpleLabelItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.TeCurrentPW.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeNewPW.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeCornfirmPW.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.BtnResetPW);
+ this.layoutControl1.Controls.Add(this.BtnCancel);
+ this.layoutControl1.Controls.Add(this.BtnOk);
+ this.layoutControl1.Controls.Add(this.TeCurrentPW);
+ this.layoutControl1.Controls.Add(this.TeNewPW);
+ this.layoutControl1.Controls.Add(this.TeCornfirmPW);
+ this.layoutControl1.Controls.Add(this.RbMaster);
+ this.layoutControl1.Controls.Add(this.RbEngineer);
+ this.layoutControl1.Controls.Add(this.RbTechnician);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(804, 0, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(500, 265);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // BtnResetPW
+ //
+ this.BtnResetPW.Location = new System.Drawing.Point(412, 180);
+ this.BtnResetPW.Name = "BtnResetPW";
+ this.BtnResetPW.Size = new System.Drawing.Size(85, 39);
+ this.BtnResetPW.StyleController = this.layoutControl1;
+ this.BtnResetPW.TabIndex = 15;
+ this.BtnResetPW.Text = "Reset";
+ this.BtnResetPW.Click += new System.EventHandler(this.BtnResetPW_Click);
+ //
+ // BtnCancel
+ //
+ this.BtnCancel.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.BtnCancel.Appearance.Options.UseFont = true;
+ this.BtnCancel.Location = new System.Drawing.Point(252, 223);
+ this.BtnCancel.Name = "BtnCancel";
+ this.BtnCancel.Size = new System.Drawing.Size(245, 39);
+ this.BtnCancel.StyleController = this.layoutControl1;
+ this.BtnCancel.TabIndex = 6;
+ this.BtnCancel.Text = "CANCEL";
+ this.BtnCancel.Click += new System.EventHandler(this.BtnCancel_Click);
+ //
+ // BtnOk
+ //
+ this.BtnOk.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.BtnOk.Appearance.Options.UseFont = true;
+ this.BtnOk.Location = new System.Drawing.Point(3, 223);
+ this.BtnOk.Name = "BtnOk";
+ this.BtnOk.Size = new System.Drawing.Size(245, 39);
+ this.BtnOk.StyleController = this.layoutControl1;
+ this.BtnOk.TabIndex = 5;
+ this.BtnOk.Text = "Apply";
+ this.BtnOk.Click += new System.EventHandler(this.BtnOk_Click);
+ //
+ // TeCurrentPW
+ //
+ this.TeCurrentPW.Location = new System.Drawing.Point(133, 86);
+ this.TeCurrentPW.Name = "TeCurrentPW";
+ this.TeCurrentPW.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 12F);
+ this.TeCurrentPW.Properties.Appearance.Options.UseFont = true;
+ this.TeCurrentPW.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeCurrentPW.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.TeCurrentPW.Properties.PasswordChar = '*';
+ this.TeCurrentPW.Size = new System.Drawing.Size(360, 26);
+ this.TeCurrentPW.StyleController = this.layoutControl1;
+ this.TeCurrentPW.TabIndex = 4;
+ //
+ // TeNewPW
+ //
+ this.TeNewPW.Location = new System.Drawing.Point(133, 116);
+ this.TeNewPW.Name = "TeNewPW";
+ this.TeNewPW.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 12F);
+ this.TeNewPW.Properties.Appearance.Options.UseFont = true;
+ this.TeNewPW.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeNewPW.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.TeNewPW.Properties.PasswordChar = '*';
+ this.TeNewPW.Size = new System.Drawing.Size(360, 26);
+ this.TeNewPW.StyleController = this.layoutControl1;
+ this.TeNewPW.TabIndex = 4;
+ //
+ // TeCornfirmPW
+ //
+ this.TeCornfirmPW.Location = new System.Drawing.Point(133, 146);
+ this.TeCornfirmPW.Name = "TeCornfirmPW";
+ this.TeCornfirmPW.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 12F);
+ this.TeCornfirmPW.Properties.Appearance.Options.UseFont = true;
+ this.TeCornfirmPW.Properties.Appearance.Options.UseTextOptions = true;
+ this.TeCornfirmPW.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.TeCornfirmPW.Properties.PasswordChar = '*';
+ this.TeCornfirmPW.Size = new System.Drawing.Size(360, 26);
+ this.TeCornfirmPW.StyleController = this.layoutControl1;
+ this.TeCornfirmPW.TabIndex = 4;
+ //
+ // RbMaster
+ //
+ this.RbMaster.Location = new System.Drawing.Point(7, 28);
+ this.RbMaster.Name = "RbMaster";
+ this.RbMaster.Size = new System.Drawing.Size(159, 25);
+ this.RbMaster.TabIndex = 8;
+ this.RbMaster.TabStop = true;
+ this.RbMaster.Text = "Master";
+ this.RbMaster.UseVisualStyleBackColor = true;
+ //
+ // RbEngineer
+ //
+ this.RbEngineer.Location = new System.Drawing.Point(170, 28);
+ this.RbEngineer.Name = "RbEngineer";
+ this.RbEngineer.Size = new System.Drawing.Size(159, 25);
+ this.RbEngineer.TabIndex = 9;
+ this.RbEngineer.TabStop = true;
+ this.RbEngineer.Text = "Engineer";
+ this.RbEngineer.UseVisualStyleBackColor = true;
+ //
+ // RbTechnician
+ //
+ this.RbTechnician.Location = new System.Drawing.Point(333, 28);
+ this.RbTechnician.Name = "RbTechnician";
+ this.RbTechnician.Size = new System.Drawing.Size(160, 25);
+ this.RbTechnician.TabIndex = 10;
+ this.RbTechnician.TabStop = true;
+ this.RbTechnician.Text = "Technician";
+ this.RbTechnician.UseVisualStyleBackColor = true;
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.emptySpaceItem1,
+ this.layoutControlItem2,
+ this.layoutControlItem3,
+ this.layoutControlGroup2,
+ this.layoutControlGroup1,
+ this.layoutControlItem10});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(500, 265);
+ this.Root.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 177);
+ this.emptySpaceItem1.MinSize = new System.Drawing.Size(104, 24);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(409, 43);
+ this.emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.BtnOk;
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 220);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(27, 26);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(249, 43);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.BtnCancel;
+ this.layoutControlItem3.Location = new System.Drawing.Point(249, 220);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(56, 26);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(249, 43);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.CustomizationFormText = "Control Level";
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem6,
+ this.layoutControlItem7,
+ this.layoutControlItem8});
+ this.layoutControlGroup2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup2.Name = "layoutControlGroup2";
+ this.layoutControlGroup2.OptionsItemText.TextToControlDistance = 3;
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(498, 58);
+ this.layoutControlGroup2.Text = "Control Level";
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.RbMaster;
+ this.layoutControlItem6.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem6.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem6.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem6.MaxSize = new System.Drawing.Size(0, 29);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(24, 29);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(163, 29);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.Text = "layoutControlItem2";
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.RbEngineer;
+ this.layoutControlItem7.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem7.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem7.Location = new System.Drawing.Point(163, 0);
+ this.layoutControlItem7.MinSize = new System.Drawing.Size(24, 29);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(163, 29);
+ this.layoutControlItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem7.Text = "layoutControlItem1";
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem7.TextVisible = false;
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.RbTechnician;
+ this.layoutControlItem8.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem8.CustomizationFormText = "layoutControlItem3";
+ this.layoutControlItem8.Location = new System.Drawing.Point(326, 0);
+ this.layoutControlItem8.MinSize = new System.Drawing.Size(24, 29);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(164, 29);
+ this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem8.Text = "layoutControlItem3";
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem8.TextVisible = false;
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.simpleLabelItem1,
+ this.layoutControlItem1,
+ this.simpleLabelItem2,
+ this.layoutControlItem4,
+ this.simpleLabelItem3,
+ this.layoutControlItem5});
+ this.layoutControlGroup1.Location = new System.Drawing.Point(0, 58);
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(498, 119);
+ this.layoutControlGroup1.Text = "Password";
+ //
+ // simpleLabelItem1
+ //
+ this.simpleLabelItem1.AllowHotTrack = false;
+ this.simpleLabelItem1.Location = new System.Drawing.Point(0, 0);
+ this.simpleLabelItem1.MaxSize = new System.Drawing.Size(0, 30);
+ this.simpleLabelItem1.MinSize = new System.Drawing.Size(126, 30);
+ this.simpleLabelItem1.Name = "simpleLabelItem1";
+ this.simpleLabelItem1.Size = new System.Drawing.Size(126, 30);
+ this.simpleLabelItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem1.Text = " Current Password";
+ this.simpleLabelItem1.TextSize = new System.Drawing.Size(104, 14);
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 12F);
+ this.layoutControlItem1.AppearanceItemCaption.Options.UseFont = true;
+ this.layoutControlItem1.Control = this.TeCurrentPW;
+ this.layoutControlItem1.Location = new System.Drawing.Point(126, 0);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(188, 30);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(364, 30);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.Text = "Password";
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // simpleLabelItem2
+ //
+ this.simpleLabelItem2.AllowHotTrack = false;
+ this.simpleLabelItem2.Location = new System.Drawing.Point(0, 30);
+ this.simpleLabelItem2.MaxSize = new System.Drawing.Size(0, 30);
+ this.simpleLabelItem2.MinSize = new System.Drawing.Size(126, 30);
+ this.simpleLabelItem2.Name = "simpleLabelItem2";
+ this.simpleLabelItem2.Size = new System.Drawing.Size(126, 30);
+ this.simpleLabelItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem2.Text = " New Password";
+ this.simpleLabelItem2.TextSize = new System.Drawing.Size(104, 14);
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 12F);
+ this.layoutControlItem4.AppearanceItemCaption.Options.UseFont = true;
+ this.layoutControlItem4.Control = this.TeNewPW;
+ this.layoutControlItem4.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem4.CustomizationFormText = "Password";
+ this.layoutControlItem4.Location = new System.Drawing.Point(126, 30);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(188, 30);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(364, 30);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.Text = "Password";
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // simpleLabelItem3
+ //
+ this.simpleLabelItem3.AllowHotTrack = false;
+ this.simpleLabelItem3.Location = new System.Drawing.Point(0, 60);
+ this.simpleLabelItem3.MaxSize = new System.Drawing.Size(0, 30);
+ this.simpleLabelItem3.MinSize = new System.Drawing.Size(126, 30);
+ this.simpleLabelItem3.Name = "simpleLabelItem3";
+ this.simpleLabelItem3.Size = new System.Drawing.Size(126, 30);
+ this.simpleLabelItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.simpleLabelItem3.Text = " Cornfirm Password";
+ this.simpleLabelItem3.TextSize = new System.Drawing.Size(104, 14);
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 12F);
+ this.layoutControlItem5.AppearanceItemCaption.Options.UseFont = true;
+ this.layoutControlItem5.Control = this.TeCornfirmPW;
+ this.layoutControlItem5.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+ this.layoutControlItem5.CustomizationFormText = "Password";
+ this.layoutControlItem5.Location = new System.Drawing.Point(126, 60);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(188, 30);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(364, 30);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.Text = "Password";
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // layoutControlItem10
+ //
+ this.layoutControlItem10.Control = this.BtnResetPW;
+ this.layoutControlItem10.Location = new System.Drawing.Point(409, 177);
+ this.layoutControlItem10.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem10.Name = "layoutControlItem10";
+ this.layoutControlItem10.Size = new System.Drawing.Size(89, 43);
+ this.layoutControlItem10.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem10.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem10.TextVisible = false;
+ //
+ // FmxPasswordChange
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(500, 265);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Image = global::LFP_Manager.Properties.Resources.AMO_LOGO1;
+ this.Name = "FmxPasswordChange";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Change Password";
+ this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FmxPassword_FormClosed);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.TeCurrentPW.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeNewPW.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.TeCornfirmPW.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraEditors.SimpleButton BtnOk;
+ private DevExpress.XtraEditors.TextEdit TeCurrentPW;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraEditors.SimpleButton BtnCancel;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraEditors.TextEdit TeNewPW;
+ private DevExpress.XtraEditors.TextEdit TeCornfirmPW;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem1;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem2;
+ private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem3;
+ private System.Windows.Forms.RadioButton RbMaster;
+ private System.Windows.Forms.RadioButton RbEngineer;
+ private System.Windows.Forms.RadioButton RbTechnician;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.SimpleButton BtnResetPW;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxPasswordChange.cs b/LFP_Manager/Forms/FmxPasswordChange.cs
new file mode 100644
index 0000000..4d29124
--- /dev/null
+++ b/LFP_Manager/Forms/FmxPasswordChange.cs
@@ -0,0 +1,149 @@
+using DevExpress.Pdf.Native;
+using DevExpress.XtraEditors;
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using static DevExpress.XtraPrinting.Export.Pdf.PdfImageCache;
+
+namespace LFP_Manager.Forms
+{
+ public partial class FmxPasswordChange : DevExpress.XtraEditors.XtraForm
+ {
+ #region DELEGATE
+ public delegate void PasswordResut(int result);
+ #endregion
+
+ #region VARIABLES
+ private CommConfig Config;
+ private int result = -1;
+
+ public event PasswordResut OnResult = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+ public FmxPasswordChange(CommConfig aConfig)
+ {
+ InitializeComponent();
+
+ Config = aConfig;
+ }
+ #endregion
+
+ #region FORM EVENT
+ private void FmxPassword_FormClosed(object sender, FormClosedEventArgs e)
+ {
+ OnResult?.Invoke(result);
+ }
+ #endregion
+
+ #region BUTTON EVENT
+ private void BtnCancel_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+
+ private void BtnOk_Click(object sender, EventArgs e)
+ {
+ string sPW;
+ string currPW, newPW, cornfirmPW;
+
+ currPW = TeCurrentPW.Text;
+ newPW = TeNewPW.Text;
+ cornfirmPW = TeCornfirmPW.Text;
+
+ if (newPW.Length < 4)
+ {
+ MessageBox.Show("Too short new password (Min. Length 4)", "Result", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ if (RbMaster.Checked)
+ {
+ sPW = Config.MasterPw;
+ }
+ else if (RbEngineer.Checked)
+ {
+ sPW = Config.EngineerPw;
+ }
+ else if (RbTechnician.Checked)
+ {
+ sPW = Config.TechnicianPw;
+ }
+ else
+ {
+ sPW = "";
+ }
+
+ if (sPW != currPW)
+ {
+ MessageBox.Show("The current password is incorrect.", "Result", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ if (newPW != cornfirmPW)
+ {
+ MessageBox.Show("The new password and its confirmation do not match.", "Result", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ if (currPW == newPW)
+ {
+ MessageBox.Show("Your new password cannot be the same as your current password.", "Result", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+
+ if (RbMaster.Checked)
+ {
+ Config.MasterPw = newPW;
+ }
+ else if (RbEngineer.Checked)
+ {
+ Config.EngineerPw = newPW;
+ }
+ else if (RbTechnician.Checked)
+ {
+ Config.TechnicianPw = newPW;
+ }
+ else
+ {
+ return;
+ }
+ csIniControlFunction.IniSave(Application.ExecutablePath, Config);
+
+ MessageBox.Show("Password changed successfully.", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+
+ private void BtnResetPW_Click(object sender, EventArgs e)
+ {
+ foreach (Form frm in Application.OpenForms)
+ {
+ if (frm.Name == "FmxPassword")
+ {
+ frm.Activate();
+ return;
+ }
+ }
+ FmxPassword PasswordForm = new FmxPassword(Config);
+ if (PasswordForm.ShowDialog() == DialogResult.OK)
+ {
+ Config.MasterPw = "8003";
+ Config.EngineerPw = "7003";
+ Config.TechnicianPw = "6003";
+ csIniControlFunction.IniSave(Application.ExecutablePath, Config);
+
+ MessageBox.Show("Password reset successful.", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ else
+ {
+
+ }
+ }
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/FmxPasswordChange.resx b/LFP_Manager/Forms/FmxPasswordChange.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Forms/FmxPasswordChange.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmCalibration.Designer.cs b/LFP_Manager/Forms/fmCalibration.Designer.cs
new file mode 100644
index 0000000..5c8ea48
--- /dev/null
+++ b/LFP_Manager/Forms/fmCalibration.Designer.cs
@@ -0,0 +1,152 @@
+namespace LFP_Manager.Forms
+{
+ partial class fmxCalibration
+ {
+ ///
+ /// 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()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxCalibration));
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.ucCalibration1 = new LFP_Manager.Controls.ucCalibration();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.btnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.tmrDisplay = new System.Windows.Forms.Timer(this.components);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.btnClose);
+ this.layoutControl1.Controls.Add(this.ucCalibration1);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(668, 306, 250, 350);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(612, 485);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1,
+ this.layoutControlItem2});
+ this.layoutControlGroup1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Size = new System.Drawing.Size(612, 485);
+ this.layoutControlGroup1.Text = "layoutControlGroup1";
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // ucCalibration1
+ //
+ this.ucCalibration1.Location = new System.Drawing.Point(12, 12);
+ this.ucCalibration1.Name = "ucCalibration1";
+ this.ucCalibration1.Size = new System.Drawing.Size(588, 423);
+ this.ucCalibration1.TabIndex = 4;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.ucCalibration1;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(104, 24);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(592, 427);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.Text = "layoutControlItem1";
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextToControlDistance = 0;
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // btnClose
+ //
+ this.btnClose.Location = new System.Drawing.Point(12, 439);
+ this.btnClose.Name = "btnClose";
+ this.btnClose.Size = new System.Drawing.Size(588, 34);
+ this.btnClose.StyleController = this.layoutControl1;
+ this.btnClose.TabIndex = 5;
+ this.btnClose.Text = "Close";
+ this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.btnClose;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 427);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(592, 38);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.Text = "layoutControlItem2";
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextToControlDistance = 0;
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // tmrDisplay
+ //
+ this.tmrDisplay.Interval = 500;
+ this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick);
+ //
+ // fmxCalibration
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(612, 485);
+ this.Controls.Add(this.layoutControl1);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "fmxCalibration";
+ this.Text = "Calibration";
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.SimpleButton btnClose;
+ private Controls.ucCalibration ucCalibration1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private System.Windows.Forms.Timer tmrDisplay;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmCalibration.cs b/LFP_Manager/Forms/fmCalibration.cs
new file mode 100644
index 0000000..a829f6e
--- /dev/null
+++ b/LFP_Manager/Forms/fmCalibration.cs
@@ -0,0 +1,79 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Controls;
+
+namespace LFP_Manager.Forms
+{
+ public delegate void CalibUpdateEvent(object sendor);
+ public delegate void CalibCmdEvent(int sId, int mode, int flag, DeviceParamData aParam, DeviceCalibration aCalib);
+
+ public partial class fmxCalibration : DevExpress.XtraEditors.XtraForm
+ {
+ #region VARIABLES
+
+ int SystemId = 0;
+ DeviceParamData Param;
+ DeviceCalibration Calib;
+
+ public event CalibUpdateEvent OnUpdate = null;
+ public event CalibCmdEvent OnCommand = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public fmxCalibration()
+ {
+ InitializeComponent();
+ }
+
+ public fmxCalibration(int sId, DeviceCalibration aCalib)
+ {
+ InitializeComponent();
+
+ SystemId = sId;
+ Calib = aCalib;
+
+ tmrDisplay.Enabled = true;
+ }
+
+ #endregion
+
+ private void btnClose_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+
+ #region TIMER EVENT
+
+ private void tmrDisplay_Tick(object sender, EventArgs e)
+ {
+ if (OnUpdate != null)
+ {
+ OnUpdate(this);
+ }
+ }
+
+ #endregion
+
+ #region PUBLIC FUCTIONS
+
+ public void UpdateData(DeviceParamData aParam, DeviceCalibration aCalib)
+ {
+ Param = aParam;
+ Calib = aCalib;
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmCalibration.resx b/LFP_Manager/Forms/fmCalibration.resx
new file mode 100644
index 0000000..53cd17e
--- /dev/null
+++ b/LFP_Manager/Forms/fmCalibration.resx
@@ -0,0 +1,4574 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+
+ AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA
+ GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/
+ ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7/////////////////////
+ ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff/////////
+ ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+
+ /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7/////
+ ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc
+ x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7/////////////////////////////
+ ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt
+ e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP
+ SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7/////////
+ ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z
+ WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS
+ Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8
+ +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+
+ /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+
+ /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO
+ SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz
+ 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o
+ 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9
+ /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE
+ oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG
+ PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7/////
+ ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH
+ PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t
+ 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/
+ ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/
+ ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7/////////////////////////////
+ ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+
+ /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ
+ TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7/////////////////
+ ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ
+ TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+
+ /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7/////
+ ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP
+ SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7/////////////////////////////////////////
+ ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/
+ ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7/////////////////////////////
+ ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/
+ ///+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////+/v7////////+/v3////////////////////////+/v3////////+/v7/////////////////
+ ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7/////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ /////////v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v7////////+/v7/////////////////////////////////////
+ ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7/////////////////////
+ ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7
+ +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9
+ /Pz+/v7/////////////////////////////////////////////////////////////////////////
+ ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM
+ RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7/////////////////////////////////////
+ ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL
+ QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+
+ /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP
+ SgCOSQCPTAKFOwDVvaT////9/Pv+/v7/////////////////////////////////////////////////
+ ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8
+ +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7/////////
+ /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO
+ SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF
+ OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+
+ ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/
+ //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7/////////////////////////
+ ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/
+ mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79
+ /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN
+ RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ
+ TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7/////
+ ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7/////
+ ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+
+ /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ
+ TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP
+ SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH
+ PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/
+ ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5
+ 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+
+ /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ
+ QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE
+ oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/
+ ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7/////////////////////////
+ ///////////////////////////////////////////////////////+/v7+////////////////////
+ ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+
+ /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9
+ /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP
+ SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL
+ RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7/////////////////////////////////
+ ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/
+ ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7/////////
+ ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP
+ SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI
+ PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/
+ ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x
+ glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7/////////////////////////////
+ ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM
+ RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+
+ /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/
+ ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP
+ SgCOSgGLRQGTURDz7ef+/v39/f3+/v7/////////////////////////////////////////////////
+ ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+
+ /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7/////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN
+ RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9
+ /fz9/f3+/v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO
+ SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7/////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO
+ SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS
+ UA/y6+X+/v39/fz+/v7+/v7/////////////////////////////////////////////////////////
+ ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP
+ SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7/////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+
+ /v7/////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO
+ SQCOSQGJQQDi0cD////9/Pv+/v7/////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J
+ QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7/////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39
+ /fz+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz
+ hFazhFayhFazhVete1TWvqb////9/fz+/v7/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+
+ /f3+/f3/////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v7+////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////v7+
+ /f39////////////////////////////////////////////////////////////////////////////
+ ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39
+ /fz8/v79/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA
+ nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1////
+ x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV
+ i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC
+ jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC
+ hz8Ap3I//fz7/fz8/v79/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7
+ /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8
+ +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p
+ /v39/f38/v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+
+ ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb
+ 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+//7+/f39
+ /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7////
+ 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+
+ /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA
+ j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB
+ j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB
+ i0UAlVYZ8+3m/f79/f38/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+////////////////
+ /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39
+ /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+
+ sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+
+ /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+////////
+ /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+
+ /f39/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO
+ /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39
+ 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39
+ /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+////////////////////////////
+ /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+////
+ /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A
+ kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ jkoCikIC4tHA/////Pv7/v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC
+ hz4A1r6m/////Pz7/v7+/v7+/////v7+////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+
+ /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+////////////////////
+ /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM
+ /////Pv6/v7+/v7+/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA
+ j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+
+ /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7
+ /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq////
+ /Pv6/v7+/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A
+ j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA
+ kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA
+ j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6
+ /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+////////
+ /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+
+ /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA
+ xaJ//////Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU
+ /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA
+ j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+////////////
+ 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+
+ /////v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39
+ /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/
+ /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6
+ ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+
+ /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC
+ kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB
+ kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39////
+ /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA
+ hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA
+ iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A
+ j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU
+ z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+////////
+ /v7+/////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7//v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn
+ +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3
+ +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8
+ /fz8/v7+/////v7+/////v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v///v7+/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT
+ z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7
+ ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A
+ hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A
+ fS0AtIdb/f38/Pz8///+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D
+ kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL
+ jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA
+ jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3
+ iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA
+ jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA
+ jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK
+ 6t7S/v7+/fz8/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs////
+ /Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7
+ /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38
+ /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fz8
+ /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+////////////////////////////////////
+ /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+
+ /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA
+ jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A
+ pnA8/Pv6/fz7/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq
+ iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+
+ /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+////////////
+ /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+
+ //7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A
+ 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES
+ jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+////////////////
+ /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6
+ /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7
+ /v79/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v39
+ /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8
+ +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+
+ /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ
+ hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ
+ 8+3m/f39/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+
+ /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA
+ jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA
+ u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA
+ j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA
+ jkkCikQE49PC/v7//fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8
+ /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+
+ /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7////
+ t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA
+ jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU
+ hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD
+ /////fz8//7//v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA
+ oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC
+ hj0Az7SX/////fz7//7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+//7+
+ /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH
+ jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA
+ jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT////
+ /Pz8/v7//v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA
+ t4tf/////fz7/v7+/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs
+ mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6
+ /v7+/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v7+
+ /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx
+ +/n3/fz8/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+
+ rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA
+ jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW
+ k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV
+ kU8TmVoj8ejg/v39/fz7/v7//f39/v//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off
+ 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v////7+/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v39/v7+
+ ///+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/v//////
+ /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v79/////////v7+/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v79/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////9/Lt9/Pu
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2svnmMrzrGR/////fz7////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ
+ /v39/fz8/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h
+ /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0////
+ 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC
+ j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ jUgBlFIO7uTa/////f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB
+ jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+
+ /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38////////////////////
+ /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z
+ iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+
+ sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG////
+ /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ hz4Ar35J/v39/fz8/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+////////
+ /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38////////////////////////////////
+ /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+////////////////////////////////////////////
+ /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA
+ /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW
+ k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+
+ /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+////////////////////
+ /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iEAA176j/////fz7////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39////////////////////////////////////////////
+ ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38
+ /fz8/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEA1buf/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+////////////
+ /////////////////////////////////////////////////////////////////////fz7////yKaB
+ hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v///f38////sH9K
+ hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oBi0QAnmIj9vHs/v39/v39////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA
+ nWAf9vHs/v7+/v79////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo////
+ /fz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v///f38////
+ 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/v79+/n3omor
+ ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm
+ +PTw/v39/f39////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sBjEUAmVwb9e/p/v7+/f38////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A
+ vpVq/////fz7/v/+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8AyKaB/////fz7/v///v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39
+ //7/////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC
+ jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsCiD8Auo9h/////fz8/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE
+ iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB
+ 4tC+/////f38/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjUcBk1EN7+Xb/////f39/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj
+ n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f38////u5Jlhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkBjUgE4M66/////fz7/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR
+ 7+bd/v7+/f39////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv
+ +/n4/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0
+ rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6
+ ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC
+ hz4AtolZ/////fz8/v3+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA
+ j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ j0sBikIApGww+vj1/v39/f39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ
+ j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M
+ /////Pz7/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkCjkkG4c+7/////fz7/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+///+/v39
+ /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d////
+ /fz7/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/f38/f38
+ 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A
+ jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sBiD8AyKiE/////fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oBiUEApW4z+vj1/v39/v39////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ
+ /v7+/f38/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4
+ 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD
+ 49PB/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/Pz7////
+ 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6////
+ /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A
+ j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC
+ iUEAqHQ7+/j2/fz8/v39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jUgBkk8K7ODV/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL////
+ /f38/v7+///+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6////////
+ ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A
+ ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38
+ /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBiUEA1Lqd/////fv6////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38
+ sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////v7+/v39
+ /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq
+ 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38
+ /v39/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjUgBkU4J6NrM/////fz8////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA
+ jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEArnxG/v7+/f38/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO
+ 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i////
+ /Pz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA
+ hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr
+ vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g
+ 4M24/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY
+ llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+////////////////////////////
+ /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsCiUEArXpD/v7//f39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB
+ ikMA1bqf/////fz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39
+ /f38/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39
+ /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/////////v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI
+ iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8////
+ /fz8////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA
+ mVsZ8+zl/v38/fz8////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7
+ /v7+//7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz7/v7+
+ 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf
+ 9vHs/v79/fz8////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z
+ iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAi0YAl1gT8+3l/v7+/f39////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA
+ upFj/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC
+ hz4AwZty/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////f39
+ /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC
+ jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ
+ hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsChz4At4ta/////fz8/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjUgCkEwL6dzO/////fz7////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD
+ 38y3/////fz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v/+/f39/v79
+ +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////fz8
+ /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A
+ kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK
+ 5tbG/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBjUcB4M25/////f38/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos
+ +PTw/fz8/f39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v//////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA
+ kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB
+ iUAAq3dA/Pr4/fz7/f39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v///fz7
+ ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA
+ j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0oBikMAomgq+vf0/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////Pz7////4M24
+ i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiUEA0rea/////fz7/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7
+ /v38/v39/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////f38/v79
+ +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/f38
+ ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ kEwChz4AxaJ8/////fz7/v7+////////////////////////////////////////////////////////
+ ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA
+ 07mb/////Pz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU
+ /v7+/Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+////
+ //////////////////////////////////////////////////////////////////////////////7/
+ /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7/////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+////////////////////////////
+ /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jEQAm10b9O/p/v7+/f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+////////////////////////////////////////
+ /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7
+ /v7//v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jUgAklAK6dzO/////f38/v//////////////////////////////////////////////////////////
+ /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6
+ /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng
+ lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+
+ /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiD8Au5Jl/////fz8/v7+//7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+////////////////////
+ /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj
+ /v39/fz8/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+////////////////////////////
+ /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8
+ ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb////
+ /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A
+ upFj/////fz8/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+
+ /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7////////////////////////
+ /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf
+ llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA
+ kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkBjUcA49LA/////f38/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79
+ /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3
+ qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8////0baX
+ iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD
+ /////fz8/v//////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA
+ nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA
+ qHI4/Pv5/v39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+
+ iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ kEsChz8Az7KS/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7
+ /v39/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v39
+ /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////fz8////59jIj0oD
+ jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ
+ /////fz8////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB
+ llYW7+Xb/v7+/f38/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0wChz8AuIxc/v7+/fz7/v39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+
+ /v39/v//////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fv6
+ ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAjkkBjEYA4M24/////fz8/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa
+ /////f38////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v39/fz7
+ 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB
+ jUcE3sq2/////Pz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oBikMAomgq+fXy/v39/f39////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/fz7////
+ 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq
+ +vf1/f38/f39//7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39
+ tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS
+ yqqM38u2/////v79/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/v79////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v79/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxAntiTheft.Designer.cs b/LFP_Manager/Forms/fmxAntiTheft.Designer.cs
new file mode 100644
index 0000000..c7f2cd4
--- /dev/null
+++ b/LFP_Manager/Forms/fmxAntiTheft.Designer.cs
@@ -0,0 +1,161 @@
+namespace LFP_Manager.Forms
+{
+ partial class fmxAntiTheft
+ {
+ ///
+ /// 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()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxAntiTheft));
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.tmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.AntiTheftCmd = new LFP_Manager.Controls.UcAntiTheftControl();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.AntiTheftCmd);
+ this.layoutControl1.Controls.Add(this.btnClose);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1265, 291, 250, 350);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(858, 226);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // btnClose
+ //
+ this.btnClose.Location = new System.Drawing.Point(612, 200);
+ this.btnClose.Name = "btnClose";
+ this.btnClose.Size = new System.Drawing.Size(242, 22);
+ this.btnClose.StyleController = this.layoutControl1;
+ this.btnClose.TabIndex = 5;
+ this.btnClose.Text = "Close";
+ this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem2,
+ this.emptySpaceItem1,
+ this.layoutControlItem1});
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(858, 226);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.btnClose;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(608, 196);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(246, 26);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1";
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 196);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(608, 26);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // tmrDisplay
+ //
+ this.tmrDisplay.Interval = 500;
+ this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick);
+ //
+ // AntiTheftCmd
+ //
+ this.AntiTheftCmd.Location = new System.Drawing.Point(4, 4);
+ this.AntiTheftCmd.Name = "AntiTheftCmd";
+ this.AntiTheftCmd.Size = new System.Drawing.Size(850, 192);
+ this.AntiTheftCmd.TabIndex = 6;
+ this.AntiTheftCmd.Load += new System.EventHandler(this.AntiTheftCmd_Load);
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.AntiTheftCmd;
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(854, 196);
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // fmxAntiTheft
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(858, 226);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("fmxAntiTheft.IconOptions.Icon")));
+ this.Name = "fmxAntiTheft";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Anti-Theft";
+ this.TopMost = true;
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.SimpleButton btnClose;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private System.Windows.Forms.Timer tmrDisplay;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private Controls.UcAntiTheftControl AntiTheftCmd;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxAntiTheft.cs b/LFP_Manager/Forms/fmxAntiTheft.cs
new file mode 100644
index 0000000..d1f6619
--- /dev/null
+++ b/LFP_Manager/Forms/fmxAntiTheft.cs
@@ -0,0 +1,126 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Controls;
+using LFP_Manager.Threads;
+
+namespace LFP_Manager.Forms
+{
+ public delegate void AntiTheftUpdateEvent(object sendor);
+ public delegate void AntiTheftCmdEvent(int sId, int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib);
+
+ public partial class fmxAntiTheft : DevExpress.XtraEditors.XtraForm
+ {
+ #region VARIABLES
+
+ int SystemId = 0;
+ DeviceSystemData SystemData;
+ DeviceParamData Param;
+ DeviceCalibration Calib;
+
+ public event AntiTheftUpdateEvent OnUpdate = null;
+ public event AntiTheftCmdEvent OnCommand = null;
+ public event SendDataUartEvent OnSendUartData = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public fmxAntiTheft()
+ {
+ InitializeComponent();
+ }
+
+ public fmxAntiTheft(int sId, DeviceCalibration aCalib)
+ {
+ InitializeComponent();
+
+ InitComponent();
+
+ SystemId = sId;
+ Calib = aCalib;
+
+ AntiTheftCmd.UpdateData(SystemId, Calib);
+ AntiTheftCmd.OnSendUartData += SetWriteData;
+
+ tmrDisplay.Enabled = true;
+ }
+
+ public void InitComponent()
+ {
+ // Cell Voltage Calibration
+ AntiTheftCmd.OnCommand += OnCmdEvent;
+ }
+
+ #endregion
+
+ #region COMMAND EVENT
+ private void SetWriteData(ushort WriteAddr, byte[] WriteData, bool RelyFlag, int type)
+ {
+ OnSendUartData?.Invoke(WriteAddr, WriteData, RelyFlag, type);
+ }
+
+ private void OnCmdEvent(int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib)
+ {
+ OnCommand?.Invoke(SystemId, mode, index, flag, ref aParam, ref aCalib);
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+ private void btnClose_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+ #endregion
+
+ #region TIMER EVENT
+
+ private void tmrDisplay_Tick(object sender, EventArgs e)
+ {
+
+ DisplayValue();
+ if (OnUpdate != null)
+ {
+ OnUpdate(this);
+ }
+ }
+
+ #endregion
+
+ #region DISPLAY DATA
+
+ private void DisplayValue()
+ {
+ // Cell Voltage Parameter
+ AntiTheftCmd.UpdateData(SystemId, Calib);
+ }
+
+ #endregion
+
+ #region PUBLIC FUCTIONS
+
+ public void UpdateData(DeviceParamData aParam, DeviceCalibration aCalib, DeviceSystemData aSystemData)
+ {
+ SystemData = aSystemData;
+ Param = aParam;
+ Calib = aCalib;
+ }
+
+ #endregion
+
+ private void AntiTheftCmd_Load(object sender, EventArgs e)
+ {
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxAntiTheft.resx b/LFP_Manager/Forms/fmxAntiTheft.resx
new file mode 100644
index 0000000..3e6bd1e
--- /dev/null
+++ b/LFP_Manager/Forms/fmxAntiTheft.resx
@@ -0,0 +1,4574 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+
+ AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA
+ GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/
+ ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7/////////////////////
+ ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff/////////
+ ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+
+ /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7/////
+ ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc
+ x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7/////////////////////////////
+ ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt
+ e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP
+ SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7/////////
+ ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z
+ WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS
+ Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8
+ +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+
+ /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+
+ /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO
+ SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz
+ 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o
+ 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9
+ /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE
+ oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG
+ PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7/////
+ ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH
+ PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t
+ 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/
+ ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/
+ ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7/////////////////////////////
+ ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+
+ /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ
+ TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7/////////////////
+ ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ
+ TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+
+ /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7/////
+ ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP
+ SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7/////////////////////////////////////////
+ ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/
+ ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7/////////////////////////////
+ ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/
+ ///+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////+/v7////////+/v3////////////////////////+/v3////////+/v7/////////////////
+ ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7/////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ /////////v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v7////////+/v7/////////////////////////////////////
+ ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7/////////////////////
+ ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7
+ +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9
+ /Pz+/v7/////////////////////////////////////////////////////////////////////////
+ ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM
+ RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7/////////////////////////////////////
+ ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL
+ QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+
+ /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP
+ SgCOSQCPTAKFOwDVvaT////9/Pv+/v7/////////////////////////////////////////////////
+ ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8
+ +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7/////////
+ /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO
+ SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF
+ OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+
+ ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/
+ //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7/////////////////////////
+ ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/
+ mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79
+ /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN
+ RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ
+ TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7/////
+ ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7/////
+ ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+
+ /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ
+ TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP
+ SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH
+ PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/
+ ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5
+ 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+
+ /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ
+ QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE
+ oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/
+ ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7/////////////////////////
+ ///////////////////////////////////////////////////////+/v7+////////////////////
+ ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+
+ /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9
+ /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP
+ SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL
+ RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7/////////////////////////////////
+ ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/
+ ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7/////////
+ ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP
+ SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI
+ PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/
+ ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x
+ glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7/////////////////////////////
+ ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM
+ RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+
+ /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/
+ ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP
+ SgCOSgGLRQGTURDz7ef+/v39/f3+/v7/////////////////////////////////////////////////
+ ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+
+ /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7/////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN
+ RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9
+ /fz9/f3+/v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO
+ SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7/////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO
+ SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS
+ UA/y6+X+/v39/fz+/v7+/v7/////////////////////////////////////////////////////////
+ ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP
+ SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7/////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+
+ /v7/////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO
+ SQCOSQGJQQDi0cD////9/Pv+/v7/////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J
+ QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7/////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39
+ /fz+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz
+ hFazhFayhFazhVete1TWvqb////9/fz+/v7/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+
+ /f3+/f3/////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v7+////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////v7+
+ /f39////////////////////////////////////////////////////////////////////////////
+ ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39
+ /fz8/v79/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA
+ nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1////
+ x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV
+ i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC
+ jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC
+ hz8Ap3I//fz7/fz8/v79/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7
+ /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8
+ +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p
+ /v39/f38/v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+
+ ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb
+ 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+//7+/f39
+ /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7////
+ 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+
+ /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA
+ j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB
+ j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB
+ i0UAlVYZ8+3m/f79/f38/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+////////////////
+ /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39
+ /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+
+ sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+
+ /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+////////
+ /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+
+ /f39/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO
+ /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39
+ 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39
+ /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+////////////////////////////
+ /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+////
+ /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A
+ kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ jkoCikIC4tHA/////Pv7/v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC
+ hz4A1r6m/////Pz7/v7+/v7+/////v7+////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+
+ /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+////////////////////
+ /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM
+ /////Pv6/v7+/v7+/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA
+ j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+
+ /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7
+ /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq////
+ /Pv6/v7+/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A
+ j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA
+ kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA
+ j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6
+ /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+////////
+ /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+
+ /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA
+ xaJ//////Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU
+ /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA
+ j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+////////////
+ 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+
+ /////v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39
+ /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/
+ /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6
+ ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+
+ /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC
+ kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB
+ kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39////
+ /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA
+ hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA
+ iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A
+ j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU
+ z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+////////
+ /v7+/////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7//v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn
+ +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3
+ +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8
+ /fz8/v7+/////v7+/////v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v///v7+/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT
+ z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7
+ ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A
+ hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A
+ fS0AtIdb/f38/Pz8///+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D
+ kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL
+ jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA
+ jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3
+ iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA
+ jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA
+ jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK
+ 6t7S/v7+/fz8/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs////
+ /Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7
+ /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38
+ /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fz8
+ /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+////////////////////////////////////
+ /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+
+ /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA
+ jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A
+ pnA8/Pv6/fz7/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq
+ iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+
+ /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+////////////
+ /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+
+ //7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A
+ 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES
+ jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+////////////////
+ /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6
+ /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7
+ /v79/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v39
+ /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8
+ +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+
+ /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ
+ hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ
+ 8+3m/f39/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+
+ /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA
+ jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA
+ u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA
+ j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA
+ jkkCikQE49PC/v7//fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8
+ /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+
+ /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7////
+ t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA
+ jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU
+ hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD
+ /////fz8//7//v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA
+ oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC
+ hj0Az7SX/////fz7//7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+//7+
+ /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH
+ jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA
+ jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT////
+ /Pz8/v7//v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA
+ t4tf/////fz7/v7+/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs
+ mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6
+ /v7+/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v7+
+ /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx
+ +/n3/fz8/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+
+ rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA
+ jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW
+ k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV
+ kU8TmVoj8ejg/v39/fz7/v7//f39/v//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off
+ 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v////7+/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v39/v7+
+ ///+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/v//////
+ /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v79/////////v7+/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v79/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////9/Lt9/Pu
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2svnmMrzrGR/////fz7////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ
+ /v39/fz8/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h
+ /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0////
+ 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC
+ j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ jUgBlFIO7uTa/////f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB
+ jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+
+ /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38////////////////////
+ /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z
+ iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+
+ sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG////
+ /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ hz4Ar35J/v39/fz8/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+////////
+ /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38////////////////////////////////
+ /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+////////////////////////////////////////////
+ /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA
+ /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW
+ k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+
+ /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+////////////////////
+ /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iEAA176j/////fz7////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39////////////////////////////////////////////
+ ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38
+ /fz8/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEA1buf/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+////////////
+ /////////////////////////////////////////////////////////////////////fz7////yKaB
+ hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v///f38////sH9K
+ hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oBi0QAnmIj9vHs/v39/v39////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA
+ nWAf9vHs/v7+/v79////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo////
+ /fz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v///f38////
+ 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/v79+/n3omor
+ ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm
+ +PTw/v39/f39////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sBjEUAmVwb9e/p/v7+/f38////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A
+ vpVq/////fz7/v/+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8AyKaB/////fz7/v///v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39
+ //7/////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC
+ jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsCiD8Auo9h/////fz8/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE
+ iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB
+ 4tC+/////f38/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjUcBk1EN7+Xb/////f39/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj
+ n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f38////u5Jlhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkBjUgE4M66/////fz7/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR
+ 7+bd/v7+/f39////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv
+ +/n4/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0
+ rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6
+ ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC
+ hz4AtolZ/////fz8/v3+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA
+ j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ j0sBikIApGww+vj1/v39/f39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ
+ j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M
+ /////Pz7/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkCjkkG4c+7/////fz7/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+///+/v39
+ /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d////
+ /fz7/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/f38/f38
+ 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A
+ jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sBiD8AyKiE/////fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oBiUEApW4z+vj1/v39/v39////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ
+ /v7+/f38/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4
+ 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD
+ 49PB/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/Pz7////
+ 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6////
+ /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A
+ j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC
+ iUEAqHQ7+/j2/fz8/v39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jUgBkk8K7ODV/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL////
+ /f38/v7+///+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6////////
+ ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A
+ ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38
+ /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBiUEA1Lqd/////fv6////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38
+ sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////v7+/v39
+ /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq
+ 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38
+ /v39/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjUgBkU4J6NrM/////fz8////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA
+ jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEArnxG/v7+/f38/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO
+ 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i////
+ /Pz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA
+ hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr
+ vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g
+ 4M24/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY
+ llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+////////////////////////////
+ /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsCiUEArXpD/v7//f39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB
+ ikMA1bqf/////fz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39
+ /f38/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39
+ /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/////////v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI
+ iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8////
+ /fz8////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA
+ mVsZ8+zl/v38/fz8////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7
+ /v7+//7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz7/v7+
+ 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf
+ 9vHs/v79/fz8////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z
+ iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAi0YAl1gT8+3l/v7+/f39////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA
+ upFj/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC
+ hz4AwZty/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////f39
+ /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC
+ jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ
+ hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsChz4At4ta/////fz8/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjUgCkEwL6dzO/////fz7////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD
+ 38y3/////fz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v/+/f39/v79
+ +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////fz8
+ /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A
+ kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK
+ 5tbG/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBjUcB4M25/////f38/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos
+ +PTw/fz8/f39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v//////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA
+ kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB
+ iUAAq3dA/Pr4/fz7/f39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v///fz7
+ ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA
+ j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0oBikMAomgq+vf0/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////Pz7////4M24
+ i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiUEA0rea/////fz7/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7
+ /v38/v39/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////f38/v79
+ +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/f38
+ ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ kEwChz4AxaJ8/////fz7/v7+////////////////////////////////////////////////////////
+ ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA
+ 07mb/////Pz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU
+ /v7+/Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+////
+ //////////////////////////////////////////////////////////////////////////////7/
+ /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7/////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+////////////////////////////
+ /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jEQAm10b9O/p/v7+/f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+////////////////////////////////////////
+ /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7
+ /v7//v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jUgAklAK6dzO/////f38/v//////////////////////////////////////////////////////////
+ /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6
+ /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng
+ lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+
+ /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiD8Au5Jl/////fz8/v7+//7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+////////////////////
+ /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj
+ /v39/fz8/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+////////////////////////////
+ /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8
+ ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb////
+ /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A
+ upFj/////fz8/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+
+ /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7////////////////////////
+ /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf
+ llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA
+ kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkBjUcA49LA/////f38/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79
+ /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3
+ qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8////0baX
+ iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD
+ /////fz8/v//////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA
+ nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA
+ qHI4/Pv5/v39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+
+ iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ kEsChz8Az7KS/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7
+ /v39/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v39
+ /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////fz8////59jIj0oD
+ jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ
+ /////fz8////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB
+ llYW7+Xb/v7+/f38/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0wChz8AuIxc/v7+/fz7/v39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+
+ /v39/v//////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fv6
+ ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAjkkBjEYA4M24/////fz8/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa
+ /////f38////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v39/fz7
+ 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB
+ jUcE3sq2/////Pz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oBikMAomgq+fXy/v39/f39////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/fz7////
+ 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq
+ +vf1/f38/f39//7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39
+ tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS
+ yqqM38u2/////v79/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/v79////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v79/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxCalibration.Designer.cs b/LFP_Manager/Forms/fmxCalibration.Designer.cs
new file mode 100644
index 0000000..b9945c1
--- /dev/null
+++ b/LFP_Manager/Forms/fmxCalibration.Designer.cs
@@ -0,0 +1,162 @@
+namespace LFP_Manager.Forms
+{
+ partial class fmxCalibration
+ {
+ ///
+ /// 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()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxCalibration));
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.tmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.ucCalibrationConfig = new LFP_Manager.Controls.ucCalibration();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.btnClose);
+ this.layoutControl1.Controls.Add(this.ucCalibrationConfig);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1265, 291, 250, 350);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(814, 444);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // btnClose
+ //
+ this.btnClose.Location = new System.Drawing.Point(714, 403);
+ this.btnClose.Name = "btnClose";
+ this.btnClose.Size = new System.Drawing.Size(96, 37);
+ this.btnClose.StyleController = this.layoutControl1;
+ this.btnClose.TabIndex = 5;
+ this.btnClose.Text = "Close";
+ this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1,
+ this.layoutControlItem2,
+ this.emptySpaceItem1});
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(814, 444);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.btnClose;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(710, 399);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(100, 41);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1";
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 399);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(710, 41);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // tmrDisplay
+ //
+ this.tmrDisplay.Interval = 500;
+ this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick);
+ //
+ // ucCalibrationConfig
+ //
+ this.ucCalibrationConfig.Location = new System.Drawing.Point(4, 4);
+ this.ucCalibrationConfig.Name = "ucCalibrationConfig";
+ this.ucCalibrationConfig.Size = new System.Drawing.Size(806, 395);
+ this.ucCalibrationConfig.TabIndex = 4;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.ucCalibrationConfig;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(104, 24);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(810, 399);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // fmxCalibration
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(814, 444);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("fmxCalibration.IconOptions.Icon")));
+ this.Name = "fmxCalibration";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Calibration";
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.SimpleButton btnClose;
+ private Controls.ucCalibration ucCalibrationConfig;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private System.Windows.Forms.Timer tmrDisplay;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxCalibration.cs b/LFP_Manager/Forms/fmxCalibration.cs
new file mode 100644
index 0000000..21457e9
--- /dev/null
+++ b/LFP_Manager/Forms/fmxCalibration.cs
@@ -0,0 +1,116 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Controls;
+using static DevExpress.XtraPrinting.Export.Pdf.PdfImageCache;
+
+namespace LFP_Manager.Forms
+{
+ public delegate void CalibUpdateEvent(object sendor);
+ public delegate void CalibCmdEvent(int sId, int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib);
+
+ public partial class fmxCalibration : DevExpress.XtraEditors.XtraForm
+ {
+ #region VARIABLES
+
+ int SystemId = 0;
+ DeviceSystemData SystemData;
+ DeviceParamData Param;
+ DeviceCalibration Calib;
+
+ public event CalibUpdateEvent OnUpdate = null;
+ public event CalibCmdEvent OnCommand = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public fmxCalibration()
+ {
+ InitializeComponent();
+ }
+
+ public fmxCalibration(int sId, CommConfig aConfig, DeviceParamData aParam, DeviceCalibration aCalib)
+ {
+ InitializeComponent();
+
+ InitComponent();
+
+ ucCalibrationConfig.UpdateConfig(aConfig);
+
+ SystemId = sId;
+ Param = aParam;
+ Calib = aCalib;
+
+ tmrDisplay.Enabled = true;
+ }
+
+ public void InitComponent()
+ {
+ // Cell Voltage Calibration
+ ucCalibrationConfig.OnCommand += OnCmdEvent;
+ }
+
+ #endregion
+
+ #region COMMAND EVENT
+
+ private void OnCmdEvent(int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib)
+ {
+ OnCommand?.Invoke(SystemId, mode, index, flag, ref aParam, ref aCalib);
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+ private void btnClose_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+ #endregion
+
+ #region TIMER EVENT
+
+ private void tmrDisplay_Tick(object sender, EventArgs e)
+ {
+
+ DisplayValue();
+ if (OnUpdate != null)
+ {
+ OnUpdate(this);
+ }
+ }
+
+ #endregion
+
+ #region DISPLAY DATA
+
+ private void DisplayValue()
+ {
+ // Cell Voltage Parameter
+ ucCalibrationConfig.UpdateData(SystemData, Calib);
+ }
+
+ #endregion
+
+ #region PUBLIC FUCTIONS
+
+ public void UpdateData(DeviceParamData aParam, DeviceCalibration aCalib, DeviceSystemData aSystemData)
+ {
+ SystemData = aSystemData;
+ Param = aParam;
+ Calib = aCalib;
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxCalibration.resx b/LFP_Manager/Forms/fmxCalibration.resx
new file mode 100644
index 0000000..4464ab1
--- /dev/null
+++ b/LFP_Manager/Forms/fmxCalibration.resx
@@ -0,0 +1,4574 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+
+ AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA
+ GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/
+ ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7/////////////////////
+ ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff/////////
+ ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+
+ /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7/////
+ ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc
+ x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7/////////////////////////////
+ ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt
+ e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP
+ SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7/////////
+ ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z
+ WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS
+ Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8
+ +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+
+ /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+
+ /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO
+ SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz
+ 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o
+ 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9
+ /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE
+ oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG
+ PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7/////
+ ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH
+ PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t
+ 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/
+ ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/
+ ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7/////////////////////////////
+ ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+
+ /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ
+ TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7/////////////////
+ ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ
+ TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+
+ /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7/////
+ ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP
+ SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7/////////////////////////////////////////
+ ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/
+ ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7/////////////////////////////
+ ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/
+ ///+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////+/v7////////+/v3////////////////////////+/v3////////+/v7/////////////////
+ ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7/////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ /////////v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v7////////+/v7/////////////////////////////////////
+ ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7/////////////////////
+ ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7
+ +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9
+ /Pz+/v7/////////////////////////////////////////////////////////////////////////
+ ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM
+ RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7/////////////////////////////////////
+ ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL
+ QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+
+ /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP
+ SgCOSQCPTAKFOwDVvaT////9/Pv+/v7/////////////////////////////////////////////////
+ ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8
+ +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7/////////
+ /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO
+ SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF
+ OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+
+ ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/
+ //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7/////////////////////////
+ ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/
+ mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79
+ /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN
+ RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ
+ TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7/////
+ ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7/////
+ ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+
+ /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ
+ TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP
+ SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH
+ PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/
+ ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5
+ 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+
+ /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ
+ QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE
+ oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/
+ ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7/////////////////////////
+ ///////////////////////////////////////////////////////+/v7+////////////////////
+ ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+
+ /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9
+ /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP
+ SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL
+ RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7/////////////////////////////////
+ ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/
+ ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7/////////
+ ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP
+ SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI
+ PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/
+ ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x
+ glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7/////////////////////////////
+ ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM
+ RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+
+ /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/
+ ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP
+ SgCOSgGLRQGTURDz7ef+/v39/f3+/v7/////////////////////////////////////////////////
+ ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+
+ /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7/////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN
+ RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9
+ /fz9/f3+/v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO
+ SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7/////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO
+ SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS
+ UA/y6+X+/v39/fz+/v7+/v7/////////////////////////////////////////////////////////
+ ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP
+ SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7/////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+
+ /v7/////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO
+ SQCOSQGJQQDi0cD////9/Pv+/v7/////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J
+ QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7/////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39
+ /fz+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz
+ hFazhFayhFazhVete1TWvqb////9/fz+/v7/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+
+ /f3+/f3/////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v7+////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////v7+
+ /f39////////////////////////////////////////////////////////////////////////////
+ ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39
+ /fz8/v79/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA
+ nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1////
+ x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV
+ i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC
+ jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC
+ hz8Ap3I//fz7/fz8/v79/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7
+ /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8
+ +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p
+ /v39/f38/v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+
+ ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb
+ 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+//7+/f39
+ /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7////
+ 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+
+ /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA
+ j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB
+ j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB
+ i0UAlVYZ8+3m/f79/f38/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+////////////////
+ /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39
+ /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+
+ sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+
+ /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+////////
+ /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+
+ /f39/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO
+ /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39
+ 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39
+ /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+////////////////////////////
+ /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+////
+ /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A
+ kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ jkoCikIC4tHA/////Pv7/v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC
+ hz4A1r6m/////Pz7/v7+/v7+/////v7+////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+
+ /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+////////////////////
+ /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM
+ /////Pv6/v7+/v7+/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA
+ j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+
+ /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7
+ /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq////
+ /Pv6/v7+/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A
+ j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA
+ kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA
+ j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6
+ /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+////////
+ /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+
+ /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA
+ xaJ//////Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU
+ /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA
+ j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+////////////
+ 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+
+ /////v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39
+ /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/
+ /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6
+ ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+
+ /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC
+ kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB
+ kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39////
+ /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA
+ hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA
+ iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A
+ j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU
+ z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+////////
+ /v7+/////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7//v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn
+ +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3
+ +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8
+ /fz8/v7+/////v7+/////v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v///v7+/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT
+ z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7
+ ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A
+ hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A
+ fS0AtIdb/f38/Pz8///+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D
+ kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL
+ jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA
+ jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3
+ iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA
+ jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA
+ jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK
+ 6t7S/v7+/fz8/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs////
+ /Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7
+ /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38
+ /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fz8
+ /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+////////////////////////////////////
+ /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+
+ /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA
+ jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A
+ pnA8/Pv6/fz7/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq
+ iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+
+ /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+////////////
+ /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+
+ //7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A
+ 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES
+ jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+////////////////
+ /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6
+ /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7
+ /v79/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v39
+ /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8
+ +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+
+ /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ
+ hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ
+ 8+3m/f39/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+
+ /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA
+ jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA
+ u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA
+ j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA
+ jkkCikQE49PC/v7//fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8
+ /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+
+ /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7////
+ t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA
+ jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU
+ hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD
+ /////fz8//7//v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA
+ oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC
+ hj0Az7SX/////fz7//7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+//7+
+ /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH
+ jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA
+ jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT////
+ /Pz8/v7//v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA
+ t4tf/////fz7/v7+/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs
+ mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6
+ /v7+/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v7+
+ /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx
+ +/n3/fz8/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+
+ rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA
+ jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW
+ k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV
+ kU8TmVoj8ejg/v39/fz7/v7//f39/v//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off
+ 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v////7+/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v39/v7+
+ ///+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/v//////
+ /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v79/////////v7+/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v79/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////9/Lt9/Pu
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2svnmMrzrGR/////fz7////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ
+ /v39/fz8/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h
+ /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0////
+ 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC
+ j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ jUgBlFIO7uTa/////f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB
+ jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+
+ /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38////////////////////
+ /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z
+ iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+
+ sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG////
+ /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ hz4Ar35J/v39/fz8/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+////////
+ /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38////////////////////////////////
+ /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+////////////////////////////////////////////
+ /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA
+ /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW
+ k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+
+ /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+////////////////////
+ /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iEAA176j/////fz7////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39////////////////////////////////////////////
+ ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38
+ /fz8/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEA1buf/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+////////////
+ /////////////////////////////////////////////////////////////////////fz7////yKaB
+ hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v///f38////sH9K
+ hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oBi0QAnmIj9vHs/v39/v39////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA
+ nWAf9vHs/v7+/v79////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo////
+ /fz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v///f38////
+ 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/v79+/n3omor
+ ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm
+ +PTw/v39/f39////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sBjEUAmVwb9e/p/v7+/f38////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A
+ vpVq/////fz7/v/+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8AyKaB/////fz7/v///v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39
+ //7/////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC
+ jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsCiD8Auo9h/////fz8/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE
+ iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB
+ 4tC+/////f38/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjUcBk1EN7+Xb/////f39/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj
+ n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f38////u5Jlhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkBjUgE4M66/////fz7/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR
+ 7+bd/v7+/f39////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv
+ +/n4/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0
+ rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6
+ ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC
+ hz4AtolZ/////fz8/v3+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA
+ j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ j0sBikIApGww+vj1/v39/f39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ
+ j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M
+ /////Pz7/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkCjkkG4c+7/////fz7/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+///+/v39
+ /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d////
+ /fz7/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/f38/f38
+ 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A
+ jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sBiD8AyKiE/////fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oBiUEApW4z+vj1/v39/v39////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ
+ /v7+/f38/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4
+ 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD
+ 49PB/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/Pz7////
+ 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6////
+ /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A
+ j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC
+ iUEAqHQ7+/j2/fz8/v39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jUgBkk8K7ODV/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL////
+ /f38/v7+///+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6////////
+ ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A
+ ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38
+ /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBiUEA1Lqd/////fv6////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38
+ sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////v7+/v39
+ /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq
+ 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38
+ /v39/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjUgBkU4J6NrM/////fz8////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA
+ jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEArnxG/v7+/f38/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO
+ 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i////
+ /Pz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA
+ hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr
+ vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g
+ 4M24/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY
+ llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+////////////////////////////
+ /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsCiUEArXpD/v7//f39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB
+ ikMA1bqf/////fz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39
+ /f38/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39
+ /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/////////v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI
+ iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8////
+ /fz8////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA
+ mVsZ8+zl/v38/fz8////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7
+ /v7+//7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz7/v7+
+ 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf
+ 9vHs/v79/fz8////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z
+ iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAi0YAl1gT8+3l/v7+/f39////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA
+ upFj/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC
+ hz4AwZty/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////f39
+ /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC
+ jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ
+ hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsChz4At4ta/////fz8/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjUgCkEwL6dzO/////fz7////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD
+ 38y3/////fz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v/+/f39/v79
+ +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////fz8
+ /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A
+ kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK
+ 5tbG/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBjUcB4M25/////f38/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos
+ +PTw/fz8/f39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v//////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA
+ kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB
+ iUAAq3dA/Pr4/fz7/f39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v///fz7
+ ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA
+ j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0oBikMAomgq+vf0/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////Pz7////4M24
+ i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiUEA0rea/////fz7/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7
+ /v38/v39/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////f38/v79
+ +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/f38
+ ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ kEwChz4AxaJ8/////fz7/v7+////////////////////////////////////////////////////////
+ ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA
+ 07mb/////Pz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU
+ /v7+/Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+////
+ //////////////////////////////////////////////////////////////////////////////7/
+ /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7/////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+////////////////////////////
+ /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jEQAm10b9O/p/v7+/f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+////////////////////////////////////////
+ /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7
+ /v7//v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jUgAklAK6dzO/////f38/v//////////////////////////////////////////////////////////
+ /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6
+ /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng
+ lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+
+ /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiD8Au5Jl/////fz8/v7+//7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+////////////////////
+ /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj
+ /v39/fz8/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+////////////////////////////
+ /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8
+ ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb////
+ /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A
+ upFj/////fz8/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+
+ /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7////////////////////////
+ /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf
+ llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA
+ kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkBjUcA49LA/////f38/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79
+ /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3
+ qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8////0baX
+ iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD
+ /////fz8/v//////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA
+ nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA
+ qHI4/Pv5/v39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+
+ iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ kEsChz8Az7KS/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7
+ /v39/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v39
+ /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////fz8////59jIj0oD
+ jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ
+ /////fz8////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB
+ llYW7+Xb/v7+/f38/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0wChz8AuIxc/v7+/fz7/v39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+
+ /v39/v//////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fv6
+ ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAjkkBjEYA4M24/////fz8/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa
+ /////f38////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v39/fz7
+ 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB
+ jUcE3sq2/////Pz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oBikMAomgq+fXy/v39/f39////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/fz7////
+ 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq
+ +vf1/f38/f39//7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39
+ tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS
+ yqqM38u2/////v79/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/v79////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v79/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxCommConfig.Designer.cs b/LFP_Manager/Forms/fmxCommConfig.Designer.cs
new file mode 100644
index 0000000..e1ba7d2
--- /dev/null
+++ b/LFP_Manager/Forms/fmxCommConfig.Designer.cs
@@ -0,0 +1,108 @@
+namespace LFP_Manager.Forms
+{
+ partial class fmxCommConfig
+ {
+ ///
+ /// 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(fmxCommConfig));
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.ucCommConfig1 = new LFP_Manager.Controls.ucCommConfig();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.ucCommConfig1);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(404, 596);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1});
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(404, 596);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // ucCommConfig1
+ //
+ this.ucCommConfig1.Location = new System.Drawing.Point(3, 3);
+ this.ucCommConfig1.Name = "ucCommConfig1";
+ this.ucCommConfig1.Size = new System.Drawing.Size(398, 590);
+ this.ucCommConfig1.TabIndex = 4;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.ucCommConfig1;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(402, 594);
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // fmxCommConfig
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(404, 596);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("fmxCommConfig.IconOptions.Icon")));
+ this.Name = "fmxCommConfig";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Communication Config";
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private Controls.ucCommConfig ucCommConfig1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxCommConfig.cs b/LFP_Manager/Forms/fmxCommConfig.cs
new file mode 100644
index 0000000..9c447b0
--- /dev/null
+++ b/LFP_Manager/Forms/fmxCommConfig.cs
@@ -0,0 +1,38 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+namespace LFP_Manager.Forms
+{
+ public delegate void UpdateEvent(object aConfig);
+
+ public partial class fmxCommConfig : DevExpress.XtraEditors.XtraForm
+ {
+ public event UpdateEvent OnUpdate = null;
+
+ public fmxCommConfig()
+ {
+ InitializeComponent();
+
+ ucCommConfig1.OnClose += FormClose;
+ }
+
+ private void FormClose(object Config, bool saved)
+ {
+ if (OnUpdate != null)
+ {
+ if (saved == true)
+ {
+ OnUpdate(Config);
+ }
+ }
+ Close();
+ }
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxCommConfig.resx b/LFP_Manager/Forms/fmxCommConfig.resx
new file mode 100644
index 0000000..cf8c6d2
--- /dev/null
+++ b/LFP_Manager/Forms/fmxCommConfig.resx
@@ -0,0 +1,4571 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA
+ GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/
+ ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7/////////////////////
+ ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff/////////
+ ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+
+ /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7/////
+ ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc
+ x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7/////////////////////////////
+ ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt
+ e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP
+ SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7/////////
+ ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z
+ WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS
+ Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8
+ +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+
+ /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+
+ /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO
+ SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz
+ 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o
+ 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9
+ /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE
+ oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG
+ PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7/////
+ ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH
+ PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t
+ 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/
+ ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/
+ ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7/////////////////////////////
+ ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+
+ /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ
+ TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7/////////////////
+ ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ
+ TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+
+ /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7/////
+ ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP
+ SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7/////////////////////////////////////////
+ ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/
+ ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7/////////////////////////////
+ ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/
+ ///+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////+/v7////////+/v3////////////////////////+/v3////////+/v7/////////////////
+ ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7/////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ /////////v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v7////////+/v7/////////////////////////////////////
+ ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7/////////////////////
+ ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7
+ +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9
+ /Pz+/v7/////////////////////////////////////////////////////////////////////////
+ ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM
+ RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7/////////////////////////////////////
+ ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL
+ QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+
+ /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP
+ SgCOSQCPTAKFOwDVvaT////9/Pv+/v7/////////////////////////////////////////////////
+ ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8
+ +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7/////////
+ /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO
+ SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF
+ OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+
+ ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/
+ //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7/////////////////////////
+ ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/
+ mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79
+ /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN
+ RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ
+ TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7/////
+ ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7/////
+ ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+
+ /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ
+ TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP
+ SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH
+ PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/
+ ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5
+ 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+
+ /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ
+ QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE
+ oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/
+ ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7/////////////////////////
+ ///////////////////////////////////////////////////////+/v7+////////////////////
+ ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+
+ /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9
+ /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP
+ SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL
+ RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7/////////////////////////////////
+ ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/
+ ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7/////////
+ ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP
+ SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI
+ PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/
+ ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x
+ glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7/////////////////////////////
+ ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM
+ RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+
+ /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/
+ ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP
+ SgCOSgGLRQGTURDz7ef+/v39/f3+/v7/////////////////////////////////////////////////
+ ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+
+ /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7/////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN
+ RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9
+ /fz9/f3+/v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO
+ SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7/////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO
+ SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS
+ UA/y6+X+/v39/fz+/v7+/v7/////////////////////////////////////////////////////////
+ ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP
+ SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7/////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+
+ /v7/////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO
+ SQCOSQGJQQDi0cD////9/Pv+/v7/////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J
+ QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7/////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39
+ /fz+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz
+ hFazhFayhFazhVete1TWvqb////9/fz+/v7/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+
+ /f3+/f3/////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v7+////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////v7+
+ /f39////////////////////////////////////////////////////////////////////////////
+ ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39
+ /fz8/v79/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA
+ nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1////
+ x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV
+ i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC
+ jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC
+ hz8Ap3I//fz7/fz8/v79/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7
+ /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8
+ +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p
+ /v39/f38/v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+
+ ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb
+ 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+//7+/f39
+ /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7////
+ 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+
+ /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA
+ j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB
+ j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB
+ i0UAlVYZ8+3m/f79/f38/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+////////////////
+ /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39
+ /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+
+ sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+
+ /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+////////
+ /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+
+ /f39/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO
+ /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39
+ 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39
+ /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+////////////////////////////
+ /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+////
+ /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A
+ kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ jkoCikIC4tHA/////Pv7/v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC
+ hz4A1r6m/////Pz7/v7+/v7+/////v7+////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+
+ /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+////////////////////
+ /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM
+ /////Pv6/v7+/v7+/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA
+ j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+
+ /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7
+ /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq////
+ /Pv6/v7+/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A
+ j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA
+ kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA
+ j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6
+ /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+////////
+ /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+
+ /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA
+ xaJ//////Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU
+ /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA
+ j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+////////////
+ 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+
+ /////v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39
+ /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/
+ /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6
+ ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+
+ /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC
+ kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB
+ kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39////
+ /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA
+ hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA
+ iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A
+ j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU
+ z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+////////
+ /v7+/////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7//v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn
+ +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3
+ +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8
+ /fz8/v7+/////v7+/////v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v///v7+/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT
+ z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7
+ ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A
+ hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A
+ fS0AtIdb/f38/Pz8///+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D
+ kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL
+ jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA
+ jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3
+ iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA
+ jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA
+ jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK
+ 6t7S/v7+/fz8/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs////
+ /Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7
+ /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38
+ /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fz8
+ /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+////////////////////////////////////
+ /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+
+ /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA
+ jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A
+ pnA8/Pv6/fz7/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq
+ iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+
+ /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+////////////
+ /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+
+ //7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A
+ 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES
+ jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+////////////////
+ /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6
+ /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7
+ /v79/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v39
+ /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8
+ +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+
+ /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ
+ hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ
+ 8+3m/f39/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+
+ /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA
+ jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA
+ u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA
+ j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA
+ jkkCikQE49PC/v7//fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8
+ /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+
+ /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7////
+ t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA
+ jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU
+ hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD
+ /////fz8//7//v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA
+ oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC
+ hj0Az7SX/////fz7//7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+//7+
+ /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH
+ jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA
+ jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT////
+ /Pz8/v7//v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA
+ t4tf/////fz7/v7+/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs
+ mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6
+ /v7+/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v7+
+ /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx
+ +/n3/fz8/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+
+ rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA
+ jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW
+ k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV
+ kU8TmVoj8ejg/v39/fz7/v7//f39/v//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off
+ 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v////7+/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v39/v7+
+ ///+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/v//////
+ /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v79/////////v7+/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v79/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////9/Lt9/Pu
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2svnmMrzrGR/////fz7////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ
+ /v39/fz8/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h
+ /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0////
+ 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC
+ j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ jUgBlFIO7uTa/////f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB
+ jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+
+ /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38////////////////////
+ /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z
+ iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+
+ sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG////
+ /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ hz4Ar35J/v39/fz8/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+////////
+ /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38////////////////////////////////
+ /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+////////////////////////////////////////////
+ /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA
+ /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW
+ k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+
+ /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+////////////////////
+ /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iEAA176j/////fz7////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39////////////////////////////////////////////
+ ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38
+ /fz8/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEA1buf/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+////////////
+ /////////////////////////////////////////////////////////////////////fz7////yKaB
+ hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v///f38////sH9K
+ hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oBi0QAnmIj9vHs/v39/v39////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA
+ nWAf9vHs/v7+/v79////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo////
+ /fz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v///f38////
+ 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/v79+/n3omor
+ ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm
+ +PTw/v39/f39////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sBjEUAmVwb9e/p/v7+/f38////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A
+ vpVq/////fz7/v/+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8AyKaB/////fz7/v///v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39
+ //7/////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC
+ jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsCiD8Auo9h/////fz8/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE
+ iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB
+ 4tC+/////f38/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjUcBk1EN7+Xb/////f39/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj
+ n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f38////u5Jlhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkBjUgE4M66/////fz7/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR
+ 7+bd/v7+/f39////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv
+ +/n4/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0
+ rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6
+ ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC
+ hz4AtolZ/////fz8/v3+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA
+ j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ j0sBikIApGww+vj1/v39/f39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ
+ j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M
+ /////Pz7/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkCjkkG4c+7/////fz7/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+///+/v39
+ /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d////
+ /fz7/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/f38/f38
+ 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A
+ jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sBiD8AyKiE/////fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oBiUEApW4z+vj1/v39/v39////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ
+ /v7+/f38/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4
+ 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD
+ 49PB/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/Pz7////
+ 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6////
+ /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A
+ j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC
+ iUEAqHQ7+/j2/fz8/v39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jUgBkk8K7ODV/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL////
+ /f38/v7+///+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6////////
+ ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A
+ ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38
+ /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBiUEA1Lqd/////fv6////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38
+ sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////v7+/v39
+ /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq
+ 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38
+ /v39/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjUgBkU4J6NrM/////fz8////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA
+ jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEArnxG/v7+/f38/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO
+ 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i////
+ /Pz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA
+ hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr
+ vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g
+ 4M24/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY
+ llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+////////////////////////////
+ /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsCiUEArXpD/v7//f39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB
+ ikMA1bqf/////fz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39
+ /f38/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39
+ /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/////////v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI
+ iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8////
+ /fz8////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA
+ mVsZ8+zl/v38/fz8////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7
+ /v7+//7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz7/v7+
+ 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf
+ 9vHs/v79/fz8////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z
+ iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAi0YAl1gT8+3l/v7+/f39////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA
+ upFj/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC
+ hz4AwZty/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////f39
+ /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC
+ jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ
+ hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsChz4At4ta/////fz8/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjUgCkEwL6dzO/////fz7////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD
+ 38y3/////fz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v/+/f39/v79
+ +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////fz8
+ /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A
+ kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK
+ 5tbG/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBjUcB4M25/////f38/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos
+ +PTw/fz8/f39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v//////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA
+ kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB
+ iUAAq3dA/Pr4/fz7/f39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v///fz7
+ ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA
+ j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0oBikMAomgq+vf0/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////Pz7////4M24
+ i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiUEA0rea/////fz7/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7
+ /v38/v39/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////f38/v79
+ +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/f38
+ ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ kEwChz4AxaJ8/////fz7/v7+////////////////////////////////////////////////////////
+ ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA
+ 07mb/////Pz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU
+ /v7+/Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+////
+ //////////////////////////////////////////////////////////////////////////////7/
+ /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7/////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+////////////////////////////
+ /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jEQAm10b9O/p/v7+/f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+////////////////////////////////////////
+ /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7
+ /v7//v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jUgAklAK6dzO/////f38/v//////////////////////////////////////////////////////////
+ /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6
+ /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng
+ lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+
+ /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiD8Au5Jl/////fz8/v7+//7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+////////////////////
+ /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj
+ /v39/fz8/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+////////////////////////////
+ /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8
+ ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb////
+ /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A
+ upFj/////fz8/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+
+ /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7////////////////////////
+ /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf
+ llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA
+ kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkBjUcA49LA/////f38/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79
+ /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3
+ qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8////0baX
+ iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD
+ /////fz8/v//////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA
+ nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA
+ qHI4/Pv5/v39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+
+ iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ kEsChz8Az7KS/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7
+ /v39/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v39
+ /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////fz8////59jIj0oD
+ jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ
+ /////fz8////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB
+ llYW7+Xb/v7+/f38/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0wChz8AuIxc/v7+/fz7/v39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+
+ /v39/v//////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fv6
+ ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAjkkBjEYA4M24/////fz8/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa
+ /////f38////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v39/fz7
+ 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB
+ jUcE3sq2/////Pz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oBikMAomgq+fXy/v39/f39////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/fz7////
+ 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq
+ +vf1/f38/f39//7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39
+ tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS
+ yqqM38u2/////v79/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/v79////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v79/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxEtcStatus.Designer.cs b/LFP_Manager/Forms/fmxEtcStatus.Designer.cs
new file mode 100644
index 0000000..47d5a7c
--- /dev/null
+++ b/LFP_Manager/Forms/fmxEtcStatus.Designer.cs
@@ -0,0 +1,152 @@
+
+namespace LFP_Manager.Forms
+{
+ partial class fmxEtcStatus
+ {
+ ///
+ /// 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()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxEtcStatus));
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.EtcStatusView = new LFP_Manager.Controls.ucEtcStatusView();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.btnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.tmrDisplay = new System.Windows.Forms.Timer(this.components);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.btnClose);
+ this.layoutControl1.Controls.Add(this.EtcStatusView);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(916, 145, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(612, 406);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1,
+ this.layoutControlItem2,
+ this.emptySpaceItem1});
+ this.Root.Name = "Root";
+ this.Root.Size = new System.Drawing.Size(612, 406);
+ this.Root.TextVisible = false;
+ //
+ // EtcStatusView
+ //
+ this.EtcStatusView.Location = new System.Drawing.Point(12, 12);
+ this.EtcStatusView.Name = "EtcStatusView";
+ this.EtcStatusView.Size = new System.Drawing.Size(588, 347);
+ this.EtcStatusView.TabIndex = 4;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.EtcStatusView;
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(592, 351);
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // btnClose
+ //
+ this.btnClose.Location = new System.Drawing.Point(495, 363);
+ this.btnClose.Name = "btnClose";
+ this.btnClose.Size = new System.Drawing.Size(105, 31);
+ this.btnClose.StyleController = this.layoutControl1;
+ this.btnClose.TabIndex = 5;
+ this.btnClose.Text = "Close";
+ this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.btnClose;
+ this.layoutControlItem2.Location = new System.Drawing.Point(483, 351);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(109, 35);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 351);
+ this.emptySpaceItem1.MinSize = new System.Drawing.Size(104, 24);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(483, 35);
+ this.emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // fmxEtcStatus
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(612, 406);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Image = ((System.Drawing.Image)(resources.GetObject("fmxEtcStatus.IconOptions.Image")));
+ this.Name = "fmxEtcStatus";
+ this.Text = "fmxEtcStatus";
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraEditors.SimpleButton btnClose;
+ private Controls.ucEtcStatusView EtcStatusView;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private System.Windows.Forms.Timer tmrDisplay;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxEtcStatus.cs b/LFP_Manager/Forms/fmxEtcStatus.cs
new file mode 100644
index 0000000..2de187d
--- /dev/null
+++ b/LFP_Manager/Forms/fmxEtcStatus.cs
@@ -0,0 +1,100 @@
+using DevExpress.XtraEditors;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Controls;
+
+namespace LFP_Manager.Forms
+{
+ public partial class fmxEtcStatus : DevExpress.XtraEditors.XtraForm
+ {
+ public delegate void UpdateEvent(object sendor);
+ public delegate void CmdEvent(int sId, int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib);
+
+ #region VARIABLES
+
+ int SystemId = 0;
+ DeviceSystemData SystemData;
+ DeviceParamData Param;
+ DeviceCalibration Calib;
+
+ public event UpdateEvent OnUpdate = null;
+ public event CmdEvent OnCommand = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public fmxEtcStatus()
+ {
+ InitializeComponent();
+ }
+
+ public fmxEtcStatus(int sId, DeviceCalibration aCalib)
+ {
+ InitializeComponent();
+
+ InitComponent();
+
+ SystemId = sId;
+ Calib = aCalib;
+
+ tmrDisplay.Enabled = true;
+ }
+
+ public void InitComponent()
+ {
+ EtcStatusView.OnCommand += OnCmdEvent;
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+
+ private void btnClose_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+
+ #endregion
+
+ #region COMMAND EVENT
+
+ private void OnCmdEvent(int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib)
+ {
+ OnCommand?.Invoke(SystemId, mode, index, flag, ref aParam, ref aCalib);
+ }
+
+ #endregion
+
+ #region TIMER EVENT
+
+ private void tmrDisplay_Tick(object sender, EventArgs e)
+ {
+
+ DisplayValue();
+ OnUpdate?.Invoke(this);
+ }
+
+ #endregion
+
+ #region DISPLAY DATA
+
+ private void DisplayValue()
+ {
+ // Cell Voltage Parameter
+ EtcStatusView.UpdateData(SystemData);
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxEtcStatus.resx b/LFP_Manager/Forms/fmxEtcStatus.resx
new file mode 100644
index 0000000..a14af06
--- /dev/null
+++ b/LFP_Manager/Forms/fmxEtcStatus.resx
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAATMSURBVFhH5VVrbBVVED63bUr4pTESFWPE+Idf2qAxiqiF
+ giAV0fiIGgJq4g/wkUiMlWI0kj5oS61VUwWurUDRiAUqmAhBHq2t+CgqhRJoCzWt+Kj0Wnqh79txvtmd
+ 7V66d7v4hxgnmZzdPTNnvvlmzqyhSyz/HQAjIyPO6qdqE1QCAXAfGPM53L0XFMRFMaCHRqJ91HW219Ez
+ 3b3Ufb5f9tx2QWRcAHrg0HBM3nc3tNGkhe/QpMffpysfK3N08qNldPhkp9gMs21QIL4A9IBYLEbDrH0D
+ QzT12Qoy6avJ3PcWmbnFluL5rjyamfUZvMQ2SHBIIAY0+1UfHyRzZy4lL3jbCjq/xFJ+Tr6fvzGITXub
+ xBY+QVhICECdQSeaq+XXCE3MLKGQZsyBQ3gXAPY6u4iueeIDivT0CQvChH1WIhm3BJr9A29Wk7k7n5Iy
+ rewl4L1ruASsNgtJYGFGHr207oD4DNos+IknAM1+cGhY3j8/2EpmVoFFswbiUixfu58eyd0pQeUb9hjM
+ BF61IccrxRgAaojGg/O53gG68akwheYUcfYW1aE5a+gq7nw0ZcvpCKXOK6YkDuqAm1lA6Vlb7CT8WRgL
+ AMoOSn32R3VxjSfrPfm0Yc9R2Ye8WvG1NKBjAxD8Xrn3mOz7sRAHQI30Hh9v77KyY/XKDgej0Xp4CE1Z
+ sl6Y0cYM2Q35Nw8t2IBRjeEWzxIAAGT+69usxnPqy9nxLfip9U8HgPbJlprjYpvKQwoMYMX7CmYHoixc
+ KA4AbOqhkO31LXbXJ+hwDozMYI9ewIpBZNLe4JLlkZmeS+aOHDK351BNYwfbjjLrBiIA9INMPDaKnh+g
+ KYvXk8kotOi0Kb1u0To6e65fArOT+LgF/4VsBphdUSeZr9xQR6+U7aPqb1pl34uFOAaUzqzy2virhZXZ
+ +JRphgAkhk1D8x+059AvVLH7CJVsbaDwl430xfenaMe3rXJ1oTu/O0mffNVE9U2nLV8G72bB6IvSc7Tt
+ L7nHqLcEx+Dhrp+dXSVZqx3AdjMbHZ09dOBwO73GGV+/aK1VAqYdgKUUM7gU03Po8ofepd/ORMc0JAOw
+ HnAwJGNFFQdcPZo9K27CkbZOGckKwEvwvXxXI13Nf0bDcyN1YSml8DkTHrQacnHxLrFzl4JLMNp4m/cd
+ 4/ub70w8uddcCtxzCLJWR6yqyAp7mtmJjghNffpDq4e0ibHOKqT9P7eLjYIweMABqOm1TzKFGUWjjcdZ
+ 3LAkTFGehrCBQhQEREHo88DgkDw388/rMr6KSfO0lAwgvYBuXraRbfgGcVwANr39lsNy7l7UzKEeDlz7
+ bfXNsq/Zu4O7Rfbstd8GUVr949hm5veS7YdkH9dXbkHjqU5pvBTOGoFTFpRKzeau3CqGXtfHS9QGmcEH
+ etPSjTI9UU6cncz9dMXD79HvXVG24xLgXk97vtLqXK4ZjBE8hSfeiY6uuMYLCgJqgSaq5SEkN4Lpl7N5
+ npjbVlEmT1mIyQrXUtpzm2jaC5UC5NYXN1MaN1Bh1Q9i4Nf1fgIf7ZmXwzWU9ky5nI0Yt7Ai5g785lGH
+ RILsNfjFgHD7+Pmh/5xRjGCq8s71UfE7JJGoj57lFQPiTEIvhej6b+TC87zU+RdcKvm/AyD6B4yX+amq
+ vYT8AAAAAElFTkSuQmCC
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxExcelFile.Designer.cs b/LFP_Manager/Forms/fmxExcelFile.Designer.cs
new file mode 100644
index 0000000..5070213
--- /dev/null
+++ b/LFP_Manager/Forms/fmxExcelFile.Designer.cs
@@ -0,0 +1,776 @@
+namespace LFP_Manager
+{
+ partial class fmxExcelFile
+ {
+ ///
+ /// 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(fmxExcelFile));
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.tbPcbSn = new DevExpress.XtraEditors.TextEdit();
+ this.btnOpenDbFolder = new DevExpress.XtraEditors.SimpleButton();
+ this.edResultCount = new DevExpress.XtraEditors.TextEdit();
+ this.btnResultListClear = new DevExpress.XtraEditors.SimpleButton();
+ this.btnSearchPcbSn = new DevExpress.XtraEditors.SimpleButton();
+ this.btnOutputAll = new DevExpress.XtraEditors.SimpleButton();
+ this.btnDeleteQuery = new DevExpress.XtraEditors.SimpleButton();
+ this.btnCreateNewDb = new DevExpress.XtraEditors.SimpleButton();
+ this.btnCheckGroupData = new DevExpress.XtraEditors.SimpleButton();
+ this.cbResultList = new DevExpress.XtraEditors.ComboBoxEdit();
+ this.cbLotNo = new DevExpress.XtraEditors.ComboBoxEdit();
+ this.btnExcuteTCell = new DevExpress.XtraEditors.SimpleButton();
+ this.gbDbCommnad = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnOpenSchema = new DevExpress.XtraEditors.SimpleButton();
+ this.btnDbMerge = new DevExpress.XtraEditors.SimpleButton();
+ this.btnQueryExcute = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.tbSchema = new System.Windows.Forms.TextBox();
+ this.gridCell = new System.Windows.Forms.DataGridView();
+ this.btnFindFile = new DevExpress.XtraEditors.SimpleButton();
+ this.edFileName = new DevExpress.XtraEditors.TextEdit();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcitemLot = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem14 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem15 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem16 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem18 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem17 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem19 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
+ this.btnDbFileFind = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlItem20 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.tbPcbSn.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edResultCount.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.cbResultList.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.cbLotNo.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbDbCommnad)).BeginInit();
+ this.gbDbCommnad.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit();
+ this.layoutControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gridCell)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edFileName.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemLot)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem18)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem17)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem20)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.btnDbFileFind);
+ this.layoutControl1.Controls.Add(this.tbPcbSn);
+ this.layoutControl1.Controls.Add(this.btnOpenDbFolder);
+ this.layoutControl1.Controls.Add(this.edResultCount);
+ this.layoutControl1.Controls.Add(this.btnResultListClear);
+ this.layoutControl1.Controls.Add(this.btnSearchPcbSn);
+ this.layoutControl1.Controls.Add(this.btnOutputAll);
+ this.layoutControl1.Controls.Add(this.btnDeleteQuery);
+ this.layoutControl1.Controls.Add(this.btnCreateNewDb);
+ this.layoutControl1.Controls.Add(this.btnCheckGroupData);
+ this.layoutControl1.Controls.Add(this.cbResultList);
+ this.layoutControl1.Controls.Add(this.cbLotNo);
+ this.layoutControl1.Controls.Add(this.btnExcuteTCell);
+ this.layoutControl1.Controls.Add(this.gbDbCommnad);
+ this.layoutControl1.Controls.Add(this.tbSchema);
+ this.layoutControl1.Controls.Add(this.gridCell);
+ this.layoutControl1.Controls.Add(this.btnFindFile);
+ this.layoutControl1.Controls.Add(this.edFileName);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1347, 290, 250, 350);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(999, 578);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // tbPcbSn
+ //
+ this.tbPcbSn.Location = new System.Drawing.Point(681, 265);
+ this.tbPcbSn.Name = "tbPcbSn";
+ this.tbPcbSn.Size = new System.Drawing.Size(163, 20);
+ this.tbPcbSn.StyleController = this.layoutControl1;
+ this.tbPcbSn.TabIndex = 23;
+ //
+ // btnOpenDbFolder
+ //
+ this.btnOpenDbFolder.Location = new System.Drawing.Point(894, 12);
+ this.btnOpenDbFolder.Name = "btnOpenDbFolder";
+ this.btnOpenDbFolder.Size = new System.Drawing.Size(93, 22);
+ this.btnOpenDbFolder.StyleController = this.layoutControl1;
+ this.btnOpenDbFolder.TabIndex = 22;
+ this.btnOpenDbFolder.Text = "Open DB Folder";
+ this.btnOpenDbFolder.Click += new System.EventHandler(this.btnOpenDbFolder_Click);
+ //
+ // edResultCount
+ //
+ this.edResultCount.Location = new System.Drawing.Point(89, 265);
+ this.edResultCount.Name = "edResultCount";
+ this.edResultCount.Size = new System.Drawing.Size(59, 20);
+ this.edResultCount.StyleController = this.layoutControl1;
+ this.edResultCount.TabIndex = 21;
+ //
+ // btnResultListClear
+ //
+ this.btnResultListClear.Location = new System.Drawing.Point(402, 265);
+ this.btnResultListClear.Name = "btnResultListClear";
+ this.btnResultListClear.Size = new System.Drawing.Size(89, 22);
+ this.btnResultListClear.StyleController = this.layoutControl1;
+ this.btnResultListClear.TabIndex = 20;
+ this.btnResultListClear.Text = "Clear";
+ this.btnResultListClear.Click += new System.EventHandler(this.btnResultListClear_Click);
+ //
+ // btnSearchPcbSn
+ //
+ this.btnSearchPcbSn.Location = new System.Drawing.Point(848, 265);
+ this.btnSearchPcbSn.Name = "btnSearchPcbSn";
+ this.btnSearchPcbSn.Size = new System.Drawing.Size(139, 22);
+ this.btnSearchPcbSn.StyleController = this.layoutControl1;
+ this.btnSearchPcbSn.TabIndex = 19;
+ this.btnSearchPcbSn.Text = "Search PCB SN";
+ this.btnSearchPcbSn.Click += new System.EventHandler(this.btnModuleResult_Click);
+ //
+ // btnOutputAll
+ //
+ this.btnOutputAll.Location = new System.Drawing.Point(897, 229);
+ this.btnOutputAll.Name = "btnOutputAll";
+ this.btnOutputAll.Size = new System.Drawing.Size(90, 32);
+ this.btnOutputAll.StyleController = this.layoutControl1;
+ this.btnOutputAll.TabIndex = 18;
+ this.btnOutputAll.Text = "Output All";
+ this.btnOutputAll.Click += new System.EventHandler(this.btnOutputAll_Click);
+ //
+ // btnDeleteQuery
+ //
+ this.btnDeleteQuery.Location = new System.Drawing.Point(740, 229);
+ this.btnDeleteQuery.Name = "btnDeleteQuery";
+ this.btnDeleteQuery.Size = new System.Drawing.Size(123, 32);
+ this.btnDeleteQuery.StyleController = this.layoutControl1;
+ this.btnDeleteQuery.TabIndex = 17;
+ this.btnDeleteQuery.Text = "Delete Query";
+ this.btnDeleteQuery.Click += new System.EventHandler(this.btnCheckMeasData_Click);
+ //
+ // btnCreateNewDb
+ //
+ this.btnCreateNewDb.Location = new System.Drawing.Point(867, 197);
+ this.btnCreateNewDb.Name = "btnCreateNewDb";
+ this.btnCreateNewDb.Size = new System.Drawing.Size(120, 28);
+ this.btnCreateNewDb.StyleController = this.layoutControl1;
+ this.btnCreateNewDb.TabIndex = 16;
+ this.btnCreateNewDb.Text = "Create New DB";
+ this.btnCreateNewDb.Click += new System.EventHandler(this.btnCreateNewDb_Click);
+ //
+ // btnCheckGroupData
+ //
+ this.btnCheckGroupData.Location = new System.Drawing.Point(740, 197);
+ this.btnCheckGroupData.Name = "btnCheckGroupData";
+ this.btnCheckGroupData.Size = new System.Drawing.Size(123, 28);
+ this.btnCheckGroupData.StyleController = this.layoutControl1;
+ this.btnCheckGroupData.TabIndex = 15;
+ this.btnCheckGroupData.Text = "Select All";
+ this.btnCheckGroupData.Click += new System.EventHandler(this.btnCheckGroupData_Click);
+ //
+ // cbResultList
+ //
+ this.cbResultList.Location = new System.Drawing.Point(237, 265);
+ this.cbResultList.Name = "cbResultList";
+ this.cbResultList.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.cbResultList.Properties.Appearance.Options.UseFont = true;
+ this.cbResultList.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+ new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+ this.cbResultList.Size = new System.Drawing.Size(161, 22);
+ this.cbResultList.StyleController = this.layoutControl1;
+ this.cbResultList.TabIndex = 14;
+ this.cbResultList.SelectedIndexChanged += new System.EventHandler(this.cbResultList_SelectedIndexChanged);
+ //
+ // cbLotNo
+ //
+ this.cbLotNo.Location = new System.Drawing.Point(805, 147);
+ this.cbLotNo.Name = "cbLotNo";
+ this.cbLotNo.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+ new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+ this.cbLotNo.Size = new System.Drawing.Size(182, 20);
+ this.cbLotNo.StyleController = this.layoutControl1;
+ this.cbLotNo.TabIndex = 13;
+ //
+ // btnExcuteTCell
+ //
+ this.btnExcuteTCell.Location = new System.Drawing.Point(740, 171);
+ this.btnExcuteTCell.Name = "btnExcuteTCell";
+ this.btnExcuteTCell.Size = new System.Drawing.Size(247, 22);
+ this.btnExcuteTCell.StyleController = this.layoutControl1;
+ this.btnExcuteTCell.TabIndex = 12;
+ this.btnExcuteTCell.Text = "SQL Excute";
+ this.btnExcuteTCell.Click += new System.EventHandler(this.btnExcuteTCell_Click);
+ //
+ // gbDbCommnad
+ //
+ this.gbDbCommnad.Controls.Add(this.layoutControl2);
+ this.gbDbCommnad.Location = new System.Drawing.Point(740, 38);
+ this.gbDbCommnad.Name = "gbDbCommnad";
+ this.gbDbCommnad.Size = new System.Drawing.Size(247, 105);
+ this.gbDbCommnad.TabIndex = 11;
+ this.gbDbCommnad.Text = "Management DB";
+ //
+ // layoutControl2
+ //
+ this.layoutControl2.Controls.Add(this.btnOpenSchema);
+ this.layoutControl2.Controls.Add(this.btnDbMerge);
+ this.layoutControl2.Controls.Add(this.btnQueryExcute);
+ this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl2.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl2.Name = "layoutControl2";
+ this.layoutControl2.Root = this.layoutControlGroup2;
+ this.layoutControl2.Size = new System.Drawing.Size(243, 80);
+ this.layoutControl2.TabIndex = 0;
+ this.layoutControl2.Text = "layoutControl2";
+ //
+ // btnOpenSchema
+ //
+ this.btnOpenSchema.Location = new System.Drawing.Point(3, 3);
+ this.btnOpenSchema.Name = "btnOpenSchema";
+ this.btnOpenSchema.Size = new System.Drawing.Size(237, 22);
+ this.btnOpenSchema.StyleController = this.layoutControl2;
+ this.btnOpenSchema.TabIndex = 8;
+ this.btnOpenSchema.Text = "Open Schema";
+ this.btnOpenSchema.Click += new System.EventHandler(this.btnOpenSchema_Click);
+ //
+ // btnDbMerge
+ //
+ this.btnDbMerge.Location = new System.Drawing.Point(3, 55);
+ this.btnDbMerge.Name = "btnDbMerge";
+ this.btnDbMerge.Size = new System.Drawing.Size(237, 22);
+ this.btnDbMerge.StyleController = this.layoutControl2;
+ this.btnDbMerge.TabIndex = 10;
+ this.btnDbMerge.Text = "BMS Data Merse";
+ this.btnDbMerge.Click += new System.EventHandler(this.btnBmsBmsDataMerse_Click);
+ //
+ // btnQueryExcute
+ //
+ this.btnQueryExcute.Location = new System.Drawing.Point(3, 29);
+ this.btnQueryExcute.Name = "btnQueryExcute";
+ this.btnQueryExcute.Size = new System.Drawing.Size(237, 22);
+ this.btnQueryExcute.StyleController = this.layoutControl2;
+ this.btnQueryExcute.TabIndex = 9;
+ this.btnQueryExcute.Text = "Query Excute";
+ this.btnQueryExcute.Click += new System.EventHandler(this.btnQueryExcute_Click);
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup2";
+ this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup2.GroupBordersVisible = false;
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem5,
+ this.layoutControlItem6,
+ this.layoutControlItem7});
+ this.layoutControlGroup2.Name = "layoutControlGroup2";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(243, 80);
+ this.layoutControlGroup2.TextVisible = false;
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.btnOpenSchema;
+ this.layoutControlItem5.CustomizationFormText = "layoutControlItem5";
+ this.layoutControlItem5.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(241, 26);
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.btnQueryExcute;
+ this.layoutControlItem6.CustomizationFormText = "layoutControlItem6";
+ this.layoutControlItem6.Location = new System.Drawing.Point(0, 26);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(241, 26);
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.btnDbMerge;
+ this.layoutControlItem7.CustomizationFormText = "layoutControlItem7";
+ this.layoutControlItem7.Location = new System.Drawing.Point(0, 52);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(241, 26);
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem7.TextVisible = false;
+ //
+ // tbSchema
+ //
+ this.tbSchema.Location = new System.Drawing.Point(12, 38);
+ this.tbSchema.Multiline = true;
+ this.tbSchema.Name = "tbSchema";
+ this.tbSchema.ScrollBars = System.Windows.Forms.ScrollBars.Both;
+ this.tbSchema.Size = new System.Drawing.Size(724, 223);
+ this.tbSchema.TabIndex = 7;
+ //
+ // gridCell
+ //
+ this.gridCell.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ this.gridCell.Location = new System.Drawing.Point(12, 291);
+ this.gridCell.Name = "gridCell";
+ this.gridCell.RowTemplate.Height = 23;
+ this.gridCell.Size = new System.Drawing.Size(975, 275);
+ this.gridCell.TabIndex = 6;
+ //
+ // btnFindFile
+ //
+ this.btnFindFile.Location = new System.Drawing.Point(712, 12);
+ this.btnFindFile.Name = "btnFindFile";
+ this.btnFindFile.Size = new System.Drawing.Size(89, 22);
+ this.btnFindFile.StyleController = this.layoutControl1;
+ this.btnFindFile.TabIndex = 5;
+ this.btnFindFile.Text = "Excel File ....";
+ this.btnFindFile.Click += new System.EventHandler(this.btnFindFile_Click);
+ //
+ // edFileName
+ //
+ this.edFileName.Location = new System.Drawing.Point(89, 12);
+ this.edFileName.Name = "edFileName";
+ this.edFileName.Size = new System.Drawing.Size(619, 20);
+ this.edFileName.StyleController = this.layoutControl1;
+ this.edFileName.TabIndex = 4;
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1,
+ this.layoutControlItem2,
+ this.emptySpaceItem1,
+ this.layoutControlItem3,
+ this.layoutControlItem4,
+ this.layoutControlItem8,
+ this.layoutControlItem9,
+ this.lcitemLot,
+ this.layoutControlItem10,
+ this.emptySpaceItem2,
+ this.layoutControlItem11,
+ this.layoutControlItem12,
+ this.layoutControlItem13,
+ this.layoutControlItem14,
+ this.layoutControlItem15,
+ this.layoutControlItem16,
+ this.layoutControlItem18,
+ this.layoutControlItem17,
+ this.layoutControlItem19,
+ this.layoutControlItem20});
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Size = new System.Drawing.Size(999, 578);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.edFileName;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(162, 24);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(700, 26);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.Text = "File Name: ";
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(74, 14);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.btnFindFile;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(700, 0);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(93, 26);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1";
+ this.emptySpaceItem1.Location = new System.Drawing.Point(855, 217);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(30, 36);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.gridCell;
+ this.layoutControlItem3.CustomizationFormText = "layoutControlItem3";
+ this.layoutControlItem3.Location = new System.Drawing.Point(0, 279);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(104, 24);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(979, 279);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.tbSchema;
+ this.layoutControlItem4.CustomizationFormText = "layoutControlItem4";
+ this.layoutControlItem4.Location = new System.Drawing.Point(0, 26);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(132, 24);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(728, 227);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.gbDbCommnad;
+ this.layoutControlItem8.CustomizationFormText = "layoutControlItem8";
+ this.layoutControlItem8.Location = new System.Drawing.Point(728, 26);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(251, 109);
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem8.TextVisible = false;
+ //
+ // layoutControlItem9
+ //
+ this.layoutControlItem9.Control = this.btnExcuteTCell;
+ this.layoutControlItem9.CustomizationFormText = "layoutControlItem9";
+ this.layoutControlItem9.Location = new System.Drawing.Point(728, 159);
+ this.layoutControlItem9.Name = "layoutControlItem9";
+ this.layoutControlItem9.Size = new System.Drawing.Size(251, 26);
+ this.layoutControlItem9.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem9.TextVisible = false;
+ //
+ // lcitemLot
+ //
+ this.lcitemLot.Control = this.cbLotNo;
+ this.lcitemLot.CustomizationFormText = " Lot No";
+ this.lcitemLot.Location = new System.Drawing.Point(728, 135);
+ this.lcitemLot.Name = "lcitemLot";
+ this.lcitemLot.Size = new System.Drawing.Size(251, 24);
+ this.lcitemLot.Text = " Lot No";
+ this.lcitemLot.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemLot.TextSize = new System.Drawing.Size(60, 14);
+ this.lcitemLot.TextToControlDistance = 5;
+ //
+ // layoutControlItem10
+ //
+ this.layoutControlItem10.Control = this.cbResultList;
+ this.layoutControlItem10.CustomizationFormText = " Result List";
+ this.layoutControlItem10.Location = new System.Drawing.Point(140, 253);
+ this.layoutControlItem10.MaxSize = new System.Drawing.Size(0, 26);
+ this.layoutControlItem10.MinSize = new System.Drawing.Size(187, 26);
+ this.layoutControlItem10.Name = "layoutControlItem10";
+ this.layoutControlItem10.Size = new System.Drawing.Size(250, 26);
+ this.layoutControlItem10.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem10.Text = " Result List";
+ this.layoutControlItem10.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.layoutControlItem10.TextSize = new System.Drawing.Size(80, 14);
+ this.layoutControlItem10.TextToControlDistance = 5;
+ //
+ // emptySpaceItem2
+ //
+ this.emptySpaceItem2.AllowHotTrack = false;
+ this.emptySpaceItem2.CustomizationFormText = "emptySpaceItem2";
+ this.emptySpaceItem2.Location = new System.Drawing.Point(483, 253);
+ this.emptySpaceItem2.Name = "emptySpaceItem2";
+ this.emptySpaceItem2.Size = new System.Drawing.Size(109, 26);
+ this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem11
+ //
+ this.layoutControlItem11.Control = this.btnCheckGroupData;
+ this.layoutControlItem11.CustomizationFormText = "layoutControlItem11";
+ this.layoutControlItem11.Location = new System.Drawing.Point(728, 185);
+ this.layoutControlItem11.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem11.Name = "layoutControlItem11";
+ this.layoutControlItem11.Size = new System.Drawing.Size(127, 32);
+ this.layoutControlItem11.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem11.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem11.TextVisible = false;
+ //
+ // layoutControlItem12
+ //
+ this.layoutControlItem12.Control = this.btnCreateNewDb;
+ this.layoutControlItem12.CustomizationFormText = "layoutControlItem12";
+ this.layoutControlItem12.Location = new System.Drawing.Point(855, 185);
+ this.layoutControlItem12.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem12.Name = "layoutControlItem12";
+ this.layoutControlItem12.Size = new System.Drawing.Size(124, 32);
+ this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem12.TextVisible = false;
+ //
+ // layoutControlItem13
+ //
+ this.layoutControlItem13.Control = this.btnDeleteQuery;
+ this.layoutControlItem13.CustomizationFormText = "layoutControlItem13";
+ this.layoutControlItem13.Location = new System.Drawing.Point(728, 217);
+ this.layoutControlItem13.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem13.Name = "layoutControlItem13";
+ this.layoutControlItem13.Size = new System.Drawing.Size(127, 36);
+ this.layoutControlItem13.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem13.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem13.TextVisible = false;
+ //
+ // layoutControlItem14
+ //
+ this.layoutControlItem14.Control = this.btnOutputAll;
+ this.layoutControlItem14.CustomizationFormText = "layoutControlItem14";
+ this.layoutControlItem14.Location = new System.Drawing.Point(885, 217);
+ this.layoutControlItem14.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem14.Name = "layoutControlItem14";
+ this.layoutControlItem14.Size = new System.Drawing.Size(94, 36);
+ this.layoutControlItem14.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem14.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem14.TextVisible = false;
+ //
+ // layoutControlItem15
+ //
+ this.layoutControlItem15.Control = this.btnSearchPcbSn;
+ this.layoutControlItem15.CustomizationFormText = "layoutControlItem15";
+ this.layoutControlItem15.Location = new System.Drawing.Point(836, 253);
+ this.layoutControlItem15.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem15.Name = "layoutControlItem15";
+ this.layoutControlItem15.Size = new System.Drawing.Size(143, 26);
+ this.layoutControlItem15.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem15.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem15.TextVisible = false;
+ //
+ // layoutControlItem16
+ //
+ this.layoutControlItem16.Control = this.btnResultListClear;
+ this.layoutControlItem16.CustomizationFormText = "layoutControlItem16";
+ this.layoutControlItem16.Location = new System.Drawing.Point(390, 253);
+ this.layoutControlItem16.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem16.Name = "layoutControlItem16";
+ this.layoutControlItem16.Size = new System.Drawing.Size(93, 26);
+ this.layoutControlItem16.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem16.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem16.TextVisible = false;
+ //
+ // layoutControlItem18
+ //
+ this.layoutControlItem18.Control = this.btnOpenDbFolder;
+ this.layoutControlItem18.CustomizationFormText = "layoutControlItem18";
+ this.layoutControlItem18.Location = new System.Drawing.Point(882, 0);
+ this.layoutControlItem18.Name = "layoutControlItem18";
+ this.layoutControlItem18.Size = new System.Drawing.Size(97, 26);
+ this.layoutControlItem18.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem18.TextVisible = false;
+ //
+ // layoutControlItem17
+ //
+ this.layoutControlItem17.Control = this.edResultCount;
+ this.layoutControlItem17.CustomizationFormText = "layoutControlItem17";
+ this.layoutControlItem17.Location = new System.Drawing.Point(0, 253);
+ this.layoutControlItem17.MinSize = new System.Drawing.Size(54, 24);
+ this.layoutControlItem17.Name = "layoutControlItem17";
+ this.layoutControlItem17.Size = new System.Drawing.Size(140, 26);
+ this.layoutControlItem17.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem17.Text = "Result Count ";
+ this.layoutControlItem17.TextSize = new System.Drawing.Size(74, 14);
+ //
+ // layoutControlItem19
+ //
+ this.layoutControlItem19.Control = this.tbPcbSn;
+ this.layoutControlItem19.CustomizationFormText = "PCB SN";
+ this.layoutControlItem19.Location = new System.Drawing.Point(592, 253);
+ this.layoutControlItem19.MinSize = new System.Drawing.Size(131, 24);
+ this.layoutControlItem19.Name = "layoutControlItem19";
+ this.layoutControlItem19.Size = new System.Drawing.Size(244, 26);
+ this.layoutControlItem19.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem19.Text = "PCB SN";
+ this.layoutControlItem19.TextSize = new System.Drawing.Size(74, 14);
+ //
+ // openFileDialog1
+ //
+ this.openFileDialog1.FileName = "openFileDialog1";
+ //
+ // btnDbFileFind
+ //
+ this.btnDbFileFind.Location = new System.Drawing.Point(805, 12);
+ this.btnDbFileFind.Name = "btnDbFileFind";
+ this.btnDbFileFind.Size = new System.Drawing.Size(85, 22);
+ this.btnDbFileFind.StyleController = this.layoutControl1;
+ this.btnDbFileFind.TabIndex = 24;
+ this.btnDbFileFind.Text = "DB Files ...";
+ this.btnDbFileFind.Click += new System.EventHandler(this.btnDbFileFind_Click);
+ //
+ // layoutControlItem20
+ //
+ this.layoutControlItem20.Control = this.btnDbFileFind;
+ this.layoutControlItem20.Location = new System.Drawing.Point(793, 0);
+ this.layoutControlItem20.Name = "layoutControlItem20";
+ this.layoutControlItem20.Size = new System.Drawing.Size(89, 26);
+ this.layoutControlItem20.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem20.TextVisible = false;
+ //
+ // fmxExcelFile
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(999, 578);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("fmxExcelFile.IconOptions.Icon")));
+ this.Name = "fmxExcelFile";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Database Control";
+ this.Load += new System.EventHandler(this.fmxExcelFile_Load);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.tbPcbSn.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edResultCount.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.cbResultList.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.cbLotNo.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbDbCommnad)).EndInit();
+ this.gbDbCommnad.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit();
+ this.layoutControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gridCell)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edFileName.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemLot)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem18)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem17)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem20)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.SimpleButton btnFindFile;
+ private DevExpress.XtraEditors.TextEdit edFileName;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private System.Windows.Forms.DataGridView gridCell;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private System.Windows.Forms.TextBox tbSchema;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraEditors.SimpleButton btnOpenSchema;
+ private DevExpress.XtraEditors.SimpleButton btnQueryExcute;
+ private DevExpress.XtraEditors.GroupControl gbDbCommnad;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ private DevExpress.XtraLayout.LayoutControl layoutControl2;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraEditors.SimpleButton btnExcuteTCell;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
+ private DevExpress.XtraEditors.ComboBoxEdit cbLotNo;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemLot;
+ private DevExpress.XtraEditors.ComboBoxEdit cbResultList;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+ private DevExpress.XtraEditors.SimpleButton btnCheckGroupData;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11;
+ private DevExpress.XtraEditors.SimpleButton btnCreateNewDb;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12;
+ private DevExpress.XtraEditors.SimpleButton btnDeleteQuery;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13;
+ private DevExpress.XtraEditors.SimpleButton btnOutputAll;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem14;
+ private DevExpress.XtraEditors.SimpleButton btnSearchPcbSn;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem15;
+ private DevExpress.XtraEditors.SimpleButton btnResultListClear;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem16;
+ private DevExpress.XtraEditors.TextEdit edResultCount;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem17;
+ private DevExpress.XtraEditors.SimpleButton btnOpenDbFolder;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem18;
+ private DevExpress.XtraEditors.TextEdit tbPcbSn;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem19;
+ private DevExpress.XtraEditors.SimpleButton btnDbMerge;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ private System.Windows.Forms.OpenFileDialog openFileDialog1;
+ private DevExpress.XtraEditors.SimpleButton btnDbFileFind;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem20;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxExcelFile.cs b/LFP_Manager/Forms/fmxExcelFile.cs
new file mode 100644
index 0000000..e5f509e
--- /dev/null
+++ b/LFP_Manager/Forms/fmxExcelFile.cs
@@ -0,0 +1,363 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+using System.Data.SQLite;
+
+using System.IO;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Utils;
+
+namespace LFP_Manager
+{
+ public partial class fmxExcelFile : DevExpress.XtraEditors.XtraForm
+ {
+ #region VARIABLES
+
+ string[] dbFiles;
+ //private string Excel03ConString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR={1}'";
+ //private string Excel07ConString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR={1}'";
+ //Workbook workbook;
+ DataSet dsCell;
+ DataTable dtCell;
+
+ CommConfig Config;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public fmxExcelFile(CommConfig aConfig)
+ {
+ InitializeComponent();
+
+ Config = aConfig;
+ //tbSchema.Text = "select * from TInventoryData" + "\r\n" + "where pcb_sn like 'BMU18SA20120169%'";
+ }
+
+ #endregion
+
+ #region FORM EVENT
+ private void fmxExcelFile_Load(object sender, EventArgs e)
+ {
+ string dbfilePath = Path.GetDirectoryName(Application.ExecutablePath) + @"\db";
+ dbFiles = Directory.GetFiles(dbfilePath, "*.db", SearchOption.AllDirectories);
+
+ if (dbFiles.Length > 0)
+ {
+ for (int i = 0; i < dbFiles.Length; i++)
+ {
+ cbLotNo.Properties.Items.Add(Path.GetFileName(dbFiles[i]));
+ }
+ cbLotNo.SelectedIndex = 0;
+ }
+ }
+ #endregion
+
+ // Copy Table Value
+ // INSERT INTO TModuleResultBak SELECT * FROM TModuleResult
+ // INSERT INTO [TModuleBmsBak] (sn, result, module_ocv_b) SELECT sn, result, module_ocv_b FROM TModuleBms
+
+ #region BUTTON EVENT
+ private void btnFindFile_Click(object sender, EventArgs e)
+ {
+ OpenFileDialog oDialog = new OpenFileDialog();
+ oDialog.DefaultExt = "*.*";
+ oDialog.Filter = "excel files 2003 (*.xls)|*.xls|excel files 2007 (*.xlsx)|*.xlsx|All files (*.*)|*.*";
+
+ if (oDialog.ShowDialog() == DialogResult.OK)
+ {
+ edFileName.Text = oDialog.FileName;
+
+ try
+ {
+ dsCell = csExcelControl.OpenExcelDB(edFileName.Text);
+
+ cbResultList.Properties.Items.Clear();
+ for (int i = 0; i < dsCell.Tables.Count; i++)
+ {
+ cbResultList.Properties.Items.Add(dsCell.Tables[i].TableName);
+ }
+ cbResultList.SelectedIndex = 0;
+
+ dtCell = dsCell.Tables[0];
+
+ gridCell.DataSource = dtCell;
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+
+ private void btnDbFileFind_Click(object sender, EventArgs e)
+ {
+ OpenFileDialog oDialog = new OpenFileDialog();
+ oDialog.DefaultExt = "*.*";
+ oDialog.Filter = "db files (*.db)|*.db|All files (*.*)|*.*";
+
+ if (oDialog.ShowDialog() == DialogResult.OK)
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+
+ edFileName.Text = oDialog.FileName;
+
+ try
+ {
+ WaitForm.Show();
+
+ int count = 0;
+ DateTime bakTime = new DateTime();
+ DataTable dtRD = new DataTable();
+ DataTable dtWR = new DataTable();
+ if (csDbUtils.DbQuaryExcuteToDataTable(edFileName.Text, "select * from TModuleValue", ref dtRD) > 0)
+ {
+ string dbfilepath = Path.GetDirectoryName(edFileName.Text);
+ string dbfilename_new = dbfilepath + @"\" + Path.GetFileNameWithoutExtension(edFileName.Text) + @"_new.db";
+ csDbUtils.CreateLogDbFile(dbfilename_new);
+
+ foreach (DataRow aRow in dtRD.Rows)
+ {
+ DateTime bTime = Convert.ToDateTime(String.Format("{0:yyyy/MM/dd HH:mm:ss}", aRow["create_date"]));
+ if (bakTime != bTime)
+ {
+ csDbUtils.DbInsertDataToDbFile(dbfilename_new, aRow);
+ bakTime = bTime;
+ }
+ //aRow["create_date"] = String.Format("{0:yyyy/MM/dd HH:mm:ss}", aRow["create_date"]);
+
+ WaitForm.SetDescription(String.Format("{0}//{1}", count, dtRD.Rows.Count));
+ Application.DoEvents();
+ count++;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ finally
+ {
+ if (WaitForm != null)
+ WaitForm.Close();
+ }
+ }
+ }
+
+ private void btnExcuteTCell_Click(object sender, EventArgs e)
+ {
+ if (tbSchema.Text != string.Empty)
+ {
+ try
+ {
+ //string path = cbLotNo.Text.Substring(0, 9);
+ //string path = cbLotNo.Text;
+ string path = dbFiles[cbLotNo.SelectedIndex];
+ DataTable aaa = csDbUtils.DbSqlExcuteA3(path, tbSchema.Text);
+ if (aaa != null)
+ {
+ gridCell.DataSource = aaa;
+ edResultCount.Text = String.Format("{0}", aaa.Rows.Count);
+
+ if (aaa.Rows.Count > 0)
+ {
+ var ddd = aaa.Rows[0]["module_sn"];
+ byte[] ccc = Encoding.UTF8.GetBytes(ddd.ToString());
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ }
+ }
+
+ private void btnOpenSchema_Click(object sender, EventArgs e)
+ {
+ OpenFileDialog oDialog = new OpenFileDialog();
+ oDialog.DefaultExt = "*.*";
+ oDialog.Filter = "sql files (*.sql)|*.sql|All files (*.*)|*.*";
+
+ if (oDialog.ShowDialog() == DialogResult.OK)
+ {
+ string text = System.IO.File.ReadAllText(oDialog.FileName);
+ tbSchema.Text = text;
+ }
+ }
+
+ private void btnQueryExcute_Click(object sender, EventArgs e)
+ {
+ if (tbSchema.Text != string.Empty)
+ {
+ gridCell.DataSource = csDbUtils.DbSqlExcuteA(Application.ExecutablePath, tbSchema.Text, "mBMS_16S");
+ }
+ }
+
+ private void btnInsertDbByTable_Click(object sender, EventArgs e)
+ {
+ }
+
+ private void btnCheckGroupData_Click(object sender, EventArgs e)
+ {
+ tbSchema.Text = "select * from TInventoryData";
+ }
+
+ private void btnCreateNewDb_Click(object sender, EventArgs e)
+ {
+ string ModelName;
+
+ ModelName = csConstData.MODEL_STR[Config.UartModelIndex];
+
+ csDbUtils.LogDbCreateNew(ModelName);
+ }
+
+ private void btnCheckMeasData_Click(object sender, EventArgs e)
+ {
+ tbSchema.Text = "delete from TInventoryData where pcb_sn=''";
+ }
+ private void btnOutputAll_Click(object sender, EventArgs e)
+ {
+ if (cbResultList.Properties.Items.Count > 0)
+ {
+ for (int i = 0; i < cbResultList.Properties.Items.Count; i++)
+ {
+ string sn = cbResultList.Properties.Items[i].ToString();
+ MakeOutpuDataExcel(sn, cbLotNo.Text);
+ }
+ }
+ }
+ private void btnModuleResult_Click(object sender, EventArgs e)
+ {
+ //
+ try
+ {
+ string dbFilePath = dbFiles[cbLotNo.SelectedIndex];
+ string sql = String.Format("SELECT * FROM TInventoryData")
+ + String.Format(" where pcb_sn like '{0}%'", tbPcbSn.Text)
+ ;
+ DataTable dtBmsData = csDbUtils.DbSqlExcuteA3(dbFilePath, sql);
+ dtBmsData.TableName = "TInventoryData";
+
+ if ((dtBmsData != null) && (dtBmsData.Rows.Count > 0))
+ {
+ cbResultList.Properties.Items.Clear();
+
+ for (int i = 0; i < dtBmsData.Rows.Count; i++)
+ {
+ cbResultList.Properties.Items.Add(String.Format("{0}", dtBmsData.Rows[i]["pcb_sn"]));
+ }
+ gridCell.DataSource = dtBmsData;
+ edResultCount.Text = dtBmsData.Rows.Count.ToString();
+ cbResultList.SelectedIndex = 0;
+ }
+ else
+ {
+ MessageBox.Show(String.Format("No TModuleResult data - {0}", dbFilePath));
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message);
+ }
+ }
+ private void btnResultListClear_Click(object sender, EventArgs e)
+ {
+ cbResultList.Properties.Items.Clear();
+ }
+
+ private void btnBmsBmsDataMerse_Click(object sender, EventArgs e)
+ {
+ }
+
+ private void btnOpenDbFolder_Click(object sender, EventArgs e)
+ {
+ System.Diagnostics.Process ps = new System.Diagnostics.Process();
+ ps.StartInfo.FileName = "explorer.exe";
+ ps.StartInfo.Arguments = csLog.GetDbFolder(Application.ExecutablePath);
+ ps.StartInfo.WorkingDirectory = csLog.GetDbFolder(Application.ExecutablePath);
+ ps.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
+
+ ps.Start();
+ }
+ #endregion
+
+ #region COMPONENT EVETNT
+ private void cbResultList_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ string tbName = "";
+ tbName = cbResultList.Text;
+
+ if ((dtCell != null) && (dtCell.Rows.Count > 0))
+ {
+ if (tbName != "")
+ {
+ int index = cbResultList.SelectedIndex;
+ dtCell = dsCell.Tables[index];
+ gridCell.DataSource = dtCell;
+ }
+ }
+ }
+ #endregion
+
+ #region MAKE OUTPUT FUNCTION
+ private void MakeOutpuDataExcel(string mSN, string dbFile)
+ {
+ DateTime aDate = DateTime.Now;
+ string filename = String.Format("{0}_PR_57150.xls", mSN);
+ string filepath =
+ Path.GetDirectoryName(Application.ExecutablePath)
+ + String.Format(@"\output\{0}\", csDbUtils.MakeLotNumber(mSN))
+ + filename;
+
+ DataTable dtModuleResult = new DataTable();
+ DataTable dtCellResult = new DataTable();
+
+ string sql;
+ sql = String.Format("SELECT * FROM TModuleResult where m_sn = {0}", mSN);
+ dtModuleResult = csDbUtils.GetDataTableBySelectFromDbName(dbFile, sql, "TModuleResult", "mBMS-16S");
+ dtModuleResult.TableName = "TModuleResult";
+ dtModuleResult.AcceptChanges();
+
+ sql = String.Format("SELECT * FROM TCellResult where m_sn = {0}", mSN);
+ dtCellResult = csDbUtils.GetDataTableBySelectFromDbName(dbFile, sql, "TCellResult", "mBMS-16S");
+ dtCellResult.TableName = "TCellResult";
+ dtCellResult.AcceptChanges();
+
+ if (dtModuleResult.Rows.Count == 0) throw new Exception(String.Format("No ModuleResult data ({0})", mSN));
+ if (dtCellResult.Rows.Count == 0) throw new Exception(String.Format("No CellResult data ({0})", mSN));
+
+ csExcelExport.ExportToExcel(dtModuleResult, filepath);
+ csExcelExport.ExportToExcel(dtCellResult, filepath, false);
+ }
+
+ private DataTable GetModuleResultTable(string dbFileName)
+ {
+ DateTime aDate = DateTime.Now;
+
+ DataTable dtModuleResult = new DataTable();
+
+ string sql;
+ sql = String.Format("SELECT * FROM TModuleResult");
+ dtModuleResult = csDbUtils.GetDataTableBySelectFromDbName(dbFileName, sql, "TModuleResult", "mBMS-16S");
+ dtModuleResult.TableName = "TModuleResult";
+ dtModuleResult.AcceptChanges();
+
+ if (dtModuleResult.Rows.Count == 0) throw new Exception(String.Format("No ModuleResult data ({0})", dbFileName));
+
+ return dtModuleResult;
+ }
+
+ #endregion
+
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxExcelFile.resx b/LFP_Manager/Forms/fmxExcelFile.resx
new file mode 100644
index 0000000..ed11552
--- /dev/null
+++ b/LFP_Manager/Forms/fmxExcelFile.resx
@@ -0,0 +1,4574 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+
+ AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA
+ GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/
+ ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7/////////////////////
+ ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff/////////
+ ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+
+ /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7/////
+ ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc
+ x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7/////////////////////////////
+ ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt
+ e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP
+ SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7/////////
+ ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z
+ WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS
+ Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8
+ +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+
+ /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+
+ /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO
+ SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz
+ 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o
+ 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9
+ /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE
+ oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG
+ PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7/////
+ ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH
+ PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t
+ 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/
+ ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/
+ ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7/////////////////////////////
+ ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+
+ /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ
+ TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7/////////////////
+ ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ
+ TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+
+ /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7/////
+ ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP
+ SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7/////////////////////////////////////////
+ ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/
+ ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7/////////////////////////////
+ ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/
+ ///+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////+/v7////////+/v3////////////////////////+/v3////////+/v7/////////////////
+ ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7/////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ /////////v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v7////////+/v7/////////////////////////////////////
+ ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7/////////////////////
+ ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7
+ +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9
+ /Pz+/v7/////////////////////////////////////////////////////////////////////////
+ ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM
+ RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7/////////////////////////////////////
+ ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL
+ QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+
+ /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP
+ SgCOSQCPTAKFOwDVvaT////9/Pv+/v7/////////////////////////////////////////////////
+ ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8
+ +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7/////////
+ /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO
+ SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF
+ OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+
+ ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/
+ //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7/////////////////////////
+ ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/
+ mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79
+ /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN
+ RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ
+ TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7/////
+ ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7/////
+ ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+
+ /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ
+ TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP
+ SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH
+ PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/
+ ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5
+ 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+
+ /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ
+ QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE
+ oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/
+ ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7/////////////////////////
+ ///////////////////////////////////////////////////////+/v7+////////////////////
+ ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+
+ /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9
+ /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP
+ SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL
+ RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7/////////////////////////////////
+ ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/
+ ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7/////////
+ ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP
+ SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI
+ PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/
+ ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x
+ glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7/////////////////////////////
+ ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM
+ RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+
+ /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/
+ ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP
+ SgCOSgGLRQGTURDz7ef+/v39/f3+/v7/////////////////////////////////////////////////
+ ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+
+ /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7/////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN
+ RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9
+ /fz9/f3+/v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO
+ SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7/////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO
+ SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS
+ UA/y6+X+/v39/fz+/v7+/v7/////////////////////////////////////////////////////////
+ ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP
+ SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7/////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+
+ /v7/////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO
+ SQCOSQGJQQDi0cD////9/Pv+/v7/////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J
+ QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7/////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39
+ /fz+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz
+ hFazhFayhFazhVete1TWvqb////9/fz+/v7/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+
+ /f3+/f3/////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v7+////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////v7+
+ /f39////////////////////////////////////////////////////////////////////////////
+ ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39
+ /fz8/v79/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA
+ nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1////
+ x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV
+ i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC
+ jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC
+ hz8Ap3I//fz7/fz8/v79/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7
+ /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8
+ +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p
+ /v39/f38/v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+
+ ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb
+ 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+//7+/f39
+ /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7////
+ 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+
+ /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA
+ j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB
+ j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB
+ i0UAlVYZ8+3m/f79/f38/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+////////////////
+ /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39
+ /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+
+ sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+
+ /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+////////
+ /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+
+ /f39/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO
+ /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39
+ 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39
+ /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+////////////////////////////
+ /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+////
+ /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A
+ kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ jkoCikIC4tHA/////Pv7/v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC
+ hz4A1r6m/////Pz7/v7+/v7+/////v7+////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+
+ /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+////////////////////
+ /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM
+ /////Pv6/v7+/v7+/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA
+ j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+
+ /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7
+ /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq////
+ /Pv6/v7+/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A
+ j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA
+ kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA
+ j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6
+ /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+////////
+ /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+
+ /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA
+ xaJ//////Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU
+ /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA
+ j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+////////////
+ 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+
+ /////v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39
+ /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/
+ /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6
+ ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+
+ /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC
+ kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB
+ kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39////
+ /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA
+ hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA
+ iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A
+ j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU
+ z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+////////
+ /v7+/////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7//v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn
+ +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3
+ +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8
+ /fz8/v7+/////v7+/////v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v///v7+/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT
+ z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7
+ ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A
+ hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A
+ fS0AtIdb/f38/Pz8///+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D
+ kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL
+ jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA
+ jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3
+ iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA
+ jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA
+ jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK
+ 6t7S/v7+/fz8/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs////
+ /Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7
+ /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38
+ /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fz8
+ /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+////////////////////////////////////
+ /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+
+ /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA
+ jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A
+ pnA8/Pv6/fz7/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq
+ iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+
+ /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+////////////
+ /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+
+ //7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A
+ 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES
+ jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+////////////////
+ /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6
+ /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7
+ /v79/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v39
+ /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8
+ +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+
+ /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ
+ hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ
+ 8+3m/f39/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+
+ /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA
+ jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA
+ u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA
+ j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA
+ jkkCikQE49PC/v7//fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8
+ /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+
+ /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7////
+ t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA
+ jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU
+ hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD
+ /////fz8//7//v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA
+ oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC
+ hj0Az7SX/////fz7//7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+//7+
+ /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH
+ jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA
+ jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT////
+ /Pz8/v7//v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA
+ t4tf/////fz7/v7+/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs
+ mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6
+ /v7+/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v7+
+ /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx
+ +/n3/fz8/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+
+ rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA
+ jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW
+ k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV
+ kU8TmVoj8ejg/v39/fz7/v7//f39/v//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off
+ 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v////7+/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v39/v7+
+ ///+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/v//////
+ /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v79/////////v7+/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v79/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////9/Lt9/Pu
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2svnmMrzrGR/////fz7////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ
+ /v39/fz8/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h
+ /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0////
+ 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC
+ j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ jUgBlFIO7uTa/////f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB
+ jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+
+ /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38////////////////////
+ /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z
+ iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+
+ sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG////
+ /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ hz4Ar35J/v39/fz8/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+////////
+ /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38////////////////////////////////
+ /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+////////////////////////////////////////////
+ /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA
+ /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW
+ k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+
+ /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+////////////////////
+ /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iEAA176j/////fz7////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39////////////////////////////////////////////
+ ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38
+ /fz8/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEA1buf/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+////////////
+ /////////////////////////////////////////////////////////////////////fz7////yKaB
+ hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v///f38////sH9K
+ hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oBi0QAnmIj9vHs/v39/v39////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA
+ nWAf9vHs/v7+/v79////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo////
+ /fz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v///f38////
+ 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/v79+/n3omor
+ ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm
+ +PTw/v39/f39////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sBjEUAmVwb9e/p/v7+/f38////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A
+ vpVq/////fz7/v/+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8AyKaB/////fz7/v///v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39
+ //7/////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC
+ jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsCiD8Auo9h/////fz8/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE
+ iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB
+ 4tC+/////f38/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjUcBk1EN7+Xb/////f39/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj
+ n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f38////u5Jlhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkBjUgE4M66/////fz7/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR
+ 7+bd/v7+/f39////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv
+ +/n4/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0
+ rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6
+ ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC
+ hz4AtolZ/////fz8/v3+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA
+ j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ j0sBikIApGww+vj1/v39/f39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ
+ j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M
+ /////Pz7/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkCjkkG4c+7/////fz7/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+///+/v39
+ /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d////
+ /fz7/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/f38/f38
+ 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A
+ jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sBiD8AyKiE/////fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oBiUEApW4z+vj1/v39/v39////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ
+ /v7+/f38/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4
+ 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD
+ 49PB/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/Pz7////
+ 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6////
+ /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A
+ j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC
+ iUEAqHQ7+/j2/fz8/v39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jUgBkk8K7ODV/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL////
+ /f38/v7+///+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6////////
+ ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A
+ ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38
+ /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBiUEA1Lqd/////fv6////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38
+ sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////v7+/v39
+ /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq
+ 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38
+ /v39/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjUgBkU4J6NrM/////fz8////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA
+ jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEArnxG/v7+/f38/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO
+ 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i////
+ /Pz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA
+ hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr
+ vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g
+ 4M24/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY
+ llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+////////////////////////////
+ /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsCiUEArXpD/v7//f39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB
+ ikMA1bqf/////fz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39
+ /f38/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39
+ /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/////////v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI
+ iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8////
+ /fz8////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA
+ mVsZ8+zl/v38/fz8////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7
+ /v7+//7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz7/v7+
+ 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf
+ 9vHs/v79/fz8////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z
+ iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAi0YAl1gT8+3l/v7+/f39////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA
+ upFj/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC
+ hz4AwZty/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////f39
+ /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC
+ jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ
+ hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsChz4At4ta/////fz8/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjUgCkEwL6dzO/////fz7////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD
+ 38y3/////fz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v/+/f39/v79
+ +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////fz8
+ /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A
+ kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK
+ 5tbG/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBjUcB4M25/////f38/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos
+ +PTw/fz8/f39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v//////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA
+ kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB
+ iUAAq3dA/Pr4/fz7/f39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v///fz7
+ ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA
+ j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0oBikMAomgq+vf0/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////Pz7////4M24
+ i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiUEA0rea/////fz7/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7
+ /v38/v39/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////f38/v79
+ +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/f38
+ ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ kEwChz4AxaJ8/////fz7/v7+////////////////////////////////////////////////////////
+ ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA
+ 07mb/////Pz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU
+ /v7+/Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+////
+ //////////////////////////////////////////////////////////////////////////////7/
+ /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7/////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+////////////////////////////
+ /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jEQAm10b9O/p/v7+/f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+////////////////////////////////////////
+ /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7
+ /v7//v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jUgAklAK6dzO/////f38/v//////////////////////////////////////////////////////////
+ /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6
+ /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng
+ lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+
+ /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiD8Au5Jl/////fz8/v7+//7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+////////////////////
+ /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj
+ /v39/fz8/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+////////////////////////////
+ /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8
+ ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb////
+ /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A
+ upFj/////fz8/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+
+ /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7////////////////////////
+ /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf
+ llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA
+ kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkBjUcA49LA/////f38/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79
+ /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3
+ qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8////0baX
+ iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD
+ /////fz8/v//////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA
+ nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA
+ qHI4/Pv5/v39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+
+ iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ kEsChz8Az7KS/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7
+ /v39/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v39
+ /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////fz8////59jIj0oD
+ jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ
+ /////fz8////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB
+ llYW7+Xb/v7+/f38/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0wChz8AuIxc/v7+/fz7/v39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+
+ /v39/v//////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fv6
+ ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAjkkBjEYA4M24/////fz8/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa
+ /////f38////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v39/fz7
+ 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB
+ jUcE3sq2/////Pz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oBikMAomgq+fXy/v39/f39////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/fz7////
+ 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq
+ +vf1/f38/f39//7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39
+ tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS
+ yqqM38u2/////v79/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/v79////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v79/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxFwUpdate.Designer.cs b/LFP_Manager/Forms/fmxFwUpdate.Designer.cs
new file mode 100644
index 0000000..9855b6d
--- /dev/null
+++ b/LFP_Manager/Forms/fmxFwUpdate.Designer.cs
@@ -0,0 +1,643 @@
+namespace LFP_Manager
+{
+ partial class fmxFwUpdate
+ {
+ ///
+ /// 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(fmxFwUpdate));
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnFlashWrite = new DevExpress.XtraEditors.SimpleButton();
+ this.btnFlashErase = new DevExpress.XtraEditors.SimpleButton();
+ this.btnGotoApp = new DevExpress.XtraEditors.SimpleButton();
+ this.btnGotoBoot = new DevExpress.XtraEditors.SimpleButton();
+ this.btnRestart = new DevExpress.XtraEditors.SimpleButton();
+ this.lbUpdateStatus = new DevExpress.XtraEditors.LabelControl();
+ this.lbUpdateProgress = new DevExpress.XtraEditors.LabelControl();
+ this.pgUpdate = new DevExpress.XtraEditors.ProgressBarControl();
+ this.lbUpdateTime = new DevExpress.XtraEditors.LabelControl();
+ this.lbFileInfo = new DevExpress.XtraEditors.LabelControl();
+ this.btnFwUpdate = new DevExpress.XtraEditors.SimpleButton();
+ this.btnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.btnFind = new DevExpress.XtraEditors.SimpleButton();
+ this.edFilename = new DevExpress.XtraEditors.TextEdit();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.emptySpaceItem4 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem3 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcItemGotoBoot = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem5 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.lcItemGotoApp = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem6 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.lcItemFlashErase = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcItemFlashWrite = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.edTargetID = new DevExpress.XtraEditors.TextEdit();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pgUpdate.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edFilename.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemGotoBoot)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemGotoApp)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemFlashErase)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemFlashWrite)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edTargetID.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.edTargetID);
+ this.layoutControl1.Controls.Add(this.btnFlashWrite);
+ this.layoutControl1.Controls.Add(this.btnFlashErase);
+ this.layoutControl1.Controls.Add(this.btnGotoApp);
+ this.layoutControl1.Controls.Add(this.btnGotoBoot);
+ this.layoutControl1.Controls.Add(this.btnRestart);
+ this.layoutControl1.Controls.Add(this.lbUpdateStatus);
+ this.layoutControl1.Controls.Add(this.lbUpdateProgress);
+ this.layoutControl1.Controls.Add(this.pgUpdate);
+ this.layoutControl1.Controls.Add(this.lbUpdateTime);
+ this.layoutControl1.Controls.Add(this.lbFileInfo);
+ this.layoutControl1.Controls.Add(this.btnFwUpdate);
+ this.layoutControl1.Controls.Add(this.btnClose);
+ this.layoutControl1.Controls.Add(this.btnFind);
+ this.layoutControl1.Controls.Add(this.edFilename);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1101, 240, 600, 492);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(736, 478);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // btnFlashWrite
+ //
+ this.btnFlashWrite.Location = new System.Drawing.Point(567, 153);
+ this.btnFlashWrite.Name = "btnFlashWrite";
+ this.btnFlashWrite.Size = new System.Drawing.Size(162, 22);
+ this.btnFlashWrite.StyleController = this.layoutControl1;
+ this.btnFlashWrite.TabIndex = 21;
+ this.btnFlashWrite.Text = "Flash Write";
+ this.btnFlashWrite.Click += new System.EventHandler(this.btnFlashWrite_Click);
+ //
+ // btnFlashErase
+ //
+ this.btnFlashErase.Location = new System.Drawing.Point(567, 127);
+ this.btnFlashErase.Name = "btnFlashErase";
+ this.btnFlashErase.Size = new System.Drawing.Size(162, 22);
+ this.btnFlashErase.StyleController = this.layoutControl1;
+ this.btnFlashErase.TabIndex = 20;
+ this.btnFlashErase.Text = "Flash Erase";
+ this.btnFlashErase.Click += new System.EventHandler(this.btnFlashErase_Click);
+ //
+ // btnGotoApp
+ //
+ this.btnGotoApp.Location = new System.Drawing.Point(567, 220);
+ this.btnGotoApp.Name = "btnGotoApp";
+ this.btnGotoApp.Size = new System.Drawing.Size(162, 22);
+ this.btnGotoApp.StyleController = this.layoutControl1;
+ this.btnGotoApp.TabIndex = 19;
+ this.btnGotoApp.Text = "Goto Application";
+ this.btnGotoApp.Click += new System.EventHandler(this.btnGotoApp_Click);
+ //
+ // btnGotoBoot
+ //
+ this.btnGotoBoot.Location = new System.Drawing.Point(567, 194);
+ this.btnGotoBoot.Name = "btnGotoBoot";
+ this.btnGotoBoot.Size = new System.Drawing.Size(162, 22);
+ this.btnGotoBoot.StyleController = this.layoutControl1;
+ this.btnGotoBoot.TabIndex = 18;
+ this.btnGotoBoot.Text = "Goto Bootloader";
+ this.btnGotoBoot.Click += new System.EventHandler(this.btnGotoBoot_Click);
+ //
+ // btnRestart
+ //
+ this.btnRestart.Location = new System.Drawing.Point(567, 273);
+ this.btnRestart.Name = "btnRestart";
+ this.btnRestart.Size = new System.Drawing.Size(162, 29);
+ this.btnRestart.StyleController = this.layoutControl1;
+ this.btnRestart.TabIndex = 17;
+ this.btnRestart.Text = "Restart";
+ //
+ // lbUpdateStatus
+ //
+ this.lbUpdateStatus.Location = new System.Drawing.Point(7, 335);
+ this.lbUpdateStatus.Name = "lbUpdateStatus";
+ this.lbUpdateStatus.Size = new System.Drawing.Size(526, 14);
+ this.lbUpdateStatus.StyleController = this.layoutControl1;
+ this.lbUpdateStatus.TabIndex = 16;
+ this.lbUpdateStatus.Text = "Update Status : ";
+ //
+ // lbUpdateProgress
+ //
+ this.lbUpdateProgress.Appearance.Options.UseTextOptions = true;
+ this.lbUpdateProgress.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.lbUpdateProgress.Location = new System.Drawing.Point(537, 353);
+ this.lbUpdateProgress.Name = "lbUpdateProgress";
+ this.lbUpdateProgress.Size = new System.Drawing.Size(192, 14);
+ this.lbUpdateProgress.StyleController = this.layoutControl1;
+ this.lbUpdateProgress.TabIndex = 15;
+ this.lbUpdateProgress.Text = "0/0 bytes";
+ //
+ // pgUpdate
+ //
+ this.pgUpdate.Location = new System.Drawing.Point(7, 371);
+ this.pgUpdate.Name = "pgUpdate";
+ this.pgUpdate.Size = new System.Drawing.Size(722, 39);
+ this.pgUpdate.StyleController = this.layoutControl1;
+ this.pgUpdate.TabIndex = 14;
+ //
+ // lbUpdateTime
+ //
+ this.lbUpdateTime.Location = new System.Drawing.Point(7, 353);
+ this.lbUpdateTime.Name = "lbUpdateTime";
+ this.lbUpdateTime.Size = new System.Drawing.Size(526, 14);
+ this.lbUpdateTime.StyleController = this.layoutControl1;
+ this.lbUpdateTime.TabIndex = 13;
+ this.lbUpdateTime.Text = "00:00";
+ //
+ // lbFileInfo
+ //
+ this.lbFileInfo.Appearance.Options.UseTextOptions = true;
+ this.lbFileInfo.Appearance.TextOptions.VAlignment = DevExpress.Utils.VertAlignment.Top;
+ this.lbFileInfo.Location = new System.Drawing.Point(7, 106);
+ this.lbFileInfo.Name = "lbFileInfo";
+ this.lbFileInfo.Size = new System.Drawing.Size(556, 196);
+ this.lbFileInfo.StyleController = this.layoutControl1;
+ this.lbFileInfo.TabIndex = 12;
+ this.lbFileInfo.Text = "File Information";
+ //
+ // btnFwUpdate
+ //
+ this.btnFwUpdate.Location = new System.Drawing.Point(567, 54);
+ this.btnFwUpdate.Name = "btnFwUpdate";
+ this.btnFwUpdate.Size = new System.Drawing.Size(162, 22);
+ this.btnFwUpdate.StyleController = this.layoutControl1;
+ this.btnFwUpdate.TabIndex = 8;
+ this.btnFwUpdate.Text = "Firmware Update";
+ this.btnFwUpdate.Click += new System.EventHandler(this.btnFwUpdate_Click);
+ //
+ // btnClose
+ //
+ this.btnClose.Location = new System.Drawing.Point(3, 418);
+ this.btnClose.Name = "btnClose";
+ this.btnClose.Size = new System.Drawing.Size(730, 57);
+ this.btnClose.StyleController = this.layoutControl1;
+ this.btnClose.TabIndex = 6;
+ this.btnClose.Text = "CLOSE";
+ this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
+ //
+ // btnFind
+ //
+ this.btnFind.Location = new System.Drawing.Point(567, 28);
+ this.btnFind.Name = "btnFind";
+ this.btnFind.Size = new System.Drawing.Size(162, 22);
+ this.btnFind.StyleController = this.layoutControl1;
+ this.btnFind.TabIndex = 5;
+ this.btnFind.Text = "Find File...";
+ this.btnFind.Click += new System.EventHandler(this.btnFind_Click);
+ //
+ // edFilename
+ //
+ this.edFilename.Location = new System.Drawing.Point(87, 28);
+ this.edFilename.Name = "edFilename";
+ this.edFilename.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.edFilename.Properties.Appearance.Options.UseFont = true;
+ this.edFilename.Size = new System.Drawing.Size(476, 22);
+ this.edFilename.StyleController = this.layoutControl1;
+ this.edFilename.TabIndex = 4;
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem3,
+ this.layoutControlGroup2,
+ this.layoutControlGroup3});
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(736, 478);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.btnClose;
+ this.layoutControlItem3.CustomizationFormText = "layoutControlItem3";
+ this.layoutControlItem3.Location = new System.Drawing.Point(0, 415);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(734, 61);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem4,
+ this.layoutControlItem8,
+ this.emptySpaceItem1,
+ this.emptySpaceItem4,
+ this.layoutControlItem5,
+ this.emptySpaceItem3,
+ this.layoutControlItem2,
+ this.layoutControlItem1,
+ this.lcItemGotoBoot,
+ this.emptySpaceItem5,
+ this.lcItemGotoApp,
+ this.emptySpaceItem6,
+ this.lcItemFlashErase,
+ this.lcItemFlashWrite,
+ this.layoutControlItem6});
+ this.layoutControlGroup2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup2.Name = "layoutControlGroup2";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(734, 307);
+ this.layoutControlGroup2.Text = "Update Command";
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.btnRestart;
+ this.layoutControlItem4.CustomizationFormText = "layoutControlItem4";
+ this.layoutControlItem4.Location = new System.Drawing.Point(560, 245);
+ this.layoutControlItem4.MaxSize = new System.Drawing.Size(0, 33);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(93, 33);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(166, 33);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.lbFileInfo;
+ this.layoutControlItem8.CustomizationFormText = "layoutControlItem8";
+ this.layoutControlItem8.Location = new System.Drawing.Point(0, 78);
+ this.layoutControlItem8.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(560, 200);
+ this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem8.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1";
+ this.emptySpaceItem1.Location = new System.Drawing.Point(560, 218);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(166, 27);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // emptySpaceItem4
+ //
+ this.emptySpaceItem4.AllowHotTrack = false;
+ this.emptySpaceItem4.CustomizationFormText = "emptySpaceItem4";
+ this.emptySpaceItem4.Location = new System.Drawing.Point(0, 52);
+ this.emptySpaceItem4.Name = "emptySpaceItem4";
+ this.emptySpaceItem4.Size = new System.Drawing.Size(560, 26);
+ this.emptySpaceItem4.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.btnFwUpdate;
+ this.layoutControlItem5.CustomizationFormText = "layoutControlItem5";
+ this.layoutControlItem5.Location = new System.Drawing.Point(560, 26);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(108, 26);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(166, 26);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // emptySpaceItem3
+ //
+ this.emptySpaceItem3.AllowHotTrack = false;
+ this.emptySpaceItem3.CustomizationFormText = "emptySpaceItem3";
+ this.emptySpaceItem3.Location = new System.Drawing.Point(0, 26);
+ this.emptySpaceItem3.Name = "emptySpaceItem3";
+ this.emptySpaceItem3.Size = new System.Drawing.Size(405, 26);
+ this.emptySpaceItem3.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.btnFind;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(560, 0);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(166, 26);
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.edFilename;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(560, 26);
+ this.layoutControlItem1.Text = "File Name : ";
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(68, 14);
+ //
+ // lcItemGotoBoot
+ //
+ this.lcItemGotoBoot.Control = this.btnGotoBoot;
+ this.lcItemGotoBoot.Location = new System.Drawing.Point(560, 166);
+ this.lcItemGotoBoot.MinSize = new System.Drawing.Size(89, 26);
+ this.lcItemGotoBoot.Name = "lcItemGotoBoot";
+ this.lcItemGotoBoot.Size = new System.Drawing.Size(166, 26);
+ this.lcItemGotoBoot.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcItemGotoBoot.TextSize = new System.Drawing.Size(0, 0);
+ this.lcItemGotoBoot.TextVisible = false;
+ //
+ // emptySpaceItem5
+ //
+ this.emptySpaceItem5.AllowHotTrack = false;
+ this.emptySpaceItem5.Location = new System.Drawing.Point(560, 52);
+ this.emptySpaceItem5.MinSize = new System.Drawing.Size(166, 24);
+ this.emptySpaceItem5.Name = "emptySpaceItem5";
+ this.emptySpaceItem5.Size = new System.Drawing.Size(166, 47);
+ this.emptySpaceItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem5.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // lcItemGotoApp
+ //
+ this.lcItemGotoApp.Control = this.btnGotoApp;
+ this.lcItemGotoApp.Location = new System.Drawing.Point(560, 192);
+ this.lcItemGotoApp.MinSize = new System.Drawing.Size(89, 26);
+ this.lcItemGotoApp.Name = "lcItemGotoApp";
+ this.lcItemGotoApp.Size = new System.Drawing.Size(166, 26);
+ this.lcItemGotoApp.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcItemGotoApp.TextSize = new System.Drawing.Size(0, 0);
+ this.lcItemGotoApp.TextVisible = false;
+ this.lcItemGotoApp.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ //
+ // emptySpaceItem6
+ //
+ this.emptySpaceItem6.AllowHotTrack = false;
+ this.emptySpaceItem6.Location = new System.Drawing.Point(560, 151);
+ this.emptySpaceItem6.Name = "emptySpaceItem6";
+ this.emptySpaceItem6.Size = new System.Drawing.Size(166, 15);
+ this.emptySpaceItem6.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // lcItemFlashErase
+ //
+ this.lcItemFlashErase.Control = this.btnFlashErase;
+ this.lcItemFlashErase.Location = new System.Drawing.Point(560, 99);
+ this.lcItemFlashErase.MinSize = new System.Drawing.Size(101, 26);
+ this.lcItemFlashErase.Name = "lcItemFlashErase";
+ this.lcItemFlashErase.Size = new System.Drawing.Size(166, 26);
+ this.lcItemFlashErase.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcItemFlashErase.TextSize = new System.Drawing.Size(0, 0);
+ this.lcItemFlashErase.TextVisible = false;
+ //
+ // lcItemFlashWrite
+ //
+ this.lcItemFlashWrite.Control = this.btnFlashWrite;
+ this.lcItemFlashWrite.Location = new System.Drawing.Point(560, 125);
+ this.lcItemFlashWrite.MinSize = new System.Drawing.Size(101, 26);
+ this.lcItemFlashWrite.Name = "lcItemFlashWrite";
+ this.lcItemFlashWrite.Size = new System.Drawing.Size(166, 26);
+ this.lcItemFlashWrite.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcItemFlashWrite.TextSize = new System.Drawing.Size(0, 0);
+ this.lcItemFlashWrite.TextVisible = false;
+ //
+ // layoutControlGroup3
+ //
+ this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem12,
+ this.emptySpaceItem2,
+ this.layoutControlItem9,
+ this.layoutControlItem11,
+ this.layoutControlItem10});
+ this.layoutControlGroup3.Location = new System.Drawing.Point(0, 307);
+ this.layoutControlGroup3.Name = "layoutControlGroup3";
+ this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup3.Size = new System.Drawing.Size(734, 108);
+ this.layoutControlGroup3.Text = "Update Status";
+ //
+ // layoutControlItem12
+ //
+ this.layoutControlItem12.Control = this.lbUpdateStatus;
+ this.layoutControlItem12.CustomizationFormText = "layoutControlItem12";
+ this.layoutControlItem12.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem12.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem12.Name = "layoutControlItem12";
+ this.layoutControlItem12.Size = new System.Drawing.Size(530, 18);
+ this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem12.TextVisible = false;
+ //
+ // emptySpaceItem2
+ //
+ this.emptySpaceItem2.AllowHotTrack = false;
+ this.emptySpaceItem2.CustomizationFormText = "emptySpaceItem2";
+ this.emptySpaceItem2.Location = new System.Drawing.Point(530, 0);
+ this.emptySpaceItem2.Name = "emptySpaceItem2";
+ this.emptySpaceItem2.Size = new System.Drawing.Size(196, 18);
+ this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem9
+ //
+ this.layoutControlItem9.Control = this.lbUpdateTime;
+ this.layoutControlItem9.CustomizationFormText = "layoutControlItem9";
+ this.layoutControlItem9.Location = new System.Drawing.Point(0, 18);
+ this.layoutControlItem9.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem9.Name = "layoutControlItem9";
+ this.layoutControlItem9.Size = new System.Drawing.Size(530, 18);
+ this.layoutControlItem9.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem9.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem9.TextVisible = false;
+ //
+ // layoutControlItem11
+ //
+ this.layoutControlItem11.Control = this.lbUpdateProgress;
+ this.layoutControlItem11.CustomizationFormText = "layoutControlItem11";
+ this.layoutControlItem11.Location = new System.Drawing.Point(530, 18);
+ this.layoutControlItem11.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem11.Name = "layoutControlItem11";
+ this.layoutControlItem11.Size = new System.Drawing.Size(196, 18);
+ this.layoutControlItem11.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem11.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem11.TextVisible = false;
+ //
+ // layoutControlItem10
+ //
+ this.layoutControlItem10.Control = this.pgUpdate;
+ this.layoutControlItem10.CustomizationFormText = "layoutControlItem10";
+ this.layoutControlItem10.Location = new System.Drawing.Point(0, 36);
+ this.layoutControlItem10.MinSize = new System.Drawing.Size(54, 16);
+ this.layoutControlItem10.Name = "layoutControlItem10";
+ this.layoutControlItem10.Size = new System.Drawing.Size(726, 43);
+ this.layoutControlItem10.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem10.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem10.TextVisible = false;
+ //
+ // edTargetID
+ //
+ this.edTargetID.Location = new System.Drawing.Point(492, 54);
+ this.edTargetID.Name = "edTargetID";
+ this.edTargetID.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.edTargetID.Properties.Appearance.Options.UseFont = true;
+ this.edTargetID.Properties.EditFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.edTargetID.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
+ this.edTargetID.Size = new System.Drawing.Size(71, 22);
+ this.edTargetID.StyleController = this.layoutControl1;
+ this.edTargetID.TabIndex = 22;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.edTargetID;
+ this.layoutControlItem6.Location = new System.Drawing.Point(405, 26);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(155, 26);
+ this.layoutControlItem6.Text = "Target ID";
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(68, 14);
+ //
+ // fmxFwUpdate
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(736, 478);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("fmxFwUpdate.IconOptions.Icon")));
+ this.Name = "fmxFwUpdate";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "fmFwUpdate";
+ this.Activated += new System.EventHandler(this.fmxFwUpdate_Activated);
+ this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.fmxFwUpdate_FormClosed);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.pgUpdate.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edFilename.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemGotoBoot)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemGotoApp)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemFlashErase)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcItemFlashWrite)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edTargetID.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.SimpleButton btnFind;
+ private DevExpress.XtraEditors.TextEdit edFilename;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraEditors.SimpleButton btnClose;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraEditors.SimpleButton btnFwUpdate;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem3;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem4;
+ private DevExpress.XtraEditors.LabelControl lbFileInfo;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+ private DevExpress.XtraEditors.LabelControl lbUpdateTime;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
+ private DevExpress.XtraEditors.ProgressBarControl pgUpdate;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10;
+ private DevExpress.XtraEditors.LabelControl lbUpdateProgress;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11;
+ private DevExpress.XtraEditors.LabelControl lbUpdateStatus;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12;
+ private DevExpress.XtraEditors.SimpleButton btnRestart;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3;
+ private DevExpress.XtraEditors.SimpleButton btnGotoApp;
+ private DevExpress.XtraEditors.SimpleButton btnGotoBoot;
+ private DevExpress.XtraLayout.LayoutControlItem lcItemGotoBoot;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem5;
+ private DevExpress.XtraLayout.LayoutControlItem lcItemGotoApp;
+ private DevExpress.XtraEditors.SimpleButton btnFlashWrite;
+ private DevExpress.XtraEditors.SimpleButton btnFlashErase;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem6;
+ private DevExpress.XtraLayout.LayoutControlItem lcItemFlashErase;
+ private DevExpress.XtraLayout.LayoutControlItem lcItemFlashWrite;
+ private DevExpress.XtraEditors.TextEdit edTargetID;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxFwUpdate.cs b/LFP_Manager/Forms/fmxFwUpdate.cs
new file mode 100644
index 0000000..662796f
--- /dev/null
+++ b/LFP_Manager/Forms/fmxFwUpdate.cs
@@ -0,0 +1,496 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+using System.IO;
+using System.Runtime.InteropServices;
+
+using System.Threading;
+
+using LFP_Manager.Function;
+using LFP_Manager.Utils;
+
+namespace LFP_Manager
+{
+ public delegate void AutoTxSetEnvent(bool autoTx);
+ public delegate void SendDataUartEvent(ushort dev_addr, byte[] data, bool ReplyFlag, int type);
+
+ public partial class fmxFwUpdate : XtraForm
+ {
+ #region DEFINES
+
+ const int FW_UPDATE_START_ADDR = 0x08080000;
+ const int FW_UPDATE_END_ADDR = 0x080E0000 - 1;
+ const int FW_UPDATE_SECTOR_SIZE = 0x20000;
+ const int FW_UPDATE_PACKET_SIZE = 0x800;
+
+ const int APP_TO_BOOT = 0;
+ const int BOOT_TO_APP = 1;
+
+ #endregion
+
+ #region VARIABLES
+
+ private UInt32 SystemId = 0;
+ private byte[] fwdata;
+ private int fwsize;
+ private int FwStartAddr = 0;
+ private int FwCurrPosition = 0;
+ private int FwSentLength = 0;
+
+ private bool StopUpdate = true;
+
+ private DateTime UpdateStartTime;
+ private TimeSpan UpdateTime;
+
+ public event AutoTxSetEnvent OnAutoTxSet = null;
+ public event SendDataUartEvent OnSendUartData = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public fmxFwUpdate(int sID)
+ {
+ InitializeComponent();
+
+ SystemId = (UInt32)sID;
+ edTargetID.Text = sID.ToString();
+
+ fwdata = null;
+ fwsize = 0;
+ btnFwUpdate.Enabled = false;
+
+ lcItemFlashErase.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ lcItemFlashWrite.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ lcItemGotoBoot.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ lcItemGotoApp.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ }
+
+ #endregion
+
+ #region BUTTON EVENTS
+
+ private void btnClose_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+
+ private void btnFwUpdate_Click(object sender, EventArgs e)
+ {
+ if (edTargetID.Text == "")
+ {
+ MessageBox.Show("Please check target id !!");
+ return;
+ }
+
+ SystemId = Convert.ToUInt32(edTargetID.Text);
+
+ if (StopUpdate == true)
+ {
+ // Working mode change (Application --> Boot) - It need to be wait more than 1.5sec
+ OnAutoTxSet?.Invoke(false);
+
+ DisplayLabelUpdate("Goto Bootloader Mode");
+ RequestModeChange(APP_TO_BOOT);
+ UpdateStartTime = DateTime.Now;
+
+ btnFwUpdate.Text = "Cancel Update";
+ btnFwUpdate.Enabled = false;
+
+ for (int i = 0; i < 2000; i += 100)
+ {
+ Thread.Sleep(100);
+ Application.DoEvents();
+ }
+
+ btnFwUpdate.Enabled = true;
+ // Flash Erase
+ RequestFlashErase();
+ }
+ else
+ {
+ StopFwUpdate();
+ }
+ }
+
+ private void StopFwUpdate()
+ {
+ StopUpdate = true;
+ btnFwUpdate.Text = "Firmware Update";
+ pgUpdate.Position = 0;
+ //pgUpdate.Properties.Maximum = 0;
+ //lbUpdateProgress.Text = "-/-";
+ lbUpdateStatus.Text = "Stop Update";
+ }
+
+ public static byte[] ToByteArray(String HexString)
+ {
+ int NumberChars = HexString.Length;
+ byte[] bytes = new byte[NumberChars / 2];
+ for (int i = 0; i < NumberChars; i += 2)
+ {
+ bytes[i / 2] = Convert.ToByte(HexString.Substring(i, 2), 16);
+ }
+ return bytes;
+ }
+ private void btnFind_Click(object sender, EventArgs e)
+ {
+ OpenFileDialog oDialog;
+
+ oDialog = new OpenFileDialog();
+ oDialog.DefaultExt = "*.*";
+ oDialog.Filter = "hex files (*.hex)|*.hex|All files (*.*)|*.*";
+
+ if (oDialog.ShowDialog() == DialogResult.OK)
+ {
+ edFilename.Text = oDialog.FileName;
+
+ int addr1 = 0;
+ int addr2 = 0;
+ string[] aline = File.ReadLines(edFilename.Text).ToArray();
+ for (int i = 0; i < aline.Length; i++)
+ {
+ byte[] a = ToByteArray(aline[i].Substring(1, aline[i].Length - 1));
+ switch (a[3])
+ {
+ case 0: // data record
+ addr2 = (int)((a[1] << 8) | a[2]) + a[0];
+ if (FwStartAddr == 0)
+ FwStartAddr = (int)((a[1] << 8) | a[2]);
+ break;
+ case 1: // End of file record. Usually, it is 00000001FF
+
+ break;
+ case 2: // Extended Segment address record. This indicates segment base address when 16 bits is not enough for addressing memory;
+ break;
+ case 3: // Start segment address record. Indicates initial segment base address.
+ break;
+ case 4: // Extended Linear Address Record – allows 32 bit addressing.
+ addr1 = (int)((a[4] << 8) | a[5]);
+ break;
+ case 5: // Start Linear Address Record.
+ break;
+ }
+ }
+ int FwImageSize = (int)((addr1 << 16) + addr2 - FwStartAddr);
+ if ((FwImageSize % 128) > 0)
+ {
+ FwImageSize = ((FwImageSize / 128) + 1) * 128;
+ }
+ else
+ {
+ FwImageSize = ((FwImageSize / 128) + 0) * 128;
+ }
+ addr1 = 0;
+ addr2 = 0;
+ fwsize = FwImageSize;
+ fwdata = new byte[fwsize];
+ for (int i = 0; i < fwdata.Length; i++)
+ {
+ fwdata[i] = 0xFF;
+ }
+ for (int i = 0; i < aline.Length; i++)
+ {
+ byte[] a = ToByteArray(aline[i].Substring(1, aline[i].Length - 1));
+ switch (a[3])
+ {
+ case 0: // data record
+ addr2 = (int)((a[1] << 8) | a[2]);
+ int len = a[0];
+ for (int j = 0; j < len; j++)
+ {
+ fwdata[((addr1 << 16) + addr2) - FwStartAddr + j] = a[4 + j];
+ }
+ break;
+ case 1: // End of file record. Usually, it is 00000001FF
+
+ break;
+ case 2: // Extended Segment address record. This indicates segment base address when 16 bits is not enough for addressing memory;
+ break;
+ case 3: // Start segment address record. Indicates initial segment base address.
+ break;
+ case 4: // Extended Linear Address Record – allows 32 bit addressing.
+ addr1 = (int)((a[4] << 8) | a[5]);
+ break;
+ case 5: // Start Linear Address Record.
+ break;
+ }
+ }
+
+ string strName = Path.GetFileName(edFilename.Text);
+
+ lbFileInfo.Text = string.Format("File Information");
+ lbFileInfo.Text += string.Format("\r\n - Filename: {0}", strName);
+ lbFileInfo.Text += string.Format("\r\n - File Version: {0}", strName.Substring(0, 12));
+ lbFileInfo.Text += string.Format("\r\n - File Size: {0:#,##0} bytes", fwsize);
+ lbFileInfo.Text += string.Format("\r\n - Packet Size: {0:#,##0} packets", fwsize / 128);
+ lbFileInfo.Text += string.Format("\r\n - Last packet: {0:#,##0}", fwsize % 128);
+ lbFileInfo.Text += string.Format("\r\n - Start Addr : 0x{0:X8}", FwStartAddr);
+
+ lbUpdateProgress.Text = string.Format("{0:#,##0}/{1:#,##0} bytes", 0, fwsize);
+ pgUpdate.Properties.Maximum = (int)fwsize;
+
+ btnFwUpdate.Enabled = true;
+ }
+ }
+
+ #endregion
+
+ #region FORM EVENT
+
+ private void fmxFwUpdate_Activated(object sender, EventArgs e)
+ {
+ //OnAutoTxSet?.Invoke(false);
+ }
+
+ private void fmxFwUpdate_FormClosed(object sender, FormClosedEventArgs e)
+ {
+ OnAutoTxSet?.Invoke(true);
+ }
+
+ #endregion
+
+ #region PUBLIC FUNCTION
+
+ void DisplayLabelUpdate(string msg)
+ {
+ if (this.InvokeRequired)
+ {
+ this.Invoke(new MethodInvoker(delegate ()
+ {
+ lbUpdateStatus.Text = string.Format("Update Status : {0}", msg);
+ }));
+ }
+ else
+ {
+ lbUpdateStatus.Text = string.Format("Update Status : {0}", msg);
+ }
+ }
+ void DisplayUpdateProgress()
+ {
+ if (this.InvokeRequired)
+ {
+ _ = this.Invoke(new MethodInvoker(delegate ()
+ {
+ lbUpdateProgress.Text = string.Format("{0:#,##0}/{1:#,##0} bytes", FwCurrPosition, fwsize);
+ pgUpdate.Position = FwCurrPosition;
+ UpdateTime = DateTime.Now - UpdateStartTime;
+ lbUpdateTime.Text = string.Format("{0:mm}:{0:ss}", UpdateTime);
+ }));
+ }
+ else
+ {
+ lbUpdateProgress.Text = string.Format("{0:#,##0}/{1:#,##0} bytes", FwCurrPosition, fwsize);
+ pgUpdate.Position = FwCurrPosition;
+ UpdateTime = DateTime.Now - UpdateStartTime;
+ lbUpdateTime.Text = string.Format("{0:mm}:{0:ss}", UpdateTime);
+ }
+ }
+
+ public void RecvData(byte[] rdata)
+ {
+ //lbUpdateStatus.Text = String.Format("Recv Data: 0x{0:X8} {1:X2} {2:X2} {3:X2} {4:X2} {5:X2} {6:X2} {7:X2} {8:X2}"
+ // , rhdr, rdata[0], rdata[1], rdata[2], rdata[3], rdata[4], rdata[5], rdata[6], rdata[7]);
+
+ if (StopUpdate == false)
+ {
+ if (rdata[0] == 0x7F)
+ {
+ switch (rdata[1])
+ {
+ case 0x43: // Erase Flash
+ if (rdata[2] == 0x79)
+ {
+ // Erase Success
+ DisplayLabelUpdate("Flash Erase Success");
+ byte[] sdata = new byte[128];
+ FwCurrPosition = 0;
+ for (int i = 0; i < sdata.Length; i++)
+ {
+ sdata[i] = fwdata[FwCurrPosition + i];
+ }
+ RequestFlashWrite(FwStartAddr + FwCurrPosition, sdata);
+ }
+ else if (rdata[2] == 0x1F)
+ {
+ // Erase Fail
+ DisplayLabelUpdate("Flash Erase Fail");
+ StopUpdate = true;
+ }
+ break;
+ case 0x31: // Write Flash
+ if (rdata[2] == 0x79)
+ {
+ // Write Success
+ string str = string.Format("Flash Write Success - {0}/{1}", FwCurrPosition, FwSentLength);
+ DisplayLabelUpdate(str);
+ DisplayUpdateProgress();
+
+ FwCurrPosition += FwSentLength;
+
+ int Remain = fwdata.Length - FwCurrPosition;
+ if (Remain > 0)
+ {
+ int len = (Remain > 128) ? 128 : Remain;
+ byte[] sdata = new byte[len];
+ for (int i = 0; i < sdata.Length; i++)
+ {
+ sdata[i] = fwdata[FwCurrPosition + i];
+ }
+ RequestFlashWrite(FwStartAddr + FwCurrPosition, sdata);
+ }
+ else
+ {
+ RequestModeChange(BOOT_TO_APP);
+ // Write Success
+ str = string.Format("Complete Update - {0}/{1}", FwCurrPosition, FwSentLength);
+ DisplayLabelUpdate(str);
+ DisplayUpdateProgress();
+ //MessageBox.Show("Complete Firmware Update", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ }
+ else if (rdata[2] == 0x1F)
+ {
+ // Write Fail
+ DisplayLabelUpdate("Flash Write Fail");
+ StopUpdate = true;
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ #endregion
+
+ #region UART PACKET FUNCTION
+ private void RequestModeChange(int mode)
+ {
+ byte[] sdata = null;
+ byte[] crc;
+
+ if (mode == 0)
+ {
+ // Normal mode --> Bootloader mode
+ sdata = new byte[8];
+ sdata[0] = (byte)SystemId; // Dev Address
+ sdata[1] = 0x50; // Function Code
+ sdata[2] = 0x80; // Address H
+ sdata[3] = 0x00; // Address L
+ sdata[4] = 0x00; // Number of Register H
+ sdata[5] = 0x00; // Number of Register L
+
+ crc = csSerialCommFunction.GetCRC(sdata, 6);
+
+ sdata[6] = crc[1]; // CRCH
+ sdata[7] = crc[0]; // CRCL
+
+ StopUpdate = false;
+ }
+ else if (mode == 1)
+ {
+ // Bootloader mode --> Normal mode
+ sdata = new byte[5];
+ sdata[0] = 0x7F; // Dev Address
+ sdata[1] = 0x21; // Function Code,,+
+ sdata[2] = 0xDE; // Sub Code
+
+ crc = csSerialCommFunction.GetCRC(sdata, 3);
+
+ sdata[3] = crc[1]; // CRCH
+ sdata[4] = crc[0]; // CRCL
+
+ StopFwUpdate();
+ }
+ OnSendUartData?.Invoke((ushort)SystemId, sdata, false, 0);
+ }
+
+ private void RequestFlashErase()
+ {
+ byte[] sdata = null;
+ byte[] crc;
+
+ // Flash Erase
+ sdata = new byte[5];
+ sdata[0] = 0x7F; // Dev Address
+ sdata[1] = 0x43; // Function Code
+ sdata[2] = 0xBC; // Sub Code
+
+ crc = csSerialCommFunction.GetCRC(sdata, 3);
+
+ sdata[3] = crc[1]; // CRCH
+ sdata[4] = crc[0]; // CRCL
+
+ OnSendUartData?.Invoke((ushort)SystemId, sdata, true, 0);
+ }
+ private void RequestFlashWrite(int addr, byte[] data)
+ {
+ byte[] sdata = null;
+ byte[] crc;
+
+ // Flash Write
+ sdata = new byte[6 + 128 + 2];
+ for (int i = 0; i < sdata.Length; i++)
+ {
+ sdata[i] = 0xFF;
+ }
+ sdata[0] = 0x7F; // Dev Address
+ sdata[1] = 0x31; // Function Code
+ sdata[2] = 0xCE; // Sub Code
+ sdata[3] = (byte)(addr >> 16); // Addr H
+ sdata[4] = (byte)(addr >> 8); // Addr L MSB
+ sdata[5] = (byte)(addr & 0xff); // Addr L LSB
+
+ for (int i = 0; i < data.Length; i++)
+ {
+ sdata[6 + i] = data[i];
+ }
+
+ crc = csSerialCommFunction.GetCRC(sdata, sdata.Length - 2);
+
+ sdata[sdata.Length - 2] = crc[1]; // CRCH
+ sdata[sdata.Length - 1] = crc[0]; // CRCL
+
+ FwSentLength = data.Length;
+ OnSendUartData?.Invoke((ushort)SystemId, sdata, false, 0);
+ }
+ #endregion
+
+ #region BUTTON EVENT
+ private void btnGotoBoot_Click(object sender, EventArgs e)
+ {
+ OnAutoTxSet?.Invoke(false);
+
+ RequestModeChange(APP_TO_BOOT);
+ UpdateStartTime = DateTime.Now;
+ }
+
+ private void btnGotoApp_Click(object sender, EventArgs e)
+ {
+ RequestModeChange(BOOT_TO_APP);
+ }
+
+ private void btnFlashErase_Click(object sender, EventArgs e)
+ {
+ RequestFlashErase();
+ }
+
+ private void btnFlashWrite_Click(object sender, EventArgs e)
+ {
+ byte[] sdata = new byte[128];
+ FwCurrPosition = 0;
+ for (int i = 0; i < sdata.Length; i++)
+ {
+ sdata[i] = fwdata[FwCurrPosition + i];
+ }
+ RequestFlashWrite(FwStartAddr + FwCurrPosition, sdata);
+ }
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxFwUpdate.resx b/LFP_Manager/Forms/fmxFwUpdate.resx
new file mode 100644
index 0000000..2c2a4ce
--- /dev/null
+++ b/LFP_Manager/Forms/fmxFwUpdate.resx
@@ -0,0 +1,4571 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA
+ GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/
+ ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7/////////////////////
+ ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff/////////
+ ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+
+ /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7/////
+ ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc
+ x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7/////////////////////////////
+ ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt
+ e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP
+ SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7/////////
+ ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z
+ WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS
+ Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8
+ +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+
+ /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+
+ /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO
+ SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz
+ 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o
+ 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9
+ /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE
+ oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG
+ PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7/////
+ ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH
+ PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t
+ 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/
+ ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/
+ ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7/////////////////////////////
+ ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+
+ /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ
+ TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7/////////////////
+ ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ
+ TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+
+ /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7/////
+ ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP
+ SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7/////////////////////////////////////////
+ ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/
+ ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7/////////////////////////////
+ ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/
+ ///+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////+/v7////////+/v3////////////////////////+/v3////////+/v7/////////////////
+ ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7/////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ /////////v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v7////////+/v7/////////////////////////////////////
+ ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7/////////////////////
+ ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7
+ +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9
+ /Pz+/v7/////////////////////////////////////////////////////////////////////////
+ ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM
+ RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7/////////////////////////////////////
+ ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL
+ QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+
+ /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP
+ SgCOSQCPTAKFOwDVvaT////9/Pv+/v7/////////////////////////////////////////////////
+ ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8
+ +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7/////////
+ /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO
+ SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF
+ OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+
+ ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/
+ //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7/////////////////////////
+ ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/
+ mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79
+ /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN
+ RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ
+ TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7/////
+ ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7/////
+ ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+
+ /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ
+ TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP
+ SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH
+ PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/
+ ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5
+ 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+
+ /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ
+ QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE
+ oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/
+ ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7/////////////////////////
+ ///////////////////////////////////////////////////////+/v7+////////////////////
+ ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+
+ /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9
+ /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP
+ SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL
+ RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7/////////////////////////////////
+ ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/
+ ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7/////////
+ ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP
+ SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI
+ PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/
+ ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x
+ glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7/////////////////////////////
+ ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM
+ RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+
+ /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/
+ ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP
+ SgCOSgGLRQGTURDz7ef+/v39/f3+/v7/////////////////////////////////////////////////
+ ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+
+ /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7/////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN
+ RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9
+ /fz9/f3+/v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO
+ SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7/////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO
+ SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS
+ UA/y6+X+/v39/fz+/v7+/v7/////////////////////////////////////////////////////////
+ ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP
+ SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7/////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+
+ /v7/////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO
+ SQCOSQGJQQDi0cD////9/Pv+/v7/////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J
+ QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7/////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39
+ /fz+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz
+ hFazhFayhFazhVete1TWvqb////9/fz+/v7/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+
+ /f3+/f3/////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v7+////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////v7+
+ /f39////////////////////////////////////////////////////////////////////////////
+ ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39
+ /fz8/v79/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA
+ nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1////
+ x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV
+ i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC
+ jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC
+ hz8Ap3I//fz7/fz8/v79/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7
+ /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8
+ +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p
+ /v39/f38/v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+
+ ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb
+ 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+//7+/f39
+ /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7////
+ 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+
+ /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA
+ j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB
+ j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB
+ i0UAlVYZ8+3m/f79/f38/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+////////////////
+ /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39
+ /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+
+ sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+
+ /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+////////
+ /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+
+ /f39/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO
+ /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39
+ 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39
+ /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+////////////////////////////
+ /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+////
+ /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A
+ kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ jkoCikIC4tHA/////Pv7/v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC
+ hz4A1r6m/////Pz7/v7+/v7+/////v7+////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+
+ /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+////////////////////
+ /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM
+ /////Pv6/v7+/v7+/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA
+ j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+
+ /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7
+ /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq////
+ /Pv6/v7+/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A
+ j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA
+ kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA
+ j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6
+ /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+////////
+ /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+
+ /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA
+ xaJ//////Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU
+ /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA
+ j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+////////////
+ 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+
+ /////v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39
+ /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/
+ /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6
+ ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+
+ /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC
+ kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB
+ kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39////
+ /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA
+ hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA
+ iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A
+ j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU
+ z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+////////
+ /v7+/////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7//v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn
+ +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3
+ +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8
+ /fz8/v7+/////v7+/////v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v///v7+/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT
+ z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7
+ ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A
+ hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A
+ fS0AtIdb/f38/Pz8///+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D
+ kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL
+ jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA
+ jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3
+ iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA
+ jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA
+ jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK
+ 6t7S/v7+/fz8/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs////
+ /Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7
+ /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38
+ /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fz8
+ /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+////////////////////////////////////
+ /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+
+ /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA
+ jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A
+ pnA8/Pv6/fz7/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq
+ iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+
+ /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+////////////
+ /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+
+ //7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A
+ 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES
+ jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+////////////////
+ /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6
+ /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7
+ /v79/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v39
+ /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8
+ +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+
+ /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ
+ hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ
+ 8+3m/f39/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+
+ /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA
+ jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA
+ u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA
+ j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA
+ jkkCikQE49PC/v7//fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8
+ /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+
+ /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7////
+ t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA
+ jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU
+ hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD
+ /////fz8//7//v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA
+ oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC
+ hj0Az7SX/////fz7//7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+//7+
+ /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH
+ jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA
+ jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT////
+ /Pz8/v7//v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA
+ t4tf/////fz7/v7+/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs
+ mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6
+ /v7+/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v7+
+ /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx
+ +/n3/fz8/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+
+ rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA
+ jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW
+ k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV
+ kU8TmVoj8ejg/v39/fz7/v7//f39/v//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off
+ 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v////7+/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v39/v7+
+ ///+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/v//////
+ /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v79/////////v7+/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v79/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////9/Lt9/Pu
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2svnmMrzrGR/////fz7////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ
+ /v39/fz8/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h
+ /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0////
+ 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC
+ j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ jUgBlFIO7uTa/////f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB
+ jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+
+ /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38////////////////////
+ /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z
+ iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+
+ sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG////
+ /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ hz4Ar35J/v39/fz8/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+////////
+ /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38////////////////////////////////
+ /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+////////////////////////////////////////////
+ /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA
+ /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW
+ k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+
+ /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+////////////////////
+ /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iEAA176j/////fz7////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39////////////////////////////////////////////
+ ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38
+ /fz8/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEA1buf/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+////////////
+ /////////////////////////////////////////////////////////////////////fz7////yKaB
+ hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v///f38////sH9K
+ hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oBi0QAnmIj9vHs/v39/v39////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA
+ nWAf9vHs/v7+/v79////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo////
+ /fz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v///f38////
+ 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/v79+/n3omor
+ ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm
+ +PTw/v39/f39////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sBjEUAmVwb9e/p/v7+/f38////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A
+ vpVq/////fz7/v/+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8AyKaB/////fz7/v///v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39
+ //7/////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC
+ jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsCiD8Auo9h/////fz8/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE
+ iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB
+ 4tC+/////f38/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjUcBk1EN7+Xb/////f39/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj
+ n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f38////u5Jlhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkBjUgE4M66/////fz7/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR
+ 7+bd/v7+/f39////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv
+ +/n4/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0
+ rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6
+ ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC
+ hz4AtolZ/////fz8/v3+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA
+ j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ j0sBikIApGww+vj1/v39/f39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ
+ j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M
+ /////Pz7/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkCjkkG4c+7/////fz7/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+///+/v39
+ /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d////
+ /fz7/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/f38/f38
+ 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A
+ jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sBiD8AyKiE/////fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oBiUEApW4z+vj1/v39/v39////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ
+ /v7+/f38/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4
+ 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD
+ 49PB/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/Pz7////
+ 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6////
+ /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A
+ j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC
+ iUEAqHQ7+/j2/fz8/v39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jUgBkk8K7ODV/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL////
+ /f38/v7+///+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6////////
+ ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A
+ ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38
+ /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBiUEA1Lqd/////fv6////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38
+ sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////v7+/v39
+ /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq
+ 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38
+ /v39/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjUgBkU4J6NrM/////fz8////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA
+ jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEArnxG/v7+/f38/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO
+ 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i////
+ /Pz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA
+ hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr
+ vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g
+ 4M24/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY
+ llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+////////////////////////////
+ /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsCiUEArXpD/v7//f39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB
+ ikMA1bqf/////fz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39
+ /f38/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39
+ /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/////////v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI
+ iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8////
+ /fz8////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA
+ mVsZ8+zl/v38/fz8////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7
+ /v7+//7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz7/v7+
+ 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf
+ 9vHs/v79/fz8////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z
+ iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAi0YAl1gT8+3l/v7+/f39////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA
+ upFj/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC
+ hz4AwZty/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////f39
+ /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC
+ jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ
+ hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsChz4At4ta/////fz8/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjUgCkEwL6dzO/////fz7////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD
+ 38y3/////fz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v/+/f39/v79
+ +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////fz8
+ /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A
+ kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK
+ 5tbG/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBjUcB4M25/////f38/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos
+ +PTw/fz8/f39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v//////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA
+ kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB
+ iUAAq3dA/Pr4/fz7/f39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v///fz7
+ ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA
+ j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0oBikMAomgq+vf0/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////Pz7////4M24
+ i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiUEA0rea/////fz7/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7
+ /v38/v39/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////f38/v79
+ +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/f38
+ ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ kEwChz4AxaJ8/////fz7/v7+////////////////////////////////////////////////////////
+ ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA
+ 07mb/////Pz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU
+ /v7+/Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+////
+ //////////////////////////////////////////////////////////////////////////////7/
+ /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7/////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+////////////////////////////
+ /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jEQAm10b9O/p/v7+/f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+////////////////////////////////////////
+ /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7
+ /v7//v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jUgAklAK6dzO/////f38/v//////////////////////////////////////////////////////////
+ /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6
+ /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng
+ lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+
+ /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiD8Au5Jl/////fz8/v7+//7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+////////////////////
+ /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj
+ /v39/fz8/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+////////////////////////////
+ /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8
+ ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb////
+ /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A
+ upFj/////fz8/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+
+ /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7////////////////////////
+ /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf
+ llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA
+ kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkBjUcA49LA/////f38/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79
+ /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3
+ qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8////0baX
+ iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD
+ /////fz8/v//////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA
+ nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA
+ qHI4/Pv5/v39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+
+ iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ kEsChz8Az7KS/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7
+ /v39/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v39
+ /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////fz8////59jIj0oD
+ jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ
+ /////fz8////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB
+ llYW7+Xb/v7+/f38/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0wChz8AuIxc/v7+/fz7/v39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+
+ /v39/v//////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fv6
+ ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAjkkBjEYA4M24/////fz8/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa
+ /////f38////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v39/fz7
+ 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB
+ jUcE3sq2/////Pz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oBikMAomgq+fXy/v39/f39////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/fz7////
+ 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq
+ +vf1/f38/f39//7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39
+ tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS
+ yqqM38u2/////v79/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/v79////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v79/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxHistory.Designer.cs b/LFP_Manager/Forms/fmxHistory.Designer.cs
new file mode 100644
index 0000000..59f8009
--- /dev/null
+++ b/LFP_Manager/Forms/fmxHistory.Designer.cs
@@ -0,0 +1,943 @@
+namespace LFP_Manager.Forms
+{
+ partial class fmxHistory
+ {
+ ///
+ /// 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()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxHistory));
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.tabHistory = new DevExpress.XtraTab.XtraTabControl();
+ this.pgGuiHistory = new DevExpress.XtraTab.XtraTabPage();
+ this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
+ this.ucHistroy1 = new LFP_Manager.Controls.ucHistroy();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.pgBmsHistory = new DevExpress.XtraTab.XtraTabPage();
+ this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnExportExcel = new DevExpress.XtraEditors.SimpleButton();
+ this.btnBmsHistoryReq = new DevExpress.XtraEditors.SimpleButton();
+ this.gcBmsHistory = new DevExpress.XtraGrid.GridControl();
+ this.gvBmsHistory = new DevExpress.XtraGrid.Views.Grid.GridView();
+ this.gcNo = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcHistDateTime = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcStatus = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcWarning = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcProtect = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcError = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcVoltage = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcCurrent = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcSOC = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcSOH = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcTemp1 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcTemp2 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcTemp3 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcTemp4 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcTemp5 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.gcTemp6 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_1 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_2 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_3 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_4 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_5 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_6 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_7 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_8 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_9 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_10 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_11 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_12 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_13 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_14 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_15 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.cell_v_16 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlGroup4 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.btnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.TmrCheckReq = new System.Windows.Forms.Timer(this.components);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.tabHistory)).BeginInit();
+ this.tabHistory.SuspendLayout();
+ this.pgGuiHistory.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit();
+ this.layoutControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ this.pgBmsHistory.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit();
+ this.layoutControl3.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.gcBmsHistory)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gvBmsHistory)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.tabHistory);
+ this.layoutControl1.Controls.Add(this.btnClose);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1215, 341, 650, 400);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(911, 602);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // tabHistory
+ //
+ this.tabHistory.Location = new System.Drawing.Point(3, 3);
+ this.tabHistory.Name = "tabHistory";
+ this.tabHistory.SelectedTabPage = this.pgGuiHistory;
+ this.tabHistory.Size = new System.Drawing.Size(905, 552);
+ this.tabHistory.TabIndex = 6;
+ this.tabHistory.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] {
+ this.pgGuiHistory,
+ this.pgBmsHistory});
+ //
+ // pgGuiHistory
+ //
+ this.pgGuiHistory.Controls.Add(this.layoutControl2);
+ this.pgGuiHistory.Name = "pgGuiHistory";
+ this.pgGuiHistory.Size = new System.Drawing.Size(903, 526);
+ this.pgGuiHistory.Text = "GUI History";
+ //
+ // layoutControl2
+ //
+ this.layoutControl2.Controls.Add(this.ucHistroy1);
+ this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl2.Name = "layoutControl2";
+ this.layoutControl2.Root = this.Root;
+ this.layoutControl2.Size = new System.Drawing.Size(903, 526);
+ this.layoutControl2.TabIndex = 0;
+ this.layoutControl2.Text = "layoutControl2";
+ //
+ // ucHistroy1
+ //
+ this.ucHistroy1.Location = new System.Drawing.Point(3, 3);
+ this.ucHistroy1.Name = "ucHistroy1";
+ this.ucHistroy1.Size = new System.Drawing.Size(897, 520);
+ this.ucHistroy1.TabIndex = 4;
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(903, 526);
+ this.Root.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.ucHistroy1;
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(901, 524);
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // pgBmsHistory
+ //
+ this.pgBmsHistory.Controls.Add(this.layoutControl3);
+ this.pgBmsHistory.Name = "pgBmsHistory";
+ this.pgBmsHistory.Size = new System.Drawing.Size(903, 526);
+ this.pgBmsHistory.Text = "BMS History";
+ //
+ // layoutControl3
+ //
+ this.layoutControl3.Controls.Add(this.btnExportExcel);
+ this.layoutControl3.Controls.Add(this.btnBmsHistoryReq);
+ this.layoutControl3.Controls.Add(this.gcBmsHistory);
+ this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl3.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl3.Name = "layoutControl3";
+ this.layoutControl3.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1211, 293, 650, 400);
+ this.layoutControl3.Root = this.layoutControlGroup2;
+ this.layoutControl3.Size = new System.Drawing.Size(903, 526);
+ this.layoutControl3.TabIndex = 0;
+ this.layoutControl3.Text = "layoutControl3";
+ //
+ // btnExportExcel
+ //
+ this.btnExportExcel.Location = new System.Drawing.Point(782, 485);
+ this.btnExportExcel.Name = "btnExportExcel";
+ this.btnExportExcel.Size = new System.Drawing.Size(113, 33);
+ this.btnExportExcel.StyleController = this.layoutControl3;
+ this.btnExportExcel.TabIndex = 6;
+ this.btnExportExcel.Text = "Export Excel";
+ this.btnExportExcel.Click += new System.EventHandler(this.btnExportExcel_Click);
+ //
+ // btnBmsHistoryReq
+ //
+ this.btnBmsHistoryReq.Location = new System.Drawing.Point(781, 29);
+ this.btnBmsHistoryReq.Name = "btnBmsHistoryReq";
+ this.btnBmsHistoryReq.Size = new System.Drawing.Size(114, 31);
+ this.btnBmsHistoryReq.StyleController = this.layoutControl3;
+ this.btnBmsHistoryReq.TabIndex = 5;
+ this.btnBmsHistoryReq.Text = "Request";
+ this.btnBmsHistoryReq.Click += new System.EventHandler(this.btnBmsHistoryReq_Click);
+ //
+ // gcBmsHistory
+ //
+ this.gcBmsHistory.Location = new System.Drawing.Point(8, 93);
+ this.gcBmsHistory.MainView = this.gvBmsHistory;
+ this.gcBmsHistory.Name = "gcBmsHistory";
+ this.gcBmsHistory.Size = new System.Drawing.Size(887, 388);
+ this.gcBmsHistory.TabIndex = 4;
+ this.gcBmsHistory.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] {
+ this.gvBmsHistory});
+ //
+ // gvBmsHistory
+ //
+ this.gvBmsHistory.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] {
+ this.gcNo,
+ this.gcHistDateTime,
+ this.gcStatus,
+ this.gcWarning,
+ this.gcProtect,
+ this.gcError,
+ this.gcVoltage,
+ this.gcCurrent,
+ this.gcSOC,
+ this.gcSOH,
+ this.gcTemp1,
+ this.gcTemp2,
+ this.gcTemp3,
+ this.gcTemp4,
+ this.gcTemp5,
+ this.gcTemp6,
+ this.cell_v_1,
+ this.cell_v_2,
+ this.cell_v_3,
+ this.cell_v_4,
+ this.cell_v_5,
+ this.cell_v_6,
+ this.cell_v_7,
+ this.cell_v_8,
+ this.cell_v_9,
+ this.cell_v_10,
+ this.cell_v_11,
+ this.cell_v_12,
+ this.cell_v_13,
+ this.cell_v_14,
+ this.cell_v_15,
+ this.cell_v_16});
+ this.gvBmsHistory.GridControl = this.gcBmsHistory;
+ this.gvBmsHistory.Name = "gvBmsHistory";
+ this.gvBmsHistory.OptionsView.ColumnAutoWidth = false;
+ this.gvBmsHistory.OptionsView.ShowGroupPanel = false;
+ this.gvBmsHistory.CustomColumnDisplayText += new DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventHandler(this.gvBmsHistory_CustomColumnDisplayText);
+ //
+ // gcNo
+ //
+ this.gcNo.AppearanceCell.Options.UseTextOptions = true;
+ this.gcNo.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcNo.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcNo.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcNo.Caption = "No";
+ this.gcNo.DisplayFormat.FormatString = "0";
+ this.gcNo.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.gcNo.FieldName = "no";
+ this.gcNo.Name = "gcNo";
+ this.gcNo.Visible = true;
+ this.gcNo.VisibleIndex = 0;
+ //
+ // gcHistDateTime
+ //
+ this.gcHistDateTime.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcHistDateTime.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcHistDateTime.Caption = "DateTime";
+ this.gcHistDateTime.DisplayFormat.FormatString = "yyyy-MM-dd HH:mm:ss";
+ this.gcHistDateTime.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
+ this.gcHistDateTime.FieldName = "datetime";
+ this.gcHistDateTime.Name = "gcHistDateTime";
+ this.gcHistDateTime.Visible = true;
+ this.gcHistDateTime.VisibleIndex = 1;
+ //
+ // gcStatus
+ //
+ this.gcStatus.AppearanceCell.Options.UseTextOptions = true;
+ this.gcStatus.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcStatus.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcStatus.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcStatus.Caption = "Status";
+ this.gcStatus.FieldName = "status";
+ this.gcStatus.Name = "gcStatus";
+ this.gcStatus.Visible = true;
+ this.gcStatus.VisibleIndex = 2;
+ //
+ // gcWarning
+ //
+ this.gcWarning.AppearanceCell.Options.UseTextOptions = true;
+ this.gcWarning.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcWarning.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcWarning.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcWarning.Caption = "Warning";
+ this.gcWarning.FieldName = "warning";
+ this.gcWarning.Name = "gcWarning";
+ this.gcWarning.Visible = true;
+ this.gcWarning.VisibleIndex = 3;
+ //
+ // gcProtect
+ //
+ this.gcProtect.AppearanceCell.Options.UseTextOptions = true;
+ this.gcProtect.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcProtect.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcProtect.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcProtect.Caption = "Protect";
+ this.gcProtect.FieldName = "protect";
+ this.gcProtect.Name = "gcProtect";
+ this.gcProtect.Visible = true;
+ this.gcProtect.VisibleIndex = 4;
+ //
+ // gcError
+ //
+ this.gcError.AppearanceCell.Options.UseTextOptions = true;
+ this.gcError.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcError.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcError.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcError.Caption = "Error";
+ this.gcError.FieldName = "error";
+ this.gcError.Name = "gcError";
+ this.gcError.Visible = true;
+ this.gcError.VisibleIndex = 5;
+ //
+ // gcVoltage
+ //
+ this.gcVoltage.AppearanceCell.Options.UseTextOptions = true;
+ this.gcVoltage.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.gcVoltage.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcVoltage.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcVoltage.Caption = "Voltage";
+ this.gcVoltage.DisplayFormat.FormatString = "0.00";
+ this.gcVoltage.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.gcVoltage.FieldName = "voltage";
+ this.gcVoltage.Name = "gcVoltage";
+ this.gcVoltage.Visible = true;
+ this.gcVoltage.VisibleIndex = 6;
+ //
+ // gcCurrent
+ //
+ this.gcCurrent.AppearanceCell.Options.UseTextOptions = true;
+ this.gcCurrent.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.gcCurrent.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcCurrent.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcCurrent.Caption = "Current";
+ this.gcCurrent.DisplayFormat.FormatString = "0.00";
+ this.gcCurrent.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.gcCurrent.FieldName = "current";
+ this.gcCurrent.Name = "gcCurrent";
+ this.gcCurrent.Visible = true;
+ this.gcCurrent.VisibleIndex = 7;
+ //
+ // gcSOC
+ //
+ this.gcSOC.AppearanceCell.Options.UseTextOptions = true;
+ this.gcSOC.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.gcSOC.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcSOC.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcSOC.Caption = "SOC";
+ this.gcSOC.DisplayFormat.FormatString = "0.0";
+ this.gcSOC.FieldName = "SOC";
+ this.gcSOC.Name = "gcSOC";
+ this.gcSOC.Visible = true;
+ this.gcSOC.VisibleIndex = 8;
+ //
+ // gcSOH
+ //
+ this.gcSOH.AppearanceCell.Options.UseTextOptions = true;
+ this.gcSOH.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.gcSOH.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcSOH.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcSOH.Caption = "SOH";
+ this.gcSOH.DisplayFormat.FormatString = "0.0";
+ this.gcSOH.FieldName = "SOH";
+ this.gcSOH.Name = "gcSOH";
+ this.gcSOH.Visible = true;
+ this.gcSOH.VisibleIndex = 9;
+ //
+ // gcTemp1
+ //
+ this.gcTemp1.AppearanceCell.Options.UseTextOptions = true;
+ this.gcTemp1.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.gcTemp1.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcTemp1.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcTemp1.Caption = "Temp1";
+ this.gcTemp1.DisplayFormat.FormatString = "0.0";
+ this.gcTemp1.FieldName = "temp_01";
+ this.gcTemp1.Name = "gcTemp1";
+ this.gcTemp1.Visible = true;
+ this.gcTemp1.VisibleIndex = 10;
+ //
+ // gcTemp2
+ //
+ this.gcTemp2.AppearanceCell.Options.UseTextOptions = true;
+ this.gcTemp2.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.gcTemp2.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcTemp2.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcTemp2.Caption = "Temp2";
+ this.gcTemp2.DisplayFormat.FormatString = "0.0";
+ this.gcTemp2.FieldName = "temp_02";
+ this.gcTemp2.Name = "gcTemp2";
+ this.gcTemp2.Visible = true;
+ this.gcTemp2.VisibleIndex = 11;
+ //
+ // gcTemp3
+ //
+ this.gcTemp3.AppearanceCell.Options.UseTextOptions = true;
+ this.gcTemp3.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.gcTemp3.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcTemp3.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcTemp3.Caption = "Temp3";
+ this.gcTemp3.DisplayFormat.FormatString = "0.0";
+ this.gcTemp3.FieldName = "temp_03";
+ this.gcTemp3.Name = "gcTemp3";
+ this.gcTemp3.Visible = true;
+ this.gcTemp3.VisibleIndex = 12;
+ //
+ // gcTemp4
+ //
+ this.gcTemp4.AppearanceCell.Options.UseTextOptions = true;
+ this.gcTemp4.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.gcTemp4.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcTemp4.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcTemp4.Caption = "Temp4";
+ this.gcTemp4.DisplayFormat.FormatString = "0.0";
+ this.gcTemp4.FieldName = "temp_04";
+ this.gcTemp4.Name = "gcTemp4";
+ this.gcTemp4.Visible = true;
+ this.gcTemp4.VisibleIndex = 13;
+ //
+ // gcTemp5
+ //
+ this.gcTemp5.AppearanceCell.Options.UseTextOptions = true;
+ this.gcTemp5.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.gcTemp5.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcTemp5.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcTemp5.Caption = "Temp5";
+ this.gcTemp5.DisplayFormat.FormatString = "0.0";
+ this.gcTemp5.FieldName = "temp_05";
+ this.gcTemp5.Name = "gcTemp5";
+ this.gcTemp5.Visible = true;
+ this.gcTemp5.VisibleIndex = 14;
+ //
+ // gcTemp6
+ //
+ this.gcTemp6.AppearanceCell.Options.UseTextOptions = true;
+ this.gcTemp6.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.gcTemp6.AppearanceHeader.Options.UseTextOptions = true;
+ this.gcTemp6.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.gcTemp6.Caption = "Temp6";
+ this.gcTemp6.DisplayFormat.FormatString = "0.0";
+ this.gcTemp6.FieldName = "temp_06";
+ this.gcTemp6.Name = "gcTemp6";
+ this.gcTemp6.Visible = true;
+ this.gcTemp6.VisibleIndex = 15;
+ //
+ // cell_v_1
+ //
+ this.cell_v_1.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_1.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_1.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_1.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_1.Caption = "cell_v_1";
+ this.cell_v_1.DisplayFormat.FormatString = "0.000";
+ this.cell_v_1.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_1.FieldName = "cell_v_01";
+ this.cell_v_1.Name = "cell_v_1";
+ this.cell_v_1.Visible = true;
+ this.cell_v_1.VisibleIndex = 16;
+ //
+ // cell_v_2
+ //
+ this.cell_v_2.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_2.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_2.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_2.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_2.Caption = "cell_v_2";
+ this.cell_v_2.DisplayFormat.FormatString = "0.000";
+ this.cell_v_2.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_2.FieldName = "cell_v_02";
+ this.cell_v_2.Name = "cell_v_2";
+ this.cell_v_2.Visible = true;
+ this.cell_v_2.VisibleIndex = 17;
+ //
+ // cell_v_3
+ //
+ this.cell_v_3.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_3.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_3.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_3.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_3.Caption = "cell_v_3";
+ this.cell_v_3.DisplayFormat.FormatString = "0.000";
+ this.cell_v_3.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_3.FieldName = "cell_v_03";
+ this.cell_v_3.Name = "cell_v_3";
+ this.cell_v_3.Visible = true;
+ this.cell_v_3.VisibleIndex = 18;
+ //
+ // cell_v_4
+ //
+ this.cell_v_4.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_4.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_4.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_4.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_4.Caption = "cell_v_4";
+ this.cell_v_4.DisplayFormat.FormatString = "0.000";
+ this.cell_v_4.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_4.FieldName = "cell_v_04";
+ this.cell_v_4.Name = "cell_v_4";
+ this.cell_v_4.Visible = true;
+ this.cell_v_4.VisibleIndex = 19;
+ //
+ // cell_v_5
+ //
+ this.cell_v_5.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_5.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_5.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_5.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_5.Caption = "cell_v_5";
+ this.cell_v_5.DisplayFormat.FormatString = "0.000";
+ this.cell_v_5.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_5.FieldName = "cell_v_05";
+ this.cell_v_5.Name = "cell_v_5";
+ this.cell_v_5.Visible = true;
+ this.cell_v_5.VisibleIndex = 20;
+ //
+ // cell_v_6
+ //
+ this.cell_v_6.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_6.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_6.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_6.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_6.Caption = "cell_v_6";
+ this.cell_v_6.DisplayFormat.FormatString = "0.000";
+ this.cell_v_6.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_6.FieldName = "cell_v_06";
+ this.cell_v_6.Name = "cell_v_6";
+ this.cell_v_6.Visible = true;
+ this.cell_v_6.VisibleIndex = 21;
+ //
+ // cell_v_7
+ //
+ this.cell_v_7.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_7.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_7.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_7.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_7.Caption = "cell_v_7";
+ this.cell_v_7.DisplayFormat.FormatString = "0.000";
+ this.cell_v_7.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_7.FieldName = "cell_v_07";
+ this.cell_v_7.Name = "cell_v_7";
+ this.cell_v_7.Visible = true;
+ this.cell_v_7.VisibleIndex = 22;
+ //
+ // cell_v_8
+ //
+ this.cell_v_8.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_8.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_8.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_8.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_8.Caption = "cell_v_8";
+ this.cell_v_8.DisplayFormat.FormatString = "0.000";
+ this.cell_v_8.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_8.FieldName = "cell_v_08";
+ this.cell_v_8.Name = "cell_v_8";
+ this.cell_v_8.Visible = true;
+ this.cell_v_8.VisibleIndex = 23;
+ //
+ // cell_v_9
+ //
+ this.cell_v_9.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_9.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_9.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_9.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_9.Caption = "cell_v_9";
+ this.cell_v_9.DisplayFormat.FormatString = "0.000";
+ this.cell_v_9.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_9.FieldName = "cell_v_09";
+ this.cell_v_9.Name = "cell_v_9";
+ this.cell_v_9.Visible = true;
+ this.cell_v_9.VisibleIndex = 24;
+ //
+ // cell_v_10
+ //
+ this.cell_v_10.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_10.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_10.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_10.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_10.Caption = "cell_v_10";
+ this.cell_v_10.DisplayFormat.FormatString = "0.000";
+ this.cell_v_10.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_10.FieldName = "cell_v_10";
+ this.cell_v_10.Name = "cell_v_10";
+ this.cell_v_10.Visible = true;
+ this.cell_v_10.VisibleIndex = 25;
+ //
+ // cell_v_11
+ //
+ this.cell_v_11.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_11.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_11.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_11.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_11.Caption = "cell_v_11";
+ this.cell_v_11.DisplayFormat.FormatString = "0.000";
+ this.cell_v_11.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_11.FieldName = "cell_v_11";
+ this.cell_v_11.Name = "cell_v_11";
+ this.cell_v_11.Visible = true;
+ this.cell_v_11.VisibleIndex = 26;
+ //
+ // cell_v_12
+ //
+ this.cell_v_12.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_12.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_12.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_12.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_12.Caption = "cell_v_12";
+ this.cell_v_12.DisplayFormat.FormatString = "0.000";
+ this.cell_v_12.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_12.FieldName = "cell_v_12";
+ this.cell_v_12.Name = "cell_v_12";
+ this.cell_v_12.Visible = true;
+ this.cell_v_12.VisibleIndex = 27;
+ //
+ // cell_v_13
+ //
+ this.cell_v_13.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_13.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_13.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_13.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_13.Caption = "cell_v_13";
+ this.cell_v_13.DisplayFormat.FormatString = "0.000";
+ this.cell_v_13.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_13.FieldName = "cell_v_13";
+ this.cell_v_13.Name = "cell_v_13";
+ this.cell_v_13.Visible = true;
+ this.cell_v_13.VisibleIndex = 28;
+ //
+ // cell_v_14
+ //
+ this.cell_v_14.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_14.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_14.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_14.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_14.Caption = "cell_v_14";
+ this.cell_v_14.DisplayFormat.FormatString = "0.000";
+ this.cell_v_14.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_14.FieldName = "cell_v_14";
+ this.cell_v_14.Name = "cell_v_14";
+ this.cell_v_14.Visible = true;
+ this.cell_v_14.VisibleIndex = 29;
+ //
+ // cell_v_15
+ //
+ this.cell_v_15.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_15.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_15.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_15.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_15.Caption = "cell_v_15";
+ this.cell_v_15.DisplayFormat.FormatString = "0.000";
+ this.cell_v_15.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_15.FieldName = "cell_v_15";
+ this.cell_v_15.Name = "cell_v_15";
+ this.cell_v_15.Visible = true;
+ this.cell_v_15.VisibleIndex = 30;
+ //
+ // cell_v_16
+ //
+ this.cell_v_16.AppearanceCell.Options.UseTextOptions = true;
+ this.cell_v_16.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cell_v_16.AppearanceHeader.Options.UseTextOptions = true;
+ this.cell_v_16.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.cell_v_16.Caption = "cell_v_16";
+ this.cell_v_16.DisplayFormat.FormatString = "0.000";
+ this.cell_v_16.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
+ this.cell_v_16.FieldName = "cell_v_16";
+ this.cell_v_16.Name = "cell_v_16";
+ this.cell_v_16.Visible = true;
+ this.cell_v_16.VisibleIndex = 31;
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup2.GroupBordersVisible = false;
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlGroup3,
+ this.layoutControlGroup4});
+ this.layoutControlGroup2.Name = "Root";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(903, 526);
+ this.layoutControlGroup2.TextVisible = false;
+ //
+ // layoutControlGroup3
+ //
+ this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.emptySpaceItem1,
+ this.layoutControlItem5});
+ this.layoutControlGroup3.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup3.Name = "layoutControlGroup3";
+ this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup3.Size = new System.Drawing.Size(899, 64);
+ this.layoutControlGroup3.Text = "Command";
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 0);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(773, 35);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.btnBmsHistoryReq;
+ this.layoutControlItem5.Location = new System.Drawing.Point(773, 0);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(118, 35);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // layoutControlGroup4
+ //
+ this.layoutControlGroup4.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem4,
+ this.layoutControlItem6,
+ this.emptySpaceItem2});
+ this.layoutControlGroup4.Location = new System.Drawing.Point(0, 64);
+ this.layoutControlGroup4.Name = "layoutControlGroup4";
+ this.layoutControlGroup4.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup4.Size = new System.Drawing.Size(899, 458);
+ this.layoutControlGroup4.Text = "Result";
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.gcBmsHistory;
+ this.layoutControlItem4.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(104, 24);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(891, 392);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.btnExportExcel;
+ this.layoutControlItem6.Location = new System.Drawing.Point(774, 392);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(117, 37);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // emptySpaceItem2
+ //
+ this.emptySpaceItem2.AllowHotTrack = false;
+ this.emptySpaceItem2.Location = new System.Drawing.Point(0, 392);
+ this.emptySpaceItem2.MinSize = new System.Drawing.Size(104, 24);
+ this.emptySpaceItem2.Name = "emptySpaceItem2";
+ this.emptySpaceItem2.Size = new System.Drawing.Size(774, 37);
+ this.emptySpaceItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // btnClose
+ //
+ this.btnClose.Location = new System.Drawing.Point(3, 559);
+ this.btnClose.Name = "btnClose";
+ this.btnClose.Size = new System.Drawing.Size(905, 40);
+ this.btnClose.StyleController = this.layoutControl1;
+ this.btnClose.TabIndex = 5;
+ this.btnClose.Text = "Close";
+ this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem2,
+ this.layoutControlItem3});
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(911, 602);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.btnClose;
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 556);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(909, 44);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.tabHistory;
+ this.layoutControlItem3.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(909, 556);
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // TmrCheckReq
+ //
+ this.TmrCheckReq.Interval = 500;
+ this.TmrCheckReq.Tick += new System.EventHandler(this.TmrCheckReq_Tick);
+ //
+ // fmxHistory
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(911, 602);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Image = ((System.Drawing.Image)(resources.GetObject("fmxHistory.IconOptions.Image")));
+ this.Name = "fmxHistory";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "History";
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.tabHistory)).EndInit();
+ this.tabHistory.ResumeLayout(false);
+ this.pgGuiHistory.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit();
+ this.layoutControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ this.pgBmsHistory.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit();
+ this.layoutControl3.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.gcBmsHistory)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gvBmsHistory)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private Controls.ucHistroy ucHistroy1;
+ private DevExpress.XtraEditors.SimpleButton btnClose;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraTab.XtraTabControl tabHistory;
+ private DevExpress.XtraTab.XtraTabPage pgGuiHistory;
+ private DevExpress.XtraLayout.LayoutControl layoutControl2;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraTab.XtraTabPage pgBmsHistory;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.LayoutControl layoutControl3;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraGrid.GridControl gcBmsHistory;
+ private DevExpress.XtraGrid.Views.Grid.GridView gvBmsHistory;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraEditors.SimpleButton btnBmsHistoryReq;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup4;
+ private DevExpress.XtraGrid.Columns.GridColumn gcHistDateTime;
+ private DevExpress.XtraGrid.Columns.GridColumn gcStatus;
+ private DevExpress.XtraGrid.Columns.GridColumn gcWarning;
+ private DevExpress.XtraGrid.Columns.GridColumn gcProtect;
+ private DevExpress.XtraGrid.Columns.GridColumn gcError;
+ private DevExpress.XtraGrid.Columns.GridColumn gcVoltage;
+ private DevExpress.XtraGrid.Columns.GridColumn gcCurrent;
+ private DevExpress.XtraGrid.Columns.GridColumn gcSOC;
+ private DevExpress.XtraGrid.Columns.GridColumn gcSOH;
+ private DevExpress.XtraGrid.Columns.GridColumn gcTemp1;
+ private DevExpress.XtraGrid.Columns.GridColumn gcTemp2;
+ private DevExpress.XtraGrid.Columns.GridColumn gcTemp3;
+ private DevExpress.XtraGrid.Columns.GridColumn gcTemp4;
+ private DevExpress.XtraGrid.Columns.GridColumn gcTemp5;
+ private DevExpress.XtraGrid.Columns.GridColumn gcTemp6;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_1;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_2;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_3;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_4;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_5;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_6;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_7;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_8;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_9;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_10;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_11;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_12;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_13;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_14;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_15;
+ private DevExpress.XtraGrid.Columns.GridColumn cell_v_16;
+ private DevExpress.XtraEditors.SimpleButton btnExportExcel;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+ private DevExpress.XtraGrid.Columns.GridColumn gcNo;
+ private System.Windows.Forms.Timer TmrCheckReq;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxHistory.cs b/LFP_Manager/Forms/fmxHistory.cs
new file mode 100644
index 0000000..b6d8f8a
--- /dev/null
+++ b/LFP_Manager/Forms/fmxHistory.cs
@@ -0,0 +1,321 @@
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using System;
+using System.Data;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Forms
+{
+ public partial class fmxHistory : DevExpress.XtraEditors.XtraForm
+ {
+ #region VARIABLES
+
+ private int SystemId = 0;
+ private CommConfig Config;
+
+ private byte[] rData = null;
+ private ushort curr_addr = 0;
+ private int hist_no = 0;
+ private bool stopReq = true;
+
+ private DateTime ReqDateTime;
+
+ private DataTable BmsHistoryTable = null;
+
+ public event SendDataUartEvent OnSendUartData = null;
+
+ #endregion
+
+ #region CONTRUCTORS
+
+ //public fmxHistory()
+ //{
+ // InitializeComponent();
+ //}
+
+ public fmxHistory(CommConfig aConfig, int systemId)
+ {
+ InitializeComponent();
+
+ Config = aConfig;
+
+ ucHistroy1.SetCommCofig(Config);
+ SystemId = systemId;
+
+ CreateHistoryColomn(ref BmsHistoryTable);
+
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ pgBmsHistory.PageEnabled = true;
+ //tabHistory.TabPages.Remove(pgBmsHistory);
+ break;
+ case csConstData.CommType.COMM_RS485:
+ pgBmsHistory.PageEnabled = false;
+ tabHistory.TabPages.Remove(pgBmsHistory);
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ pgBmsHistory.PageEnabled = false;
+ tabHistory.TabPages.Remove(pgBmsHistory);
+ break;
+ default:
+ break;
+ }
+ }
+
+ #endregion
+
+ #region INITIALIZE COMPONENT
+
+ private void CreateHistoryColomn(ref DataTable hDT)
+ {
+ hDT = new DataTable();
+
+ hDT.Columns.Add("no", typeof(int));
+ hDT.Columns.Add("datetime", typeof(DateTime));
+ hDT.Columns.Add("status", typeof(int));
+ hDT.Columns.Add("warning", typeof(string));
+ hDT.Columns.Add("protect", typeof(string));
+ hDT.Columns.Add("error", typeof(string));
+
+ hDT.Columns.Add("voltage", typeof(float));
+ hDT.Columns.Add("current", typeof(float));
+ hDT.Columns.Add("SOC", typeof(float));
+ hDT.Columns.Add("SOH", typeof(float));
+
+ for (int i = 0; i < 6; i++)
+ {
+ hDT.Columns.Add(string.Format("temp_{0:00}", i + 1), typeof(float));
+ }
+ for (int i = 0; i < 16; i++)
+ {
+ hDT.Columns.Add(string.Format("cell_v_{0:00}", i + 1), typeof(float));
+ }
+ gcBmsHistory.DataSource = hDT;
+ }
+
+ #endregion
+
+ #region PUBLIC FUNCTIONS
+ private short[] ByteArrTo2Short(byte[] bytes)
+ {
+ short[] result = null;
+
+ if (bytes != null)
+ {
+ int len = bytes[2];
+ result = new short[len / 2];
+
+ for (int i = 0; i < result.Length; i++)
+ {
+ result[i] = (short)((bytes[3 + (i * 2) + 0] << 8) + bytes[3 + (i * 2) + 1]);
+ }
+ }
+ return result;
+ }
+ public void RecvUardData(byte[] data)
+ {
+ rData = data;
+
+ if ((rData != null) && (rData.Length > 58))
+ {
+ try
+ {
+ DataRow hRow = BmsHistoryTable.NewRow();
+
+ short[] shorts = ByteArrTo2Short(data);
+
+ int pos = 0;
+ int yy, MM, dd, HH, mm, ss;
+ Int32 iDateTime = (rData[3 + 2] << 24) | (rData[3 + 3] << 16) | (rData[3 + 0] << 8) | (rData[3 + 1] << 0);
+ //Int32 iDateTime = (Int32)((shorts[pos + 1] << 16) | (shorts[pos + 0] << 0));
+ yy = (iDateTime >> 26) & 0x003F;
+ MM = (iDateTime >> 22) & 0x000F;
+ dd = (iDateTime >> 17) & 0x001F;
+ HH = (iDateTime >> 12) & 0x001F;
+ mm = (iDateTime >> 6) & 0x003F;
+ ss = (iDateTime >> 0) & 0x003F;
+
+ hRow["no"] = hist_no;
+ string stDateTime = string.Format("{0}-{1:00}-{2:00} {3:00}:{4:00}:{5:00}"
+ , yy
+ , MM
+ , dd
+ , HH
+ , mm
+ , ss
+ );
+
+ DateTime aDateTime = Convert.ToDateTime(stDateTime);
+ hRow["datetime"] = aDateTime;
+
+ pos = 2;
+ hRow["status"] = shorts[pos++];
+ hRow["warning"] = string.Format("{0:X4}", shorts[pos++]);
+ hRow["protect"] = string.Format("{0:X4}", shorts[pos++]);
+ hRow["error"] = string.Format("{0:X4}", shorts[pos++]);
+ hRow["voltage"] = string.Format("{0:0.00}", Convert.ToDouble(shorts[pos++]) / 100);
+ hRow["current"] = string.Format("{0:0.00}", Convert.ToDouble(shorts[pos++]) / 100);
+ hRow["SOC"] = string.Format("{0:0.0}", Convert.ToDouble(shorts[pos++]) / 1);
+
+ // Temperature
+ for (int i = 0; i < 3; i++)
+ {
+ hRow[string.Format("temp_{0:00}", (i * 2) + 1)] = Convert.ToDouble((byte)(shorts[pos] >> 8));
+ hRow[string.Format("temp_{0:00}", (i * 2) + 2)] = Convert.ToDouble((byte)(shorts[pos++] >> 0));
+ }
+ // Cell Voltage
+ for (int i = 0; i < 16; i++)
+ {
+ hRow[string.Format("cell_v_{0:00}", i + 1)] = Convert.ToDouble(shorts[pos++]) / 1000;
+ }
+ hRow["SOH"] = string.Format("{0:0.0}", Convert.ToDouble(shorts[pos++]) / 1);
+
+ BmsHistoryTable.Rows.Add(hRow);
+ }
+ catch (Exception e)
+ {
+ MessageBox.Show(e.Message);
+ }
+ }
+ gvBmsHistory.BestFitColumns();
+ gvBmsHistory.ClearSelection();
+
+ hist_no++;
+ curr_addr += 0x20;
+ RequestHistoryData(curr_addr);
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+
+ private void btnClose_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+
+ private void btnBmsHistoryReq_Click(object sender, EventArgs e)
+ {
+ if (stopReq)
+ {
+ BmsHistoryTable.Rows.Clear();
+
+ stopReq = false;
+ hist_no = 1;
+ curr_addr = 0x0200;
+ TmrCheckReq.Enabled = true;
+
+ RequestHistoryData(curr_addr);
+
+ btnBmsHistoryReq.Text = "STOP";
+ }
+ else
+ {
+ stopReq = true;
+ //btnBmsHistoryReq.Text = "Request";
+ //TmrCheckReq.Enabled = false;
+ }
+ }
+
+ private void RequestHistoryData(ushort haddr)
+ {
+ byte[] crc;
+ ushort addr = haddr;
+
+ // Normal mode --> Bootloader mode
+ byte[] sdata = new byte[8];
+ sdata[0] = (byte)SystemId; // Dev Address
+ sdata[1] = 0x03; // Function Code
+ sdata[2] = (byte)(addr >> 8); // Address H
+ sdata[3] = (byte)(addr >> 0); // Address L
+ sdata[4] = 0x00; // Number of Register H
+ sdata[5] = 0x1D; // Number of Register L
+
+ crc = csSerialCommFunction.GetCRC(sdata, 6);
+
+ sdata[6] = crc[1]; // CRCH
+ sdata[7] = crc[0]; // CRCL
+
+ if (stopReq == false)
+ {
+ OnSendUartData?.Invoke(addr, sdata, false, 1);
+ ReqDateTime = DateTime.Now;
+ }
+ }
+
+ private void btnExportExcel_Click(object sender, EventArgs e)
+ {
+ SaveFileDialog sDialog = new SaveFileDialog();
+ sDialog.Title = "Select save file";
+ sDialog.DefaultExt = "xlsx";
+ sDialog.Filter = "Excel files 2003 (*.xls)|*.xls|All files (*.*)|*.*";
+
+ if (sDialog.ShowDialog() == DialogResult.OK)
+ {
+ string filename = sDialog.FileName;
+
+ try
+ {
+ csExcelExport.ExportToExcelExt(BmsHistoryTable, filename);
+
+ MessageBox.Show("Complete Export Excel File", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+ #endregion
+
+ #region GRID DISPLAY
+ private void gvBmsHistory_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e)
+ {
+ if (e.Column.FieldName == "status")
+ {
+ int status = Convert.ToInt32(e.Value);
+ switch (status)
+ {
+ case 0:
+ e.DisplayText = "Standby";
+ break;
+ case 1:
+ e.DisplayText = "Charging";
+ break;
+ case 2:
+ e.DisplayText = "Discharging";
+ break;
+ case 4:
+ e.DisplayText = "Protect";
+ break;
+ case 8:
+ e.DisplayText = "Charging-Lmt";
+ break;
+ case 0x32:
+ e.DisplayText = "Power-On";
+ break;
+ default:
+ e.DisplayText = string.Format("Unknown({0:X4})", status);
+ break;
+ }
+ }
+ }
+ #endregion
+
+ #region TIMER EVENT
+ private void TmrCheckReq_Tick(object sender, EventArgs e)
+ {
+ DateTime nDateTime = ReqDateTime.AddSeconds(1);
+
+ if (nDateTime < DateTime.Now)
+ {
+ TmrCheckReq.Enabled = false;
+
+ MessageBox.Show("Finished BMS History Read", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ btnBmsHistoryReq.Text = "Request";
+ }
+ }
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Forms/fmxHistory.resx b/LFP_Manager/Forms/fmxHistory.resx
new file mode 100644
index 0000000..2e52af4
--- /dev/null
+++ b/LFP_Manager/Forms/fmxHistory.resx
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ vAAADrwBlbxySQAABMxJREFUWEflVWtsFVUQPrdtSvilMRIVY8T4h1/aoDGKqIWCIBXR+IgaAmriD/CR
+ SIyVYjSSPmhLrVVTBa6tQNGIBSqYCEEera34KCqFEmgLNa34qPRaeqHv23G+2Z3tXrp3u/iHGCeZnN09
+ M2e++WbOrKFLLP8dACMjI87qp2oTVAIBcB8Y8zncvRcUxEUxoIdGon3UdbbX0TPdvdR9vl/23HZBZFwA
+ euDQcEzedze00aSF79Ckx9+nKx8rc3Tyo2V0+GSn2AyzbVAgvgD0gFgsRsOsfQNDNPXZCjLpq8nc9xaZ
+ ucWW4vmuPJqZ9Rm8xDZIcEggBjT7VR8fJHNnLiUveNsKOr/EUn5Ovp+/MYhNe5vEFj5BWEgIQJ1BJ5qr
+ 5dcITcwsoZBmzIFDeBcA9jq7iK554gOK9PQJC8KEfVYiGbcEmv0Db1aTuTufkjKt7CXgvWu4BKw2C0lg
+ YUYevbTugPgM2iz4iScAzX5waFjePz/YSmZWgUWzBuJSLF+7nx7J3SlB5Rv2GMwEXrUhxyvFGABqiMaD
+ 87neAbrxqTCF5hRx9hbVoTlr6CrufDRly+kIpc4rpiQO6oCbWUDpWVvsJPxZGAsAyg5KffZHdXGNJ+s9
+ +bRhz1HZh7xa8bU0oGMDEPxeufeY7PuxEAdAjfQeH2/vsrJj9coOB6PRengITVmyXpjRxgzZDfk3Dy3Y
+ gFGN4RbPEgAAZP7r26zGc+rL2fEt+Kn1TweA9smWmuNim8pDCgxgxfsKZgeiLFwoDgBs6qGQ7fUtdtcn
+ 6HAOjMxgj17AikFk0t7gkuWRmZ5L5o4cMrfnUE1jB9uOMusGIgD0g0w8NoqeH6Api9eTySi06LQpvW7R
+ Ojp7rl8Cs5P4uAX/hWwGmF1RJ5mv3FBHr5Tto+pvWmXfi4U4BpTOrPLa+KuFldn4lGmGACSGTUPzH7Tn
+ 0C9UsfsIlWxtoPCXjfTF96dox7etcnWhO787SZ981UT1TactXwbvZsHoi9JztO0vuceotwTH4OGun51d
+ JVmrHcB2MxsdnT104HA7vcYZX79orVUCph2ApRQzuBTTc+jyh96l385ExzQkA7AecDAkY0UVB1w9mj0r
+ bsKRtk4ZyQrAS/C9fFcjXc1/RsNzI3VhKaXwORMetBpycfEusXOXgksw2nib9x3j+5vvTDy511wK3HMI
+ slZHrKrICnua2YmOCE19+kOrh7SJsc4qpP0/t4uNgjB4wAGo6bVPMoUZRaONx1ncsCRMUZ6GsIFCFARE
+ QejzwOCQPDfzz+syvopJ87SUDCC9gG5etpFt+AZxXAA2vf2Ww3LuXtTMoR4OXPtt9c2yr9m7g7tF9uy1
+ 3wZRWv3j2Gbm95Lth2Qf11duQeOpTmm8FM4agVMWlErN5q7cKoZe18dL1AaZwQd609KNMj1RTpydzP10
+ xcPv0e9dUbbjEuBeT3u+0upcrhmMETyFJ96Jjq64xgsKAmqBJqrlISQ3gumXs3memNtWUSZPWYjJCtdS
+ 2nObaNoLlQLk1hc3Uxo3UGHVD2Lg1/V+Ah/tmZfDNZT2TLmcjRi3sCLmDvzmUYdEguw1+MWAcPv4+aH/
+ nFGMYKryzvVR8TskkaiPnuUVA+JMQi+F6Ppv5MLzvNT5F1wq+b8DIPoHjJf5qaq9hPwAAAAASUVORK5C
+ YII=
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxInventoryConfig.Designer.cs b/LFP_Manager/Forms/fmxInventoryConfig.Designer.cs
new file mode 100644
index 0000000..5e4eae1
--- /dev/null
+++ b/LFP_Manager/Forms/fmxInventoryConfig.Designer.cs
@@ -0,0 +1,454 @@
+namespace LFP_Manager.Forms
+{
+ partial class fmxInventoryConfig
+ {
+ ///
+ /// 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()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxInventoryConfig));
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.gbSerialNo = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
+ this.nSerialNo = new DevExpress.XtraEditors.TextEdit();
+ this.lbSerialNo = new DevExpress.XtraEditors.LabelControl();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.gbMDate = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl();
+ this.lbMDate = new DevExpress.XtraEditors.LabelControl();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.tmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.nManuDate = new DevExpress.XtraEditors.TextEdit();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.BtnManuDateWrite = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.BtnSerialNoWrite = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.gbSerialNo)).BeginInit();
+ this.gbSerialNo.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit();
+ this.layoutControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.nSerialNo.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbMDate)).BeginInit();
+ this.gbMDate.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit();
+ this.layoutControl3.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.nManuDate.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.btnClose);
+ this.layoutControl1.Controls.Add(this.gbSerialNo);
+ this.layoutControl1.Controls.Add(this.gbMDate);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(999, 164, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(720, 425);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // btnClose
+ //
+ this.btnClose.Appearance.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnClose.Appearance.Options.UseFont = true;
+ this.btnClose.Location = new System.Drawing.Point(4, 373);
+ this.btnClose.Name = "btnClose";
+ this.btnClose.Size = new System.Drawing.Size(712, 48);
+ this.btnClose.StyleController = this.layoutControl1;
+ this.btnClose.TabIndex = 7;
+ this.btnClose.Text = "Close";
+ this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
+ //
+ // gbSerialNo
+ //
+ this.gbSerialNo.Controls.Add(this.layoutControl2);
+ this.gbSerialNo.Location = new System.Drawing.Point(4, 174);
+ this.gbSerialNo.Name = "gbSerialNo";
+ this.gbSerialNo.Size = new System.Drawing.Size(712, 165);
+ this.gbSerialNo.TabIndex = 5;
+ this.gbSerialNo.Text = "Serial Number";
+ //
+ // layoutControl2
+ //
+ this.layoutControl2.Controls.Add(this.BtnSerialNoWrite);
+ this.layoutControl2.Controls.Add(this.nSerialNo);
+ this.layoutControl2.Controls.Add(this.lbSerialNo);
+ this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl2.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl2.Name = "layoutControl2";
+ this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(993, 64, 650, 400);
+ this.layoutControl2.Root = this.layoutControlGroup1;
+ this.layoutControl2.Size = new System.Drawing.Size(708, 140);
+ this.layoutControl2.TabIndex = 0;
+ this.layoutControl2.Text = "layoutControl2";
+ //
+ // nSerialNo
+ //
+ this.nSerialNo.Location = new System.Drawing.Point(7, 70);
+ this.nSerialNo.Name = "nSerialNo";
+ this.nSerialNo.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 36F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.nSerialNo.Properties.Appearance.Options.UseFont = true;
+ this.nSerialNo.Properties.Appearance.Options.UseTextOptions = true;
+ this.nSerialNo.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.nSerialNo.Properties.MaxLength = 16;
+ this.nSerialNo.Size = new System.Drawing.Size(605, 64);
+ this.nSerialNo.StyleController = this.layoutControl2;
+ this.nSerialNo.TabIndex = 5;
+ //
+ // lbSerialNo
+ //
+ this.lbSerialNo.Appearance.Font = new System.Drawing.Font("Tahoma", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbSerialNo.Appearance.Options.UseFont = true;
+ this.lbSerialNo.Location = new System.Drawing.Point(7, 7);
+ this.lbSerialNo.Name = "lbSerialNo";
+ this.lbSerialNo.Size = new System.Drawing.Size(694, 59);
+ this.lbSerialNo.StyleController = this.layoutControl2;
+ this.lbSerialNo.TabIndex = 4;
+ this.lbSerialNo.Text = "Serial No:";
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "Root";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem3,
+ this.layoutControlItem4,
+ this.layoutControlItem10});
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(708, 140);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.lbSerialNo;
+ this.layoutControlItem3.CustomizationFormText = "layoutControlItem3";
+ this.layoutControlItem3.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(698, 63);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.nSerialNo;
+ this.layoutControlItem4.CustomizationFormText = "layoutControlItem4";
+ this.layoutControlItem4.Location = new System.Drawing.Point(0, 63);
+ this.layoutControlItem4.MaxSize = new System.Drawing.Size(0, 67);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(171, 67);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(609, 67);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // gbMDate
+ //
+ this.gbMDate.Controls.Add(this.layoutControl3);
+ this.gbMDate.Location = new System.Drawing.Point(4, 4);
+ this.gbMDate.Name = "gbMDate";
+ this.gbMDate.Size = new System.Drawing.Size(712, 166);
+ this.gbMDate.TabIndex = 4;
+ this.gbMDate.Text = "Manufacture Date";
+ //
+ // layoutControl3
+ //
+ this.layoutControl3.Controls.Add(this.BtnManuDateWrite);
+ this.layoutControl3.Controls.Add(this.nManuDate);
+ this.layoutControl3.Controls.Add(this.lbMDate);
+ this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl3.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl3.Name = "layoutControl3";
+ this.layoutControl3.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(993, 0, 650, 400);
+ this.layoutControl3.Root = this.layoutControlGroup2;
+ this.layoutControl3.Size = new System.Drawing.Size(708, 141);
+ this.layoutControl3.TabIndex = 0;
+ this.layoutControl3.Text = "layoutControl3";
+ //
+ // lbMDate
+ //
+ this.lbMDate.Appearance.Font = new System.Drawing.Font("Tahoma", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbMDate.Appearance.Options.UseFont = true;
+ this.lbMDate.Location = new System.Drawing.Point(7, 7);
+ this.lbMDate.Name = "lbMDate";
+ this.lbMDate.Size = new System.Drawing.Size(694, 59);
+ this.lbMDate.StyleController = this.layoutControl3;
+ this.lbMDate.TabIndex = 6;
+ this.lbMDate.Text = "Manufacture Date:";
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.CustomizationFormText = "Root";
+ this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup2.GroupBordersVisible = false;
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem9,
+ this.layoutControlItem7,
+ this.layoutControlItem8});
+ this.layoutControlGroup2.Name = "Root";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(708, 141);
+ this.layoutControlGroup2.TextVisible = false;
+ //
+ // layoutControlItem9
+ //
+ this.layoutControlItem9.Control = this.lbMDate;
+ this.layoutControlItem9.CustomizationFormText = "layoutControlItem9";
+ this.layoutControlItem9.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem9.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem9.Name = "layoutControlItem9";
+ this.layoutControlItem9.Size = new System.Drawing.Size(698, 63);
+ this.layoutControlItem9.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem9.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem9.TextVisible = false;
+ //
+ // Root
+ //
+ this.Root.CustomizationFormText = "Root";
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1,
+ this.layoutControlItem2,
+ this.layoutControlItem6,
+ this.emptySpaceItem1});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
+ this.Root.Size = new System.Drawing.Size(720, 425);
+ this.Root.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.gbMDate;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(716, 170);
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.gbSerialNo;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 170);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(716, 169);
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.btnClose;
+ this.layoutControlItem6.CustomizationFormText = "layoutControlItem6";
+ this.layoutControlItem6.Location = new System.Drawing.Point(0, 369);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(716, 52);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1";
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 339);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(716, 30);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // tmrDisplay
+ //
+ this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick);
+ //
+ // nManuDate
+ //
+ this.nManuDate.Location = new System.Drawing.Point(7, 70);
+ this.nManuDate.Name = "nManuDate";
+ this.nManuDate.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 36F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.nManuDate.Properties.Appearance.Options.UseFont = true;
+ this.nManuDate.Properties.Appearance.Options.UseTextOptions = true;
+ this.nManuDate.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.nManuDate.Properties.MaxLength = 8;
+ this.nManuDate.Size = new System.Drawing.Size(605, 64);
+ this.nManuDate.StyleController = this.layoutControl3;
+ this.nManuDate.TabIndex = 7;
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.nManuDate;
+ this.layoutControlItem7.Location = new System.Drawing.Point(0, 63);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(609, 68);
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem7.TextVisible = false;
+ //
+ // BtnManuDateWrite
+ //
+ this.BtnManuDateWrite.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.BtnManuDateWrite.Appearance.Options.UseFont = true;
+ this.BtnManuDateWrite.Location = new System.Drawing.Point(616, 70);
+ this.BtnManuDateWrite.Name = "BtnManuDateWrite";
+ this.BtnManuDateWrite.Size = new System.Drawing.Size(85, 64);
+ this.BtnManuDateWrite.StyleController = this.layoutControl3;
+ this.BtnManuDateWrite.TabIndex = 8;
+ this.BtnManuDateWrite.Text = "Apply";
+ this.BtnManuDateWrite.Click += new System.EventHandler(this.BtnManuDateWrite_Click);
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.BtnManuDateWrite;
+ this.layoutControlItem8.Location = new System.Drawing.Point(609, 63);
+ this.layoutControlItem8.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(89, 68);
+ this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem8.TextVisible = false;
+ //
+ // BtnSerialNoWrite
+ //
+ this.BtnSerialNoWrite.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.BtnSerialNoWrite.Appearance.Options.UseFont = true;
+ this.BtnSerialNoWrite.Location = new System.Drawing.Point(616, 70);
+ this.BtnSerialNoWrite.Name = "BtnSerialNoWrite";
+ this.BtnSerialNoWrite.Size = new System.Drawing.Size(85, 63);
+ this.BtnSerialNoWrite.StyleController = this.layoutControl2;
+ this.BtnSerialNoWrite.TabIndex = 6;
+ this.BtnSerialNoWrite.Text = "Apply";
+ this.BtnSerialNoWrite.Click += new System.EventHandler(this.BtnSerialNoWrite_Click);
+ //
+ // layoutControlItem10
+ //
+ this.layoutControlItem10.Control = this.BtnSerialNoWrite;
+ this.layoutControlItem10.Location = new System.Drawing.Point(609, 63);
+ this.layoutControlItem10.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem10.Name = "layoutControlItem10";
+ this.layoutControlItem10.Size = new System.Drawing.Size(89, 67);
+ this.layoutControlItem10.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem10.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem10.TextVisible = false;
+ //
+ // fmxInventoryConfig
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(720, 425);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("fmxInventoryConfig.IconOptions.Icon")));
+ this.Name = "fmxInventoryConfig";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Inventory Config";
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.gbSerialNo)).EndInit();
+ this.gbSerialNo.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit();
+ this.layoutControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.nSerialNo.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbMDate)).EndInit();
+ this.gbMDate.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit();
+ this.layoutControl3.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.nManuDate.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private DevExpress.XtraEditors.GroupControl gbMDate;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraEditors.GroupControl gbSerialNo;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.LayoutControl layoutControl2;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraEditors.TextEdit nSerialNo;
+ private DevExpress.XtraEditors.LabelControl lbSerialNo;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraEditors.SimpleButton btnClose;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private System.Windows.Forms.Timer tmrDisplay;
+ private DevExpress.XtraLayout.LayoutControl layoutControl3;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraEditors.LabelControl lbMDate;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
+ private DevExpress.XtraEditors.SimpleButton BtnManuDateWrite;
+ private DevExpress.XtraEditors.TextEdit nManuDate;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ private DevExpress.XtraEditors.SimpleButton BtnSerialNoWrite;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxInventoryConfig.cs b/LFP_Manager/Forms/fmxInventoryConfig.cs
new file mode 100644
index 0000000..972352a
--- /dev/null
+++ b/LFP_Manager/Forms/fmxInventoryConfig.cs
@@ -0,0 +1,231 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Controls;
+using LFP_Manager.Utils;
+
+namespace LFP_Manager.Forms
+{
+ public delegate void InvDataUpdateEvent(object sendor);
+ public delegate void InvDateCmdEvent(int sId, int mode, int index, int flag, ref DeviceInforation wData);
+ public delegate void InvDateCmdEventBySnmp(int mode, string wData);
+
+ public partial class fmxInventoryConfig : DevExpress.XtraEditors.XtraForm
+ {
+ #region VARIABLES
+
+ int SystemId = 0;
+ int CmdResult = 0;
+ CommConfig Config;
+ DeviceSystemData SystemData;
+ DeviceInforation wInvData;
+
+ public event InvDataUpdateEvent OnUpdate = null;
+ public event InvDateCmdEvent OnCommand = null;
+
+ public event SendDataUartEvent OnSendUartData = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+ public fmxInventoryConfig()
+ {
+ InitializeComponent();
+ }
+ public fmxInventoryConfig(int sId, ref CommConfig aConfig, ref DeviceSystemData aSystemData)
+ {
+ InitializeComponent();
+
+ SystemId = sId;
+ SystemData = aSystemData;
+ Config = aConfig;
+
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ nManuDate.Enabled = true;
+ BtnManuDateWrite.Enabled = true;
+ nSerialNo.Enabled = true;
+ BtnSerialNoWrite.Enabled = true;
+ break;
+ case csConstData.CommType.COMM_RS485:
+ nManuDate.Enabled = false;
+ BtnManuDateWrite.Enabled = false;
+ nSerialNo.Enabled = false;
+ BtnSerialNoWrite.Enabled = false;
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ nManuDate.Enabled = false;
+ BtnManuDateWrite.Enabled = false;
+ nSerialNo.Enabled = false;
+ BtnSerialNoWrite.Enabled = false;
+ break;
+ default:
+ break;
+ }
+
+ tmrDisplay.Enabled = true;
+ }
+ #endregion
+
+ #region INIT DATA
+ void InitData()
+ {
+ wInvData = new DeviceInforation
+ {
+ BMS_SN = new byte[16],
+ Module_SN = new byte[24]
+ }; //22.06.30 Byul 32->16, 32->24
+ }
+ #endregion
+
+ #region DISPLAY DATA
+
+ private void DisplayValue()
+ {
+ // Manufacture Date
+ lbMDate.Text = String.Format("Manufacture Date: {0}", SystemData.Information.ManufacturingDate);
+
+ // Device Address%
+ lbSerialNo.Text = String.Format("Serial No: {0}", SystemData.Information.HwSerialNumber);
+ }
+ #endregion
+
+ #region TIMER ENVENT
+ private void tmrDisplay_Tick(object sender, EventArgs e)
+ {
+ DisplayValue();
+ if (OnUpdate != null)
+ {
+ OnUpdate(this);
+ }
+ }
+ #endregion
+
+ #region PUBLIC FUCTIONS
+ public void UpdateData(ref DeviceSystemData aSystemData)
+ {
+ SystemData = aSystemData;
+ }
+
+ public void RecvData(string result, bool error)
+ {
+ Cmd_Result(result, error);
+ }
+
+ public void Cmd_Result(string result, bool error)
+ {
+ if (this.InvokeRequired)
+ {
+ this.Invoke(new MethodInvoker(delegate ()
+ {
+ if (error)
+ MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ else
+ MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }));
+ }
+ else
+ {
+ if (error)
+ MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ else
+ MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+
+ private void btnClose_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+
+ private void BtnManuDateWrite_Click(object sender, EventArgs e)
+ {
+ if ((nManuDate.Text == "") || (nManuDate.Text.Length > 8))
+ {
+ MessageBox.Show("Check Manufacture Date Format", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+
+ byte[] crc;
+ ushort addr = 0x00A3;
+ int i = 0;
+ // Normal mode --> Bootloader mode
+ byte[] sdata = new byte[7 + 8 + 2];
+ sdata[i++] = (byte)SystemId; // Dev Address
+ sdata[i++] = 0x10; // Function Code
+ sdata[i++] = (byte)(addr >> 8); // Address H
+ sdata[i++] = (byte)(addr >> 0); // Address L
+ sdata[i++] = 0x00; // Number of Register H
+ sdata[i++] = 0x04; // Number of Register L
+ sdata[i++] = 0x08; // Byte Count
+
+ string str = nManuDate.Text;
+ byte[] aData = Encoding.UTF8.GetBytes(str);
+
+ for (int j = 0; j < 8; j++)
+ {
+ sdata[i++] = aData[j];
+ }
+ crc = csSerialCommFunction.GetCRC(sdata, i);
+
+ sdata[i++] = crc[1]; // CRCH
+ sdata[i++] = crc[0]; // CRCL
+
+ OnSendUartData?.Invoke(addr, sdata, false, 1);
+ }
+
+ private void BtnSerialNoWrite_Click(object sender, EventArgs e)
+ {
+ if ((nSerialNo.Text == "") || (nSerialNo.Text.Length > 16))
+ {
+ MessageBox.Show("Check Serial Number format", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+
+ byte[] crc;
+ ushort addr = 0x0078;
+ int i = 0;
+ // Normal mode --> Bootloader mode
+ byte[] sdata = new byte[7 + 16 + 2];
+ sdata[i++] = (byte)SystemId; // Dev Address
+ sdata[i++] = 0x10; // Function Code
+ sdata[i++] = (byte)(addr >> 8); // Address H
+ sdata[i++] = (byte)(addr >> 0); // Address L
+ sdata[i++] = 0x00; // Number of Register H
+ sdata[i++] = 0x08; // Number of Register L
+ sdata[i++] = 0x10; // Byte Count
+
+ string str = nSerialNo.Text;
+ byte[] aData = Encoding.UTF8.GetBytes(str);
+
+ for (int j = 0; j < aData.Length; j++)
+ {
+ sdata[i + j] = aData[j];
+ }
+ i += 16;
+ crc = csSerialCommFunction.GetCRC(sdata, i);
+
+ sdata[i++] = crc[1]; // CRCH
+ sdata[i++] = crc[0]; // CRCL
+
+ OnSendUartData?.Invoke(addr, sdata, false, 1);
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxInventoryConfig.resx b/LFP_Manager/Forms/fmxInventoryConfig.resx
new file mode 100644
index 0000000..eefd1cf
--- /dev/null
+++ b/LFP_Manager/Forms/fmxInventoryConfig.resx
@@ -0,0 +1,4574 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+
+ AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA
+ GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/
+ ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7/////////////////////
+ ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff/////////
+ ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+
+ /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7/////
+ ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc
+ x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7/////////////////////////////
+ ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt
+ e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP
+ SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7/////////
+ ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z
+ WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS
+ Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8
+ +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+
+ /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+
+ /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO
+ SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz
+ 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o
+ 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9
+ /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE
+ oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG
+ PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7/////
+ ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH
+ PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t
+ 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/
+ ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/
+ ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7/////////////////////////////
+ ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+
+ /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ
+ TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7/////////////////
+ ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ
+ TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+
+ /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7/////
+ ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP
+ SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7/////////////////////////////////////////
+ ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/
+ ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7/////////////////////////////
+ ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/
+ ///+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////+/v7////////+/v3////////////////////////+/v3////////+/v7/////////////////
+ ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7/////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ /////////v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v7////////+/v7/////////////////////////////////////
+ ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7/////////////////////
+ ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7
+ +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9
+ /Pz+/v7/////////////////////////////////////////////////////////////////////////
+ ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM
+ RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7/////////////////////////////////////
+ ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL
+ QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+
+ /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP
+ SgCOSQCPTAKFOwDVvaT////9/Pv+/v7/////////////////////////////////////////////////
+ ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8
+ +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7/////////
+ /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO
+ SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF
+ OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+
+ ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/
+ //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7/////////////////////////
+ ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/
+ mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79
+ /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN
+ RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ
+ TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7/////
+ ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7/////
+ ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+
+ /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ
+ TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP
+ SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH
+ PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/
+ ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5
+ 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+
+ /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ
+ QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE
+ oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/
+ ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7/////////////////////////
+ ///////////////////////////////////////////////////////+/v7+////////////////////
+ ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+
+ /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9
+ /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP
+ SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL
+ RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7/////////////////////////////////
+ ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/
+ ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7/////////
+ ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP
+ SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI
+ PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/
+ ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x
+ glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7/////////////////////////////
+ ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM
+ RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+
+ /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/
+ ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP
+ SgCOSgGLRQGTURDz7ef+/v39/f3+/v7/////////////////////////////////////////////////
+ ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+
+ /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7/////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN
+ RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9
+ /fz9/f3+/v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO
+ SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7/////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO
+ SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS
+ UA/y6+X+/v39/fz+/v7+/v7/////////////////////////////////////////////////////////
+ ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP
+ SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7/////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+
+ /v7/////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO
+ SQCOSQGJQQDi0cD////9/Pv+/v7/////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J
+ QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7/////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39
+ /fz+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz
+ hFazhFayhFazhVete1TWvqb////9/fz+/v7/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+
+ /f3+/f3/////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v7+////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////v7+
+ /f39////////////////////////////////////////////////////////////////////////////
+ ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39
+ /fz8/v79/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA
+ nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1////
+ x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV
+ i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC
+ jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC
+ hz8Ap3I//fz7/fz8/v79/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7
+ /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8
+ +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p
+ /v39/f38/v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+
+ ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb
+ 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+//7+/f39
+ /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7////
+ 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+
+ /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA
+ j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB
+ j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB
+ i0UAlVYZ8+3m/f79/f38/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+////////////////
+ /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39
+ /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+
+ sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+
+ /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+////////
+ /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+
+ /f39/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO
+ /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39
+ 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39
+ /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+////////////////////////////
+ /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+////
+ /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A
+ kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ jkoCikIC4tHA/////Pv7/v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC
+ hz4A1r6m/////Pz7/v7+/v7+/////v7+////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+
+ /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+////////////////////
+ /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM
+ /////Pv6/v7+/v7+/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA
+ j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+
+ /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7
+ /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq////
+ /Pv6/v7+/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A
+ j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA
+ kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA
+ j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6
+ /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+////////
+ /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+
+ /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA
+ xaJ//////Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU
+ /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA
+ j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+////////////
+ 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+
+ /////v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39
+ /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/
+ /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6
+ ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+
+ /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC
+ kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB
+ kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39////
+ /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA
+ hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA
+ iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A
+ j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU
+ z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+////////
+ /v7+/////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7//v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn
+ +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3
+ +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8
+ /fz8/v7+/////v7+/////v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v///v7+/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT
+ z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7
+ ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A
+ hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A
+ fS0AtIdb/f38/Pz8///+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D
+ kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL
+ jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA
+ jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3
+ iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA
+ jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA
+ jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK
+ 6t7S/v7+/fz8/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs////
+ /Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7
+ /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38
+ /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fz8
+ /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+////////////////////////////////////
+ /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+
+ /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA
+ jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A
+ pnA8/Pv6/fz7/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq
+ iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+
+ /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+////////////
+ /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+
+ //7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A
+ 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES
+ jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+////////////////
+ /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6
+ /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7
+ /v79/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v39
+ /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8
+ +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+
+ /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ
+ hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ
+ 8+3m/f39/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+
+ /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA
+ jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA
+ u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA
+ j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA
+ jkkCikQE49PC/v7//fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8
+ /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+
+ /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7////
+ t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA
+ jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU
+ hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD
+ /////fz8//7//v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA
+ oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC
+ hj0Az7SX/////fz7//7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+//7+
+ /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH
+ jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA
+ jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT////
+ /Pz8/v7//v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA
+ t4tf/////fz7/v7+/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs
+ mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6
+ /v7+/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v7+
+ /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx
+ +/n3/fz8/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+
+ rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA
+ jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW
+ k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV
+ kU8TmVoj8ejg/v39/fz7/v7//f39/v//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off
+ 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v////7+/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v39/v7+
+ ///+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/v//////
+ /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v79/////////v7+/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v79/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////9/Lt9/Pu
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2svnmMrzrGR/////fz7////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ
+ /v39/fz8/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h
+ /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0////
+ 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC
+ j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ jUgBlFIO7uTa/////f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB
+ jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+
+ /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38////////////////////
+ /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z
+ iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+
+ sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG////
+ /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ hz4Ar35J/v39/fz8/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+////////
+ /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38////////////////////////////////
+ /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+////////////////////////////////////////////
+ /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA
+ /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW
+ k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+
+ /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+////////////////////
+ /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iEAA176j/////fz7////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39////////////////////////////////////////////
+ ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38
+ /fz8/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEA1buf/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+////////////
+ /////////////////////////////////////////////////////////////////////fz7////yKaB
+ hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v///f38////sH9K
+ hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oBi0QAnmIj9vHs/v39/v39////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA
+ nWAf9vHs/v7+/v79////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo////
+ /fz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v///f38////
+ 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/v79+/n3omor
+ ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm
+ +PTw/v39/f39////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sBjEUAmVwb9e/p/v7+/f38////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A
+ vpVq/////fz7/v/+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8AyKaB/////fz7/v///v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39
+ //7/////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC
+ jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsCiD8Auo9h/////fz8/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE
+ iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB
+ 4tC+/////f38/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjUcBk1EN7+Xb/////f39/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj
+ n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f38////u5Jlhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkBjUgE4M66/////fz7/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR
+ 7+bd/v7+/f39////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv
+ +/n4/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0
+ rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6
+ ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC
+ hz4AtolZ/////fz8/v3+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA
+ j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ j0sBikIApGww+vj1/v39/f39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ
+ j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M
+ /////Pz7/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkCjkkG4c+7/////fz7/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+///+/v39
+ /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d////
+ /fz7/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/f38/f38
+ 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A
+ jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sBiD8AyKiE/////fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oBiUEApW4z+vj1/v39/v39////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ
+ /v7+/f38/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4
+ 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD
+ 49PB/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/Pz7////
+ 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6////
+ /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A
+ j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC
+ iUEAqHQ7+/j2/fz8/v39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jUgBkk8K7ODV/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL////
+ /f38/v7+///+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6////////
+ ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A
+ ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38
+ /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBiUEA1Lqd/////fv6////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38
+ sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////v7+/v39
+ /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq
+ 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38
+ /v39/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjUgBkU4J6NrM/////fz8////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA
+ jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEArnxG/v7+/f38/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO
+ 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i////
+ /Pz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA
+ hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr
+ vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g
+ 4M24/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY
+ llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+////////////////////////////
+ /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsCiUEArXpD/v7//f39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB
+ ikMA1bqf/////fz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39
+ /f38/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39
+ /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/////////v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI
+ iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8////
+ /fz8////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA
+ mVsZ8+zl/v38/fz8////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7
+ /v7+//7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz7/v7+
+ 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf
+ 9vHs/v79/fz8////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z
+ iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAi0YAl1gT8+3l/v7+/f39////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA
+ upFj/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC
+ hz4AwZty/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////f39
+ /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC
+ jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ
+ hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsChz4At4ta/////fz8/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjUgCkEwL6dzO/////fz7////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD
+ 38y3/////fz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v/+/f39/v79
+ +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////fz8
+ /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A
+ kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK
+ 5tbG/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBjUcB4M25/////f38/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos
+ +PTw/fz8/f39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v//////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA
+ kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB
+ iUAAq3dA/Pr4/fz7/f39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v///fz7
+ ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA
+ j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0oBikMAomgq+vf0/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////Pz7////4M24
+ i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiUEA0rea/////fz7/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7
+ /v38/v39/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////f38/v79
+ +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/f38
+ ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ kEwChz4AxaJ8/////fz7/v7+////////////////////////////////////////////////////////
+ ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA
+ 07mb/////Pz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU
+ /v7+/Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+////
+ //////////////////////////////////////////////////////////////////////////////7/
+ /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7/////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+////////////////////////////
+ /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jEQAm10b9O/p/v7+/f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+////////////////////////////////////////
+ /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7
+ /v7//v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jUgAklAK6dzO/////f38/v//////////////////////////////////////////////////////////
+ /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6
+ /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng
+ lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+
+ /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiD8Au5Jl/////fz8/v7+//7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+////////////////////
+ /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj
+ /v39/fz8/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+////////////////////////////
+ /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8
+ ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb////
+ /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A
+ upFj/////fz8/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+
+ /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7////////////////////////
+ /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf
+ llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA
+ kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkBjUcA49LA/////f38/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79
+ /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3
+ qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8////0baX
+ iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD
+ /////fz8/v//////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA
+ nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA
+ qHI4/Pv5/v39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+
+ iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ kEsChz8Az7KS/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7
+ /v39/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v39
+ /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////fz8////59jIj0oD
+ jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ
+ /////fz8////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB
+ llYW7+Xb/v7+/f38/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0wChz8AuIxc/v7+/fz7/v39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+
+ /v39/v//////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fv6
+ ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAjkkBjEYA4M24/////fz8/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa
+ /////f38////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v39/fz7
+ 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB
+ jUcE3sq2/////Pz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oBikMAomgq+fXy/v39/f39////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/fz7////
+ 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq
+ +vf1/f38/f39//7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39
+ tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS
+ yqqM38u2/////v79/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/v79////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v79/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxMain.Designer.cs b/LFP_Manager/Forms/fmxMain.Designer.cs
new file mode 100644
index 0000000..d33675f
--- /dev/null
+++ b/LFP_Manager/Forms/fmxMain.Designer.cs
@@ -0,0 +1,470 @@
+namespace LFP_Manager.Forms
+{
+ partial class fmxMain
+ {
+ ///
+ /// 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()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxMain));
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.chbPolling = new DevExpress.XtraEditors.CheckEdit();
+ this.edModuleID = new DevExpress.XtraEditors.TextEdit();
+ this.statusStrip1 = new System.Windows.Forms.StatusStrip();
+ this.CommStatusBar = new System.Windows.Forms.ToolStripStatusLabel();
+ this.HeatBeatStatusBar = new System.Windows.Forms.ToolStripStatusLabel();
+ this.LogStatusBar = new System.Windows.Forms.ToolStripStatusLabel();
+ this.uDataLog = new LFP_Manager.Controls.ucDataLog();
+ this.uEventLog = new LFP_Manager.Controls.ucEventLog();
+ this.tabStatus = new DevExpress.XtraTab.XtraTabControl();
+ this.pgMain = new DevExpress.XtraTab.XtraTabPage();
+ this.uTarget = new LFP_Manager.Controls.ucTargetControl();
+ this.layoutControlMain = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcitemSystemId = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem16 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.tmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.mnMain = new System.Windows.Forms.MenuStrip();
+ this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.levelConfigToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.changeLeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.changePasswordToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.historyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.historyViewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.inventoryViewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.updateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.firmwareUpdateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.chbPolling.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edModuleID.Properties)).BeginInit();
+ this.statusStrip1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.tabStatus)).BeginInit();
+ this.tabStatus.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlMain)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemSystemId)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).BeginInit();
+ this.mnMain.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.AllowCustomization = false;
+ this.layoutControl1.Controls.Add(this.chbPolling);
+ this.layoutControl1.Controls.Add(this.edModuleID);
+ this.layoutControl1.Controls.Add(this.statusStrip1);
+ this.layoutControl1.Controls.Add(this.uDataLog);
+ this.layoutControl1.Controls.Add(this.uEventLog);
+ this.layoutControl1.Controls.Add(this.tabStatus);
+ this.layoutControl1.Controls.Add(this.uTarget);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 24);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(577, 118, 783, 350);
+ this.layoutControl1.Root = this.layoutControlMain;
+ this.layoutControl1.Size = new System.Drawing.Size(1314, 857);
+ this.layoutControl1.TabIndex = 1;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // chbPolling
+ //
+ this.chbPolling.Location = new System.Drawing.Point(1254, 660);
+ this.chbPolling.Name = "chbPolling";
+ this.chbPolling.Properties.Caption = "Polling";
+ this.chbPolling.Size = new System.Drawing.Size(57, 20);
+ this.chbPolling.StyleController = this.layoutControl1;
+ this.chbPolling.TabIndex = 5;
+ this.chbPolling.CheckedChanged += new System.EventHandler(this.chbPolling_CheckedChanged);
+ //
+ // edModuleID
+ //
+ this.edModuleID.EditValue = "1";
+ this.edModuleID.Location = new System.Drawing.Point(1181, 660);
+ this.edModuleID.Name = "edModuleID";
+ this.edModuleID.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 10F);
+ this.edModuleID.Properties.Appearance.Options.UseFont = true;
+ this.edModuleID.Properties.Appearance.Options.UseTextOptions = true;
+ this.edModuleID.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.edModuleID.Size = new System.Drawing.Size(69, 22);
+ this.edModuleID.StyleController = this.layoutControl1;
+ this.edModuleID.TabIndex = 4;
+ this.edModuleID.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.edSystemId_KeyPress);
+ //
+ // statusStrip1
+ //
+ this.statusStrip1.AutoSize = false;
+ this.statusStrip1.Dock = System.Windows.Forms.DockStyle.None;
+ this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.CommStatusBar,
+ this.HeatBeatStatusBar,
+ this.LogStatusBar});
+ this.statusStrip1.Location = new System.Drawing.Point(3, 834);
+ this.statusStrip1.Name = "statusStrip1";
+ this.statusStrip1.Size = new System.Drawing.Size(1308, 20);
+ this.statusStrip1.TabIndex = 1;
+ this.statusStrip1.Text = "statusStrip1";
+ //
+ // CommStatusBar
+ //
+ this.CommStatusBar.AutoSize = false;
+ this.CommStatusBar.ForeColor = System.Drawing.Color.Black;
+ this.CommStatusBar.Name = "CommStatusBar";
+ this.CommStatusBar.Size = new System.Drawing.Size(200, 15);
+ this.CommStatusBar.Text = "Comm: OFF";
+ this.CommStatusBar.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // HeatBeatStatusBar
+ //
+ this.HeatBeatStatusBar.AutoSize = false;
+ this.HeatBeatStatusBar.ForeColor = System.Drawing.Color.Black;
+ this.HeatBeatStatusBar.Name = "HeatBeatStatusBar";
+ this.HeatBeatStatusBar.Size = new System.Drawing.Size(200, 15);
+ this.HeatBeatStatusBar.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // LogStatusBar
+ //
+ this.LogStatusBar.AutoSize = false;
+ this.LogStatusBar.Name = "LogStatusBar";
+ this.LogStatusBar.Size = new System.Drawing.Size(650, 15);
+ this.LogStatusBar.Text = "Log Stop";
+ this.LogStatusBar.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ //
+ // uDataLog
+ //
+ this.uDataLog.Location = new System.Drawing.Point(1149, 686);
+ this.uDataLog.Name = "uDataLog";
+ this.uDataLog.Size = new System.Drawing.Size(162, 144);
+ this.uDataLog.TabIndex = 6;
+ //
+ // uEventLog
+ //
+ this.uEventLog.Location = new System.Drawing.Point(3, 660);
+ this.uEventLog.Name = "uEventLog";
+ this.uEventLog.Size = new System.Drawing.Size(1142, 170);
+ this.uEventLog.TabIndex = 3;
+ //
+ // tabStatus
+ //
+ this.tabStatus.Location = new System.Drawing.Point(3, 68);
+ this.tabStatus.Name = "tabStatus";
+ this.tabStatus.SelectedTabPage = this.pgMain;
+ this.tabStatus.Size = new System.Drawing.Size(1308, 588);
+ this.tabStatus.TabIndex = 2;
+ this.tabStatus.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] {
+ this.pgMain});
+ //
+ // pgMain
+ //
+ this.pgMain.Name = "pgMain";
+ this.pgMain.Size = new System.Drawing.Size(1306, 562);
+ this.pgMain.Text = "RealTime Data";
+ //
+ // uTarget
+ //
+ this.uTarget.Location = new System.Drawing.Point(3, 3);
+ this.uTarget.Name = "uTarget";
+ this.uTarget.Size = new System.Drawing.Size(1308, 61);
+ this.uTarget.TabIndex = 0;
+ //
+ // layoutControlMain
+ //
+ this.layoutControlMain.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlMain.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlMain.GroupBordersVisible = false;
+ this.layoutControlMain.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1,
+ this.layoutControlItem2,
+ this.layoutControlItem6,
+ this.layoutControlItem7,
+ this.layoutControlItem8,
+ this.lcitemSystemId,
+ this.layoutControlItem16});
+ this.layoutControlMain.Name = "Root";
+ this.layoutControlMain.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlMain.Size = new System.Drawing.Size(1314, 857);
+ this.layoutControlMain.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.uTarget;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.MaxSize = new System.Drawing.Size(0, 65);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(350, 65);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(1312, 65);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.tabStatus;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 65);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(1312, 592);
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.uEventLog;
+ this.layoutControlItem6.CustomizationFormText = "layoutControlItem6";
+ this.layoutControlItem6.Location = new System.Drawing.Point(0, 657);
+ this.layoutControlItem6.MaxSize = new System.Drawing.Size(0, 174);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(209, 174);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(1146, 174);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.uDataLog;
+ this.layoutControlItem7.CustomizationFormText = "layoutControlItem7";
+ this.layoutControlItem7.Location = new System.Drawing.Point(1146, 683);
+ this.layoutControlItem7.MaxSize = new System.Drawing.Size(166, 0);
+ this.layoutControlItem7.MinSize = new System.Drawing.Size(166, 24);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(166, 148);
+ this.layoutControlItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem7.TextVisible = false;
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.statusStrip1;
+ this.layoutControlItem8.CustomizationFormText = "layoutControlItem8";
+ this.layoutControlItem8.Location = new System.Drawing.Point(0, 831);
+ this.layoutControlItem8.MaxSize = new System.Drawing.Size(0, 24);
+ this.layoutControlItem8.MinSize = new System.Drawing.Size(104, 24);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(1312, 24);
+ this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem8.TextVisible = false;
+ //
+ // lcitemSystemId
+ //
+ this.lcitemSystemId.Control = this.edModuleID;
+ this.lcitemSystemId.CustomizationFormText = "System Id";
+ this.lcitemSystemId.Location = new System.Drawing.Point(1146, 657);
+ this.lcitemSystemId.MinSize = new System.Drawing.Size(57, 26);
+ this.lcitemSystemId.Name = "lcitemSystemId";
+ this.lcitemSystemId.Size = new System.Drawing.Size(105, 26);
+ this.lcitemSystemId.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemSystemId.Text = " ID ";
+ this.lcitemSystemId.TextSize = new System.Drawing.Size(20, 14);
+ //
+ // layoutControlItem16
+ //
+ this.layoutControlItem16.Control = this.chbPolling;
+ this.layoutControlItem16.CustomizationFormText = "layoutControlItem16";
+ this.layoutControlItem16.Location = new System.Drawing.Point(1251, 657);
+ this.layoutControlItem16.Name = "layoutControlItem16";
+ this.layoutControlItem16.Size = new System.Drawing.Size(61, 26);
+ this.layoutControlItem16.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem16.TextVisible = false;
+ //
+ // tmrDisplay
+ //
+ this.tmrDisplay.Enabled = true;
+ this.tmrDisplay.Interval = 500;
+ this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick);
+ //
+ // mnMain
+ //
+ this.mnMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.fileToolStripMenuItem,
+ this.historyToolStripMenuItem,
+ this.updateToolStripMenuItem});
+ this.mnMain.Location = new System.Drawing.Point(0, 0);
+ this.mnMain.Name = "mnMain";
+ this.mnMain.Size = new System.Drawing.Size(1314, 24);
+ this.mnMain.TabIndex = 2;
+ this.mnMain.Text = "menuStrip1";
+ //
+ // fileToolStripMenuItem
+ //
+ this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.levelConfigToolStripMenuItem,
+ this.exitToolStripMenuItem});
+ this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
+ this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
+ this.fileToolStripMenuItem.Text = "File";
+ //
+ // levelConfigToolStripMenuItem
+ //
+ this.levelConfigToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.changeLeToolStripMenuItem,
+ this.changePasswordToolStripMenuItem});
+ this.levelConfigToolStripMenuItem.Name = "levelConfigToolStripMenuItem";
+ this.levelConfigToolStripMenuItem.Size = new System.Drawing.Size(141, 22);
+ this.levelConfigToolStripMenuItem.Text = "Level Config";
+ this.levelConfigToolStripMenuItem.Click += new System.EventHandler(this.levelConfigToolStripMenuItem_Click);
+ //
+ // changeLeToolStripMenuItem
+ //
+ this.changeLeToolStripMenuItem.Name = "changeLeToolStripMenuItem";
+ this.changeLeToolStripMenuItem.Size = new System.Drawing.Size(169, 22);
+ this.changeLeToolStripMenuItem.Text = "Change Level";
+ this.changeLeToolStripMenuItem.Click += new System.EventHandler(this.changeLeToolStripMenuItem_Click);
+ //
+ // changePasswordToolStripMenuItem
+ //
+ this.changePasswordToolStripMenuItem.Name = "changePasswordToolStripMenuItem";
+ this.changePasswordToolStripMenuItem.Size = new System.Drawing.Size(169, 22);
+ this.changePasswordToolStripMenuItem.Text = "Change Password";
+ this.changePasswordToolStripMenuItem.Click += new System.EventHandler(this.changePasswordToolStripMenuItem_Click);
+ //
+ // exitToolStripMenuItem
+ //
+ this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
+ this.exitToolStripMenuItem.Size = new System.Drawing.Size(141, 22);
+ this.exitToolStripMenuItem.Text = "Exit";
+ this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
+ //
+ // historyToolStripMenuItem
+ //
+ this.historyToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.historyViewToolStripMenuItem,
+ this.inventoryViewToolStripMenuItem});
+ this.historyToolStripMenuItem.Name = "historyToolStripMenuItem";
+ this.historyToolStripMenuItem.Size = new System.Drawing.Size(57, 20);
+ this.historyToolStripMenuItem.Text = "History";
+ //
+ // historyViewToolStripMenuItem
+ //
+ this.historyViewToolStripMenuItem.Name = "historyViewToolStripMenuItem";
+ this.historyViewToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.historyViewToolStripMenuItem.Text = "History View";
+ this.historyViewToolStripMenuItem.Click += new System.EventHandler(this.historyViewToolStripMenuItem_Click);
+ //
+ // inventoryViewToolStripMenuItem
+ //
+ this.inventoryViewToolStripMenuItem.Name = "inventoryViewToolStripMenuItem";
+ this.inventoryViewToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.inventoryViewToolStripMenuItem.Text = "Inventory View";
+ this.inventoryViewToolStripMenuItem.Click += new System.EventHandler(this.inventoryViewToolStripMenuItem_Click);
+ //
+ // updateToolStripMenuItem
+ //
+ this.updateToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.firmwareUpdateToolStripMenuItem});
+ this.updateToolStripMenuItem.Name = "updateToolStripMenuItem";
+ this.updateToolStripMenuItem.Size = new System.Drawing.Size(57, 20);
+ this.updateToolStripMenuItem.Text = "Update";
+ //
+ // firmwareUpdateToolStripMenuItem
+ //
+ this.firmwareUpdateToolStripMenuItem.Name = "firmwareUpdateToolStripMenuItem";
+ this.firmwareUpdateToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.firmwareUpdateToolStripMenuItem.Text = "Firmware Update";
+ this.firmwareUpdateToolStripMenuItem.Click += new System.EventHandler(this.firmwareUpdateToolStripMenuItem_Click);
+ //
+ // fmxMain
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(1314, 881);
+ this.Controls.Add(this.layoutControl1);
+ this.Controls.Add(this.mnMain);
+ this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("fmxMain.IconOptions.Icon")));
+ this.Name = "fmxMain";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "LFP SYSTEM";
+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.fmxMain_FormClosing);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.chbPolling.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.edModuleID.Properties)).EndInit();
+ this.statusStrip1.ResumeLayout(false);
+ this.statusStrip1.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.tabStatus)).EndInit();
+ this.tabStatus.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlMain)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemSystemId)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).EndInit();
+ this.mnMain.ResumeLayout(false);
+ this.mnMain.PerformLayout();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlMain;
+ private Controls.ucTargetControl uTarget;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraTab.XtraTabControl tabStatus;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private Controls.ucEventLog uEventLog;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private Controls.ucDataLog uDataLog;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ private System.Windows.Forms.StatusStrip statusStrip1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ private System.Windows.Forms.ToolStripStatusLabel CommStatusBar;
+ private System.Windows.Forms.ToolStripStatusLabel LogStatusBar;
+ private System.Windows.Forms.ToolStripStatusLabel HeatBeatStatusBar;
+ private DevExpress.XtraEditors.TextEdit edModuleID;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemSystemId;
+ private DevExpress.XtraTab.XtraTabPage pgMain;
+ //private Controls.ucMainStatus ucMsGraph;
+ private DevExpress.XtraEditors.CheckEdit chbPolling;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem16;
+ private System.Windows.Forms.Timer tmrDisplay;
+ private System.Windows.Forms.MenuStrip mnMain;
+ private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem historyToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem historyViewToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem updateToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem firmwareUpdateToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem inventoryViewToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem levelConfigToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem changeLeToolStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem changePasswordToolStripMenuItem;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxMain.cs b/LFP_Manager/Forms/fmxMain.cs
new file mode 100644
index 0000000..fac204e
--- /dev/null
+++ b/LFP_Manager/Forms/fmxMain.cs
@@ -0,0 +1,1239 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+using LFP_Manager.Forms;
+using LFP_Manager.Controls;
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Threads;
+using LFP_Manager.Utils;
+using DevExpress.Utils.Drawing.Helpers;
+using System.Threading.Tasks;
+
+namespace LFP_Manager.Forms
+{
+ public partial class fmxMain : DevExpress.XtraEditors.XtraForm
+ {
+ #region VARIABLES
+
+ // Child form
+ private fmxInventoryConfig InventoryConfig = null;
+ private fmxModuleDetail ModuleDetailForm = null;
+ private fmxFwUpdate FwUpdateForm = null;
+ private fmxHistory HistoryForm = null;
+
+ // Static Variables
+ private CommConfig Config = new CommConfig();
+ private DeviceSystemTotalData SystemTotalData;
+ private DeviceSystemData[] SystemData;
+
+ // Thread Variables
+ private csUartThread uartThread = null;
+ private CsUartThread124050 rs232Thread124050 = null;
+ private CsUartThreadDelta rs485Thread = null;
+ private CsRs485Thread124050 rs485Thread124050 = null;
+ private CsSnmpThread snmpThread = null;
+ private CsSnmpThread124050 snmpThread124050 = null;
+
+ private csDbThread dbThread = null;
+
+ private ucMainStatus MainStatus = null;
+ private ucShelfStatus ShelfStatus = null;
+
+ private int ModuleID = 1;
+
+ bool Active = false;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public fmxMain()
+ {
+ InitializeComponent();
+
+ StructDataInit();
+ //DataInit();
+
+ IniLoad(ref Config);
+
+ uTarget.OnConfig += ConfigButtonClick;
+ uTarget.OnStart += StartButtonClick;
+
+ uDataLog.OnUpdate += LogStatusUpdate;
+
+ DisplaySystemFwVerModule();
+ }
+
+ private void IniLoad(ref CommConfig aConfig)
+ {
+ csIniControlFunction.IniLoad(Application.ExecutablePath, ref aConfig);
+
+ uTarget.UpdateConfig(ref aConfig);
+
+ TypeChangedUpdate(ref aConfig);
+ }
+
+ private void StructDataInit()
+ {
+ SystemTotalData = new DeviceSystemTotalData
+ {
+ ValueData = new DeviceValueTotalData(),
+ StatusData = new DeviceStatusTotalData()
+ };
+
+ SystemData = new DeviceSystemData[csConstData.SystemInfo.MAX_MODULE_SIZE];
+
+ for (int i = 0; i < csConstData.SystemInfo.MAX_MODULE_SIZE; i++)
+ {
+ SystemData[i] = new DeviceSystemData();
+ }
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+
+ private void ConfigButtonClick(object sender, EventArgs e)
+ {
+ foreach (Form frm in Application.OpenForms)
+ {
+ if (frm.Name == "fmxCommConfig")
+ {
+ frm.Activate();
+ return;
+ }
+ }
+ fmxCommConfig CommConfigForm = new fmxCommConfig
+ {
+ Owner = this
+ };
+
+ CommConfigForm.OnUpdate += UpdateConfig;
+ CommConfigForm.Show();
+ }
+
+ private void StartButtonClick(object sender, EventArgs e)
+ {
+ if (Active)
+ {
+ StructDataInit();
+
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ switch (Config.UartModelIndex)
+ {
+ case csConstData.MODEL_INDEX.LFPM_124050D: // AMG Protocol
+ if (rs232Thread124050 != null)
+ {
+ rs232Thread124050.disposeThread();
+ rs232Thread124050 = null;
+ UpdateDataUart(this, ref SystemData[ModuleID - 1]);
+
+ edModuleID.Enabled = true;
+ chbPolling.Enabled = true;
+ }
+ break;
+ default:
+ if (uartThread != null)
+ {
+ uartThread.disposeThread();
+ uartThread = null;
+ UpdateDataUart(this, ref SystemData[ModuleID - 1]);
+
+ edModuleID.Enabled = true;
+ chbPolling.Enabled = true;
+ }
+ break;
+ }
+ break;
+ case csConstData.CommType.COMM_RS485:
+ // DELTA Protocol
+ switch (Config.UartModelIndex)
+ {
+ case csConstData.MODEL_INDEX.LFPM_124050D:
+ if (rs485Thread124050 != null)
+ {
+ rs485Thread124050.disposeThread();
+ rs485Thread124050 = null;
+ UpdateDataRS485(this, ref SystemData);
+
+ edModuleID.Enabled = true;
+ chbPolling.Enabled = true;
+ }
+ break;
+ default:
+ if (rs485Thread != null)
+ {
+ rs485Thread.disposeThread();
+ rs485Thread = null;
+ UpdateDataRS485(this, ref SystemData);
+
+ edModuleID.Enabled = true;
+ chbPolling.Enabled = true;
+ }
+ break;
+ }
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ break;
+ default:
+ break;
+ }
+
+ if (snmpThread != null)
+ {
+ snmpThread.disposeThread();
+ snmpThread = null;
+ UpdateSnmpData(this, ref SystemData[0]);
+ }
+
+ if (snmpThread124050 != null)
+ {
+ snmpThread124050.Dispose();
+ snmpThread124050 = null;
+ UpdateSnmpData(this, ref SystemData[0]);
+ }
+
+ if (dbThread != null)
+ {
+ dbThread.disposeThread();
+ dbThread = null;
+ }
+
+ Active = false;
+ }
+ else
+ {
+ try
+ {
+ ModuleID = Convert.ToInt16(edModuleID.Text);
+ }
+ catch (Exception)
+ {
+ MessageBox.Show("Wrong Module ID - Please check module ID", "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ // UART MODE - RS-232
+ switch (Config.UartModelIndex)
+ {
+ case csConstData.MODEL_INDEX.LFPM_124050D:
+ CommUARTStart124050();
+ break;
+ default:
+ CommUARTStart();
+ break;
+ }
+ break;
+ case csConstData.CommType.COMM_RS485:
+ // UART MODE - RS-485
+ switch (Config.UartModelIndex)
+ {
+ case csConstData.MODEL_INDEX.LFPM_124050D:
+ CommRS485_124050_Start();
+ break;
+ default:
+ CommRS485Start();
+ break;
+ }
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ switch (Config.SnmpModelIndex)
+ {
+ case csConstData.MODEL_INDEX.LFPM_124050D:
+ StartProcessSNMP124050();
+ break;
+ default:
+ StartProcessSNMP();
+ break;
+ }
+ break;
+ }
+ }
+ uTarget.UpdateStatus(Active);
+ uDataLog.UpdateActiveStatus(Active, ModuleID, Config, SystemData);
+ DisplayCommStatus();
+ }
+
+ private void UartRecvData(byte[] data)
+ {
+ if (this.InvokeRequired)
+ {
+ this.Invoke(new MethodInvoker(delegate ()
+ {
+ FwUpdateForm?.RecvData(data);
+ HistoryForm?.RecvUardData(data);
+ }));
+ }
+ else
+ {
+ FwUpdateForm?.RecvData(data);
+ HistoryForm?.RecvUardData(data);
+ }
+ }
+
+ private void CommUARTStart()
+ {
+ try
+ {
+ uartThread = new csUartThread(ModuleID, Config, ref SystemData[ModuleID - 1]);
+ uartThread.OnUpdate += UpdateDataUart;
+ uartThread.OnDataRecv += UartRecvData;
+ uartThread.OnPrint += CommDataPrint;
+ uartThread.SetPolling(chbPolling.Checked, ModuleID, ref SystemData[ModuleID - 1]);
+
+ if (uartThread.Start(ref Config, ModuleID, chbPolling.Checked))
+ {
+ Active = true;
+ edModuleID.Enabled = false;
+ chbPolling.Enabled = true;
+
+ if (chbPolling.Checked)
+ edModuleID.Enabled = false;
+ else
+ edModuleID.Enabled = true;
+
+ uartThread.SetPolling(chbPolling.Checked, ModuleID, ref SystemData[ModuleID - 1]);
+ ShelfStatus?.UpdateSystemId(ModuleID);
+
+ dbThread = new csDbThread(ModuleID, Config, SystemData);
+ dbThread.Start(ModuleID, Config);
+ }
+ else
+ {
+ if (uartThread != null)
+ {
+ uartThread.disposeThread();
+ uartThread = null;
+ }
+ if (dbThread != null)
+ {
+ dbThread.disposeThread();
+ dbThread = null;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+
+ if (uartThread != null)
+ {
+ uartThread.disposeThread();
+ uartThread = null;
+ }
+ if (dbThread != null)
+ {
+ dbThread.disposeThread();
+ dbThread = null;
+ }
+ }
+ }
+ private void CommUARTStart124050()
+ {
+ try
+ {
+ rs232Thread124050 = new CsUartThread124050(ModuleID, Config, ref SystemData[ModuleID - 1]);
+ rs232Thread124050.OnUpdate += UpdateDataUart;
+ rs232Thread124050.OnDataRecv += UartRecvData;
+ rs232Thread124050.OnPrint += CommDataPrint;
+ rs232Thread124050.SetPolling(chbPolling.Checked, ModuleID, ref SystemData[ModuleID - 1]);
+
+ if (rs232Thread124050.Start(ref Config, ModuleID, chbPolling.Checked))
+ {
+ // UI 스레드에서 실행 보장
+ this.Invoke((Action)(() =>
+ {
+ Active = true;
+ edModuleID.Enabled = false;
+ chbPolling.Enabled = true;
+
+ edModuleID.Enabled = !chbPolling.Checked;
+
+ rs232Thread124050.SetPolling(chbPolling.Checked, ModuleID, ref SystemData[ModuleID - 1]);
+ ShelfStatus?.UpdateSystemId(ModuleID);
+
+ dbThread = new csDbThread(ModuleID, Config, SystemData);
+ dbThread.Start(ModuleID, Config);
+ }));
+ }
+ else
+ {
+ if (rs232Thread124050 != null)
+ {
+ rs232Thread124050.disposeThread();
+ rs232Thread124050 = null;
+ }
+ if (dbThread != null)
+ {
+ dbThread.disposeThread();
+ dbThread = null;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ Active = false;
+
+ if (rs232Thread124050 != null)
+ {
+ rs232Thread124050.disposeThread();
+ rs232Thread124050 = null;
+ }
+ if (dbThread != null)
+ {
+ dbThread.disposeThread();
+ dbThread = null;
+ }
+
+ MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ private void CommRS485Start()
+ {
+ try
+ {
+ rs485Thread = new CsUartThreadDelta(ModuleID, Config, ref SystemData);
+ rs485Thread.OnUpdate += UpdateDataRS485;
+ rs485Thread.OnDataRecv += UartRecvData;
+ rs485Thread.OnPrint += CommDataPrint;
+ rs485Thread.SetPolling(chbPolling.Checked, ModuleID, ref SystemData);
+
+ if (rs485Thread.Start(ref Config, ModuleID, chbPolling.Checked))
+ {
+ Active = true;
+ edModuleID.Enabled = false;
+ chbPolling.Enabled = true;
+
+ edModuleID.Enabled = !chbPolling.Checked;
+
+ rs485Thread.SetPolling(chbPolling.Checked, ModuleID, ref SystemData);
+ ShelfStatus?.UpdateSystemId(ModuleID);
+
+ dbThread = new csDbThread(ModuleID, Config, SystemData);
+ dbThread.Start(ModuleID, Config);
+ }
+ else
+ {
+ if (rs485Thread != null)
+ {
+ rs485Thread.disposeThread();
+ rs485Thread = null;
+ }
+ if (dbThread != null)
+ {
+ dbThread.disposeThread();
+ dbThread = null;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+
+ if (rs485Thread != null)
+ {
+ rs485Thread.disposeThread();
+ rs485Thread = null;
+ }
+ if (dbThread != null)
+ {
+ dbThread.disposeThread();
+ dbThread = null;
+ }
+ }
+ }
+
+ private void CommRS485_124050_Start()
+ {
+ try
+ {
+ rs485Thread124050 = new CsRs485Thread124050(ModuleID, Config, ref SystemData);
+ rs485Thread124050.OnUpdate += UpdateDataRS485;
+ rs485Thread124050.OnDataRecv += UartRecvData;
+ rs485Thread124050.OnPrint += CommDataPrint;
+ rs485Thread124050.SetPolling(chbPolling.Checked, ModuleID, ref SystemData);
+
+ if (rs485Thread124050.Start(ref Config, ModuleID, chbPolling.Checked))
+ {
+ Active = true;
+ edModuleID.Enabled = false;
+ chbPolling.Enabled = true;
+
+ edModuleID.Enabled = !chbPolling.Checked;
+
+ rs485Thread124050.SetPolling(chbPolling.Checked, ModuleID, ref SystemData);
+ ShelfStatus?.UpdateSystemId(ModuleID);
+
+ dbThread = new csDbThread(ModuleID, Config, SystemData);
+ dbThread.Start(ModuleID, Config);
+ }
+ else
+ {
+ if (rs485Thread124050 != null)
+ {
+ rs485Thread124050.disposeThread();
+ rs485Thread124050 = null;
+ }
+ if (dbThread != null)
+ {
+ dbThread.disposeThread();
+ dbThread = null;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+
+ if (rs485Thread124050 != null)
+ {
+ rs485Thread124050.disposeThread();
+ rs485Thread124050 = null;
+ }
+ if (dbThread != null)
+ {
+ dbThread.disposeThread();
+ dbThread = null;
+ }
+ }
+ }
+
+ private void StartProcessSNMP()
+ {
+ try
+ {
+ snmpThread = new CsSnmpThread(Config, ref SystemData[ModuleID - 1]);
+ snmpThread.OnUpdate += UpdateSnmpData;
+ snmpThread.OnSetResult += SnmpRecvData;
+ snmpThread.Start(Config.SnmpIP, chbPolling.Checked);
+
+ Active = true;
+
+ dbThread = new csDbThread(ModuleID, Config, SystemData);
+ dbThread.Start(ModuleID, Config);
+ }
+ catch (Exception)
+ {
+ if (snmpThread == null)
+ {
+ snmpThread.disposeThread();
+ snmpThread = null;
+ }
+ if (dbThread != null)
+ {
+ dbThread.disposeThread();
+ dbThread = null;
+ }
+ }
+ }
+ private void StartProcessSNMP124050()
+ {
+ try
+ {
+ snmpThread124050 = new CsSnmpThread124050(Config, ref SystemData[ModuleID - 1]);
+ snmpThread124050.OnUpdate += UpdateSnmpData;
+ snmpThread124050.OnSetResult += SnmpRecvData;
+ snmpThread124050.Start(Config.SnmpIP, chbPolling.Checked);
+
+ Active = true;
+
+ dbThread = new csDbThread(ModuleID, Config, SystemData);
+ dbThread.Start(ModuleID, Config);
+ }
+ catch (Exception)
+ {
+ if (snmpThread124050 == null)
+ {
+ snmpThread124050.Dispose();
+ snmpThread124050 = null;
+ }
+ if (dbThread != null)
+ {
+ dbThread.disposeThread();
+ dbThread = null;
+ }
+ }
+ }
+
+ #endregion
+
+ #region UPDATE FUNCTIONS
+
+ private void TypeChangeUpdateUart(ref CommConfig aConfig)
+ {
+ tabStatus.TabPages[0].PageVisible = true;
+ for (int i = 1; i < tabStatus.TabPages.Count; i++)
+ {
+ tabStatus.TabPages[i].PageVisible = false;
+ }
+ tabStatus.TabPages[0].Text = String.Format("LFP Module [{0}.{1}.{2}.{3}]"
+ , 0
+ , 0
+ , 0
+ , 0
+ );
+ ShelfStatus = new ucShelfStatus();
+ ShelfStatus.OnCommand += SetCmdEvent;
+ ShelfStatus.Dock = DockStyle.Fill;
+
+ tabStatus.TabPages[0].PageVisible = true;
+ tabStatus.TabPages[0].Controls.Add(ShelfStatus);
+
+ ShelfStatus.Start(Convert.ToInt32(edModuleID.Text), ref aConfig, ref SystemData);
+
+ edModuleID.Enabled = true;
+ chbPolling.Enabled = true;
+ }
+ private void TypeChangeUpdateRS485(ref CommConfig aConfig)
+ {
+ // Display Screen Delete
+ if (MainStatus != null)
+ {
+ MainStatus.Dispose();
+ MainStatus = null;
+ }
+
+ if (ShelfStatus != null)
+ {
+ ShelfStatus.Dispose();
+ ShelfStatus = null;
+ }
+ if (aConfig.ModuleQty > 1)
+ {
+ // All disable first
+ for (int i = 0; i < tabStatus.TabPages.Count; i++)
+ {
+ tabStatus.TabPages[i].PageVisible = false;
+ }
+
+ MainStatus = new ucMainStatus();
+ MainStatus.OnCommand += SetCmdEvent;
+
+ tabStatus.TabPages[0].Text = string.Format("LFP System");
+ tabStatus.TabPages[0].PageVisible = true;
+ tabStatus.TabPages[0].Controls.Add(MainStatus);
+ MainStatus.Dock = DockStyle.Fill;
+ MainStatus.UpdateMainConfig(ref Config, ref SystemData);
+
+ //SystemTotalData.IdentData.ModuleQuantity = Config.ModuleQty;
+
+ edModuleID.Enabled = false;
+ chbPolling.Enabled = false;
+ }
+ else
+ {
+ tabStatus.TabPages[0].PageVisible = true;
+ for (int i = 1; i < tabStatus.TabPages.Count; i++)
+ {
+ tabStatus.TabPages[i].PageVisible = false;
+ }
+ tabStatus.TabPages[0].Text = String.Format("LFP Module [{0}.{1}.{2}.{3}]"
+ , 0
+ , 0
+ , 0
+ , 0
+ );
+ ShelfStatus = new ucShelfStatus();
+ ShelfStatus.OnCommand += SetCmdEvent;
+ ShelfStatus.OnSendUartData += SetWriteData;
+ ShelfStatus.Dock = DockStyle.Fill;
+
+ tabStatus.TabPages[0].PageVisible = true;
+ tabStatus.TabPages[0].Controls.Add(ShelfStatus);
+
+ ShelfStatus.Start(ModuleID, ref aConfig, ref SystemData);
+
+ edModuleID.Enabled = true;
+ chbPolling.Enabled = true;
+ }
+ }
+ private void TypeChangeUpdateSnmp(ref CommConfig aConfig)
+ {
+ tabStatus.TabPages[0].PageVisible = true;
+ for (int i = 1; i < tabStatus.TabPages.Count; i++)
+ {
+ tabStatus.TabPages[i].PageVisible = false;
+ }
+ tabStatus.TabPages[0].Text = String.Format("LFP Module [{0}.{1}.{2}.{3}]"
+ , 0
+ , 0
+ , 0
+ , 0
+ );
+ ShelfStatus = new ucShelfStatus();
+ ShelfStatus.OnCommand += SetCmdEvent;
+ ShelfStatus.Dock = DockStyle.Fill;
+
+ tabStatus.TabPages[0].PageVisible = true;
+ tabStatus.TabPages[0].Controls.Add(ShelfStatus);
+
+ ShelfStatus.Start(ModuleID, ref aConfig, ref SystemData);
+
+ edModuleID.Enabled = false;
+ chbPolling.Enabled = true;
+ }
+
+ private void TypeChangedUpdate(ref CommConfig aConfig)
+ {
+ // Display Screen Deletes
+ if (ShelfStatus != null)
+ {
+ ShelfStatus.Dispose();
+ ShelfStatus = null;
+ }
+
+ SetCellTempQty(aConfig, ref SystemData);
+ try
+ {
+ ModuleID = Convert.ToInt16(edModuleID.Text);
+ }
+ catch (Exception)
+ {
+ ModuleID = 1;
+ }
+
+ switch (aConfig.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ TypeChangeUpdateUart(ref aConfig);
+ historyToolStripMenuItem.Visible = true;
+ inventoryViewToolStripMenuItem.Visible = true;
+ updateToolStripMenuItem.Visible = false;
+ break;
+ case csConstData.CommType.COMM_RS485:
+ TypeChangeUpdateRS485(ref aConfig);
+ historyToolStripMenuItem.Visible = true;
+ inventoryViewToolStripMenuItem.Visible = false;
+ updateToolStripMenuItem.Visible = true;
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ TypeChangeUpdateSnmp(ref aConfig);
+ historyToolStripMenuItem.Visible = true;
+ inventoryViewToolStripMenuItem.Visible = false;
+ updateToolStripMenuItem.Visible = false;
+ break;
+ default:
+ break;
+ }
+ //DisplayCommStatus();
+ }
+
+ private void SetCellTempQty(CommConfig aConfig, ref DeviceSystemData[] SystemData)
+ {
+ switch (aConfig.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ case csConstData.CommType.COMM_RS485:
+ switch (aConfig.UartModelIndex)
+ {
+ case csConstData.MODEL_INDEX.LFPM_48100D:
+ case csConstData.MODEL_INDEX.LFPM_48150D:
+ case csConstData.MODEL_INDEX.LFPM_48200D:
+ case csConstData.MODEL_INDEX.LFPM_48250D:
+ case csConstData.MODEL_INDEX.LFPM_48300D:
+ for (int i = 0; i < SystemData.Length; i++)
+ {
+ SystemData[i].cellQty = 15;
+ SystemData[i].tempQty = 4;
+ }
+ break;
+ case csConstData.MODEL_INDEX.LFPM_124050D:
+ for (int i = 0; i < SystemData.Length; i++)
+ {
+ SystemData[i].cellQty = csConstData.SystemInfo.MAX_MODULE_CELL_SIZE;
+ SystemData[i].tempQty = csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE;
+ }
+ break;
+ default:
+ break;
+ }
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ switch (aConfig.SnmpModelIndex)
+ {
+ case csConstData.MODEL_INDEX.LFPM_48100D:
+ case csConstData.MODEL_INDEX.LFPM_48150D:
+ case csConstData.MODEL_INDEX.LFPM_48200D:
+ case csConstData.MODEL_INDEX.LFPM_48250D:
+ case csConstData.MODEL_INDEX.LFPM_48300D:
+ for (int i = 0; i < SystemData.Length; i++)
+ {
+ SystemData[i].cellQty = 15;
+ SystemData[i].tempQty = 4;
+ }
+ break;
+ case csConstData.MODEL_INDEX.LFPM_124050D:
+ for (int i = 0; i < SystemData.Length; i++)
+ {
+ SystemData[i].cellQty = csConstData.SystemInfo.MAX_MODULE_CELL_SIZE;
+ SystemData[i].tempQty = csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE;
+ }
+ break;
+ default:
+ break;
+ }
+ break;
+ default:
+ for (int i = 0; i < SystemData.Length; i++)
+ {
+ SystemData[i].cellQty = 15;
+ SystemData[i].tempQty = 4;
+ }
+ break;
+ }
+ }
+
+ private void UpdateDataUart(object sender, ref DeviceSystemData rData)
+ {
+ ShelfStatus?.UpdateData(ref SystemData);
+ dbThread?.UpdateData(ModuleID, SystemData);
+ uDataLog.UpdateData(SystemData);
+ }
+ private void UpdateDataRS485(object sender, ref DeviceSystemData[] rData)
+ {
+ ShelfStatus?.UpdateData(ref SystemData);
+ dbThread?.UpdateData(ModuleID, SystemData);
+ uDataLog.UpdateData(SystemData);
+ }
+
+ private void DisplaySystemFwVerModule()
+ {
+ switch (Config.ControlLevel)
+ {
+ case 0: // User Level
+ inventoryViewToolStripMenuItem.Visible = false;
+ break;
+ case 1: // Technician Level
+ inventoryViewToolStripMenuItem.Visible = false;
+ break;
+ case 2: // Engineer Level
+ inventoryViewToolStripMenuItem.Visible = false;
+ break;
+ case 3: // Master Level
+ inventoryViewToolStripMenuItem.Visible = true;
+ break;
+ default: // User Level
+ inventoryViewToolStripMenuItem.Visible = false;
+ break;
+ }
+
+ switch (Config.ControlLevel)
+ {
+ case 0: // User Level
+ this.Text = String.Format("LFP SYSTEM [{0}] -- DELTA - User Level", Application.ProductVersion);
+ break;
+ case 1: // Technician Level
+ this.Text = String.Format("LFP SYSTEM [{0}] -- DELTA - Technician Level", Application.ProductVersion);
+ break;
+ case 2: // Engineer Level
+ this.Text = String.Format("LFP SYSTEM [{0}] -- DELTA - Engineer Level", Application.ProductVersion);
+ break;
+ case 3: // Master Level
+ this.Text = String.Format("LFP SYSTEM [{0}] -- DELTA - Master Level", Application.ProductVersion);
+ break;
+ default:
+ this.Text = String.Format("LFP SYSTEM [{0}] -- DELTA - User Level", Application.ProductVersion);
+ break;
+ }
+
+ if (this.InvokeRequired)
+ {
+ this.Invoke(new MethodInvoker(delegate ()
+ {
+ if (SystemData[0].ValueData.fw_ver[0] != 0x00)
+ {
+ byte[] sn = new byte[33];
+ for (int i = 0; i < 32; i++)
+ sn[i] = SystemData[0].Information.BMS_SN[i];
+ sn[32] = 0;
+
+ tabStatus.TabPages[0].Text = String.Format("{0} [{1}] - {2}", "LFP MODULE"
+ , Encoding.UTF8.GetString(SystemData[0].ValueData.fw_ver)
+ , Encoding.Default.GetString(sn).Trim('\0')
+ );
+ }
+ else
+ {
+ tabStatus.TabPages[0].Text = String.Format("LFP MODULE");
+ }
+ }));
+ }
+ else
+ {
+ if (SystemData[0].ValueData.fw_ver[0] != 0x00)
+ {
+ byte[] sn = new byte[17];
+ for (int i = 0; i < 16; i++)
+ sn[i] = SystemData[0].Information.BMS_SN[i]; //22.06.30 Byul 32->16
+ sn[16] = 0;
+
+ tabStatus.TabPages[0].Text = String.Format("{0} [{1}] - {2}", "LFP MODULE"
+ , Encoding.UTF8.GetString(SystemData[0].ValueData.fw_ver).Trim('\0')
+ , Encoding.Default.GetString(sn).Trim('\0')
+ );
+ }
+ else
+ {
+ tabStatus.TabPages[0].Text = String.Format("LFP MODULE");
+ }
+ }
+ }
+
+ private void UpdateSnmpData(object sender, ref DeviceSystemData rData)
+ {
+ uDataLog.UpdateData(SystemData);
+ }
+
+ private void UpdateConfig(object aConfig)
+ {
+ Config = (CommConfig)aConfig;
+
+ IniLoad(ref Config);
+ }
+
+ #endregion
+
+ #region MENU EVENT
+
+ private void commConfigToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ ConfigButtonClick(sender, e);
+ }
+
+ private void exitToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+
+ private void testSendToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ csHistoryFunction.DbCreate(System.IO.Path.GetDirectoryName(Application.ExecutablePath));
+ }
+
+ private void firmwareUpdateToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ if ((rs485Thread == null) && (rs485Thread124050 == null))
+ {
+ return;
+ }
+
+ if (rs485Thread124050 != null)
+ {
+ FwUpdateForm = new fmxFwUpdate(rs485Thread124050.ModuleID);
+ }
+ else
+ {
+ FwUpdateForm = new fmxFwUpdate(rs485Thread.ModuleID);
+ }
+
+ FwUpdateForm.OnAutoTxSet += SetAutoTx;
+ FwUpdateForm.OnSendUartData += SetWriteData;
+ FwUpdateForm.ShowDialog();
+ }
+
+ private void historyViewToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ foreach (Form frm in Application.OpenForms)
+ {
+ if (frm.Name == "fmxHistory")
+ {
+ frm.Activate();
+ return;
+ }
+ }
+ HistoryForm = new fmxHistory(Config, ModuleID);
+
+ HistoryForm.OnSendUartData += SetWriteData;
+ HistoryForm.ShowDialog();
+ }
+
+ private void inventoryViewToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ foreach (Form frm in Application.OpenForms)
+ {
+ if (frm.Name == "fmxInventoryConfig")
+ {
+ frm.Activate();
+ return;
+ }
+ }
+ InventoryConfig = new fmxInventoryConfig(ModuleID, ref Config, ref SystemData[ModuleID - 1]);
+
+ InventoryConfig.OnSendUartData += SetWriteData;
+ InventoryConfig.Show();
+ }
+
+ #endregion
+
+ #region FORM EVENT
+
+ private void fmxMain_FormClosing(object sender, FormClosingEventArgs e)
+ {
+ if (uartThread != null)
+ {
+ uartThread.disposeThread();
+ uartThread = null;
+ }
+ if (rs232Thread124050 != null)
+ {
+ rs232Thread124050.disposeThread();
+ rs232Thread124050 = null;
+ }
+ if (rs485Thread != null)
+ {
+ rs485Thread.disposeThread();
+ rs485Thread = null;
+ }
+ if (rs485Thread124050 != null)
+ {
+ rs485Thread124050.disposeThread();
+ rs485Thread124050 = null;
+ }
+ if (dbThread != null)
+ {
+ dbThread.disposeThread();
+ dbThread = null;
+ }
+ }
+
+ #endregion
+
+ #region STATUS BAR EVENT
+
+ void DisplayCommStatus()
+ {
+ if (Active == true)
+ CommStatusBar.Text = "Comm: On";
+ else
+ CommStatusBar.Text = "Comm: Off";
+ }
+
+ void DisplayCommStatus(string msg)
+ {
+ if (msg != "")
+ CommStatusBar.Text = String.Format("Comm: {0}", msg);
+ }
+
+ void LogStatusUpdate(object sender, string msg, bool active, int aLogTime)
+ {
+ LogStatusBar.Text = msg;
+
+ }
+
+ #endregion
+
+ #region COMMAND AND SET
+
+ private void CommDataPrint(object sender, string msg)
+ {
+ if (msg != "")
+ {
+ uEventLog.EventUpdate(msg + "\r\n");
+ }
+ }
+
+ private void SetWriteData(ushort WriteAddr, byte[] WriteData, bool RelyFlag, int type)
+ {
+ uartThread?.SetWriteReg(WriteAddr, WriteData, RelyFlag, type);
+ rs232Thread124050?.SetWriteReg(WriteAddr, WriteData, RelyFlag, type);
+ rs485Thread?.SetWriteReg(WriteAddr, WriteData, RelyFlag, type);
+ rs485Thread124050?.SetWriteReg(WriteAddr, WriteData, RelyFlag, type);
+ }
+
+ private void SetCmdEvent(int sId, int cmd, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib)
+ {
+ if (MainStatus != null)
+ {
+ switch (cmd)
+ {
+ case 1: // Module quatity set
+ break;
+ case 2:
+ CreateModuleDetailForm(sId);
+ break;
+ }
+ }
+ uartThread?.SendProcessFromApp(sId, cmd, index, flag, ref aParam, ref aCalib);
+ rs232Thread124050?.SendProcessFromApp(sId, cmd, index, flag, ref aParam, ref aCalib);
+ }
+
+ private void CreateModuleDetailForm(int sID)
+ {
+ foreach (Form frm in Application.OpenForms)
+ {
+ if (frm.Name == "fmxModuleDetail")
+ {
+ ((fmxModuleDetail)frm).SetModuleID(sID);
+ frm.Activate();
+ return;
+ }
+ }
+ ModuleDetailForm = new fmxModuleDetail(sID, ref Config, ref SystemData);
+
+ //ModuleDetailForm.OnAutoTxCanSet += SetAutoTxCan;
+ //ModuleDetailForm.OnSendDataCan += SendDataToCan;
+ ModuleDetailForm.Show();
+ }
+
+ private void chbPolling_CheckedChanged(object sender, EventArgs e)
+ {
+ if (edModuleID.Text != "")
+ {
+ ModuleID = Convert.ToInt32(edModuleID.Text);
+
+ if (uartThread != null)
+ {
+ uartThread.SetPolling(chbPolling.Checked, ModuleID, ref SystemData[ModuleID - 1]);
+ ShelfStatus?.UpdateSystemId(ModuleID);
+ }
+ if (rs232Thread124050 != null)
+ {
+ rs232Thread124050.SetPolling(chbPolling.Checked, ModuleID, ref SystemData[ModuleID - 1]);
+ ShelfStatus?.UpdateSystemId(ModuleID);
+ }
+ if (rs485Thread != null)
+ {
+ rs485Thread.SetPolling(chbPolling.Checked, ModuleID, ref SystemData);
+ ShelfStatus?.UpdateSystemId(ModuleID);
+ }
+ if (rs485Thread124050 != null)
+ {
+ rs485Thread124050.SetPolling(chbPolling.Checked, ModuleID, ref SystemData);
+ ShelfStatus?.UpdateSystemId(ModuleID);
+ }
+ snmpThread?.SetAutoTx(chbPolling.Checked);
+ snmpThread124050?.SetAutoTx(chbPolling.Checked);
+
+ uDataLog.UpdateActiveStatus(Active, ModuleID, Config, SystemData);
+ dbThread?.UpdateData(ModuleID, SystemData);
+
+ edModuleID.Enabled = !chbPolling.Checked;
+ }
+ }
+
+ private void SnmpRecvData(string result, bool error)
+ {
+ if (result != "")
+ {
+ uEventLog.EventUpdate(result + "\r\n");
+ }
+ }
+
+ private void SetAutoTx(bool autoTx)
+ {
+ uartThread?.SetAutoTx(autoTx);
+ rs232Thread124050?.SetAutoTx(autoTx);
+ }
+ #endregion
+
+ #region KEYBOARD HOOK
+ private void edSystemId_KeyPress(object sender, KeyPressEventArgs e)
+ {
+ csUtils.TypingOnlyNumber(sender, e, false, false);
+ }
+ #endregion
+
+ #region MENU COMMAND
+ private void inventoryControlToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ foreach (Form frm in Application.OpenForms)
+ {
+ if (frm.Name == "fmxInventoryConfig")
+ {
+ frm.Activate();
+ return;
+ }
+ }
+ InventoryConfig = new fmxInventoryConfig(0, ref Config, ref SystemData[0]);
+
+ InventoryConfig.OnUpdate += UpdateInformation;
+ InventoryConfig.OnCommand += InvDataSetCmd;
+ //InventoryConfig.OnCommandBySnmp += SetInvEventBySnmp;
+ InventoryConfig.Show();
+ }
+
+ private void InvDataSetCmd(int sId, int mode, int index, int flag, ref DeviceInforation aInvData)
+ {
+ SystemData[0].CalibrationData.InvData = aInvData;
+ //OnCommand?.Invoke(sId, mode, index, flag, ref SystemData[0].ParamData, ref SystemData[0].CalibrationData);
+ //SetCmdToCan(sId, mode, index, flag, ref SystemData[0].ParamData, ref SystemData[0].CalibrationData);
+ }
+
+ private void UpdateInformation(object sendor)
+ {
+ ((fmxInventoryConfig)sendor).UpdateData(ref SystemData[0]);
+ }
+
+ private void checkDBToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ foreach (Form frm in Application.OpenForms)
+ {
+ if (frm.Name == "fmxExcelFile")
+ {
+ frm.Activate();
+ return;
+ }
+ }
+ fmxExcelFile DbControl = new fmxExcelFile(Config);
+
+ DbControl.Show();
+ }
+
+ private void levelConfigToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ }
+
+ private void changeLeToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ foreach (Form frm in Application.OpenForms)
+ {
+ if (frm.Name == "FmxLevelConfig")
+ {
+ frm.Activate();
+ return;
+ }
+ }
+ FmxLevelConfig LevelControl = new FmxLevelConfig(Config);
+
+ LevelControl.ShowDialog();
+ }
+
+ private void changePasswordToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ foreach (Form frm in Application.OpenForms)
+ {
+ if (frm.Name == "FmxPasswordChange")
+ {
+ frm.Activate();
+ return;
+ }
+ }
+ FmxPasswordChange ChangePassword = new FmxPasswordChange(Config);
+
+ ChangePassword.ShowDialog();
+ }
+ #endregion
+
+ #region TIMER EVENT
+ private void tmrDisplay_Tick(object sender, EventArgs e)
+ {
+ uTarget.UpdateStatus(Active);
+ DisplaySystemFwVerModule();
+ }
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxMain.resx b/LFP_Manager/Forms/fmxMain.resx
new file mode 100644
index 0000000..4a82c22
--- /dev/null
+++ b/LFP_Manager/Forms/fmxMain.resx
@@ -0,0 +1,4583 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 225, 17
+
+
+ 342, 17
+
+
+ 94, 16
+
+
+ 51
+
+
+
+
+ AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA
+ GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/
+ ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7/////////////////////
+ ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff/////////
+ ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+
+ /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7/////
+ ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc
+ x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7/////////////////////////////
+ ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt
+ e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP
+ SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7/////////
+ ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z
+ WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS
+ Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8
+ +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+
+ /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+
+ /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO
+ SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz
+ 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o
+ 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9
+ /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE
+ oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG
+ PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7/////
+ ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH
+ PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t
+ 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/
+ ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/
+ ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7/////////////////////////////
+ ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+
+ /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ
+ TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7/////////////////
+ ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ
+ TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+
+ /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7/////
+ ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP
+ SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7/////////////////////////////////////////
+ ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/
+ ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7/////////////////////////////
+ ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/
+ ///+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////+/v7////////+/v3////////////////////////+/v3////////+/v7/////////////////
+ ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7/////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ /////////v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v7////////+/v7/////////////////////////////////////
+ ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7/////////////////////
+ ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7
+ +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9
+ /Pz+/v7/////////////////////////////////////////////////////////////////////////
+ ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM
+ RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7/////////////////////////////////////
+ ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL
+ QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+
+ /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP
+ SgCOSQCPTAKFOwDVvaT////9/Pv+/v7/////////////////////////////////////////////////
+ ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8
+ +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7/////////
+ /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO
+ SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF
+ OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+
+ ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/
+ //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7/////////////////////////
+ ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/
+ mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79
+ /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN
+ RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ
+ TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7/////
+ ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7/////
+ ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+
+ /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ
+ TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP
+ SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH
+ PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/
+ ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5
+ 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+
+ /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ
+ QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE
+ oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/
+ ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7/////////////////////////
+ ///////////////////////////////////////////////////////+/v7+////////////////////
+ ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+
+ /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9
+ /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP
+ SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL
+ RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7/////////////////////////////////
+ ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/
+ ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7/////////
+ ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP
+ SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI
+ PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/
+ ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x
+ glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7/////////////////////////////
+ ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM
+ RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+
+ /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/
+ ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP
+ SgCOSgGLRQGTURDz7ef+/v39/f3+/v7/////////////////////////////////////////////////
+ ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+
+ /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7/////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN
+ RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9
+ /fz9/f3+/v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO
+ SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7/////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO
+ SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS
+ UA/y6+X+/v39/fz+/v7+/v7/////////////////////////////////////////////////////////
+ ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP
+ SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7/////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+
+ /v7/////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO
+ SQCOSQGJQQDi0cD////9/Pv+/v7/////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J
+ QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7/////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39
+ /fz+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz
+ hFazhFayhFazhVete1TWvqb////9/fz+/v7/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+
+ /f3+/f3/////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v7+////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////v7+
+ /f39////////////////////////////////////////////////////////////////////////////
+ ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39
+ /fz8/v79/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA
+ nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1////
+ x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV
+ i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC
+ jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC
+ hz8Ap3I//fz7/fz8/v79/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7
+ /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8
+ +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p
+ /v39/f38/v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+
+ ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb
+ 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+//7+/f39
+ /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7////
+ 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+
+ /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA
+ j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB
+ j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB
+ i0UAlVYZ8+3m/f79/f38/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+////////////////
+ /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39
+ /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+
+ sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+
+ /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+////////
+ /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+
+ /f39/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO
+ /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39
+ 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39
+ /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+////////////////////////////
+ /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+////
+ /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A
+ kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ jkoCikIC4tHA/////Pv7/v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC
+ hz4A1r6m/////Pz7/v7+/v7+/////v7+////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+
+ /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+////////////////////
+ /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM
+ /////Pv6/v7+/v7+/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA
+ j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+
+ /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7
+ /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq////
+ /Pv6/v7+/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A
+ j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA
+ kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA
+ j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6
+ /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+////////
+ /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+
+ /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA
+ xaJ//////Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU
+ /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA
+ j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+////////////
+ 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+
+ /////v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39
+ /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/
+ /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6
+ ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+
+ /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC
+ kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB
+ kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39////
+ /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA
+ hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA
+ iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A
+ j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU
+ z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+////////
+ /v7+/////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7//v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn
+ +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3
+ +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8
+ /fz8/v7+/////v7+/////v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v///v7+/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT
+ z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7
+ ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A
+ hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A
+ fS0AtIdb/f38/Pz8///+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D
+ kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL
+ jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA
+ jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3
+ iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA
+ jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA
+ jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK
+ 6t7S/v7+/fz8/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs////
+ /Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7
+ /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38
+ /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fz8
+ /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+////////////////////////////////////
+ /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+
+ /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA
+ jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A
+ pnA8/Pv6/fz7/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq
+ iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+
+ /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+////////////
+ /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+
+ //7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A
+ 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES
+ jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+////////////////
+ /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6
+ /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7
+ /v79/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v39
+ /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8
+ +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+
+ /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ
+ hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ
+ 8+3m/f39/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+
+ /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA
+ jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA
+ u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA
+ j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA
+ jkkCikQE49PC/v7//fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8
+ /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+
+ /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7////
+ t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA
+ jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU
+ hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD
+ /////fz8//7//v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA
+ oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC
+ hj0Az7SX/////fz7//7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+//7+
+ /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH
+ jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA
+ jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT////
+ /Pz8/v7//v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA
+ t4tf/////fz7/v7+/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs
+ mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6
+ /v7+/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v7+
+ /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx
+ +/n3/fz8/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+
+ rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA
+ jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW
+ k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV
+ kU8TmVoj8ejg/v39/fz7/v7//f39/v//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off
+ 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v////7+/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v39/v7+
+ ///+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/v//////
+ /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v79/////////v7+/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v79/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////9/Lt9/Pu
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2svnmMrzrGR/////fz7////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ
+ /v39/fz8/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h
+ /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0////
+ 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC
+ j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ jUgBlFIO7uTa/////f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB
+ jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+
+ /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38////////////////////
+ /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z
+ iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+
+ sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG////
+ /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ hz4Ar35J/v39/fz8/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+////////
+ /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38////////////////////////////////
+ /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+////////////////////////////////////////////
+ /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA
+ /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW
+ k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+
+ /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+////////////////////
+ /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iEAA176j/////fz7////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39////////////////////////////////////////////
+ ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38
+ /fz8/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEA1buf/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+////////////
+ /////////////////////////////////////////////////////////////////////fz7////yKaB
+ hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v///f38////sH9K
+ hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oBi0QAnmIj9vHs/v39/v39////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA
+ nWAf9vHs/v7+/v79////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo////
+ /fz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v///f38////
+ 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/v79+/n3omor
+ ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm
+ +PTw/v39/f39////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sBjEUAmVwb9e/p/v7+/f38////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A
+ vpVq/////fz7/v/+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8AyKaB/////fz7/v///v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39
+ //7/////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC
+ jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsCiD8Auo9h/////fz8/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE
+ iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB
+ 4tC+/////f38/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjUcBk1EN7+Xb/////f39/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj
+ n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f38////u5Jlhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkBjUgE4M66/////fz7/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR
+ 7+bd/v7+/f39////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv
+ +/n4/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0
+ rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6
+ ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC
+ hz4AtolZ/////fz8/v3+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA
+ j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ j0sBikIApGww+vj1/v39/f39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ
+ j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M
+ /////Pz7/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkCjkkG4c+7/////fz7/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+///+/v39
+ /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d////
+ /fz7/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/f38/f38
+ 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A
+ jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sBiD8AyKiE/////fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oBiUEApW4z+vj1/v39/v39////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ
+ /v7+/f38/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4
+ 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD
+ 49PB/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/Pz7////
+ 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6////
+ /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A
+ j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC
+ iUEAqHQ7+/j2/fz8/v39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jUgBkk8K7ODV/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL////
+ /f38/v7+///+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6////////
+ ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A
+ ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38
+ /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBiUEA1Lqd/////fv6////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38
+ sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////v7+/v39
+ /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq
+ 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38
+ /v39/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjUgBkU4J6NrM/////fz8////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA
+ jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEArnxG/v7+/f38/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO
+ 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i////
+ /Pz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA
+ hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr
+ vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g
+ 4M24/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY
+ llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+////////////////////////////
+ /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsCiUEArXpD/v7//f39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB
+ ikMA1bqf/////fz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39
+ /f38/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39
+ /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/////////v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI
+ iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8////
+ /fz8////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA
+ mVsZ8+zl/v38/fz8////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7
+ /v7+//7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz7/v7+
+ 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf
+ 9vHs/v79/fz8////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z
+ iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAi0YAl1gT8+3l/v7+/f39////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA
+ upFj/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC
+ hz4AwZty/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////f39
+ /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC
+ jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ
+ hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsChz4At4ta/////fz8/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjUgCkEwL6dzO/////fz7////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD
+ 38y3/////fz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v/+/f39/v79
+ +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////fz8
+ /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A
+ kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK
+ 5tbG/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBjUcB4M25/////f38/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos
+ +PTw/fz8/f39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v//////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA
+ kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB
+ iUAAq3dA/Pr4/fz7/f39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v///fz7
+ ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA
+ j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0oBikMAomgq+vf0/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////Pz7////4M24
+ i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiUEA0rea/////fz7/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7
+ /v38/v39/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////f38/v79
+ +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/f38
+ ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ kEwChz4AxaJ8/////fz7/v7+////////////////////////////////////////////////////////
+ ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA
+ 07mb/////Pz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU
+ /v7+/Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+////
+ //////////////////////////////////////////////////////////////////////////////7/
+ /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7/////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+////////////////////////////
+ /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jEQAm10b9O/p/v7+/f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+////////////////////////////////////////
+ /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7
+ /v7//v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jUgAklAK6dzO/////f38/v//////////////////////////////////////////////////////////
+ /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6
+ /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng
+ lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+
+ /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiD8Au5Jl/////fz8/v7+//7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+////////////////////
+ /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj
+ /v39/fz8/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+////////////////////////////
+ /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8
+ ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb////
+ /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A
+ upFj/////fz8/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+
+ /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7////////////////////////
+ /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf
+ llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA
+ kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkBjUcA49LA/////f38/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79
+ /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3
+ qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8////0baX
+ iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD
+ /////fz8/v//////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA
+ nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA
+ qHI4/Pv5/v39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+
+ iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ kEsChz8Az7KS/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7
+ /v39/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v39
+ /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////fz8////59jIj0oD
+ jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ
+ /////fz8////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB
+ llYW7+Xb/v7+/f38/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0wChz8AuIxc/v7+/fz7/v39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+
+ /v39/v//////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fv6
+ ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAjkkBjEYA4M24/////fz8/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa
+ /////f38////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v39/fz7
+ 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB
+ jUcE3sq2/////Pz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oBikMAomgq+fXy/v39/f39////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/fz7////
+ 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq
+ +vf1/f38/f39//7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39
+ tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS
+ yqqM38u2/////v79/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/v79////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v79/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxModuleDetail.Designer.cs b/LFP_Manager/Forms/fmxModuleDetail.Designer.cs
new file mode 100644
index 0000000..5ddee67
--- /dev/null
+++ b/LFP_Manager/Forms/fmxModuleDetail.Designer.cs
@@ -0,0 +1,210 @@
+
+namespace LFP_Manager.Forms
+{
+ partial class fmxModuleDetail
+ {
+ ///
+ /// 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(fmxModuleDetail));
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.btnNext = new DevExpress.XtraEditors.SimpleButton();
+ this.btnPrev = new DevExpress.XtraEditors.SimpleButton();
+ this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.ShelfStatus = new LFP_Manager.Controls.ucShelfStatus();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.btnClose);
+ this.layoutControl1.Controls.Add(this.btnNext);
+ this.layoutControl1.Controls.Add(this.btnPrev);
+ this.layoutControl1.Controls.Add(this.ShelfStatus);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1270, 387, 650, 400);
+ this.layoutControl1.Root = this.Root;
+ this.layoutControl1.Size = new System.Drawing.Size(1078, 648);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // btnClose
+ //
+ this.btnClose.Location = new System.Drawing.Point(929, 604);
+ this.btnClose.Name = "btnClose";
+ this.btnClose.Size = new System.Drawing.Size(146, 41);
+ this.btnClose.StyleController = this.layoutControl1;
+ this.btnClose.TabIndex = 7;
+ this.btnClose.Text = "CLOSE";
+ this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
+ //
+ // btnNext
+ //
+ this.btnNext.Location = new System.Drawing.Point(153, 604);
+ this.btnNext.Name = "btnNext";
+ this.btnNext.Size = new System.Drawing.Size(146, 41);
+ this.btnNext.StyleController = this.layoutControl1;
+ this.btnNext.TabIndex = 6;
+ this.btnNext.Text = "NEXT";
+ this.btnNext.Click += new System.EventHandler(this.btnNext_Click);
+ //
+ // btnPrev
+ //
+ this.btnPrev.Location = new System.Drawing.Point(3, 604);
+ this.btnPrev.Name = "btnPrev";
+ this.btnPrev.Size = new System.Drawing.Size(146, 41);
+ this.btnPrev.StyleController = this.layoutControl1;
+ this.btnPrev.TabIndex = 5;
+ this.btnPrev.Text = "PREV";
+ this.btnPrev.Click += new System.EventHandler(this.btnPrev_Click);
+ //
+ // Root
+ //
+ this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.Root.GroupBordersVisible = false;
+ this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1,
+ this.layoutControlItem2,
+ this.emptySpaceItem1,
+ this.layoutControlItem3,
+ this.layoutControlItem4});
+ this.Root.Name = "Root";
+ this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.Root.Size = new System.Drawing.Size(1078, 648);
+ this.Root.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.btnPrev;
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 601);
+ this.layoutControlItem2.MaxSize = new System.Drawing.Size(0, 45);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(89, 45);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(150, 45);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.Location = new System.Drawing.Point(300, 601);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(626, 45);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.btnNext;
+ this.layoutControlItem3.Location = new System.Drawing.Point(150, 601);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(150, 45);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.btnClose;
+ this.layoutControlItem4.Location = new System.Drawing.Point(926, 601);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(89, 26);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(150, 45);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // ShelfStatus
+ //
+ this.ShelfStatus.Location = new System.Drawing.Point(3, 3);
+ this.ShelfStatus.Name = "ShelfStatus";
+ this.ShelfStatus.Size = new System.Drawing.Size(1072, 597);
+ this.ShelfStatus.TabIndex = 4;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.ShelfStatus;
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(772, 247);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(1076, 601);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // fmxModuleDetail
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(1078, 648);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Image = ((System.Drawing.Image)(resources.GetObject("fmxModuleDetail.IconOptions.Image")));
+ this.Name = "fmxModuleDetail";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "fmxModuleDetail";
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup Root;
+ private Controls.ucShelfStatus ShelfStatus;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraEditors.SimpleButton btnClose;
+ private DevExpress.XtraEditors.SimpleButton btnNext;
+ private DevExpress.XtraEditors.SimpleButton btnPrev;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxModuleDetail.cs b/LFP_Manager/Forms/fmxModuleDetail.cs
new file mode 100644
index 0000000..10669e6
--- /dev/null
+++ b/LFP_Manager/Forms/fmxModuleDetail.cs
@@ -0,0 +1,114 @@
+using DevExpress.XtraEditors;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+using LFP_Manager.DataStructure;
+
+namespace LFP_Manager.Forms
+{
+ public partial class fmxModuleDetail : DevExpress.XtraEditors.XtraForm
+ {
+ #region VARIABLES
+ private int ModuleID = 1;
+ private CommConfig Config;
+ private DeviceSystemData[] DeviceSystems;
+
+ #endregion
+
+ #region COSTRUCTORS
+
+ public fmxModuleDetail(int mID, ref CommConfig aConfig, ref DeviceSystemData[] mSystemData)
+ {
+ InitializeComponent();
+
+ ModuleID = mID;
+ Config = aConfig;
+ DeviceSystems = mSystemData;
+
+ this.Text = String.Format("MODULE [#{0:00}]"
+ , mID
+ );
+ ShelfStatus.Start(mID, ref aConfig, ref DeviceSystems);
+ }
+
+ #endregion
+
+ #region PUBLIC FUNCTION
+
+ public void SetModuleID(int mID)
+ {
+ ShelfStatus.ModuleIDSet(mID);
+
+ if (this.InvokeRequired)
+ {
+ this.Invoke(new MethodInvoker(delegate ()
+ {
+ this.Text = String.Format("MODULE [#{0:00}]", mID);
+ }));
+ }
+ else
+ {
+ this.Text = String.Format("MODULE [#{0:00}]", mID);
+ }
+ }
+
+ public int GetModuleID()
+ {
+ return ShelfStatus.ModuleIDGet();
+ }
+ #endregion
+
+ #region UPDATE DATA
+
+ public void UpdateData(ref DeviceSystemData[] mSystemData)
+ {
+ ShelfStatus.UpdateData(ref mSystemData);
+ }
+
+ #endregion
+
+ #region BUTTON EVENT
+ private void btnPrev_Click(object sender, EventArgs e)
+ {
+ if (ModuleID == 1)
+ {
+ ModuleID = Config.ModuleQty;
+ }
+ else
+ {
+ ModuleID--;
+ }
+ ShelfStatus.ModuleIDSet(ModuleID);
+ ShelfStatus.UpdateData(ref DeviceSystems);
+ Text = string.Format("Module Status [#{0:00}]", ModuleID);
+ }
+
+ private void btnNext_Click(object sender, EventArgs e)
+ {
+ if (ModuleID == Config.ModuleQty)
+ {
+ ModuleID = 1;
+ }
+ else
+ {
+ ModuleID++;
+ }
+ ShelfStatus.ModuleIDSet(ModuleID);
+ ShelfStatus.UpdateData(ref DeviceSystems);
+ Text = string.Format("Module Status [#{0:00}]", ModuleID);
+ }
+
+ private void btnClose_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxModuleDetail.resx b/LFP_Manager/Forms/fmxModuleDetail.resx
new file mode 100644
index 0000000..0d93685
--- /dev/null
+++ b/LFP_Manager/Forms/fmxModuleDetail.resx
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ vAAADrwBlbxySQAABMxJREFUWEflVWtsFVUQPrdtSvilMRIVY8T4h1/aoDGKqIWCIBXR+IgaAmriD/CR
+ SIyVYjSSPmhLrVVTBa6tQNGIBSqYCEEera34KCqFEmgLNa34qPRaeqHv23G+2Z3tXrp3u/iHGCeZnN09
+ M2e++WbOrKFLLP8dACMjI87qp2oTVAIBcB8Y8zncvRcUxEUxoIdGon3UdbbX0TPdvdR9vl/23HZBZFwA
+ euDQcEzedze00aSF79Ckx9+nKx8rc3Tyo2V0+GSn2AyzbVAgvgD0gFgsRsOsfQNDNPXZCjLpq8nc9xaZ
+ ucWW4vmuPJqZ9Rm8xDZIcEggBjT7VR8fJHNnLiUveNsKOr/EUn5Ovp+/MYhNe5vEFj5BWEgIQJ1BJ5qr
+ 5dcITcwsoZBmzIFDeBcA9jq7iK554gOK9PQJC8KEfVYiGbcEmv0Db1aTuTufkjKt7CXgvWu4BKw2C0lg
+ YUYevbTugPgM2iz4iScAzX5waFjePz/YSmZWgUWzBuJSLF+7nx7J3SlB5Rv2GMwEXrUhxyvFGABqiMaD
+ 87neAbrxqTCF5hRx9hbVoTlr6CrufDRly+kIpc4rpiQO6oCbWUDpWVvsJPxZGAsAyg5KffZHdXGNJ+s9
+ +bRhz1HZh7xa8bU0oGMDEPxeufeY7PuxEAdAjfQeH2/vsrJj9coOB6PRengITVmyXpjRxgzZDfk3Dy3Y
+ gFGN4RbPEgAAZP7r26zGc+rL2fEt+Kn1TweA9smWmuNim8pDCgxgxfsKZgeiLFwoDgBs6qGQ7fUtdtcn
+ 6HAOjMxgj17AikFk0t7gkuWRmZ5L5o4cMrfnUE1jB9uOMusGIgD0g0w8NoqeH6Api9eTySi06LQpvW7R
+ Ojp7rl8Cs5P4uAX/hWwGmF1RJ5mv3FBHr5Tto+pvWmXfi4U4BpTOrPLa+KuFldn4lGmGACSGTUPzH7Tn
+ 0C9UsfsIlWxtoPCXjfTF96dox7etcnWhO787SZ981UT1TactXwbvZsHoi9JztO0vuceotwTH4OGun51d
+ JVmrHcB2MxsdnT104HA7vcYZX79orVUCph2ApRQzuBTTc+jyh96l385ExzQkA7AecDAkY0UVB1w9mj0r
+ bsKRtk4ZyQrAS/C9fFcjXc1/RsNzI3VhKaXwORMetBpycfEusXOXgksw2nib9x3j+5vvTDy511wK3HMI
+ slZHrKrICnua2YmOCE19+kOrh7SJsc4qpP0/t4uNgjB4wAGo6bVPMoUZRaONx1ncsCRMUZ6GsIFCFARE
+ QejzwOCQPDfzz+syvopJ87SUDCC9gG5etpFt+AZxXAA2vf2Ww3LuXtTMoR4OXPtt9c2yr9m7g7tF9uy1
+ 3wZRWv3j2Gbm95Lth2Qf11duQeOpTmm8FM4agVMWlErN5q7cKoZe18dL1AaZwQd609KNMj1RTpydzP10
+ xcPv0e9dUbbjEuBeT3u+0upcrhmMETyFJ96Jjq64xgsKAmqBJqrlISQ3gumXs3memNtWUSZPWYjJCtdS
+ 2nObaNoLlQLk1hc3Uxo3UGHVD2Lg1/V+Ah/tmZfDNZT2TLmcjRi3sCLmDvzmUYdEguw1+MWAcPv4+aH/
+ nFGMYKryzvVR8TskkaiPnuUVA+JMQi+F6Ppv5MLzvNT5F1wq+b8DIPoHjJf5qaq9hPwAAAAASUVORK5C
+ YII=
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxParamConfig.Designer.cs b/LFP_Manager/Forms/fmxParamConfig.Designer.cs
new file mode 100644
index 0000000..1222f6a
--- /dev/null
+++ b/LFP_Manager/Forms/fmxParamConfig.Designer.cs
@@ -0,0 +1,818 @@
+namespace LFP_Manager.Forms
+{
+ partial class fmxParamConfig
+ {
+ ///
+ /// 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()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxParamConfig));
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.gbDefaultParam = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl7 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnDefaultSet = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlGroup7 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem22 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem4 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.gbCurrentParam = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl5 = new DevExpress.XtraLayout.LayoutControl();
+ this.layoutControlGroup5 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.gbDchTempParam = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl4 = new DevExpress.XtraLayout.LayoutControl();
+ this.layoutControlGroup4 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.gbChaTempParam = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl();
+ this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.gbVoltageParamSet = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.btnClose = new DevExpress.XtraEditors.SimpleButton();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem19 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.emptySpaceItem3 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlGroup6 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.tmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.ucSocParam = new LFP_Manager.Controls.ucParamSet();
+ this.ucDOCParam = new LFP_Manager.Controls.ucParamSet();
+ this.ucCOCParam = new LFP_Manager.Controls.ucParamSet();
+ this.layoutControlItem14 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem15 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.ucDLTParam = new LFP_Manager.Controls.ucParamSet();
+ this.ucDHTParam = new LFP_Manager.Controls.ucParamSet();
+ this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.ucCLTParam = new LFP_Manager.Controls.ucParamSet();
+ this.ucCHTParam = new LFP_Manager.Controls.ucParamSet();
+ this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.ucSUVParam = new LFP_Manager.Controls.ucParamSet();
+ this.ucSOVParam = new LFP_Manager.Controls.ucParamSet();
+ this.ucCUVParam = new LFP_Manager.Controls.ucParamSet();
+ this.ucCOVParam = new LFP_Manager.Controls.ucParamSet();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem16 = new DevExpress.XtraLayout.LayoutControlItem();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.gbDefaultParam)).BeginInit();
+ this.gbDefaultParam.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl7)).BeginInit();
+ this.layoutControl7.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbCurrentParam)).BeginInit();
+ this.gbCurrentParam.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl5)).BeginInit();
+ this.layoutControl5.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbDchTempParam)).BeginInit();
+ this.gbDchTempParam.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl4)).BeginInit();
+ this.layoutControl4.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbChaTempParam)).BeginInit();
+ this.gbChaTempParam.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit();
+ this.layoutControl3.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbVoltageParamSet)).BeginInit();
+ this.gbVoltageParamSet.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit();
+ this.layoutControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).BeginInit();
+ this.SuspendLayout();
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.ucSocParam);
+ this.layoutControl1.Controls.Add(this.gbDefaultParam);
+ this.layoutControl1.Controls.Add(this.gbCurrentParam);
+ this.layoutControl1.Controls.Add(this.gbDchTempParam);
+ this.layoutControl1.Controls.Add(this.gbChaTempParam);
+ this.layoutControl1.Controls.Add(this.gbVoltageParamSet);
+ this.layoutControl1.Controls.Add(this.btnClose);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1155, 88, 654, 350);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(925, 777);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // gbDefaultParam
+ //
+ this.gbDefaultParam.Controls.Add(this.layoutControl7);
+ this.gbDefaultParam.Location = new System.Drawing.Point(694, 645);
+ this.gbDefaultParam.Name = "gbDefaultParam";
+ this.gbDefaultParam.Size = new System.Drawing.Size(228, 62);
+ this.gbDefaultParam.TabIndex = 13;
+ this.gbDefaultParam.Text = " Default Paramter";
+ //
+ // layoutControl7
+ //
+ this.layoutControl7.Controls.Add(this.btnDefaultSet);
+ this.layoutControl7.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl7.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl7.Name = "layoutControl7";
+ this.layoutControl7.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1212, 252, 614, 350);
+ this.layoutControl7.Root = this.layoutControlGroup7;
+ this.layoutControl7.Size = new System.Drawing.Size(224, 37);
+ this.layoutControl7.TabIndex = 0;
+ this.layoutControl7.Text = "layoutControl7";
+ //
+ // btnDefaultSet
+ //
+ this.btnDefaultSet.Location = new System.Drawing.Point(130, 5);
+ this.btnDefaultSet.Name = "btnDefaultSet";
+ this.btnDefaultSet.Size = new System.Drawing.Size(89, 27);
+ this.btnDefaultSet.StyleController = this.layoutControl7;
+ this.btnDefaultSet.TabIndex = 5;
+ this.btnDefaultSet.Text = "Set";
+ this.btnDefaultSet.Click += new System.EventHandler(this.btnDefaultSet_Click);
+ //
+ // layoutControlGroup7
+ //
+ this.layoutControlGroup7.CustomizationFormText = "layoutControlGroup7";
+ this.layoutControlGroup7.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup7.GroupBordersVisible = false;
+ this.layoutControlGroup7.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem22,
+ this.emptySpaceItem4});
+ this.layoutControlGroup7.Name = "Root";
+ this.layoutControlGroup7.Padding = new DevExpress.XtraLayout.Utils.Padding(3, 3, 3, 3);
+ this.layoutControlGroup7.Size = new System.Drawing.Size(224, 37);
+ this.layoutControlGroup7.TextVisible = false;
+ //
+ // layoutControlItem22
+ //
+ this.layoutControlItem22.Control = this.btnDefaultSet;
+ this.layoutControlItem22.CustomizationFormText = "layoutControlItem22";
+ this.layoutControlItem22.Location = new System.Drawing.Point(125, 0);
+ this.layoutControlItem22.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem22.Name = "layoutControlItem22";
+ this.layoutControlItem22.Size = new System.Drawing.Size(93, 31);
+ this.layoutControlItem22.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem22.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem22.TextVisible = false;
+ //
+ // emptySpaceItem4
+ //
+ this.emptySpaceItem4.AllowHotTrack = false;
+ this.emptySpaceItem4.Location = new System.Drawing.Point(0, 0);
+ this.emptySpaceItem4.Name = "emptySpaceItem4";
+ this.emptySpaceItem4.Size = new System.Drawing.Size(125, 31);
+ this.emptySpaceItem4.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // gbCurrentParam
+ //
+ this.gbCurrentParam.Controls.Add(this.layoutControl5);
+ this.gbCurrentParam.Location = new System.Drawing.Point(3, 431);
+ this.gbCurrentParam.Name = "gbCurrentParam";
+ this.gbCurrentParam.Size = new System.Drawing.Size(455, 210);
+ this.gbCurrentParam.TabIndex = 10;
+ this.gbCurrentParam.Text = "Current Parameter";
+ //
+ // layoutControl5
+ //
+ this.layoutControl5.Controls.Add(this.ucDOCParam);
+ this.layoutControl5.Controls.Add(this.ucCOCParam);
+ this.layoutControl5.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl5.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl5.Name = "layoutControl5";
+ this.layoutControl5.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(757, 268, 250, 350);
+ this.layoutControl5.Root = this.layoutControlGroup5;
+ this.layoutControl5.Size = new System.Drawing.Size(451, 185);
+ this.layoutControl5.TabIndex = 0;
+ this.layoutControl5.Text = "layoutControl5";
+ //
+ // layoutControlGroup5
+ //
+ this.layoutControlGroup5.CustomizationFormText = "layoutControlGroup5";
+ this.layoutControlGroup5.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup5.GroupBordersVisible = false;
+ this.layoutControlGroup5.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem14,
+ this.layoutControlItem15});
+ this.layoutControlGroup5.Name = "layoutControlGroup5";
+ this.layoutControlGroup5.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.layoutControlGroup5.Size = new System.Drawing.Size(451, 185);
+ this.layoutControlGroup5.TextVisible = false;
+ //
+ // gbDchTempParam
+ //
+ this.gbDchTempParam.Controls.Add(this.layoutControl4);
+ this.gbDchTempParam.Location = new System.Drawing.Point(462, 217);
+ this.gbDchTempParam.Name = "gbDchTempParam";
+ this.gbDchTempParam.Size = new System.Drawing.Size(460, 210);
+ this.gbDchTempParam.TabIndex = 9;
+ this.gbDchTempParam.Text = "Discharge Temp Parameter";
+ //
+ // layoutControl4
+ //
+ this.layoutControl4.Controls.Add(this.ucDLTParam);
+ this.layoutControl4.Controls.Add(this.ucDHTParam);
+ this.layoutControl4.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl4.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl4.Name = "layoutControl4";
+ this.layoutControl4.Root = this.layoutControlGroup4;
+ this.layoutControl4.Size = new System.Drawing.Size(456, 185);
+ this.layoutControl4.TabIndex = 0;
+ this.layoutControl4.Text = "layoutControl4";
+ //
+ // layoutControlGroup4
+ //
+ this.layoutControlGroup4.CustomizationFormText = "layoutControlGroup4";
+ this.layoutControlGroup4.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup4.GroupBordersVisible = false;
+ this.layoutControlGroup4.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem12,
+ this.layoutControlItem13});
+ this.layoutControlGroup4.Name = "layoutControlGroup4";
+ this.layoutControlGroup4.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.layoutControlGroup4.Size = new System.Drawing.Size(456, 185);
+ this.layoutControlGroup4.TextVisible = false;
+ //
+ // gbChaTempParam
+ //
+ this.gbChaTempParam.Controls.Add(this.layoutControl3);
+ this.gbChaTempParam.Location = new System.Drawing.Point(3, 217);
+ this.gbChaTempParam.Name = "gbChaTempParam";
+ this.gbChaTempParam.Size = new System.Drawing.Size(455, 210);
+ this.gbChaTempParam.TabIndex = 8;
+ this.gbChaTempParam.Text = "Charge Temp Parameter";
+ //
+ // layoutControl3
+ //
+ this.layoutControl3.Controls.Add(this.ucCLTParam);
+ this.layoutControl3.Controls.Add(this.ucCHTParam);
+ this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl3.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl3.Name = "layoutControl3";
+ this.layoutControl3.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1273, 246, 250, 350);
+ this.layoutControl3.Root = this.layoutControlGroup3;
+ this.layoutControl3.Size = new System.Drawing.Size(451, 185);
+ this.layoutControl3.TabIndex = 0;
+ this.layoutControl3.Text = "layoutControl3";
+ //
+ // layoutControlGroup3
+ //
+ this.layoutControlGroup3.CustomizationFormText = "layoutControlGroup3";
+ this.layoutControlGroup3.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup3.GroupBordersVisible = false;
+ this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem9,
+ this.layoutControlItem10});
+ this.layoutControlGroup3.Name = "layoutControlGroup3";
+ this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.layoutControlGroup3.Size = new System.Drawing.Size(451, 185);
+ this.layoutControlGroup3.TextVisible = false;
+ //
+ // gbVoltageParamSet
+ //
+ this.gbVoltageParamSet.Controls.Add(this.layoutControl2);
+ this.gbVoltageParamSet.Location = new System.Drawing.Point(3, 3);
+ this.gbVoltageParamSet.Name = "gbVoltageParamSet";
+ this.gbVoltageParamSet.Size = new System.Drawing.Size(919, 210);
+ this.gbVoltageParamSet.TabIndex = 7;
+ this.gbVoltageParamSet.Text = "-";
+ //
+ // layoutControl2
+ //
+ this.layoutControl2.Controls.Add(this.ucSUVParam);
+ this.layoutControl2.Controls.Add(this.ucSOVParam);
+ this.layoutControl2.Controls.Add(this.ucCUVParam);
+ this.layoutControl2.Controls.Add(this.ucCOVParam);
+ this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl2.Location = new System.Drawing.Point(2, 23);
+ this.layoutControl2.Name = "layoutControl2";
+ this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1218, 0, 650, 400);
+ this.layoutControl2.Root = this.layoutControlGroup2;
+ this.layoutControl2.Size = new System.Drawing.Size(915, 185);
+ this.layoutControl2.TabIndex = 0;
+ this.layoutControl2.Text = "layoutControl2";
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup2";
+ this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup2.GroupBordersVisible = false;
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem4,
+ this.layoutControlItem5,
+ this.layoutControlItem6,
+ this.layoutControlItem7});
+ this.layoutControlGroup2.Name = "Root";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(915, 185);
+ this.layoutControlGroup2.TextVisible = false;
+ //
+ // btnClose
+ //
+ this.btnClose.Location = new System.Drawing.Point(3, 711);
+ this.btnClose.Name = "btnClose";
+ this.btnClose.Size = new System.Drawing.Size(919, 63);
+ this.btnClose.StyleController = this.layoutControl1;
+ this.btnClose.TabIndex = 6;
+ this.btnClose.Text = "CLOSE";
+ this.btnClose.Click += new System.EventHandler(this.btnCancel_Click);
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem3,
+ this.layoutControlItem1,
+ this.layoutControlItem8,
+ this.layoutControlItem11,
+ this.layoutControlItem2,
+ this.emptySpaceItem1,
+ this.emptySpaceItem2,
+ this.layoutControlItem19,
+ this.emptySpaceItem3,
+ this.layoutControlGroup6});
+ this.layoutControlGroup1.Name = "Root";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(925, 777);
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.btnClose;
+ this.layoutControlItem3.CustomizationFormText = "layoutControlItem3";
+ this.layoutControlItem3.Location = new System.Drawing.Point(0, 708);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(923, 67);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.gbVoltageParamSet;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.MaxSize = new System.Drawing.Size(0, 214);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(424, 214);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(923, 214);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.gbChaTempParam;
+ this.layoutControlItem8.CustomizationFormText = "layoutControlItem8";
+ this.layoutControlItem8.Location = new System.Drawing.Point(0, 214);
+ this.layoutControlItem8.MaxSize = new System.Drawing.Size(0, 214);
+ this.layoutControlItem8.MinSize = new System.Drawing.Size(216, 214);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(459, 214);
+ this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem8.TextVisible = false;
+ //
+ // layoutControlItem11
+ //
+ this.layoutControlItem11.Control = this.gbDchTempParam;
+ this.layoutControlItem11.CustomizationFormText = "layoutControlItem11";
+ this.layoutControlItem11.Location = new System.Drawing.Point(459, 214);
+ this.layoutControlItem11.Name = "layoutControlItem11";
+ this.layoutControlItem11.Size = new System.Drawing.Size(464, 214);
+ this.layoutControlItem11.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem11.TextVisible = false;
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.gbCurrentParam;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 428);
+ this.layoutControlItem2.MaxSize = new System.Drawing.Size(0, 214);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(216, 214);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(459, 214);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // emptySpaceItem1
+ //
+ this.emptySpaceItem1.AllowHotTrack = false;
+ this.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1";
+ this.emptySpaceItem1.Location = new System.Drawing.Point(0, 642);
+ this.emptySpaceItem1.Name = "emptySpaceItem1";
+ this.emptySpaceItem1.Size = new System.Drawing.Size(459, 66);
+ this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // emptySpaceItem2
+ //
+ this.emptySpaceItem2.AllowHotTrack = false;
+ this.emptySpaceItem2.CustomizationFormText = "emptySpaceItem2";
+ this.emptySpaceItem2.Location = new System.Drawing.Point(459, 642);
+ this.emptySpaceItem2.Name = "emptySpaceItem2";
+ this.emptySpaceItem2.Size = new System.Drawing.Size(232, 66);
+ this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem19
+ //
+ this.layoutControlItem19.Control = this.gbDefaultParam;
+ this.layoutControlItem19.CustomizationFormText = "layoutControlItem19";
+ this.layoutControlItem19.Location = new System.Drawing.Point(691, 642);
+ this.layoutControlItem19.Name = "layoutControlItem19";
+ this.layoutControlItem19.Size = new System.Drawing.Size(232, 66);
+ this.layoutControlItem19.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem19.TextVisible = false;
+ //
+ // emptySpaceItem3
+ //
+ this.emptySpaceItem3.AllowHotTrack = false;
+ this.emptySpaceItem3.Location = new System.Drawing.Point(459, 428);
+ this.emptySpaceItem3.Name = "emptySpaceItem3";
+ this.emptySpaceItem3.Size = new System.Drawing.Size(232, 214);
+ this.emptySpaceItem3.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlGroup6
+ //
+ this.layoutControlGroup6.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem16});
+ this.layoutControlGroup6.Location = new System.Drawing.Point(691, 428);
+ this.layoutControlGroup6.Name = "layoutControlGroup6";
+ this.layoutControlGroup6.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup6.Size = new System.Drawing.Size(232, 214);
+ this.layoutControlGroup6.Text = "SOC Parameter";
+ //
+ // tmrDisplay
+ //
+ this.tmrDisplay.Interval = 500;
+ this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick);
+ //
+ // ucSocParam
+ //
+ this.ucSocParam.Location = new System.Drawing.Point(698, 456);
+ this.ucSocParam.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
+ this.ucSocParam.Name = "ucSocParam";
+ this.ucSocParam.Size = new System.Drawing.Size(220, 181);
+ this.ucSocParam.TabIndex = 14;
+ //
+ // ucDOCParam
+ //
+ this.ucDOCParam.Location = new System.Drawing.Point(227, 2);
+ this.ucDOCParam.Name = "ucDOCParam";
+ this.ucDOCParam.Size = new System.Drawing.Size(222, 181);
+ this.ucDOCParam.TabIndex = 5;
+ //
+ // ucCOCParam
+ //
+ this.ucCOCParam.Location = new System.Drawing.Point(2, 2);
+ this.ucCOCParam.Name = "ucCOCParam";
+ this.ucCOCParam.Size = new System.Drawing.Size(221, 181);
+ this.ucCOCParam.TabIndex = 4;
+ //
+ // layoutControlItem14
+ //
+ this.layoutControlItem14.Control = this.ucCOCParam;
+ this.layoutControlItem14.CustomizationFormText = "layoutControlItem14";
+ this.layoutControlItem14.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem14.Name = "layoutControlItem14";
+ this.layoutControlItem14.Size = new System.Drawing.Size(225, 185);
+ this.layoutControlItem14.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem14.TextVisible = false;
+ //
+ // layoutControlItem15
+ //
+ this.layoutControlItem15.Control = this.ucDOCParam;
+ this.layoutControlItem15.CustomizationFormText = "layoutControlItem15";
+ this.layoutControlItem15.Location = new System.Drawing.Point(225, 0);
+ this.layoutControlItem15.Name = "layoutControlItem15";
+ this.layoutControlItem15.Size = new System.Drawing.Size(226, 185);
+ this.layoutControlItem15.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem15.TextVisible = false;
+ //
+ // ucDLTParam
+ //
+ this.ucDLTParam.Location = new System.Drawing.Point(229, 2);
+ this.ucDLTParam.Name = "ucDLTParam";
+ this.ucDLTParam.Size = new System.Drawing.Size(225, 181);
+ this.ucDLTParam.TabIndex = 5;
+ //
+ // ucDHTParam
+ //
+ this.ucDHTParam.Location = new System.Drawing.Point(2, 2);
+ this.ucDHTParam.Name = "ucDHTParam";
+ this.ucDHTParam.Size = new System.Drawing.Size(223, 181);
+ this.ucDHTParam.TabIndex = 4;
+ //
+ // layoutControlItem12
+ //
+ this.layoutControlItem12.Control = this.ucDHTParam;
+ this.layoutControlItem12.CustomizationFormText = "layoutControlItem12";
+ this.layoutControlItem12.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem12.Name = "layoutControlItem12";
+ this.layoutControlItem12.Size = new System.Drawing.Size(227, 185);
+ this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem12.TextVisible = false;
+ //
+ // layoutControlItem13
+ //
+ this.layoutControlItem13.Control = this.ucDLTParam;
+ this.layoutControlItem13.CustomizationFormText = "layoutControlItem13";
+ this.layoutControlItem13.Location = new System.Drawing.Point(227, 0);
+ this.layoutControlItem13.Name = "layoutControlItem13";
+ this.layoutControlItem13.Size = new System.Drawing.Size(229, 185);
+ this.layoutControlItem13.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem13.TextVisible = false;
+ //
+ // ucCLTParam
+ //
+ this.ucCLTParam.Location = new System.Drawing.Point(227, 2);
+ this.ucCLTParam.Name = "ucCLTParam";
+ this.ucCLTParam.Size = new System.Drawing.Size(222, 181);
+ this.ucCLTParam.TabIndex = 5;
+ //
+ // ucCHTParam
+ //
+ this.ucCHTParam.Location = new System.Drawing.Point(2, 2);
+ this.ucCHTParam.Name = "ucCHTParam";
+ this.ucCHTParam.Size = new System.Drawing.Size(221, 181);
+ this.ucCHTParam.TabIndex = 4;
+ //
+ // layoutControlItem9
+ //
+ this.layoutControlItem9.Control = this.ucCHTParam;
+ this.layoutControlItem9.CustomizationFormText = "layoutControlItem9";
+ this.layoutControlItem9.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem9.Name = "layoutControlItem9";
+ this.layoutControlItem9.Size = new System.Drawing.Size(225, 185);
+ this.layoutControlItem9.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem9.TextVisible = false;
+ //
+ // layoutControlItem10
+ //
+ this.layoutControlItem10.Control = this.ucCLTParam;
+ this.layoutControlItem10.CustomizationFormText = "layoutControlItem10";
+ this.layoutControlItem10.Location = new System.Drawing.Point(225, 0);
+ this.layoutControlItem10.Name = "layoutControlItem10";
+ this.layoutControlItem10.Size = new System.Drawing.Size(226, 185);
+ this.layoutControlItem10.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem10.TextVisible = false;
+ //
+ // ucSUVParam
+ //
+ this.ucSUVParam.Location = new System.Drawing.Point(687, 2);
+ this.ucSUVParam.Name = "ucSUVParam";
+ this.ucSUVParam.Size = new System.Drawing.Size(226, 181);
+ this.ucSUVParam.TabIndex = 7;
+ //
+ // ucSOVParam
+ //
+ this.ucSOVParam.Location = new System.Drawing.Point(460, 2);
+ this.ucSOVParam.Name = "ucSOVParam";
+ this.ucSOVParam.Size = new System.Drawing.Size(223, 181);
+ this.ucSOVParam.TabIndex = 6;
+ //
+ // ucCUVParam
+ //
+ this.ucCUVParam.Location = new System.Drawing.Point(231, 2);
+ this.ucCUVParam.Name = "ucCUVParam";
+ this.ucCUVParam.Size = new System.Drawing.Size(225, 181);
+ this.ucCUVParam.TabIndex = 5;
+ //
+ // ucCOVParam
+ //
+ this.ucCOVParam.Location = new System.Drawing.Point(2, 2);
+ this.ucCOVParam.Name = "ucCOVParam";
+ this.ucCOVParam.Size = new System.Drawing.Size(225, 181);
+ this.ucCOVParam.TabIndex = 4;
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.ucCOVParam;
+ this.layoutControlItem4.CustomizationFormText = "layoutControlItem4";
+ this.layoutControlItem4.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(229, 185);
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.ucCUVParam;
+ this.layoutControlItem5.CustomizationFormText = "layoutControlItem5";
+ this.layoutControlItem5.Location = new System.Drawing.Point(229, 0);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(229, 185);
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.ucSOVParam;
+ this.layoutControlItem6.CustomizationFormText = "layoutControlItem6";
+ this.layoutControlItem6.Location = new System.Drawing.Point(458, 0);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(227, 185);
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.ucSUVParam;
+ this.layoutControlItem7.CustomizationFormText = "layoutControlItem7";
+ this.layoutControlItem7.Location = new System.Drawing.Point(685, 0);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(230, 185);
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem7.TextVisible = false;
+ //
+ // layoutControlItem16
+ //
+ this.layoutControlItem16.Control = this.ucSocParam;
+ this.layoutControlItem16.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem16.Name = "layoutControlItem16";
+ this.layoutControlItem16.Size = new System.Drawing.Size(224, 185);
+ this.layoutControlItem16.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem16.TextVisible = false;
+ //
+ // fmxParamConfig
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(925, 777);
+ this.Controls.Add(this.layoutControl1);
+ this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("fmxParamConfig.IconOptions.Icon")));
+ this.Name = "fmxParamConfig";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Parameter Config";
+ this.Load += new System.EventHandler(this.fmxParamConfig_Load);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.gbDefaultParam)).EndInit();
+ this.gbDefaultParam.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl7)).EndInit();
+ this.layoutControl7.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbCurrentParam)).EndInit();
+ this.gbCurrentParam.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl5)).EndInit();
+ this.layoutControl5.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbDchTempParam)).EndInit();
+ this.gbDchTempParam.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl4)).EndInit();
+ this.layoutControl4.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbChaTempParam)).EndInit();
+ this.gbChaTempParam.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit();
+ this.layoutControl3.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gbVoltageParamSet)).EndInit();
+ this.gbVoltageParamSet.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit();
+ this.layoutControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
+ private DevExpress.XtraEditors.SimpleButton btnClose;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private System.Windows.Forms.Timer tmrDisplay;
+ private DevExpress.XtraEditors.GroupControl gbVoltageParamSet;
+ private DevExpress.XtraLayout.LayoutControl layoutControl2;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private Controls.ucParamSet ucCOVParam;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private Controls.ucParamSet ucCUVParam;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private Controls.ucParamSet ucSUVParam;
+ private Controls.ucParamSet ucSOVParam;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ private DevExpress.XtraEditors.GroupControl gbChaTempParam;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ private DevExpress.XtraLayout.LayoutControl layoutControl3;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3;
+ private Controls.ucParamSet ucCLTParam;
+ private Controls.ucParamSet ucCHTParam;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10;
+ private DevExpress.XtraEditors.GroupControl gbDchTempParam;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11;
+ private DevExpress.XtraLayout.LayoutControl layoutControl4;
+ private Controls.ucParamSet ucDLTParam;
+ private Controls.ucParamSet ucDHTParam;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup4;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13;
+ private DevExpress.XtraEditors.GroupControl gbCurrentParam;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private DevExpress.XtraLayout.LayoutControl layoutControl5;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup5;
+ private Controls.ucParamSet ucDOCParam;
+ private Controls.ucParamSet ucCOCParam;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem14;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem15;
+ private DevExpress.XtraEditors.GroupControl gbDefaultParam;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem19;
+ private DevExpress.XtraLayout.LayoutControl layoutControl7;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup7;
+ private DevExpress.XtraEditors.SimpleButton btnDefaultSet;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem22;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem3;
+ private Controls.ucParamSet ucSocParam;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup6;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem16;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem4;
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxParamConfig.cs b/LFP_Manager/Forms/fmxParamConfig.cs
new file mode 100644
index 0000000..e2c3f51
--- /dev/null
+++ b/LFP_Manager/Forms/fmxParamConfig.cs
@@ -0,0 +1,399 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Linq;
+using System.Windows.Forms;
+using DevExpress.XtraEditors;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Controls;
+
+namespace LFP_Manager.Forms
+{
+ public partial class fmxParamConfig : DevExpress.XtraEditors.XtraForm
+ {
+ #region DELEGATE
+ public delegate void ParamUpdateEvent(object sendor);
+ public delegate void ParamCmdEvent(int sId, int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib);
+ #endregion
+
+ #region VARIABLES
+
+ private int SystemId = 0;
+ private CommConfig Config = null;
+ private DeviceParamData Param;
+ private DeviceCalibration Calib;
+
+ private ucParamSet[] ParamSet = null;
+
+ private int PasswordResult = 0;
+
+ public event ParamUpdateEvent OnUpdate = null;
+ public event ParamCmdEvent OnCommand = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public fmxParamConfig()
+ {
+ InitializeComponent();
+ }
+
+ public fmxParamConfig(int sId, CommConfig aConfig, DeviceParamData aParam)
+ {
+ InitializeComponent();
+
+ Config = aConfig;
+ SystemId = sId;
+ Param = aParam;
+
+ InitComponent();
+
+ gbVoltageParamSet.Text = "Parameter Config";
+
+ tmrDisplay.Enabled = true;
+ }
+
+ public void InitComponent()
+ {
+ ParamSet = new ucParamSet[11];
+
+
+ // Cell Voltage Parameter
+ ParamSet[0] = ucCOVParam;
+ ParamSet[0].SetParamName(0, "Cell Over Voltage");
+ ParamSet[0].SetParamName(1, "mV");
+ ParamSet[0].SetId(0);
+ ParamSet[0].OnCommand += OnCmdEvent;
+
+ ParamSet[1] = ucCUVParam;
+ ParamSet[1].SetParamName(0, "Cell Under Voltage");
+ ParamSet[1].SetParamName(1, "mV");
+ ParamSet[1].SetId(1);
+ ParamSet[1].OnCommand += OnCmdEvent;
+ //ucCUVParam.EnableItem(0, false);
+
+ // System Voltage Parameter
+ ParamSet[2] = ucSOVParam;
+ ParamSet[2].SetParamName(0, "System Over Voltage");
+ ParamSet[2].SetParamName(1, "V");
+ ParamSet[2].SetId(2);
+ ParamSet[2].OnCommand += OnCmdEvent;
+
+ ParamSet[3] = ucSUVParam;
+ ParamSet[3].SetParamName(0, "System Under Voltage");
+ ParamSet[3].SetParamName(1, "V");
+ ParamSet[3].SetId(3);
+ ParamSet[3].OnCommand += OnCmdEvent;
+ //ucSUVParam.EnableItem(0, false);
+
+ // Charge Temperature Parameter
+ ParamSet[4] = ucCHTParam;
+ ParamSet[4].SetParamName(0, "Charge High Temp");
+ ParamSet[4].SetParamName(1, "C");
+ ParamSet[4].SetId(4);
+ ParamSet[4].OnCommand += OnCmdEvent;
+
+ ParamSet[5] = ucCLTParam;
+ ParamSet[5].SetParamName(0, "Charge Low Temp");
+ ParamSet[5].SetParamName(1, "C");
+ ParamSet[5].SetId(5);
+ ParamSet[5].OnCommand += OnCmdEvent;
+
+ // Discharge Temperature Parameter
+ ParamSet[6] = ucDHTParam;
+ ParamSet[6].SetParamName(0, "Discharge High Temp");
+ ParamSet[6].SetParamName(1, "C");
+ ParamSet[6].SetId(6);
+ ParamSet[6].OnCommand += OnCmdEvent;
+ //ucDHTParam.EnableItem(0, false);
+
+ ParamSet[7] = ucDLTParam;
+ ParamSet[7].SetParamName(0, "Discharge Low Temp");
+ ParamSet[7].SetParamName(1, "C");
+ ParamSet[7].SetId(7);
+ ParamSet[7].OnCommand += OnCmdEvent;
+ //ucDLTParam.EnableItem(0, false);
+
+ // Over Current Parameter
+ ParamSet[8] = ucCOCParam;
+ ParamSet[8].SetParamName(0, "Charge Over Current");
+ ParamSet[8].SetParamName(1, "A");
+ ParamSet[8].SetId(8);
+ ParamSet[8].OnCommand += OnCmdEvent;
+ //ucCOCParam.EnableItem(2, false);
+
+ ParamSet[9] = ucDOCParam;
+ ParamSet[9].SetParamName(0, "Discharge Over Current");
+ ParamSet[9].SetParamName(1, "A");
+ ParamSet[9].SetId(9);
+ ParamSet[9].OnCommand += OnCmdEvent;
+ //ucDOCParam.EnableItem(2, false);
+
+ // Low Capacity Parameter
+ ParamSet[10] = ucSocParam;
+ ParamSet[10].SetParamName(0, "SOC");
+ ParamSet[10].SetParamName(1, "%");
+ ParamSet[10].SetId(10);
+ ParamSet[10].OnCommand += OnCmdEvent;
+ ParamSet[10].VisibleItem(0, false);
+ ParamSet[10].VisibleItem(2, false);
+ }
+
+ #endregion
+
+ #region COMMAND EVENT
+
+ private void OnCmdEvent(int mode, int flag, ParamData aParam)
+ {
+ int cmd = 0;
+ DeviceParamData wParam = Param.DeepCopy();
+
+ switch (mode)
+ {
+ case 0: // Cell Over Voltage
+ cmd = csConstData.UART_PARAM_LIST.CELL_OVER_VOLTAGE;
+ wParam.CellOverVoltageTrip = aParam.Fault;
+ wParam.CellOverVoltageWarning = aParam.Warning;
+ wParam.CellOverVoltageRelease = aParam.Release;
+ break;
+ case 1: // Cell Under Voltage
+ cmd = csConstData.UART_PARAM_LIST.CELL_UNDER_VOLTAGE;
+ wParam.CellUnderVoltageTrip = aParam.Fault;
+ wParam.CellUnderVoltageWarning = aParam.Warning;
+ wParam.CellUnderVoltageRelease = aParam.Release;
+ break;
+ case 2: // System Over Voltage
+ cmd = csConstData.UART_PARAM_LIST.PACK_OVER_VOLTAGE;
+ wParam.SysOverVoltageTrip = aParam.Fault;
+ wParam.SysOverVoltageWarning = aParam.Warning;
+ wParam.SysOverVoltageRelease = aParam.Release;
+ break;
+ case 3: // System Under Voltage
+ cmd = csConstData.UART_PARAM_LIST.PACK_UNDER_VOLTAGE;
+ wParam.SysUnderVoltageTrip = aParam.Fault;
+ wParam.SysUnderVoltageWarning = aParam.Warning;
+ wParam.SysUnderVoltageRelease = aParam.Release;
+ break;
+ case 4: // Charge High Temperature
+ cmd = csConstData.UART_PARAM_LIST.CHG_HIGH_TEMPERATURE;
+ wParam.ChaHighTempTrip = aParam.Fault;
+ wParam.ChaHighTempWarning = aParam.Warning;
+ wParam.ChaHighTempRelease = aParam.Release;
+ break;
+ case 5: // Charge Low Temperature
+ cmd = csConstData.UART_PARAM_LIST.CHG_LOW_TEMPERATURE;
+ wParam.ChaLowTempTrip = aParam.Fault;
+ wParam.ChaLowTempWarning = aParam.Warning;
+ wParam.ChaLowTempRelease = aParam.Release;
+ break;
+ case 6: // Discharge High Temperature
+ cmd = csConstData.UART_PARAM_LIST.DCH_HIGH_TEMPERATURE;
+ wParam.DchHighTempTrip = aParam.Fault;
+ wParam.DchHighTempWarning = aParam.Warning;
+ wParam.DchHighTempRelease = aParam.Release;
+ break;
+ case 7: // Discharge Low Temperature
+ cmd = csConstData.UART_PARAM_LIST.DCH_LOW_TEMPERATURE;
+ wParam.DchLowTempTrip = aParam.Fault;
+ wParam.DchLowTempWarning = aParam.Warning;
+ wParam.DchLowTempRelease = aParam.Release;
+ break;
+ case 8: // Charge Over Current
+ cmd = csConstData.UART_PARAM_LIST.CHG_OVER_CURRENT;
+ wParam.ChaOverCurrentTrip2 = aParam.Fault;
+ wParam.ChaOverCurrentTrip1 = aParam.Warning;
+ wParam.ChaOverCurrentReleaseTime = aParam.Release;
+ break;
+ case 9: // Discharge Over Current
+ cmd = csConstData.UART_PARAM_LIST.DCH_OVER_CURRENT;
+ wParam.DchOverCurrentTrip2 = aParam.Fault;
+ wParam.DchOverCurrentTrip1 = aParam.Warning;
+ wParam.DchOverCurrentReleaseTime = aParam.Release;
+ break;
+ case 10:
+ cmd = csConstData.UART_PARAM_LIST.LOW_CAPACITY;
+ wParam.LowSocTrip = aParam.Fault;
+ wParam.LowSocWarning = aParam.Warning;
+ wParam.LowSocRelease = aParam.Release;
+ break;
+ case 16: // Default Parameter
+ cmd = 0;
+ wParam.DefalutParamOption = aParam.Fault;
+ wParam.DefalutParamAll = aParam.Release;
+ break;
+ case 0x2D:
+ wParam.ReadParamAll = 0x002D;
+ cmd = 0x2D;
+ break;
+ case 99:
+ cmd = 200; // All parameter read
+ break;
+ }
+ OnCommand?.Invoke(SystemId, cmd, 6, flag, ref wParam, ref Calib);
+ }
+
+ #endregion
+
+ #region UPDATE DATA
+ public void UpdateData(DeviceParamData aParam, DeviceCalibration aCalib)
+ {
+ Param = aParam;
+ Calib = aCalib;
+ }
+ #endregion
+
+ #region TIMER EVENT
+ private void tmrDisplay_Tick(object sender, EventArgs e)
+ {
+ DisplayValue();
+
+ OnUpdate?.Invoke(this);
+ }
+ #endregion
+
+ private void DisplayValue()
+ {
+ ParamData pData = new ParamData();
+
+ // Cell Voltage Parameter
+ pData.Fault = Param.CellOverVoltageTrip;
+ pData.Warning = Param.CellOverVoltageWarning;
+ pData.Release = Param.CellOverVoltageRelease;
+ ucCOVParam.UpdateData(pData);
+
+ pData.Fault = Param.CellUnderVoltageTrip;
+ pData.Warning = Param.CellUnderVoltageWarning;
+ pData.Release = Param.CellUnderVoltageRelease;
+ ucCUVParam.UpdateData(pData);
+
+ // System Voltage Parameter
+ pData.Fault = Param.SysOverVoltageTrip;
+ pData.Warning = Param.SysOverVoltageWarning;
+ pData.Release = Param.SysOverVoltageRelease;
+ ucSOVParam.UpdateData(pData);
+
+ pData.Fault = Param.SysUnderVoltageTrip;
+ pData.Warning = Param.SysUnderVoltageWarning;
+ pData.Release = Param.SysUnderVoltageRelease;
+ ucSUVParam.UpdateData(pData);
+
+ // Charge Temp Parameter
+ pData.Fault = Param.ChaHighTempTrip;
+ pData.Warning = Param.ChaHighTempWarning;
+ pData.Release = Param.ChaHighTempRelease;
+ ucCHTParam.UpdateData(pData);
+
+ pData.Fault = Param.ChaLowTempTrip;
+ pData.Warning = Param.ChaLowTempWarning;
+ pData.Release = Param.ChaLowTempRelease;
+ ucCLTParam.UpdateData(pData);
+
+ // Discharge Temp Parameter
+ pData.Fault = Param.DchHighTempTrip;
+ pData.Warning = Param.DchHighTempWarning;
+ pData.Release = Param.DchHighTempRelease;
+ ucDHTParam.UpdateData(pData);
+
+ pData.Fault = Param.DchLowTempTrip;
+ pData.Warning = Param.DchLowTempWarning;
+ pData.Release = Param.DchLowTempRelease;
+ ucDLTParam.UpdateData(pData);
+
+ // Charge Over Current
+ pData.Fault = Param.ChaOverCurrentTrip2;
+ pData.Warning = Param.ChaOverCurrentTrip1;
+ pData.Release = Param.ChaOverCurrentReleaseTime;
+ ucCOCParam.UpdateData(pData);
+
+ // Discharge Over Current
+ pData.Fault = Param.DchOverCurrentTrip2;
+ pData.Warning = Param.DchOverCurrentTrip1;
+ pData.Release = Param.DchOverCurrentReleaseTime;
+ ucDOCParam.UpdateData(pData);
+
+ // SOC Parameter
+ pData.Fault = Param.LowSocTrip;
+ pData.Warning = Param.LowSocWarning;
+ pData.Release = Param.LowSocRelease;
+ ucSocParam.UpdateData(pData);
+ }
+
+ #region BUTTON EVENT
+ private void btnCancel_Click(object sender, EventArgs e)
+ {
+ this.Close();
+ }
+
+ private void btnGetAll_Click(object sender, EventArgs e)
+ {
+ ParamData aa = new ParamData();
+ OnCmdEvent(0x2D, 0, aa);
+ }
+
+ private void btnDefaultSet_Click(object sender, EventArgs e)
+ {
+ ParamData aa = new ParamData();
+
+ OnCmdEvent(16, 1, aa);
+
+ //DefaultTempAlarm();
+ }
+ #endregion
+
+ #region FORM EVENT
+ private void fmxParamConfig_Load(object sender, EventArgs e)
+ {
+ ParamConfig_ReLoad();
+ }
+
+ private void ParamConfig_ReLoad()
+ {
+ switch (Config.ControlLevel)
+ {
+ case 0: // User Level
+ for (int i = 0; i < ParamSet.Length; i++)
+ {
+ ParamSet[i].EnableDisableSetBtn(false);
+ }
+ btnDefaultSet.Enabled = false;
+ break;
+ case 1: // Technician Level
+ for (int i = 0; i < ParamSet.Length; i++)
+ {
+ ParamSet[i].EnableDisableSetBtn(false);
+ }
+ btnDefaultSet.Enabled = false;
+ break;
+ case 2: // Engineer Level
+ for (int i = 0; i < ParamSet.Length; i++)
+ {
+ ParamSet[i].EnableDisableSetBtn(true);
+ }
+ btnDefaultSet.Enabled = true;
+ break;
+ case 3: // Master Level
+ for (int i = 0; i < ParamSet.Length; i++)
+ {
+ ParamSet[i].EnableDisableSetBtn(true);
+ }
+ btnDefaultSet.Enabled = true;
+ break;
+ default: // User Level
+ for (int i = 0; i < ParamSet.Length; i++)
+ {
+ ParamSet[i].EnableDisableSetBtn(false);
+ }
+ btnDefaultSet.Enabled = false;
+ break;
+ }
+ }
+ #endregion
+
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxParamConfig.resx b/LFP_Manager/Forms/fmxParamConfig.resx
new file mode 100644
index 0000000..d0a61cc
--- /dev/null
+++ b/LFP_Manager/Forms/fmxParamConfig.resx
@@ -0,0 +1,4574 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+
+ AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA
+ GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/
+ ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7/////////////////////
+ ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff/////////
+ ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+
+ /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7/////
+ ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc
+ x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7/////////////////////////////
+ ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt
+ e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP
+ SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7/////////
+ ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z
+ WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS
+ Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8
+ +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+
+ /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+
+ /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO
+ SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz
+ 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o
+ 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9
+ /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE
+ oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG
+ PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7/////
+ ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH
+ PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t
+ 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/
+ ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/
+ ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7/////////////////////////////
+ ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+
+ /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ
+ TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7/////////////////
+ ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ
+ TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+
+ /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7/////
+ ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP
+ SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7/////////////////////////////////////////
+ ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/
+ ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7/////////////////////////////
+ ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/
+ ///+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////+/v7////////+/v3////////////////////////+/v3////////+/v7/////////////////
+ ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7/////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ /////////v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v7////////+/v7/////////////////////////////////////
+ ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7/////////////////////
+ ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7
+ +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9
+ /Pz+/v7/////////////////////////////////////////////////////////////////////////
+ ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM
+ RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7/////////////////////////////////////
+ ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL
+ QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+
+ /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP
+ SgCOSQCPTAKFOwDVvaT////9/Pv+/v7/////////////////////////////////////////////////
+ ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8
+ +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7/////////
+ /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO
+ SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF
+ OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+
+ ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/
+ //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7/////////////////////////
+ ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/
+ mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79
+ /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN
+ RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ
+ TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7/////
+ ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7/////
+ ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+
+ /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ
+ TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP
+ SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH
+ PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/
+ ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5
+ 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+
+ /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ
+ QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE
+ oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/
+ ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7/////////////////////////
+ ///////////////////////////////////////////////////////+/v7+////////////////////
+ ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+
+ /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9
+ /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP
+ SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL
+ RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7/////////////////////////////////
+ ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/
+ ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7/////////
+ ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP
+ SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI
+ PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/
+ ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x
+ glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7/////////////////////////////
+ ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM
+ RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+
+ /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/
+ ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP
+ SgCOSgGLRQGTURDz7ef+/v39/f3+/v7/////////////////////////////////////////////////
+ ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+
+ /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7/////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN
+ RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9
+ /fz9/f3+/v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO
+ SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7/////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO
+ SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS
+ UA/y6+X+/v39/fz+/v7+/v7/////////////////////////////////////////////////////////
+ ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP
+ SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7/////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+
+ /v7/////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO
+ SQCOSQGJQQDi0cD////9/Pv+/v7/////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J
+ QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7/////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39
+ /fz+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz
+ hFazhFayhFazhVete1TWvqb////9/fz+/v7/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+
+ /f3+/f3/////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v7+////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////v7+
+ /f39////////////////////////////////////////////////////////////////////////////
+ ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39
+ /fz8/v79/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA
+ nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1////
+ x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV
+ i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC
+ jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC
+ hz8Ap3I//fz7/fz8/v79/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7
+ /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8
+ +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p
+ /v39/f38/v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+
+ ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb
+ 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+//7+/f39
+ /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7////
+ 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+
+ /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA
+ j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB
+ j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB
+ i0UAlVYZ8+3m/f79/f38/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+////////////////
+ /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39
+ /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+
+ sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+
+ /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+////////
+ /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+
+ /f39/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO
+ /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39
+ 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39
+ /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+////////////////////////////
+ /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+////
+ /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A
+ kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ jkoCikIC4tHA/////Pv7/v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC
+ hz4A1r6m/////Pz7/v7+/v7+/////v7+////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+
+ /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+////////////////////
+ /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM
+ /////Pv6/v7+/v7+/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA
+ j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+
+ /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7
+ /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq////
+ /Pv6/v7+/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A
+ j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA
+ kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA
+ j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6
+ /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+////////
+ /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+
+ /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA
+ xaJ//////Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU
+ /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA
+ j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+////////////
+ 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+
+ /////v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39
+ /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/
+ /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6
+ ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+
+ /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC
+ kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB
+ kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39////
+ /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA
+ hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA
+ iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A
+ j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU
+ z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+////////
+ /v7+/////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7//v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn
+ +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3
+ +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8
+ /fz8/v7+/////v7+/////v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v///v7+/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT
+ z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7
+ ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A
+ hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A
+ fS0AtIdb/f38/Pz8///+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D
+ kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL
+ jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA
+ jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3
+ iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA
+ jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA
+ jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK
+ 6t7S/v7+/fz8/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs////
+ /Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7
+ /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38
+ /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fz8
+ /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+////////////////////////////////////
+ /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+
+ /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA
+ jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A
+ pnA8/Pv6/fz7/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq
+ iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+
+ /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+////////////
+ /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+
+ //7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A
+ 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES
+ jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+////////////////
+ /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6
+ /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7
+ /v79/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v39
+ /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8
+ +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+
+ /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ
+ hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ
+ 8+3m/f39/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+
+ /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA
+ jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA
+ u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA
+ j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA
+ jkkCikQE49PC/v7//fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8
+ /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+
+ /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7////
+ t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA
+ jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU
+ hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD
+ /////fz8//7//v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA
+ oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC
+ hj0Az7SX/////fz7//7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+//7+
+ /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH
+ jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA
+ jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT////
+ /Pz8/v7//v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA
+ t4tf/////fz7/v7+/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs
+ mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6
+ /v7+/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v7+
+ /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx
+ +/n3/fz8/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+
+ rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA
+ jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW
+ k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV
+ kU8TmVoj8ejg/v39/fz7/v7//f39/v//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off
+ 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v////7+/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v39/v7+
+ ///+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/v//////
+ /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v79/////////v7+/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v79/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////9/Lt9/Pu
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2svnmMrzrGR/////fz7////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ
+ /v39/fz8/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h
+ /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0////
+ 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC
+ j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ jUgBlFIO7uTa/////f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB
+ jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+
+ /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38////////////////////
+ /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z
+ iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+
+ sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG////
+ /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ hz4Ar35J/v39/fz8/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+////////
+ /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38////////////////////////////////
+ /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+////////////////////////////////////////////
+ /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA
+ /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW
+ k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+
+ /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+////////////////////
+ /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iEAA176j/////fz7////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39////////////////////////////////////////////
+ ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38
+ /fz8/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEA1buf/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+////////////
+ /////////////////////////////////////////////////////////////////////fz7////yKaB
+ hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v///f38////sH9K
+ hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oBi0QAnmIj9vHs/v39/v39////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA
+ nWAf9vHs/v7+/v79////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo////
+ /fz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v///f38////
+ 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/v79+/n3omor
+ ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm
+ +PTw/v39/f39////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sBjEUAmVwb9e/p/v7+/f38////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A
+ vpVq/////fz7/v/+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8AyKaB/////fz7/v///v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39
+ //7/////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC
+ jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsCiD8Auo9h/////fz8/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE
+ iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB
+ 4tC+/////f38/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjUcBk1EN7+Xb/////f39/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj
+ n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f38////u5Jlhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkBjUgE4M66/////fz7/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR
+ 7+bd/v7+/f39////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv
+ +/n4/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0
+ rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6
+ ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC
+ hz4AtolZ/////fz8/v3+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA
+ j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ j0sBikIApGww+vj1/v39/f39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ
+ j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M
+ /////Pz7/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkCjkkG4c+7/////fz7/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+///+/v39
+ /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d////
+ /fz7/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/f38/f38
+ 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A
+ jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sBiD8AyKiE/////fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oBiUEApW4z+vj1/v39/v39////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ
+ /v7+/f38/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4
+ 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD
+ 49PB/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/Pz7////
+ 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6////
+ /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A
+ j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC
+ iUEAqHQ7+/j2/fz8/v39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jUgBkk8K7ODV/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL////
+ /f38/v7+///+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6////////
+ ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A
+ ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38
+ /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBiUEA1Lqd/////fv6////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38
+ sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////v7+/v39
+ /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq
+ 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38
+ /v39/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjUgBkU4J6NrM/////fz8////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA
+ jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEArnxG/v7+/f38/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO
+ 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i////
+ /Pz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA
+ hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr
+ vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g
+ 4M24/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY
+ llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+////////////////////////////
+ /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsCiUEArXpD/v7//f39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB
+ ikMA1bqf/////fz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39
+ /f38/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39
+ /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/////////v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI
+ iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8////
+ /fz8////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA
+ mVsZ8+zl/v38/fz8////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7
+ /v7+//7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz7/v7+
+ 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf
+ 9vHs/v79/fz8////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z
+ iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAi0YAl1gT8+3l/v7+/f39////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA
+ upFj/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC
+ hz4AwZty/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////f39
+ /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC
+ jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ
+ hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsChz4At4ta/////fz8/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjUgCkEwL6dzO/////fz7////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD
+ 38y3/////fz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v/+/f39/v79
+ +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////fz8
+ /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A
+ kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK
+ 5tbG/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBjUcB4M25/////f38/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos
+ +PTw/fz8/f39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v//////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA
+ kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB
+ iUAAq3dA/Pr4/fz7/f39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v///fz7
+ ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA
+ j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0oBikMAomgq+vf0/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////Pz7////4M24
+ i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiUEA0rea/////fz7/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7
+ /v38/v39/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////f38/v79
+ +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/f38
+ ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ kEwChz4AxaJ8/////fz7/v7+////////////////////////////////////////////////////////
+ ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA
+ 07mb/////Pz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU
+ /v7+/Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+////
+ //////////////////////////////////////////////////////////////////////////////7/
+ /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7/////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+////////////////////////////
+ /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jEQAm10b9O/p/v7+/f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+////////////////////////////////////////
+ /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7
+ /v7//v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jUgAklAK6dzO/////f38/v//////////////////////////////////////////////////////////
+ /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6
+ /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng
+ lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+
+ /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiD8Au5Jl/////fz8/v7+//7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+////////////////////
+ /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj
+ /v39/fz8/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+////////////////////////////
+ /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8
+ ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb////
+ /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A
+ upFj/////fz8/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+
+ /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7////////////////////////
+ /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf
+ llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA
+ kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkBjUcA49LA/////f38/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79
+ /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3
+ qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8////0baX
+ iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD
+ /////fz8/v//////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA
+ nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA
+ qHI4/Pv5/v39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+
+ iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ kEsChz8Az7KS/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7
+ /v39/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v39
+ /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////fz8////59jIj0oD
+ jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ
+ /////fz8////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB
+ llYW7+Xb/v7+/f38/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0wChz8AuIxc/v7+/fz7/v39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+
+ /v39/v//////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fv6
+ ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAjkkBjEYA4M24/////fz8/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa
+ /////f38////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v39/fz7
+ 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB
+ jUcE3sq2/////Pz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oBikMAomgq+fXy/v39/f39////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/fz7////
+ 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq
+ +vf1/f38/f39//7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39
+ tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS
+ yqqM38u2/////v79/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/v79////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v79/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxWait.Designer.cs b/LFP_Manager/Forms/fmxWait.Designer.cs
new file mode 100644
index 0000000..56ddeb2
--- /dev/null
+++ b/LFP_Manager/Forms/fmxWait.Designer.cs
@@ -0,0 +1,94 @@
+namespace LFP_Manager.Forms
+{
+ partial class fmxWait
+ {
+ ///
+ /// 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()
+ {
+ this.progressPanel1 = new DevExpress.XtraWaitForm.ProgressPanel();
+ this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
+ this.tableLayoutPanel1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // progressPanel1
+ //
+ this.progressPanel1.Appearance.BackColor = System.Drawing.Color.Transparent;
+ this.progressPanel1.Appearance.Options.UseBackColor = true;
+ this.progressPanel1.AppearanceCaption.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F);
+ this.progressPanel1.AppearanceCaption.Options.UseFont = true;
+ this.progressPanel1.AppearanceDescription.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F);
+ this.progressPanel1.AppearanceDescription.Options.UseFont = true;
+ this.progressPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.progressPanel1.ImageHorzOffset = 20;
+ this.progressPanel1.Location = new System.Drawing.Point(0, 16);
+ this.progressPanel1.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
+ this.progressPanel1.Name = "progressPanel1";
+ this.progressPanel1.Size = new System.Drawing.Size(287, 35);
+ this.progressPanel1.TabIndex = 0;
+ this.progressPanel1.Text = "progressPanel1";
+ //
+ // tableLayoutPanel1
+ //
+ this.tableLayoutPanel1.AutoSize = true;
+ this.tableLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+ this.tableLayoutPanel1.BackColor = System.Drawing.Color.Transparent;
+ this.tableLayoutPanel1.ColumnCount = 1;
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel1.Controls.Add(this.progressPanel1, 0, 0);
+ this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
+ this.tableLayoutPanel1.Name = "tableLayoutPanel1";
+ this.tableLayoutPanel1.Padding = new System.Windows.Forms.Padding(0, 13, 0, 13);
+ this.tableLayoutPanel1.RowCount = 1;
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel1.Size = new System.Drawing.Size(287, 67);
+ this.tableLayoutPanel1.TabIndex = 1;
+ //
+ // fmxWait
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.AutoSize = true;
+ this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+ this.ClientSize = new System.Drawing.Size(287, 67);
+ this.Controls.Add(this.tableLayoutPanel1);
+ this.DoubleBuffered = true;
+ this.Name = "fmxWait";
+ this.ShowOnTopMode = DevExpress.XtraWaitForm.ShowFormOnTopMode.AboveAll;
+ this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
+ this.Text = "Form1";
+ this.tableLayoutPanel1.ResumeLayout(false);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private DevExpress.XtraWaitForm.ProgressPanel progressPanel1;
+ private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
+ }
+}
diff --git a/LFP_Manager/Forms/fmxWait.cs b/LFP_Manager/Forms/fmxWait.cs
new file mode 100644
index 0000000..d7060f6
--- /dev/null
+++ b/LFP_Manager/Forms/fmxWait.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Windows.Forms;
+using DevExpress.XtraWaitForm;
+
+namespace LFP_Manager.Forms
+{
+ public partial class fmxWait : WaitForm
+ {
+ public fmxWait()
+ {
+ InitializeComponent();
+ this.progressPanel1.AutoHeight = true;
+ }
+
+ #region Overrides
+
+ public override void SetCaption(string caption)
+ {
+ base.SetCaption(caption);
+ this.progressPanel1.Caption = caption;
+ }
+ public override void SetDescription(string description)
+ {
+ base.SetDescription(description);
+ this.progressPanel1.Description = description;
+ }
+ public override void ProcessCommand(Enum cmd, object arg)
+ {
+ base.ProcessCommand(cmd, arg);
+ }
+
+ #endregion
+
+ public enum WaitFormCommand
+ {
+ }
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Forms/fmxWait.resx b/LFP_Manager/Forms/fmxWait.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/LFP_Manager/Forms/fmxWait.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Function/CsCryptoHelper.cs b/LFP_Manager/Function/CsCryptoHelper.cs
new file mode 100644
index 0000000..65b5cbb
--- /dev/null
+++ b/LFP_Manager/Function/CsCryptoHelper.cs
@@ -0,0 +1,54 @@
+using System;
+using System.IO;
+using System.Security.Cryptography;
+using System.Text;
+
+namespace LFP_Manager.Function
+{
+ class CsCryptoHelper
+ {
+ // 고정 키 및 IV (보안상 실제 사용 시 안전하게 관리 필요)
+ private static readonly string key = "1234567890123456"; // 16글자 = 128bit
+ private static readonly string iv = "6543210987654321"; // 16글자 = 128bit
+
+ public static string Encrypt(string plainText)
+ {
+ using (Aes aesAlg = Aes.Create())
+ {
+ aesAlg.Key = Encoding.UTF8.GetBytes(key);
+ aesAlg.IV = Encoding.UTF8.GetBytes(iv);
+
+ ICryptoTransform encryptor = aesAlg.CreateEncryptor();
+
+ using (MemoryStream msEncrypt = new MemoryStream())
+ using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
+ using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
+ {
+ swEncrypt.Write(plainText);
+ swEncrypt.Close();
+ return Convert.ToBase64String(msEncrypt.ToArray());
+ }
+ }
+ }
+
+ public static string Decrypt(string cipherText)
+ {
+ using (Aes aesAlg = Aes.Create())
+ {
+ aesAlg.Key = Encoding.UTF8.GetBytes(key);
+ aesAlg.IV = Encoding.UTF8.GetBytes(iv);
+
+ ICryptoTransform decryptor = aesAlg.CreateDecryptor();
+
+ byte[] buffer = Convert.FromBase64String(cipherText);
+
+ using (MemoryStream msDecrypt = new MemoryStream(buffer))
+ using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
+ using (StreamReader srDecrypt = new StreamReader(csDecrypt))
+ {
+ return srDecrypt.ReadToEnd();
+ }
+ }
+ }
+ }
+}
diff --git a/LFP_Manager/Function/CsMakeDataFunction124050.cs b/LFP_Manager/Function/CsMakeDataFunction124050.cs
new file mode 100644
index 0000000..1671f54
--- /dev/null
+++ b/LFP_Manager/Function/CsMakeDataFunction124050.cs
@@ -0,0 +1,281 @@
+using LFP_Manager.DataStructure;
+using LFP_Manager.Utils;
+using System;
+
+namespace LFP_Manager.Function
+{
+ class csMakeDataFunction124050
+ {
+ private static DeviceSystemData MakeAlarmTripData(int id, short ndata, DeviceSystemData rSystemData)
+ {
+ bool[] aData = csUtils.Int16ToBitArray(ndata);
+ short bFault = rSystemData.StatusData.protection;
+ short bWarning = rSystemData.StatusData.warning;
+ int i = 0;
+
+ switch (id)
+ {
+ case 0: // Warning
+ if (aData[i++]) bWarning |= (1 << 2); // Bit 0 : Over voltage warning
+ else bWarning &= ~(1 << 2);
+ if (aData[i++]) bWarning |= (1 << 4); // Bit 1 : Cell Over voltage warning
+ else bWarning &= ~(1 << 4);
+ if (aData[i++]) bWarning |= (1 << 3); // Bit 2 : Low voltage warning
+ else bWarning &= ~(1 << 3);
+ if (aData[i++]) bWarning |= (1 << 5); // Bit 3 : Low cell voltage warning
+ else bWarning &= ~(1 << 5);
+ if (aData[i++]) bWarning |= (1 << 6); // Bit 4 : Charge over current warning
+ else bWarning &= ~(1 << 6);
+ if (aData[i++]) bWarning |= (1 << 7); // Bit 5 : Discharge over current warning
+ else bWarning &= ~(1 << 7);
+ i++; // 06 Abnormal balancing current
+ i++; // 07 Reserved
+ if ((aData[8]) || (aData[9])) bWarning |= (1 << 0); // Bit 8 : Charge over temperature warning, Bit 9 : Discharge over temperature warning
+ else bWarning &= ~(1 << 0);
+ i++; // 08
+ i++; // 09
+ if ((aData[10]) || (aData[11])) bWarning |= (1 << 1); // Bit 10 : Charge low temperature warning, Bit 11 : Discharge low temperature warning
+ else bWarning &= ~(1 << 1);
+ i++; // 10
+ i++; // 11
+ if (aData[i++]) bWarning |= (1 << 11); // 12 : Low capacity warning
+ else bWarning &= ~(1 << 11);
+ i++; // 13
+ if (aData[i++]) bWarning |= (1 << 9); // 14 Cell Voltage Difference Warning
+ else bWarning &= ~(1 << 9);
+ break;
+ case 1: // Status Code 2
+ if (aData[i++]) bFault |= (1 << 2); // Bit 0 : Over voltage warning
+ else bFault &= ~(1 << 2);
+ if (aData[i++]) bFault |= (1 << 4); // Bit 1 : Cell Over voltage warning
+ else bFault &= ~(1 << 4);
+ if (aData[i++]) bFault |= (1 << 3); // Bit 2 : Low voltage warning
+ else bFault &= ~(1 << 3);
+ if (aData[i++]) bFault |= (1 << 5); // Bit 3 : Low cell voltage warning
+ else bFault &= ~(1 << 5);
+ if (aData[i++]) bFault |= (1 << 6); // Bit 4 : Charge over current warning
+ else bFault &= ~(1 << 6);
+ if (aData[i++]) bFault |= (1 << 7); // Bit 5 : Discharge over current warning
+ else bFault &= ~(1 << 7);
+ i++; // 06 Abnormal balancing current
+ i++; // 07 Reserved
+ if ((aData[8]) || (aData[9])) bFault |= (1 << 0); // Bit 8 : Charge over temperature warning, Bit 9 : Discharge over temperature warning
+ else bFault &= ~(1 << 0);
+ i++; // 08
+ i++; // 09
+ if ((aData[10]) || (aData[11])) bFault |= (1 << 1); // Bit 10 : Charge low temperature warning, Bit 11 : Discharge low temperature warning
+ else bFault &= ~(1 << 1);
+ i++; // 10
+ i++; // 11
+ i++; // 12
+ i++; // 13
+ if (aData[i++]) bFault |= (1 << 9); // 14 Cell Voltage Difference Warning
+ else bFault &= ~(1 << 9);
+ break;
+ }
+
+ rSystemData.StatusData.protection = bFault;
+ rSystemData.StatusData.warning = bWarning;
+
+ return rSystemData;
+ }
+
+ public static void SetSnmpData(int index, object sdata, ref DeviceSystemData aSystemData)
+ {
+ switch (index)
+ {
+ case 1: aSystemData.ValueData.voltageOfPack = (short)(Convert.ToDouble(sdata) / 10); break; // voltageOfPack - 0.01V
+ case 2: aSystemData.ValueData.current = (short)(Convert.ToDouble(sdata) - 10000); break; // current - 0.1A, Offset: 10000
+ case 3: // Cell Voltage #1
+ case 4: // Cell Voltage #2
+ case 5: // Cell Voltage #3
+ case 6: // Cell Voltage #4
+ case 7: // Cell Voltage #5
+ case 8: // Cell Voltage #6
+ case 9: // Cell Voltage #7
+ case 10: // Cell Voltage #8
+ case 11: // Cell Voltage #9
+ case 12: // Cell Voltage #10
+ case 13: // Cell Voltage #11
+ case 14: // Cell Voltage #12
+ case 15: // Cell Voltage #13
+ case 16: // Cell Voltage #14
+ case 17: // Cell Voltage #15
+ case 18: // Cell Voltage #16
+ case 19: // Cell Voltage #17
+ case 20: // Cell Voltage #18
+ case 21: // Cell Voltage #19
+ case 22: // Cell Voltage #20
+ case 23: // Cell Voltage #21
+ case 24: // Cell Voltage #22
+ case 25: // Cell Voltage #23
+ case 26: // Cell Voltage #24
+ case 27: // Cell Voltage #25
+ case 28: // Cell Voltage #26
+ case 29: // Cell Voltage #27
+ case 30: // Cell Voltage #28
+ case 31: // Cell Voltage #29
+ case 32: // Cell Voltage #30
+ case 33: // Cell Voltage #31
+ case 34: // Cell Voltage #32
+ case 35: // Cell Voltage #33
+ case 36: // Cell Voltage #34
+ case 37: // Cell Voltage #35
+ case 38: // Cell Voltage #36
+ case 39: // Cell Voltage #37
+ case 40: // Cell Voltage #38
+ case 41: // Cell Voltage #39
+ aSystemData.ValueData.CellVoltage[index - 3] = (ushort)(Convert.ToDouble(sdata) / 1);
+ csUtils.MakeMaxAvgMinCellVoltage(ref aSystemData, 39);
+ break; // Cell Voltage #16
+
+ case 43: aSystemData.ValueData.Ext1Temperature = (short)(Convert.ToDouble(sdata) * 10); break; // Temp of PCB - C
+ case 44: aSystemData.ValueData.Ext2Temperature = (short)(Convert.ToDouble(sdata) * 10); break; // Temp of Ambient - C
+ case 45: aSystemData.AvgData.maxTemp = (short)(Convert.ToDouble(sdata) * 10); break; // Max. Temp
+
+ case 46: aSystemData.ValueData.remainingCapacity = (short)(Convert.ToDouble(sdata) * 1); break; // Remaining Capacity
+
+ case 47: aSystemData.ValueData.stateOfHealth = (short)(Convert.ToDouble(sdata) / 10); break; // stateOfHealth
+ case 48: aSystemData.ValueData.rSOC = (short)(Convert.ToDouble(sdata) / 10); break; // Relatvie State Of Charge
+
+ case 49: aSystemData.StatusData.status = (short)(Convert.ToDouble(sdata) / 1); break; // Status
+ case 50: aSystemData.StatusData.warning = MakeSnmpWarningData((short)Convert.ToDouble(sdata)); break; // warning
+ case 51: aSystemData.StatusData.protection = MakeSnmpTripData((short)Convert.ToDouble(sdata)); break; // Protection
+ case 52: // FaultAndStatus
+ aSystemData.StatusData.faultAndStatus = (short)(Convert.ToDouble(sdata) / 1);
+ //aSystemData.StatusData.status = (short)(((short)Convert.ToDouble(sdata) >> 8) & 0x0003);
+ MakeAlarm(ref aSystemData);
+ break;
+ case 53: aSystemData.ValueData.cycleCount = (short)(Convert.ToDouble(sdata) / 1); break; // cycleCount
+
+ case 54: // Temperature #1
+ case 55: // Temperature #2
+ case 56: // Temperature #3
+ case 57: // Temperature #4
+ case 58: // Temperature #5
+ case 59: // Temperature #6
+ case 60: // Temperature #7
+ case 61: // Temperature #8
+ aSystemData.ValueData.CellTemperature[index - 54] = (short)(Convert.ToDouble(sdata) * 10);
+ csUtils.MakeMaxAvgMinTemperature(ref aSystemData, 8);
+ break; // Temperature #12
+
+ case 68: aSystemData.cellQty = (short)(Convert.ToDouble(sdata) * 1); break; // Cell Number
+ case 69: aSystemData.ValueData.designedCapacity = (short)(Convert.ToDouble(sdata) * 1); break; // Cell Number
+ case 70: break; // Average Temperature
+ case 71: aSystemData.ValueData.MaxBattChargeCurr = (short)(Convert.ToDouble(sdata) * 1); break; // Max. Charge Current - A
+ case 72: aSystemData.ntcQty = (short)(Convert.ToDouble(sdata) * 1); break; // NTC Number
+
+ case 74: aSystemData.BmsDateTime.year = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Year
+ case 75: aSystemData.BmsDateTime.month = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Month
+ case 76: aSystemData.BmsDateTime.day = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Day
+ case 77: aSystemData.BmsDateTime.hour = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Hour
+ case 78: aSystemData.BmsDateTime.minute = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Minute
+ case 79:
+ aSystemData.BmsDateTime.second = (short)(Convert.ToDouble(sdata) * 1); // BMS DateTime - Second
+ aSystemData.BmsDateTime.DateTimeStr = string.Format("{0:0000}-{1:00}-{2:00} {3:00}:{4:00}:{5:00}"
+ , aSystemData.BmsDateTime.year
+ , aSystemData.BmsDateTime.month
+ , aSystemData.BmsDateTime.day
+ , aSystemData.BmsDateTime.hour
+ , aSystemData.BmsDateTime.minute
+ , aSystemData.BmsDateTime.second
+ );
+ break;
+
+ case 81: aSystemData.FloatVoltage = (int)Convert.ToDouble(sdata); break; // Float Voltage - 0.01V
+ case 82: aSystemData.BoostVoltage = (int)Convert.ToDouble(sdata); break; // Boost Voltage - 0.01V
+
+ case 83: aSystemData.MinChargeTemp = (int)Convert.ToDouble(sdata); break; // Min. Charge Temp - C
+ case 84: aSystemData.MaxChargeTemp = (int)Convert.ToDouble(sdata); break; // Max. Charge Temp - C
+
+ case 90: aSystemData.Information.ModelName = (string)sdata; break; // Model - string
+ case 91: aSystemData.Information.SwProductRev = (string)sdata; break; // BMS Fw Version - string
+ case 92: aSystemData.Information.HwSerialNumber = (string)sdata; break; // Pack Serial Number - string
+ case 93: aSystemData.Information.VendorName = (string)sdata; break; // Vendor Name - string
+ case 94: aSystemData.Information.ProductCode = (string)sdata; break; // Product Code - string
+ case 95: aSystemData.Information.MajorMinorRev = (string)sdata; break; // Major Minor Revision - string
+ case 96: aSystemData.Information.HwProductRev = (string)sdata; break; // Hardware Product Revision - string
+ case 97: aSystemData.Information.ManufacturingDate = (string)sdata; break; // Manufacturing Date - string
+
+ default:
+ break;
+ }
+ }
+ public static void MakeAlarm(ref DeviceSystemData rSystemData)
+ {
+ if (((rSystemData.StatusData.faultAndStatus >> 14) & 0x0001) == 0x0001)
+ {
+ rSystemData.StatusData.batteryStatus = 4; // Anti-theft Gyroscope
+ }
+ else if (((rSystemData.StatusData.faultAndStatus >> 15) & 0x0001) == 0x0001)
+ {
+ rSystemData.StatusData.batteryStatus = 5; // Anti-theft Comm.
+ }
+ else if (rSystemData.StatusData.protection != 0x0000)
+ {
+ rSystemData.StatusData.batteryStatus = 2;
+ }
+ else if (rSystemData.StatusData.warning != 0x0000)
+ {
+ rSystemData.StatusData.batteryStatus = 1;
+ }
+ else
+ {
+ rSystemData.StatusData.batteryStatus = 0;
+ }
+ }
+ public static short MakeSnmpTripData(short rdata)
+ {
+ short result = 0;
+ bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
+
+ if (bAlarm[0] == true) result |= (short)(1 << 4); // 0x0001:Cell OV
+ if (bAlarm[1] == true) result |= (short)(1 << 2); // 0x0002:Pack OV
+ if (bAlarm[2] == true) result |= (short)(1 << 5); // 0x0004:Cell UV
+ if (bAlarm[3] == true) result |= (short)(1 << 3); // 0x0008:Pack UV
+
+ if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC1
+ if (bAlarm[5] == true) result |= (short)(1 << 6); // 0x0020:Charging OC2
+ if (bAlarm[6] == true) result |= (short)(1 << 7); // 0x0010:Discharging OC1
+ if (bAlarm[7] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC2
+
+ if (bAlarm[8] == true) result |= (short)(1 << 9); // 0x0200:Short Circuit Protection
+
+ if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Tempratuer
+ if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0080: Charging Under Tempratuer
+ if (bAlarm[11] == true) result |= (short)(1 << 0); // 0x0040: Discharging Over Tempratuer
+ if (bAlarm[12] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Tempratuer
+
+ return result;
+ }
+ public static short MakeSnmpWarningData(short rdata)
+ {
+ short result = 0;
+ bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
+
+ if (bAlarm[0] == true) result |= (short)(1 << 4); // 0x0001:Cell OV
+ if (bAlarm[1] == true) result |= (short)(1 << 5); // 0x0002:Cell UV
+ if (bAlarm[2] == true) result |= (short)(1 << 2); // 0x0004:Pack OV
+ if (bAlarm[3] == true) result |= (short)(1 << 3); // 0x0008:Pack UV
+
+ if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC
+ if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC
+
+ if (bAlarm[6] == true) result |= (short)(1 << 8); // 0x0040:ENV OT
+ if (bAlarm[7] == true) result |= (short)(1 << 9); // 0x0080:ENV UT
+
+ if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0100: Charging Over Temprature
+ if (bAlarm[9] == true) result |= (short)(1 << 1); // 0x0200: Charging Under Temprature
+ if (bAlarm[10] == true) result |= (short)(1 << 0); // 0x0400: Discharging Over Temprature
+ if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0800: Discharging Under Temprature
+
+ if (bAlarm[12] == true) result |= (short)(1 << 11); // 0x1000:SOC Low
+
+ if (bAlarm[13] == true) result |= (short)(1 << 13); // 0x2000:Diff Volt
+ if (bAlarm[14] == true) result |= (short)(1 << 14); // 0x4000:CB Off
+
+ return result;
+ }
+ }
+}
diff --git a/LFP_Manager/Function/CsRs232CommFunction124050.cs b/LFP_Manager/Function/CsRs232CommFunction124050.cs
new file mode 100644
index 0000000..7781eaf
--- /dev/null
+++ b/LFP_Manager/Function/CsRs232CommFunction124050.cs
@@ -0,0 +1,562 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using LFP_Manager.DataStructure;
+using LFP_Manager.Utils;
+using LFP_Manager.Controls;
+
+namespace LFP_Manager.Function
+{
+ ///
+ /// BMS 장치와의 시리얼 통신을 위한 개선된 클래스
+ /// Modbus RTU 프로토콜 및 커스텀 프로토콜 지원
+ ///
+ public class CsRs232CommFunction124050
+ {
+ #region Constants - Modbus Function Codes
+ public const byte READ_COIL_STATUS = 0x01;
+ public const byte READ_HOLDING_REG = 0x03;
+ public const byte READ_INPUT_REG = 0x04;
+ public const byte FORCE_SINGLE_COIL = 0x05;
+ public const byte PRESET_SINGLE_REG = 0x06;
+ public const byte WRITE_COIL_REG = 0x0F;
+ public const byte PRESET_MULTI_REG = 0x10;
+ public const byte ERROR_REG = 0x90;
+ public const byte FW_FLASH_ERASE_CMD = 0x43;
+ public const byte FW_FLASH_WRITE_CMD = 0x31;
+ public const byte NO_CMD = 0xFF;
+ #endregion
+
+ #region Constants - Register Addresses
+ private static class RegisterAddress
+ {
+ // Basic Data
+ public const int PACK_VOLTAGE = 0;
+ public const int PACK_CURRENT = 1;
+ public const int CELL_VOLTAGE_START = 2;
+ public const int CELL_VOLTAGE_END = 17;
+ public const int EXT1_TEMPERATURE = 18;
+ public const int EXT2_TEMPERATURE = 19;
+ public const int REMAINING_CAPACITY = 21;
+ public const int MAX_CHARGE_CURRENT = 22;
+ public const int STATE_OF_HEALTH = 23;
+ public const int STATE_OF_CHARGE = 24;
+
+ // Status Registers
+ public const int OPERATING_STATUS = 25;
+ public const int WARNING_STATUS = 26;
+ public const int PROTECTION_STATUS = 27;
+ public const int ERROR_CODE = 28;
+ public const int CYCLE_COUNT_MSB = 29;
+ public const int CYCLE_COUNT_LSB = 30;
+
+ // Temperature Registers (Packed)
+ public const int CELL_TEMP_START = 32;
+ public const int CELL_TEMP_END = 35;
+
+ // Device Info
+ public const int CELL_QTY = 36;
+ public const int DESIGNED_CAPACITY = 37;
+ public const int CELL_BALANCE_STATUS = 38;
+ public const int DATETIME_MSB = 45;
+ public const int DATETIME_LSB = 46;
+ public const int SPECIAL_ALARM = 49;
+
+ // Protection Parameters
+ public const int LOW_SOC_WARNING = 58;
+ public const int CELL_UV_WARNING = 61;
+ public const int CELL_UV_TRIP = 62;
+ public const int CELL_UV_RELEASE = 63;
+ public const int SYS_UV_WARNING = 64;
+ public const int SYS_UV_TRIP = 65;
+ public const int SYS_UV_RELEASE = 66;
+ public const int CELL_OV_WARNING = 67;
+ public const int CELL_OV_TRIP = 68;
+ public const int CELL_OV_RELEASE = 69;
+ public const int SYS_OV_WARNING = 70;
+ public const int SYS_OV_TRIP = 71;
+ public const int SYS_OV_RELEASE = 72;
+
+ // Current Protection
+ public const int CHA_OC_TIMES = 76;
+ public const int DCH_OC_TIMES = 77;
+ public const int CHA_OC_RELEASE_TIME = 78;
+ public const int DCH_OC_RELEASE_TIME = 79;
+ public const int CHA_OC_TRIP1 = 80;
+ public const int DCH_OC_TRIP1 = 81;
+ public const int SHORT_CIRCUIT = 82;
+ public const int CHA_OC_TRIP2 = 83;
+ public const int DCH_OC_TRIP2 = 84;
+ public const int CHA_OC_DELAY1 = 85;
+ public const int CHA_OC_DELAY2 = 86;
+ public const int DCH_OC_DELAY1 = 87;
+ public const int DCH_OC_DELAY2 = 88;
+
+ // Temperature Protection
+ public const int CHA_LOW_TEMP_WARNING = 90;
+ public const int CHA_LOW_TEMP_TRIP = 91;
+ public const int CHA_LOW_TEMP_RELEASE = 92;
+ public const int CHA_HIGH_TEMP_WARNING = 93;
+ public const int CHA_HIGH_TEMP_TRIP = 94;
+ public const int CHA_HIGH_TEMP_RELEASE = 95;
+ public const int DCH_LOW_TEMP_WARNING = 96;
+ public const int DCH_LOW_TEMP_TRIP = 97;
+ public const int DCH_LOW_TEMP_RELEASE = 98;
+ public const int DCH_HIGH_TEMP_WARNING = 99;
+ public const int DCH_HIGH_TEMP_TRIP = 100;
+ public const int DCH_HIGH_TEMP_RELEASE = 101;
+
+ // Device Information
+ public const int MODEL_NAME_START = 105;
+ public const int MODEL_NAME_END = 116;
+ public const int FW_VERSION_START = 117;
+ public const int FW_VERSION_END = 119;
+ public const int SERIAL_NUMBER_START = 120;
+ public const int SERIAL_NUMBER_END = 127;
+
+ // Extended Cell Voltages
+ public const int EXT_CELL_VOLTAGE_START = 138;
+ public const int EXT_CELL_VOLTAGE_END = 160;
+
+ // Manufacturing Date
+ public const int MANU_DATE_START = 163;
+ public const int MANU_DATE_END = 166;
+ }
+ #endregion
+
+ #region Delegates and Events
+ public delegate void LogEventHandler(string message, LogLevel level);
+ public static event LogEventHandler OnLog;
+
+ public enum LogLevel
+ {
+ Info,
+ Warning,
+ Error
+ }
+ #endregion
+
+ #region Modbus Frame Construction
+ ///
+ /// Modbus 읽기 요청 프레임 생성
+ ///
+ public static byte[] CreateReadRegisterFrame(byte deviceId, byte functionCode, ushort startAddress, ushort quantity)
+ {
+ if (quantity == 0 || quantity > 125)
+ throw new ArgumentException("Invalid register quantity");
+
+ var frame = new byte[8];
+ frame[0] = deviceId;
+ frame[1] = functionCode;
+ frame[2] = (byte)(startAddress >> 8);
+ frame[3] = (byte)(startAddress & 0xFF);
+ frame[4] = (byte)(quantity >> 8);
+ frame[5] = (byte)(quantity & 0xFF);
+
+ var crc = csUtils.CalculateCRC(frame, 6);
+ frame[6] = crc[0];
+ frame[7] = crc[1];
+
+ return frame;
+ }
+
+ ///
+ /// Modbus 다중 레지스터 쓰기 요청 프레임 생성
+ ///
+ public static byte[] CreateWriteMultipleRegistersFrame(byte deviceId, ushort startAddress, short[] values)
+ {
+ if (values == null || values.Length == 0 || values.Length > 123)
+ throw new ArgumentException("Invalid values array");
+
+ var frame = new byte[9 + (values.Length * 2)];
+ int index = 0;
+
+ frame[index++] = deviceId;
+ frame[index++] = PRESET_MULTI_REG;
+ frame[index++] = (byte)(startAddress >> 8);
+ frame[index++] = (byte)(startAddress & 0xFF);
+ frame[index++] = (byte)(values.Length >> 8);
+ frame[index++] = (byte)(values.Length & 0xFF);
+ frame[index++] = (byte)(values.Length * 2);
+
+ foreach (var value in values)
+ {
+ frame[index++] = (byte)(value >> 8);
+ frame[index++] = (byte)(value & 0xFF);
+ }
+
+ var crc = csUtils.CalculateCRC(frame, index);
+ frame[index++] = crc[0];
+ frame[index++] = crc[1];
+
+ return frame;
+ }
+
+ ///
+ /// 단일 코일 쓰기 요청 프레임 생성
+ ///
+ public static byte[] CreateWriteCoilFrame(byte deviceId, ushort coilAddress, bool value)
+ {
+ var frame = new byte[8];
+ frame[0] = deviceId;
+ frame[1] = FORCE_SINGLE_COIL;
+ frame[2] = (byte)(coilAddress >> 8);
+ frame[3] = (byte)(coilAddress & 0xFF);
+ frame[4] = value ? (byte)0xFF : (byte)0x00;
+ frame[5] = 0x00;
+
+ var crc = csUtils.CalculateCRC(frame, 6);
+ frame[6] = crc[0];
+ frame[7] = crc[1];
+
+ return frame;
+ }
+ #endregion
+
+ #region Frame Validation
+ ///
+ /// Modbus 응답 프레임 검증
+ ///
+ public static ValidationResult ValidateModbusResponse(byte[] data, int length)
+ {
+ if (data == null || length < 3)
+ return new ValidationResult(false, "Insufficient data length");
+
+ try
+ {
+ byte functionCode = data[1];
+ int expectedLength = CalculateExpectedLength(functionCode, data, length);
+
+ if (length < expectedLength)
+ return new ValidationResult(false, "Incomplete frame");
+
+ var calculatedCrc = csUtils.CalculateCRC(data, length - 2);
+ var receivedCrc = new byte[] { data[length - 2], data[length - 1] };
+
+ if (calculatedCrc[0] != receivedCrc[0] || calculatedCrc[1] != receivedCrc[1])
+ return new ValidationResult(false, "CRC mismatch");
+
+ return new ValidationResult(true, "Valid frame");
+ }
+ catch (Exception ex)
+ {
+ OnLog?.Invoke($"Frame validation error: {ex.Message}", LogLevel.Error);
+ return new ValidationResult(false, ex.Message);
+ }
+ }
+
+ private static int CalculateExpectedLength(byte functionCode, byte[] data, int length)
+ {
+ switch (functionCode)
+ {
+ case READ_COIL_STATUS:
+ case READ_HOLDING_REG:
+ case READ_INPUT_REG:
+ return length >= 3 ? data[2] + 5 : 5;
+ case PRESET_MULTI_REG:
+ case FORCE_SINGLE_COIL:
+ case PRESET_SINGLE_REG:
+ return 8;
+ case ERROR_REG:
+ return 5;
+ case FW_FLASH_ERASE_CMD:
+ case FW_FLASH_WRITE_CMD:
+ return 5;
+ default:
+ return length;
+ }
+ }
+ #endregion
+
+ #region Data Processing
+ ///
+ /// Modbus 응답 데이터를 시스템 데이터로 변환
+ ///
+ public static ProcessingResult ProcessModbusResponse(byte[] data, ushort startAddress, ushort length, ref DeviceSystemData systemData)
+ {
+ if (data == null || systemData == null)
+ return new ProcessingResult(false, "Invalid input parameters");
+
+ try
+ {
+ byte functionCode = data[1];
+
+ switch (functionCode)
+ {
+ case READ_COIL_STATUS:
+ return ProcessCoilResponse(data, startAddress, length, ref systemData);
+ case READ_HOLDING_REG:
+ return ProcessHoldingRegisterResponse(data, startAddress, length, ref systemData);
+ case READ_INPUT_REG:
+ return ProcessInputRegisterResponse(data, startAddress, length, ref systemData);
+ case ERROR_REG:
+ return ProcessErrorResponse(data, ref systemData);
+ default:
+ return new ProcessingResult(false, $"Unsupported function code: {functionCode:X2}");
+ }
+ }
+ catch (Exception ex)
+ {
+ OnLog?.Invoke($"Data processing error: {ex.Message}", LogLevel.Error);
+ return new ProcessingResult(false, ex.Message);
+ }
+ }
+
+ private static ProcessingResult ProcessHoldingRegisterResponse(byte[] data, ushort startAddress, ushort length, ref DeviceSystemData systemData)
+ {
+ int byteCount = data[2];
+ int registerCount = byteCount / 2;
+ int dataIndex = 3;
+
+ var processors = GetRegisterProcessors();
+
+ for (int i = 0; i < registerCount; i++)
+ {
+ ushort registerAddress = (ushort)(startAddress + i);
+ short registerValue = (short)((data[dataIndex] << 8) | data[dataIndex + 1]);
+
+ if (processors.TryGetValue(registerAddress, out var processor))
+ {
+ processor.Invoke(registerValue, systemData);
+ }
+
+ dataIndex += 2;
+ }
+
+ // 계산된 값들 업데이트
+ UpdateCalculatedValues(ref systemData);
+
+ return new ProcessingResult(true, "Processing completed successfully");
+ }
+
+ private static ProcessingResult ProcessCoilResponse(byte[] data, ushort startAddress, ushort length, ref DeviceSystemData systemData)
+ {
+ // 코일 데이터 처리 로직
+ return new ProcessingResult(true, "Coil processing completed");
+ }
+
+ private static ProcessingResult ProcessInputRegisterResponse(byte[] data, ushort startAddress, ushort length, ref DeviceSystemData systemData)
+ {
+ // 입력 레지스터 데이터 처리 로직
+ return new ProcessingResult(true, "Input register processing completed");
+ }
+
+ private static ProcessingResult ProcessErrorResponse(byte[] data, ref DeviceSystemData systemData)
+ {
+ return new ProcessingResult(false, $"Device error: {data[2]:X2}");
+ }
+ #endregion
+
+ #region Register Processing
+ private static Dictionary> GetRegisterProcessors()
+ {
+ return new Dictionary>
+ {
+ [RegisterAddress.PACK_VOLTAGE] = (value, data) => data.ValueData.voltageOfPack = (short)(value / 10),
+ [RegisterAddress.PACK_CURRENT] = (value, data) => data.ValueData.current = (short)(value / 10),
+ [RegisterAddress.REMAINING_CAPACITY] = (value, data) => data.ValueData.remainingCapacity = value,
+ [RegisterAddress.STATE_OF_HEALTH] = (value, data) => data.ValueData.stateOfHealth = (short)(value * 10),
+ [RegisterAddress.STATE_OF_CHARGE] = (value, data) => data.ValueData.rSOC = (short)(value * 10),
+ [RegisterAddress.OPERATING_STATUS] = (value, data) => data.StatusData.status = value,
+ [RegisterAddress.WARNING_STATUS] = (value, data) => data.StatusData.warning = ConvertWarningData(value),
+ [RegisterAddress.PROTECTION_STATUS] = (value, data) => data.StatusData.protection = ConvertProtectionData(value),
+ [RegisterAddress.CELL_QTY] = (value, data) => data.recv_cellQty = value,
+ [RegisterAddress.DESIGNED_CAPACITY] = (value, data) => data.ValueData.designedCapacity = value,
+ // 추가 레지스터 처리기들...
+ };
+ }
+
+ private static void ProcessCellVoltages(ushort address, short value, ref DeviceSystemData systemData)
+ {
+ if (address >= RegisterAddress.CELL_VOLTAGE_START && address <= RegisterAddress.CELL_VOLTAGE_END)
+ {
+ int cellIndex = address - RegisterAddress.CELL_VOLTAGE_START;
+ if (cellIndex < systemData.ValueData.CellVoltage.Length)
+ {
+ systemData.ValueData.CellVoltage[cellIndex] = (ushort)value;
+ }
+ }
+ else if (address >= RegisterAddress.EXT_CELL_VOLTAGE_START && address <= RegisterAddress.EXT_CELL_VOLTAGE_END)
+ {
+ int cellIndex = address - RegisterAddress.EXT_CELL_VOLTAGE_START + 16;
+ if (cellIndex < systemData.ValueData.CellVoltage.Length)
+ {
+ systemData.ValueData.CellVoltage[cellIndex] = (ushort)value;
+ }
+ }
+ }
+
+ private static void ProcessCellTemperatures(ushort address, short value, ref DeviceSystemData systemData)
+ {
+ if (address >= RegisterAddress.CELL_TEMP_START && address <= RegisterAddress.CELL_TEMP_END)
+ {
+ int tempIndex = (address - RegisterAddress.CELL_TEMP_START) * 2;
+ if (tempIndex + 1 < systemData.ValueData.CellTemperature.Length)
+ {
+ systemData.ValueData.CellTemperature[tempIndex] = (short)(((value >> 8) & 0xFF) * 10);
+ systemData.ValueData.CellTemperature[tempIndex + 1] = (short)((value & 0xFF) * 10);
+ }
+ }
+ }
+ #endregion
+
+ #region Data Conversion
+ private static short ConvertWarningData(short rawData)
+ {
+ short result = 0;
+ bool[] alarmBits = ConvertToBitArray(rawData);
+
+ if (alarmBits[0]) result |= (1 << 2); // Pack OV
+ if (alarmBits[1]) result |= (1 << 4); // Cell OV
+ if (alarmBits[2]) result |= (1 << 3); // Pack UV
+ if (alarmBits[3]) result |= (1 << 5); // Cell UV
+ if (alarmBits[4]) result |= (1 << 6); // Charging OC
+ if (alarmBits[5]) result |= (1 << 7); // Discharging OC
+ if (alarmBits[8]) result |= (1 << 0); // Charging Over Temperature
+ if (alarmBits[9]) result |= (1 << 0); // Discharging Over Temperature
+ if (alarmBits[10]) result |= (1 << 1); // Charging Under Temperature
+ if (alarmBits[11]) result |= (1 << 1); // Discharging Under Temperature
+ if (alarmBits[12]) result |= (1 << 11); // SOC Low
+
+ return result;
+ }
+
+ private static short ConvertProtectionData(short rawData)
+ {
+ short result = 0;
+ bool[] alarmBits = ConvertToBitArray(rawData);
+
+ if (alarmBits[0]) result |= (1 << 2); // Pack OV
+ if (alarmBits[1]) result |= (1 << 4); // Cell OV
+ if (alarmBits[2]) result |= (1 << 3); // Pack UV
+ if (alarmBits[3]) result |= (1 << 5); // Cell UV
+ if (alarmBits[4]) result |= (1 << 6); // Charging OC
+ if (alarmBits[5]) result |= (1 << 7); // Discharging OC
+ if (alarmBits[8]) result |= (1 << 0); // Charging Over Temperature
+ if (alarmBits[9]) result |= (1 << 0); // Discharging Over Temperature
+ if (alarmBits[10]) result |= (1 << 1); // Charging Under Temperature
+ if (alarmBits[11]) result |= (1 << 1); // Discharging Under Temperature
+ if (alarmBits[13]) result |= (1 << 9); // Short Circuit Protection
+
+ return result;
+ }
+
+ private static bool[] ConvertToBitArray(short value)
+ {
+ var bits = new bool[16];
+ for (int i = 0; i < 16; i++)
+ {
+ bits[i] = ((value >> i) & 1) == 1;
+ }
+ return bits;
+ }
+ #endregion
+
+ #region Calculated Values
+ private static void UpdateCalculatedValues(ref DeviceSystemData systemData)
+ {
+ CalculateCellVoltageStatistics(ref systemData);
+ CalculateTemperatureStatistics(ref systemData);
+ csMakeDataFunction.MakeAlarm(ref systemData);
+ }
+
+ private static void CalculateCellVoltageStatistics(ref DeviceSystemData systemData)
+ {
+ if (systemData.cellQty <= 0) return;
+
+ int max = 0, min = int.MaxValue, sum = 0;
+ int maxIndex = 0, minIndex = 0;
+
+ for (int i = 0; i < systemData.cellQty; i++)
+ {
+ if (i >= systemData.ValueData.CellVoltage.Length) break;
+
+ int cellVoltage = systemData.ValueData.CellVoltage[i];
+ sum += cellVoltage;
+
+ if (cellVoltage > max)
+ {
+ max = cellVoltage;
+ maxIndex = i;
+ }
+
+ if (cellVoltage < min)
+ {
+ min = cellVoltage;
+ minIndex = i;
+ }
+ }
+
+ systemData.AvgData.avgCellVoltage = (short)(sum / systemData.cellQty);
+ systemData.AvgData.maxCellVoltage = (short)max;
+ systemData.AvgData.maxCellNum = (short)(maxIndex + 1);
+ systemData.AvgData.minCellVoltage = (short)min;
+ systemData.AvgData.minCellNum = (short)(minIndex + 1);
+ systemData.AvgData.diffCellVoltage = (short)(max - min);
+ }
+
+ private static void CalculateTemperatureStatistics(ref DeviceSystemData systemData)
+ {
+ if (systemData.tempQty <= 0) return;
+
+ int max = int.MinValue, min = int.MaxValue, sum = 0;
+ int maxIndex = 0, minIndex = 0;
+
+ for (int i = 0; i < systemData.tempQty; i++)
+ {
+ if (i >= systemData.ValueData.CellTemperature.Length) break;
+
+ int temperature = systemData.ValueData.CellTemperature[i];
+ sum += temperature;
+
+ if (temperature > max)
+ {
+ max = temperature;
+ maxIndex = i;
+ }
+
+ if (temperature < min)
+ {
+ min = temperature;
+ minIndex = i;
+ }
+ }
+
+ systemData.AvgData.avgTemp = (short)(sum / systemData.tempQty);
+ systemData.AvgData.maxTemp = (short)max;
+ systemData.AvgData.maxTempNum = (short)(maxIndex + 1);
+ systemData.AvgData.minTemp = (short)min;
+ systemData.AvgData.minTempNum = (short)(minIndex + 1);
+ systemData.AvgData.diffTemp = (short)(max - min);
+ }
+ #endregion
+
+ #region Result Classes
+ public class ValidationResult
+ {
+ public bool IsValid { get; }
+ public string Message { get; }
+
+ public ValidationResult(bool isValid, string message)
+ {
+ IsValid = isValid;
+ Message = message;
+ }
+ }
+
+ public class ProcessingResult
+ {
+ public bool Success { get; }
+ public string Message { get; }
+
+ public ProcessingResult(bool success, string message)
+ {
+ Success = success;
+ Message = message;
+ }
+ }
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Function/CsRs485CommFunction124050.cs b/LFP_Manager/Function/CsRs485CommFunction124050.cs
new file mode 100644
index 0000000..b836c24
--- /dev/null
+++ b/LFP_Manager/Function/CsRs485CommFunction124050.cs
@@ -0,0 +1,996 @@
+using LFP_Manager.DataStructure;
+using LFP_Manager.Utils;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace LFP_Manager.Function
+{
+ internal class CsRs485CommFunction124050
+ {
+ public const byte READ_COIL_STATUS = 0x01;
+ public const byte READ_HOLDING_REG = 0x03;
+ public const byte READ_INPUT_REG = 0x04; //Byul 구문 추가 필요
+ public const byte FORCE_SINGLE_COIL = 0x05;
+ public const byte PRESET_SINGLE_REG = 0x06;
+ public const byte PRESET_MULTI_REG = 0x10;
+ public const byte WRITE_COIL_REG = 0x0F;
+ public const byte ERROR_REG = 0x90;
+
+ public const byte READ_WRITE_REG = 0x17;
+ public const byte SPECIAL_REG_02 = 0x19;
+ public const byte READ_DEV_ID = 0x2B;
+
+ public const byte FW_FLASH_ERASE_CMD = 0x43;
+ public const byte FW_FLASH_WRITE_CMD = 0x31;
+
+ public const byte NO_CMD = 0xFF;
+
+ public static byte[] GetCRC(byte[] pby, int nSize)
+ {
+ ushort uIndex, i;
+ ushort crc;
+ byte uchCRCHi = 0xff;
+ byte uchCRCLo = 0xff;
+ byte[] result = new byte[2];
+
+ for (i = 0; i < nSize; i++)
+ {
+ uIndex = (ushort)((int)uchCRCLo ^ (int)pby[i]);
+ uchCRCLo = (byte)(uchCRCHi ^ csConstData.CRC_Data.auchCRCHi[uIndex]);
+ uchCRCHi = csConstData.CRC_Data.auchCRCLo[uIndex];
+ }
+ crc = (ushort)((uchCRCHi << 8) | uchCRCLo);
+
+ result[0] = (byte)(crc >> 8);
+ result[1] = (byte)(crc >> 0);
+
+ return result;
+ }
+
+ static public byte[] MakeReadRegisterData(ushort DevID, ushort cmd, ushort ReadAddr, ushort Size)
+ {
+ byte[] result = new byte[8];
+ byte[] crc;
+
+ result[0] = (byte)DevID; // Device ID
+ result[1] = (byte)cmd; // Command
+ result[2] = (byte)(ReadAddr >> 8); // Register Address MSB
+ result[3] = (byte)(ReadAddr >> 0); // Register Address LSB
+ result[4] = (byte)(Size >> 8); // Count of Register MSB
+ result[5] = (byte)(Size >> 0); // Count of Register LSB
+
+ crc = GetCRC(result, 6);
+
+ result[6] = crc[1]; // CRCH
+ result[7] = crc[0]; // CRCL
+
+ return result;
+ }
+
+ static public byte[] MakeWriteCoilData(ushort DevID, ushort WriteAddr, short WriteData)
+ {
+ byte[] result = new byte[7 + (1 * 1) + 2];
+ byte[] crc;
+ ushort i = 0;
+
+ result[i++] = (byte)DevID; // Device ID
+ result[i++] = (byte)WRITE_COIL_REG; // Command
+ result[i++] = (byte)(WriteAddr >> 8); // Register Address MSB
+ result[i++] = (byte)(WriteAddr >> 0); // Register Address LSB
+ result[i++] = (byte)(1 >> 8); // Count of Register MSB
+ result[i++] = (byte)(1 >> 0); // Count of Register LSB
+ result[i++] = (byte)(1 * 1); // Byte Count - [2 * (Num of register)]
+
+ result[i++] = (byte)(WriteData >> 0);
+
+ crc = GetCRC(result, i);
+
+ result[i++] = crc[1]; // CRCH
+ result[i++] = crc[0]; // CRCL
+
+ return result;
+ }
+
+ static public byte[] MakeWriteRegisterData(ushort DevID, ushort WriteAddr, short WriteData)
+ {
+ byte[] result = new byte[9 + (1 * 2)];
+ byte[] crc;
+ ushort i = 0;
+
+ result[i++] = (byte)DevID; // Device ID
+ result[i++] = (byte)PRESET_MULTI_REG; // Command
+ result[i++] = (byte)(WriteAddr >> 8); // Register Address MSB
+ result[i++] = (byte)(WriteAddr >> 0); // Register Address LSB
+ result[i++] = (byte)(1 >> 8); // Count of Register MSB
+ result[i++] = (byte)(1 >> 0); // Count of Register LSB
+ result[i++] = (byte)(1 * 2); // Byte Count - [2 * (Num of register)]
+
+ result[i++] = (byte)(WriteData >> 8);
+ result[i++] = (byte)(WriteData >> 0);
+
+ crc = GetCRC(result, i);
+
+ result[i++] = crc[1]; // CRCH
+ result[i++] = crc[0]; // CRCL
+
+ return result;
+ }
+
+ static public byte[] MakeReadDevIdRegReqData(ushort DevID, ushort cmd, ushort ReadAddr)
+ {
+ byte[] result = new byte[7];
+ byte[] crc;
+
+ result[0] = (byte)DevID; // Device ID
+ result[1] = (byte)cmd; // Command
+ result[2] = (byte)0x0E; // MEI Type
+ result[3] = (byte)0x02; // Read Dev Id code
+ result[4] = (byte)ReadAddr; // Object Id
+
+ crc = GetCRC(result, 5);
+
+ result[5] = crc[1]; // CRCH
+ result[6] = crc[0]; // CRCL
+
+ return result;
+ }
+
+ static short GetRegister(ushort reg_addr, ref DeviceParamData aParam)
+ {
+ short result = 0;
+
+ switch (reg_addr)
+ {
+ //case 19: result = (short)(0 >> 16); break; // 0021 : UTC TimeStamp MSB
+ //case 20: result = (short)(58 >> 0); break; // 0022 : UTC TimeStamp LSB
+ //case 21: result = (short)0x1000; break; // 0023 : Cell Balancing Flag
+ //case 22: result = (short)0x0000; break; // 0024 : Cell Balancing Voltage
+ //case 23: result = (short)15; break; // 0024 : Cell Balancing Time
+
+ case 0x4002: result = (short)aParam.CellUnderVoltageWarning; break; // 0061 : Low cell voltage warning data
+ //case 33: result = (short)param.sf1.voltage.CUV_Threshold; break; // 0062 : Low cell voltage protection data
+ //case 34: result = (short)param.sf1.voltage.CUV_Recovery; break; // 0063 : Low cell voltage recovery data
+ //case 35: result = (short)param.sf1.voltage.SUV_Warning; break; // 0064 : Low voltage warning data
+ //case 36: result = (short)param.sf1.voltage.SUV_Threshold; break; // 0065 : Low voltage protection data
+ //case 37: result = (short)param.sf1.voltage.SUV_Recovery; break; // 0066 : Low voltage recovery data
+ //case 38: result = (short)param.sf1.voltage.COV_Warning; break; // 0067 : Over cell voltage warning data
+ //case 39: result = (short)param.sf1.voltage.COV_Threshold; break; // 0068 : Over cell voltage protection data
+ //case 40: result = (short)param.sf1.voltage.COV_Recovery; break; // 0069 : Over cell voltage recovery data
+ //case 41: result = (short)param.sf1.voltage.SOV_Warning; break; // 0070 : Over voltage warning data
+ //case 42: result = (short)param.sf1.voltage.SOV_Threshold; break; // 0071 : Over voltage protection data
+ //case 43: result = (short)param.sf1.voltage.SOV_Recovery; break; // 0072 : Over voltage recovery data
+
+ //case 44: result = (short)param.sf1.temperature.OT_Chg_Warning; break; // 0044 : Charge over temperature warning data
+ //case 45: result = (short)param.sf1.temperature.OT_Chg_Threshold; break; // 0045 : Charge over temperature protection data
+ //case 46: result = (short)param.sf1.temperature.OT_Chg_Recovery; break; // 0046 : Charge over temperature recovery data
+ //case 47: result = (short)param.sf1.temperature.OT_Chg_Time; break; // 0047 : Charge over temperature time
+
+ //case 48: result = (short)param.sf1.temperature.OT_Dsg_Warning; break; // 0048 : Discharge over temperature warning data
+ //case 49: result = (short)param.sf1.temperature.OT_Dsg_Threshold; break; // 0049 : Discharge over temperature protection data
+ //case 50: result = (short)param.sf1.temperature.OT_Dsg_Recovery; break; // 0050 : Discharge over temperature recovery data
+ //case 51: result = (short)param.sf1.temperature.OT_Dsg_Time; break; // 0051 : Discharge over temperature time
+ }
+
+ return result;
+ }
+
+ static byte[] ModBusGetRegWordToBytes(ushort addr, ref DeviceParamData aParam)
+ {
+ short data;
+ byte[] result = new byte[2];
+
+ data = GetRegister(addr, ref aParam);
+
+ result[0] = (byte)(data >> 8);
+ result[1] = (byte)(data >> 0);
+
+ return result;
+ }
+
+ static public byte[] MakeWriteRegisterData(ushort DevID, ushort WriteAddr, ushort reg_len, ref DeviceParamData aParam)
+ {
+ int tlen = (reg_len * 2) + 7 + 2;
+ byte[] result = new byte[tlen];
+ byte[] tmp;
+ byte[] crc;
+
+ result[0] = (byte)DevID; // Device ID
+ result[1] = (byte)PRESET_MULTI_REG; // Command
+ result[2] = (byte)(WriteAddr >> 8); // Register Address MSB
+ result[3] = (byte)(WriteAddr >> 0); // Register Address LSB
+ result[4] = (byte)(reg_len >> 8); // Count of Register MSB
+ result[5] = (byte)(reg_len >> 0); // Count of Register LSB
+ result[6] = (byte)(reg_len * 2); ; // Current Value MSB
+
+ for (int i = 0; i < reg_len; i++)
+ {
+ tmp = ModBusGetRegWordToBytes((ushort)(WriteAddr + i), ref aParam);
+ result[7 + (i * 2) + 0] = tmp[0];
+ result[7 + (i * 2) + 1] = tmp[1];
+ }
+ crc = GetCRC(result, 8);
+
+ result[tlen - 2] = crc[0]; // CRCH
+ result[tlen - 1] = crc[1]; // CRCL
+
+ return result;
+ }
+
+ static public byte[] MakeReadWriteRegisterData(ushort DevID, ushort WriteAddr, short WriteData)
+ {
+ byte[] result = new byte[15];
+ byte[] crc;
+ ushort i = 0;
+
+ result[i++] = (byte)DevID; // Device ID
+ result[i++] = (byte)READ_WRITE_REG; // Command
+ result[i++] = (byte)(WriteAddr >> 8); // Read Register Address MSB
+ result[i++] = (byte)(WriteAddr >> 0); // Read Register Address LSB
+ result[i++] = (byte)(0 >> 8); // Read Count of Register MSB
+ result[i++] = (byte)(0 >> 0); // Read Count of Register LSB
+ result[i++] = (byte)(WriteAddr >> 8); // Write Register Address MSB
+ result[i++] = (byte)(WriteAddr >> 0); // Write Register Address LSB
+ result[i++] = (byte)(1 >> 8); // Write Count of Register MSB
+ result[i++] = (byte)(1 >> 0); // Write Count of Register LSB
+ result[i++] = (byte)(1 * 2); // Byte Count - [2 * (Num of register)]
+
+ result[i++] = (byte)(WriteData >> 8);
+ result[i++] = (byte)(WriteData >> 0);
+
+ crc = GetCRC(result, i);
+
+ result[i++] = crc[0]; // CRCH
+ result[i++] = crc[1]; // CRCL
+
+ return result;
+ }
+
+ public static byte[] MakeCheckSum(byte[] sData, int offset, int len, bool flag)
+ {
+ byte[] result = new byte[2];
+ int checksum = 0;
+
+ for (int i = 0; i < len; i++)
+ {
+ checksum += sData[i + offset];
+ }
+
+ checksum = ~checksum + 1;
+
+ result[0] = (byte)(checksum >> 8);
+ result[1] = (byte)checksum;
+
+ return result;
+ }
+
+ private static byte[] MakeTxPacket(byte[] sData, int len)
+ {
+ string str = "";
+ byte[] result;
+ char[] chrArray;
+ int checksum = 0;
+ string checksumStr = "";
+ char[] checksumChr;
+
+ str = "~";
+
+ for (int i = 0; i < len; i++)
+ {
+ str += sData[i].ToString("X2");
+ }
+
+ str += "\r";
+
+ chrArray = str.ToCharArray();
+
+ for (int i = 0; i < (chrArray.Length - 6); i++)
+ {
+ checksum += chrArray[i + 1];
+ }
+
+ checksum = ~checksum + 1;
+
+ checksumStr = String.Format("{0:X2}{1:X2}", (byte)(checksum >> 8), (byte)checksum);
+ checksumChr = checksumStr.ToCharArray();
+
+ for (int i = 0; i < 4; i++)
+ {
+ chrArray[chrArray.Length - 5 + i] = checksumChr[i];
+ }
+
+ result = new byte[chrArray.Length];
+
+ for (int i = 0; i < chrArray.Length; i++)
+ {
+ result[i] = (byte)chrArray[i];
+ }
+
+ return result;
+ }
+
+ public static byte[] LengthLchk(int sLen)
+ {
+ byte[] result = new byte[2];
+ int lchksum = 0;
+
+ lchksum = (~(((sLen >> 8) & 0xF) +
+ ((sLen >> 4) & 0xF) +
+ ((sLen >> 0) & 0xF)) + 1) % 16;
+ lchksum = ((lchksum << 12) | sLen);
+
+ result[0] = (byte)(lchksum >> 8);
+ result[1] = (byte)(lchksum >> 0);
+
+ return result;
+ }
+
+ public static byte[] MakeTxData(byte addr, byte cmd, int sLen)
+ {
+ int buffCh = 0;
+ byte[] sData;
+ byte[] lenId;
+ byte[] checksum;
+
+ sData = new byte[((sLen > 0) ? 11 : 10)];
+
+ sData[buffCh] = 0x7E; buffCh++; // SOI
+ sData[buffCh] = 0x25; buffCh++; // VER
+ sData[buffCh] = addr; buffCh++; // ADDR
+ sData[buffCh] = 0x46; buffCh++; // CID1
+ sData[buffCh] = cmd; buffCh++; // CID2 (CMD)
+
+ lenId = LengthLchk(sLen); // LENID
+ sData[buffCh] = lenId[0]; buffCh++; // LENID MSB
+ sData[buffCh] = lenId[1]; buffCh++; // LENID LSB
+
+ if (sLen > 0)
+ {
+ sData[buffCh] = (byte)(sLen / 2); buffCh++; // INFO
+ }
+
+ checksum = csSerialCommFunction.MakeCheckSum(sData, 1, sData.Length - 4, false);
+
+ sData[buffCh] = checksum[1]; buffCh++;
+ sData[buffCh] = checksum[0]; buffCh++;
+
+ sData[buffCh] = 0x0D; buffCh++; // EOI
+
+ return MakeTxPacket(sData, sData.Length);
+ }
+
+ public static int TbPacketCheck(byte[] rdata, int rlen)
+ {
+ int result = 0;
+ byte[] cdata;
+ byte[] checksum;
+ byte[] checksum1;
+
+ checksum = MakeCheckSum(rdata, 1, rlen - 6, false);
+
+ checksum1 = new byte[2];
+ checksum1[0] = csUtils.StrByte2toByte(rdata[rlen - 4], rdata[rlen - 5]);
+ checksum1[1] = csUtils.StrByte2toByte(rdata[rlen - 2], rdata[rlen - 3]);
+
+
+ if ((checksum[0] == checksum1[0]) && (checksum[1] == checksum1[1]))
+ {
+ cdata = csUtils.StrToByteArray(rdata, 0, rlen);
+
+ result = 1;
+ }
+
+ return result;
+ }
+
+ static public int ModbusPacketFromSlaveCheck(byte[] rdata, ushort rlen)
+ {
+ int result = 0;
+ byte[] cdata, crc;
+ ushort clen, bytecount;
+
+ if (rlen > 2)
+ {
+ cdata = rdata;
+
+ switch (cdata[1])
+ {
+ case READ_DEV_ID:
+ if (rlen < 10) break;
+ if (rdata[7] == 0) break;
+
+ int tmp = 0;
+ int cPos = 7;
+ int alen = 0;
+ for (int i = 0; i < cdata[7]; i++)
+ {
+ alen = cdata[cPos + 2];
+ cPos += alen + 2;
+ if (rlen < (cPos + 3))
+ {
+ tmp = 1;
+ break;
+ }
+ }
+ if (tmp == 1) break;
+
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[1] == cdata[rlen - 2]) && (crc[0] == cdata[rlen - 1])) result = 1;
+ else result = -1;
+ break;
+ case READ_COIL_STATUS:
+ case READ_HOLDING_REG:
+ case READ_INPUT_REG:
+ case READ_WRITE_REG:
+ bytecount = cdata[2];
+ clen = (ushort)(bytecount + 5); // header 3, tail 2
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[1] == cdata[rlen - 2]) && (crc[0] == cdata[rlen - 1])) result = 1;
+ else result = -1;
+ }
+ break;
+ case PRESET_MULTI_REG:
+ case FORCE_SINGLE_COIL:
+ case PRESET_SINGLE_REG:
+ clen = 8;
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 1;
+ else result = -1;
+ }
+ break;
+ case ERROR_REG:
+ clen = 6;
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 1;
+ else result = -1;
+ }
+ break;
+ case FW_FLASH_ERASE_CMD:
+ clen = 5;
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 2;
+ else result = -1;
+ }
+ break;
+ case FW_FLASH_WRITE_CMD:
+ clen = 5;
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 2;
+ else result = -1;
+ }
+ break;
+ default:
+ result = -1;
+ break;
+ }
+ }
+ return result;
+ }
+
+ public static short[] SerialRxProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData)
+ {
+ short[] result = new short[2];
+
+ switch (rData[1])
+ {
+ case READ_HOLDING_REG: // 0x03
+ ReadHoldingRegisterProcess(rData, rRegAddr, rLen, ref rSystemData);
+ break;
+ case READ_INPUT_REG: // 0x04
+ ReadInputRegisterProcess(rData, rRegAddr, rLen, ref rSystemData);
+ break;
+ case READ_WRITE_REG: // 0x17
+ //ReadSP1RegisterProcess(rData, rRegAddr, rLen, ref rSystemData);
+ break;
+ case SPECIAL_REG_02: // 0x19
+ //ReadInputRegisterProcess(rData, rRegAddr, rLen, ref rSystemData);
+ break;
+ case READ_DEV_ID: // 0x2B
+ ReadDevIdRegisterProcess(rData, rRegAddr, rLen, ref rSystemData);
+ break;
+ case PRESET_MULTI_REG:
+ // read_holding_reg_process(reverse16(rsp->start_addr, true), reverse16(rsp->qty_reg, true));
+ //result[0] = 1;
+ //result[1] = 1;
+ break;
+ case ERROR_REG:
+ result[0] = 2;
+ result[1] = (short)((rData[0] << 8) | rData[1]);
+ break;
+ }
+ return result;
+ }
+
+ private static void ReadCoilRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData)
+ {
+ int i, j;
+ short reg_count;
+ short reg_value;
+ i = 2;
+ reg_count = rData[i];
+
+ i++;
+ for (j = 0; j < reg_count; j++)
+ {
+ reg_value = (short)(rData[i + j]);
+ SetCoilRegister((short)(rRegAddr + j), reg_value, ref rSystemData);
+ i++;
+ }
+ }
+
+ private static void ReadHoldingRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData)
+ {
+ int i, j;
+ short reg_count;
+ short reg_value;
+ i = 2;
+ reg_count = (short)(rData[i] / 2); i += 1;
+
+ for (j = 0; j < reg_count; j++)
+ {
+ reg_value = (short)(rData[i] << 8 | rData[i + 1]);
+ SetHoldingRegister((short)(rRegAddr + j), reg_value, ref rSystemData);
+ i += 2;
+ }
+ }
+ private static void ReadInputRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData)
+ {
+ int i, j;
+ short reg_count;
+ short reg_value;
+ i = 2;
+ reg_count = (short)(rData[i] / 2); i += 1;
+
+ for (j = 0; j < reg_count; j++)
+ {
+ reg_value = (short)(rData[i] << 8 | rData[i + 1]);
+ SetInputRegister((short)(rRegAddr + j), reg_value, ref rSystemData);
+ i += 2;
+ }
+ }
+ private static void ReadDevIdRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData)
+ {
+ int cPos = 7;
+ int alen = 0;
+ int regCount = rData[7];
+ int oID = 0;
+
+ for (int i = 0; i < regCount; i++)
+ {
+ oID = rData[cPos + 1];
+ alen = rData[cPos + 2];
+ byte[] tmp = new byte[alen];
+ for (int j = 0; j < alen; j++) { tmp[j] = rData[cPos + 3 + j]; }
+
+ switch (oID)
+ {
+ case 0x00: rSystemData.Information.VendorName = Encoding.ASCII.GetString(tmp).Trim('\0'); break;
+ case 0x01: rSystemData.Information.ProductCode = Encoding.ASCII.GetString(tmp).Trim('\0'); break;
+ case 0x02: rSystemData.Information.MajorMinorRev = Encoding.ASCII.GetString(tmp).Trim('\0'); break;
+ case 0x05: rSystemData.Information.ModelName = Encoding.ASCII.GetString(tmp).Trim('\0'); break;
+ case 0x82: rSystemData.Information.HwSerialNumber = Encoding.ASCII.GetString(tmp).Trim('\0'); break;
+ case 0x83: rSystemData.Information.HwProductRev = Encoding.ASCII.GetString(tmp).Trim('\0'); break;
+ case 0x84: rSystemData.Information.ManufacturingDate = Encoding.ASCII.GetString(tmp).Trim('\0'); break;
+ case 0x86: rSystemData.Information.SwProductRev = Encoding.ASCII.GetString(tmp).Trim('\0'); break;
+ }
+
+ cPos += alen + 2;
+ if (rLen < (cPos + 3))
+ {
+ break;
+ }
+ }
+ }
+ private static void ReadSP2RegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData)
+ {
+ int i, j;
+ short reg_count;
+ short reg_value;
+ i = 2;
+ reg_count = (short)(rData[i] / 2); i += 1;
+
+ for (j = 0; j < reg_count; j++)
+ {
+ reg_value = (short)(rData[i] << 8 | rData[i + 1]);
+ SetSP2Register((short)(rRegAddr + j), reg_value, ref rSystemData);
+ i += 2;
+ }
+ }
+ private static void ReadSP1RegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData)
+ {
+ int i, j;
+ short reg_count;
+ short reg_value;
+ i = 2;
+ reg_count = (short)(rData[i] / 2); i += 1;
+
+ for (j = 0; j < reg_count; j++)
+ {
+ reg_value = (short)(rData[i] << 8 | rData[i + 1]);
+ SetSP1Register((short)(rRegAddr + j), reg_value, ref rSystemData);
+ i += 2;
+ }
+ }
+
+ private static readonly int CURRENT_OFFSET = 10000;
+ private static readonly int TEMP_OFFSET = 400;
+
+ private static short MakeWarningData_AMG(short reg_value)
+ {
+ byte[] reg_byte = new byte[2];
+ ushort result = 0;
+
+ reg_byte[1] = (byte)(reg_value >> 8);
+ reg_byte[0] = (byte)(reg_value >> 0);
+
+ if (((reg_byte[0] >> 0) & 0x01) == 0x01) result |= (ushort)(1 << 4); // Cell Over Voltage
+ if (((reg_byte[0] >> 1) & 0x01) == 0x01) result |= (ushort)(1 << 5); // Cell Under Voltage
+ if (((reg_byte[0] >> 2) & 0x01) == 0x01) result |= (ushort)(1 << 2); // Pack Over Voltage
+ if (((reg_byte[0] >> 3) & 0x01) == 0x01) result |= (ushort)(1 << 3); // Pack Under Voltage
+ if (((reg_byte[0] >> 4) & 0x01) == 0x01) result |= (ushort)(1 << 6); // Charge Over Current
+ if (((reg_byte[0] >> 5) & 0x01) == 0x01) result |= (ushort)(1 << 7); // Discharge Over Current
+ if (((reg_byte[0] >> 6) & 0x01) == 0x01) result |= (ushort)(1 << 14); // ENV Over Temperature
+ if (((reg_byte[0] >> 7) & 0x01) == 0x01) result |= (ushort)(1 << 15); // ENV Under Temperature
+
+ if (((reg_byte[1] >> 0) & 0x01) == 0x01) result |= (ushort)(1 << 0); // Chg Over Temperature
+ if (((reg_byte[1] >> 1) & 0x01) == 0x01) result |= (ushort)(1 << 1); // Chg Under Temperature
+ if (((reg_byte[1] >> 2) & 0x01) == 0x01) result |= (ushort)(1 << 0); // Dch Over Temperature
+ if (((reg_byte[1] >> 3) & 0x01) == 0x01) result |= (ushort)(1 << 1); // Dch Under Temperature
+ if (((reg_byte[1] >> 4) & 0x01) == 0x01) result |= (ushort)(1 << 11); // SOC Low Alarm
+ if (((reg_byte[1] >> 5) & 0x01) == 0x01) result |= (ushort)(1 << 9); // Diff Voltage Alarm
+ if (((reg_byte[1] >> 6) & 0x01) == 0x01) result |= (ushort)(1 << 13); // CB On/OFF (1: OFF, 0: ON)
+ if (((reg_byte[1] >> 7) & 0x01) == 0x01) result |= (ushort)(1 << 12); // reserved
+
+ return (short)result;
+ }
+
+ private static short MakeProtectData_AMG(short reg_value)
+ {
+ byte[] reg_byte = new byte[2];
+ ushort result = 0;
+
+ reg_byte[1] = (byte)(reg_value >> 8);
+ reg_byte[0] = (byte)(reg_value >> 0);
+
+ if (((reg_byte[0] >> 0) & 0x01) == 0x01) result |= (ushort)(1 << 4); // Cell Over Voltage
+ if (((reg_byte[0] >> 1) & 0x01) == 0x01) result |= (ushort)(1 << 2); // Pack Over Voltage
+ if (((reg_byte[0] >> 2) & 0x01) == 0x01) result |= (ushort)(1 << 5); // Cell Under Voltage
+ if (((reg_byte[0] >> 3) & 0x01) == 0x01) result |= (ushort)(1 << 3); // Pack Under Voltage
+ if (((reg_byte[0] >> 4) & 0x01) == 0x01) result |= (ushort)(1 << 6); // Cha Over Current 1
+ if (((reg_byte[0] >> 5) & 0x01) == 0x01) result |= (ushort)(1 << 6); // Cha Over Current 2
+ if (((reg_byte[0] >> 6) & 0x01) == 0x01) result |= (ushort)(1 << 7); // Dch Over Current 1
+ if (((reg_byte[0] >> 7) & 0x01) == 0x01) result |= (ushort)(1 << 7); // Dch Over Current 2
+
+ if (((reg_byte[1] >> 0) & 0x01) == 0x01) result |= (ushort)(1 << 8); // SC Protect / CB off
+ if (((reg_byte[1] >> 1) & 0x01) == 0x01) result |= (ushort)(1 << 0); // Chg Over Temperature
+ if (((reg_byte[1] >> 2) & 0x01) == 0x01) result |= (ushort)(1 << 1); // Chg Under Temperature
+ if (((reg_byte[1] >> 3) & 0x01) == 0x01) result |= (ushort)(1 << 0); // Dch Over Temperature
+ if (((reg_byte[1] >> 4) & 0x01) == 0x01) result |= (ushort)(1 << 1); // Dch Under Temperature
+
+ return (short)result;
+ }
+
+ private static void MakeAlarm(ref DeviceSystemData rSystemData)
+ {
+ if (((rSystemData.StatusData.faultstatus >> 14) & 0x0001) == 0x0001)
+ {
+ rSystemData.StatusData.batteryStatus = 4; // Anti-theft Gyroscope
+ }
+ else if (((rSystemData.StatusData.faultstatus >> 15) & 0x0001) == 0x0001)
+ {
+ rSystemData.StatusData.batteryStatus = 5; // Anti-theft Comm.
+ }
+ else if (rSystemData.StatusData.protection != 0x0000)
+ {
+ rSystemData.StatusData.batteryStatus = 2;
+ }
+ else if (rSystemData.StatusData.warning != 0x0000)
+ {
+ rSystemData.StatusData.batteryStatus = 1;
+ }
+ else
+ {
+ rSystemData.StatusData.batteryStatus = 0;
+ }
+ }
+
+ private static void SetHoldingRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData)
+ {
+ switch (reg_addr)
+ {
+ //100 ~111 : Model_Product Name
+ case 100:
+ case 101:
+ case 102:
+ case 103:
+ case 104:
+ case 105:
+ case 106:
+ case 107:
+ case 108:
+ case 109:
+ case 110:
+ case 111:
+ int mReg = reg_addr - 100;
+ rSystemData.Information.Model_Byte[(mReg * 2) + 0] = (byte)(reg_value >> 8);
+ rSystemData.Information.Model_Byte[(mReg * 2) + 1] = (byte)(reg_value >> 0);
+ if (reg_addr == 111)
+ {
+ rSystemData.Information.ModelName = Encoding.Default.GetString(rSystemData.Information.Model_Byte).Trim('\0');
+ }
+ break;
+ //112 ~114 : FW Version
+ case 112:
+ case 113:
+ case 114:
+ int fReg = reg_addr - 112;
+ rSystemData.Information.FwVer_Byte[(fReg * 2) + 0] = (byte)(reg_value >> 8);
+ rSystemData.Information.FwVer_Byte[(fReg * 2) + 1] = (byte)(reg_value >> 0);
+ if (reg_addr == 114)
+ {
+ rSystemData.Information.SwProductRev = Encoding.Default.GetString(rSystemData.Information.FwVer_Byte).Trim('\0');
+ }
+ break;
+ //115 ~ 122 : BMS Serial number
+ case 115:
+ case 116:
+ case 117:
+ case 118:
+ case 119:
+ case 120:
+ case 121:
+ case 122:
+ int snReg = reg_addr - 115;
+ rSystemData.Information.BMS_SN[(snReg * 2) + 0] = (byte)(reg_value >> 8);
+ rSystemData.Information.BMS_SN[(snReg * 2) + 1] = (byte)(reg_value >> 0);
+ if (reg_addr == 122)
+ {
+ rSystemData.Information.HwSerialNumber = Encoding.Default.GetString(rSystemData.Information.BMS_SN).Trim('\0');
+ }
+ break;
+ //123 ~ 127 : Manufacturer
+ case 123:
+ case 124:
+ case 125:
+ case 126:
+ case 127:
+ int mnReg = reg_addr - 123;
+ rSystemData.Information.Vendor_Byte[(mnReg * 2) + 0] = (byte)(reg_value >> 8);
+ rSystemData.Information.Vendor_Byte[(mnReg * 2) + 1] = (byte)(reg_value >> 0);
+ if (reg_addr == 127)
+ {
+ rSystemData.Information.VendorName = Encoding.Default.GetString(rSystemData.Information.Vendor_Byte).Trim('\0');
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ private static void SetInputRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData)
+ {
+ switch (reg_addr)
+ {
+ case 0x0FFF:
+ rSystemData.ValueData.voltageOfPack = (short)(reg_value / 10);
+ rSystemData.active = true;
+ break; // 48.00V = 4800
+ case 0x1000: rSystemData.ValueData.current = (short)(reg_value - CURRENT_OFFSET); break; // 100.0A = 1000 -10000 = 0;
+ case 0x1001: rSystemData.ValueData.remainingCapacity = (short)(reg_value / 1); break; // 100.0Ah = 1000
+ case 0x1002: rSystemData.ValueData.Ext1Temperature = (short)(reg_value - TEMP_OFFSET); break; // 10.0C = 100
+ case 0x1003: rSystemData.ValueData.Ext2Temperature = (short)(reg_value - TEMP_OFFSET); break; // 10.0C = 100
+
+ case 0x1004: rSystemData.StatusData.warning = MakeWarningData_AMG(reg_value); break; // Warning Status
+ case 0x1005: rSystemData.StatusData.protection = MakeProtectData_AMG(reg_value); break; // Protection Status
+ case 0x1006: // Fault Status
+ rSystemData.StatusData.faultstatus = (short)(reg_value / 1);
+ rSystemData.StatusData.status = (short)((reg_value >> 8) & 0x0003);
+ MakeAlarm(ref rSystemData);
+ break;
+
+ case 0x1007: rSystemData.ValueData.rSOC = (short)(reg_value / 10); break; // 100.00% = 10000
+ case 0x1008: rSystemData.ValueData.stateOfHealth = (short)(reg_value / 10); break; // 100.00% = 10000
+
+ case 0x1009: rSystemData.ValueData.fullChargeCapacity = (short)(reg_value / 1); break; // 100.0Ah = 1000
+ case 0x100A: rSystemData.ValueData.cycleCount = (short)(reg_value / 1); break; // 100 cycles = 100
+ case 0x100B: rSystemData.ValueData.NumOfCells = (short)(reg_value / 1); break; // 15 cells = 15
+ case 0x100C: // Cell Voltage #1
+ case 0x100D: // Cell Voltage #2
+ case 0x100E: // Cell Voltage #3
+ case 0x100F: // Cell Voltage #4
+ case 0x1010: // Cell Voltage #5
+ case 0x1011: // Cell Voltage #6
+ case 0x1012: // Cell Voltage #7
+ case 0x1013: // Cell Voltage #8
+ case 0x1014: // Cell Voltage #9
+ case 0x1015: // Cell Voltage #10
+ case 0x1016: // Cell Voltage #11
+ case 0x1017: // Cell Voltage #12
+ case 0x1018: // Cell Voltage #13
+ case 0x1019: // Cell Voltage #14
+ case 0x101A: // Cell Voltage #15
+ case 0x101B: // Cell Voltage #16
+ case 0x101C: // Cell Voltage #17
+ case 0x101D: // Cell Voltage #18
+ case 0x101E: // Cell Voltage #19
+ case 0x101F: // Cell Voltage #20
+ case 0x1020: // Cell Voltage #21
+ case 0x1021: // Cell Voltage #22
+ case 0x1022: // Cell Voltage #23
+ case 0x1023: // Cell Voltage #24
+ case 0x1024: // Cell Voltage #25
+ case 0x1025: // Cell Voltage #26
+ case 0x1026: // Cell Voltage #27
+ case 0x1027: // Cell Voltage #28
+ case 0x1028: // Cell Voltage #29
+ case 0x1029: // Cell Voltage #30
+ case 0x102A: // Cell Voltage #31
+ case 0x102B: // Cell Voltage #32
+ case 0x102C: // Cell Voltage #33
+ case 0x102D: // Cell Voltage #34
+ case 0x102E: // Cell Voltage #35
+ case 0x102F: // Cell Voltage #36
+ case 0x1030: // Cell Voltage #37
+ case 0x1031: // Cell Voltage #38
+ case 0x1032: // Cell Voltage #39 - 3.256V = 3256
+ int cNo = reg_addr - 0x100C;
+ if (cNo < rSystemData.ValueData.CellVoltage.Length)
+ {
+ rSystemData.ValueData.CellVoltage[cNo] = (ushort)(reg_value / 1);
+ }
+ csUtils.MakeMaxAvgMinCellVoltage(ref rSystemData, 39);
+ break;
+ case 0x1033: rSystemData.ValueData.NumOfTemps = (short)(reg_value / 1); break; // 5 temps = 5
+ case 0x1034: rSystemData.ValueData.CellTemperature[0] = (short)(reg_value - TEMP_OFFSET); break;
+ case 0x1035: rSystemData.ValueData.CellTemperature[1] = (short)(reg_value - TEMP_OFFSET); break;
+ case 0x1036: rSystemData.ValueData.CellTemperature[2] = (short)(reg_value - TEMP_OFFSET); break;
+ case 0x1037: rSystemData.ValueData.CellTemperature[3] = (short)(reg_value - TEMP_OFFSET); break;
+ case 0x1038: rSystemData.ValueData.CellTemperature[4] = (short)(reg_value - TEMP_OFFSET); break;
+ case 0x1039: rSystemData.ValueData.CellTemperature[5] = (short)(reg_value - TEMP_OFFSET); break;
+ case 0x103A: rSystemData.ValueData.CellTemperature[6] = (short)(reg_value - TEMP_OFFSET); break;
+ case 0x103B: // 25.3C = 253 - 400 = -147 (Offset -400)
+ rSystemData.ValueData.CellTemperature[7] = (short)(reg_value - TEMP_OFFSET);
+ csUtils.MakeMaxAvgMinTemperature(ref rSystemData, 8);
+ break;
+ case 0x103C: rSystemData.MaxValue.MaxChgCurrent = (short)(reg_value); break; // Max. Charge Current
+ case 0x103D: rSystemData.MaxValue.MaxChgTemperature = (short)(reg_value - TEMP_OFFSET); break; // Max. Charge Temperature
+ case 0x103E: rSystemData.MaxValue.MinChgTemperature = (short)(reg_value - TEMP_OFFSET); break; // Min. Charge Temperature
+ case 0x103F: rSystemData.MaxValue.FloatChgVolt = (short)(reg_value / 10); break; // Float Charge Current
+ case 0x1040: rSystemData.MaxValue.BoostChgVolt = (short)(reg_value / 10); break; // Boost Charge Current
+
+ case 0x3000: rSystemData.CalibrationData.AntiTheftComm.TimeOut = (short)(reg_value / 1); break;
+ case 0x3002: rSystemData.CalibrationData.AntiTheftComm.FuncSwitch = (short)(reg_value / 1); break;
+
+ case 0x4000: rSystemData.CalibrationData.AntiTheftGyro.XAxis = (short)(reg_value / 1); break;
+ case 0x4001: rSystemData.CalibrationData.AntiTheftGyro.YAxis = (short)(reg_value / 1); break;
+ case 0x4002: rSystemData.CalibrationData.AntiTheftGyro.ZAxis = (short)(reg_value / 1); break;
+ case 0x4003: rSystemData.CalibrationData.AntiTheftGyro.GyroPolicySel = (short)(reg_value / 1); break;
+ case 0x4004: rSystemData.CalibrationData.AntiTheftGyro.GyroFuncSwitch = (short)(reg_value / 1); break;
+ case 0x4006: rSystemData.CalibrationData.AntiTheftGyro.GyroState = (short)(reg_value / 1); break;
+ default:
+ break;
+ }
+ }
+
+ private static void SetSP1Register(short reg_addr, short reg_value, ref DeviceSystemData rSystemData)
+ {
+ switch (reg_addr)
+ {
+ case 0x4000: rSystemData.GyroValue.X_axis = (short)(reg_value); break; //
+ case 0x4001: rSystemData.GyroValue.Y_axis = (short)(reg_value); break; //
+ case 0x4002: rSystemData.GyroValue.Z_axis = (short)(reg_value); break; //
+ case 0x4003: rSystemData.GyroValue.Gyro_policy_sel = (short)(reg_value); break; //
+ case 0x4004: rSystemData.GyroValue.Gyro_func_sw = (short)(reg_value); break; //
+ case 0x4006: rSystemData.GyroValue.Gyro_state = (short)(reg_value); break; //
+ default:
+ break;
+ }
+ }
+ private static void SetSP2Register(short reg_addr, short reg_value, ref DeviceSystemData rSystemData)
+ {
+ switch (reg_addr)
+ {
+ case 0x3000: rSystemData.GyroValue.X_axis = (short)(reg_value); break; //
+ case 0x3002: rSystemData.GyroValue.Y_axis = (short)(reg_value); break; //
+ default:
+ break;
+ }
+ }
+ private static void SetReadIdRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData)
+ {
+ switch (reg_addr)
+ {
+ case 0x4000: rSystemData.GyroValue.X_axis = (short)(reg_value); break; //
+ case 0x4001: rSystemData.GyroValue.Y_axis = (short)(reg_value); break; //
+ case 0x4002: rSystemData.GyroValue.Z_axis = (short)(reg_value); break; //
+ case 0x4003: rSystemData.GyroValue.Gyro_policy_sel = (short)(reg_value); break; //
+ case 0x4004: rSystemData.GyroValue.Gyro_func_sw = (short)(reg_value); break; //
+ case 0x4006: rSystemData.GyroValue.Gyro_state = (short)(reg_value); break; //
+ default:
+ break;
+ }
+ }
+
+ private static void SetCoilRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData)
+ {
+ switch (reg_addr)
+ {
+ case 0x3078:
+ rSystemData.StatusData.relayStatus = reg_value;
+ rSystemData.CalibrationData.FetCalib.FetStatus = reg_value;
+ break;
+ case 0x502E:
+ rSystemData.CalibrationData.Current.ChargeOption = reg_value;
+ break;
+ }
+ }
+
+ private static short MakeUartWarningData(short rdata)
+ {
+ short result = 0;
+ bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
+
+ if (bAlarm[0] == true) result |= (short)(1 << 2); // 0x0001:Pack OV
+ if (bAlarm[1] == true) result |= (short)(1 << 4); // 0x0002:Cell OV
+ if (bAlarm[2] == true) result |= (short)(1 << 3); // 0x0004:Pack UV
+ if (bAlarm[3] == true) result |= (short)(1 << 5); // 0x0008:Cell UV
+
+ if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC
+ if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC
+
+ if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Tempratuer
+ if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Discharging Over Tempratuer
+ if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0040: Charging Under Tempratuer
+ if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Tempratuer
+ if (bAlarm[12] == true) result |= (short)(1 << 11); // 0x0200:SOC Low
+
+ return result;
+ }
+
+ private static short MakeUartTripData(short rdata)
+ {
+ short result = 0;
+ bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
+
+ if (bAlarm[0] == true) result |= (short)(1 << 2); // 0x0001:Pack OV
+ if (bAlarm[1] == true) result |= (short)(1 << 4); // 0x0002:Cell OV
+ if (bAlarm[2] == true) result |= (short)(1 << 3); // 0x0004:Pack UV
+ if (bAlarm[3] == true) result |= (short)(1 << 5); // 0x0008:Cell UV
+
+ if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC
+ if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC
+
+ if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Temprature
+ if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Discharging Over Temprature
+ if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0040: Charging Under Temprature
+ if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Temprature
+ if (bAlarm[13] == true) result |= (short)(1 << 9); // 0x0200:Short Circuit Protection
+
+ return result;
+ }
+
+ private static short MakeUartErrorData(short rdata, short cdata)
+ {
+ short result = cdata;
+ bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
+
+ if (bAlarm[0] == true) result |= (short)(1 << 9); // 0x0001:Voltage error
+ if (bAlarm[1] == true) result |= (short)(1 << 9); // 0x0002:Temperature error
+ if (bAlarm[2] == true) result |= (short)(1 << 9); // 0x0004: 电流检测Error
+ if (bAlarm[3] == true) result |= (short)(1 << 9); // 0x0010:Cell unbalance
+
+ return result;
+ }
+ }
+}
diff --git a/LFP_Manager/Function/CsSerialCommFunction124050.cs b/LFP_Manager/Function/CsSerialCommFunction124050.cs
new file mode 100644
index 0000000..2baf758
--- /dev/null
+++ b/LFP_Manager/Function/CsSerialCommFunction124050.cs
@@ -0,0 +1,830 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Utils;
+using LFP_Manager.Controls;
+using System.Web.Services.Description;
+using System.Data.Entity.Core.Common.CommandTrees;
+using DevExpress.XtraRichEdit.Fields.Expression;
+using DevExpress.XtraRichEdit.Layout;
+using DevExpress.XtraPrinting.Native.LayoutAdjustment;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Function
+{
+ class csSerialCommFunction124050
+ {
+ public const byte READ_COIL_STATUS = 0x01;
+ public const byte READ_HOLDING_REG = 0x03;
+ public const byte READ_INPUT_REG = 0x04; //Byul 구문 추가 필요
+ public const byte FORCE_SINGLE_COIL = 0x05;
+ public const byte PRESET_SINGLE_REG = 0x06;
+ public const byte PRESET_MULTI_REG = 0x10;
+ public const byte WRITE_COIL_REG = 0x0F;
+ public const byte ERROR_REG = 0x90;
+
+ public const byte FW_FLASH_ERASE_CMD = 0x43;
+ public const byte FW_FLASH_WRITE_CMD = 0x31;
+
+ public const byte NO_CMD = 0xFF;
+
+ public static byte[] GetCRC(byte[] pby, int nSize)
+ {
+ ushort uIndex, i;
+ ushort crc;
+ byte uchCRCHi = 0xff;
+ byte uchCRCLo = 0xff;
+ byte[] result = new byte[2];
+
+ for (i = 0; i < nSize; i++)
+ {
+ uIndex = (ushort)((int)uchCRCLo ^ (int)pby[i]);
+ uchCRCLo = (byte)(uchCRCHi ^ csUtils.auchCRCHi[uIndex]);
+ uchCRCHi = csUtils.auchCRCLo[uIndex];
+ }
+ crc = (ushort)((uchCRCHi << 8) | uchCRCLo);
+
+ result[0] = (byte)(crc >> 8);
+ result[1] = (byte)(crc >> 0);
+
+ return result;
+ }
+
+ static public byte[] MakeReadRegisterData(ushort DevID, ushort cmd, ushort ReadAddr, ushort Size)
+ {
+ byte[] result = new byte[8];
+ byte[] crc;
+
+ result[0] = (byte)DevID; // Device ID
+ result[1] = (byte)cmd; // Command
+ result[2] = (byte)(ReadAddr >> 8); // Register Address MSB
+ result[3] = (byte)(ReadAddr >> 0); // Register Address LSB
+ result[4] = (byte)(Size >> 8); // Count of Register MSB
+ result[5] = (byte)(Size >> 0); // Count of Register LSB
+
+ crc = GetCRC(result, 6);
+
+ result[6] = crc[1]; // CRCH
+ result[7] = crc[0]; // CRCL
+
+ return result;
+ }
+
+ static public byte[] MakeWriteCoilData(ushort DevID, ushort WriteAddr, short WriteData)
+ {
+ byte[] result = new byte[7 + (1 * 1) + 2];
+ byte[] crc;
+ ushort i = 0;
+
+ result[i++] = (byte)DevID; // Device ID
+ result[i++] = (byte)WRITE_COIL_REG; // Command
+ result[i++] = (byte)(WriteAddr >> 8); // Register Address MSB
+ result[i++] = (byte)(WriteAddr >> 0); // Register Address LSB
+ result[i++] = (byte)(1 >> 8); // Count of Register MSB
+ result[i++] = (byte)(1 >> 0); // Count of Register LSB
+ result[i++] = (byte)(1 * 1); // Byte Count - [2 * (Num of register)]
+
+ result[i++] = (byte)(WriteData >> 0);
+
+ crc = GetCRC(result, i);
+
+ result[i++] = crc[1]; // CRCH
+ result[i++] = crc[0]; // CRCL
+
+ return result;
+ }
+
+ static public byte[] MakeWriteRegisterData(ushort DevID, ushort WriteAddr, short[] WriteData)
+ {
+ byte[] result = new byte[9 + (WriteData.Length * 2)];
+ byte[] crc;
+ ushort i = 0;
+
+ result[i++] = (byte)DevID; // Device ID
+ result[i++] = (byte)PRESET_MULTI_REG; // Command
+ result[i++] = (byte)(WriteAddr >> 8); // Register Address MSB
+ result[i++] = (byte)(WriteAddr >> 0); // Register Address LSB
+ result[i++] = (byte)(WriteData.Length >> 8); // Count of Register MSB
+ result[i++] = (byte)(WriteData.Length >> 0); // Count of Register LSB
+ result[i++] = (byte)(WriteData.Length * 2); // Byte Count - [2 * (Num of register)]
+
+ for (int j = 0; j < WriteData.Length; j++)
+ {
+ result[i++] = (byte)(WriteData[j] >> 8);
+ result[i++] = (byte)(WriteData[j] >> 0);
+ }
+
+ crc = GetCRC(result, i);
+
+ result[i++] = crc[1]; // CRCH
+ result[i++] = crc[0]; // CRCL
+
+ return result;
+ }
+
+ static short GetRegister(ushort reg_addr, ref DeviceParamData aParam)
+ {
+ short result = 0;
+
+ switch (reg_addr)
+ {
+ //case 19: result = (short)(0 >> 16); break; // 0021 : UTC TimeStamp MSB
+ //case 20: result = (short)(58 >> 0); break; // 0022 : UTC TimeStamp LSB
+ //case 21: result = (short)0x1000; break; // 0023 : Cell Balancing Flag
+ //case 22: result = (short)0x0000; break; // 0024 : Cell Balancing Voltage
+ //case 23: result = (short)15; break; // 0024 : Cell Balancing Time
+
+ case 0x4002: result = (short)aParam.CellUnderVoltageWarning; break; // 0061 : Low cell voltage warning data
+ //case 33: result = (short)param.sf1.voltage.CUV_Threshold; break; // 0062 : Low cell voltage protection data
+ //case 34: result = (short)param.sf1.voltage.CUV_Recovery; break; // 0063 : Low cell voltage recovery data
+ //case 35: result = (short)param.sf1.voltage.SUV_Warning; break; // 0064 : Low voltage warning data
+ //case 36: result = (short)param.sf1.voltage.SUV_Threshold; break; // 0065 : Low voltage protection data
+ //case 37: result = (short)param.sf1.voltage.SUV_Recovery; break; // 0066 : Low voltage recovery data
+ //case 38: result = (short)param.sf1.voltage.COV_Warning; break; // 0067 : Over cell voltage warning data
+ //case 39: result = (short)param.sf1.voltage.COV_Threshold; break; // 0068 : Over cell voltage protection data
+ //case 40: result = (short)param.sf1.voltage.COV_Recovery; break; // 0069 : Over cell voltage recovery data
+ //case 41: result = (short)param.sf1.voltage.SOV_Warning; break; // 0070 : Over voltage warning data
+ //case 42: result = (short)param.sf1.voltage.SOV_Threshold; break; // 0071 : Over voltage protection data
+ //case 43: result = (short)param.sf1.voltage.SOV_Recovery; break; // 0072 : Over voltage recovery data
+
+ //case 44: result = (short)param.sf1.temperature.OT_Chg_Warning; break; // 0044 : Charge over temperature warning data
+ //case 45: result = (short)param.sf1.temperature.OT_Chg_Threshold; break; // 0045 : Charge over temperature protection data
+ //case 46: result = (short)param.sf1.temperature.OT_Chg_Recovery; break; // 0046 : Charge over temperature recovery data
+ //case 47: result = (short)param.sf1.temperature.OT_Chg_Time; break; // 0047 : Charge over temperature time
+
+ //case 48: result = (short)param.sf1.temperature.OT_Dsg_Warning; break; // 0048 : Discharge over temperature warning data
+ //case 49: result = (short)param.sf1.temperature.OT_Dsg_Threshold; break; // 0049 : Discharge over temperature protection data
+ //case 50: result = (short)param.sf1.temperature.OT_Dsg_Recovery; break; // 0050 : Discharge over temperature recovery data
+ //case 51: result = (short)param.sf1.temperature.OT_Dsg_Time; break; // 0051 : Discharge over temperature time
+ }
+
+ return result;
+ }
+
+ static byte[] ModBusGetRegWordToBytes(ushort addr, ref DeviceParamData aParam)
+ {
+ short data;
+ byte[] result = new byte[2];
+
+ data = GetRegister(addr, ref aParam);
+
+ result[0] = (byte)(data >> 8);
+ result[1] = (byte)(data >> 0);
+
+ return result;
+ }
+
+ static public byte[] MakeWriteRegisterData(ushort DevID, ushort WriteAddr, ushort reg_len, ref DeviceParamData aParam)
+ {
+ int tlen = (reg_len * 2) + 7 + 2;
+ byte[] result = new byte[tlen];
+ byte[] tmp;
+ byte[] crc;
+
+ result[0] = (byte)DevID; // Device ID
+ result[1] = (byte)PRESET_MULTI_REG; // Command
+ result[2] = (byte)(WriteAddr >> 8); // Register Address MSB
+ result[3] = (byte)(WriteAddr >> 0); // Register Address LSB
+ result[4] = (byte)(reg_len >> 8); // Count of Register MSB
+ result[5] = (byte)(reg_len >> 0); // Count of Register LSB
+ result[6] = (byte)(reg_len * 2); ; // Current Value MSB
+
+ for (int i = 0; i < reg_len; i++)
+ {
+ tmp = ModBusGetRegWordToBytes((ushort)(WriteAddr + i), ref aParam);
+ result[7 + (i * 2) + 0] = tmp[0];
+ result[7 + (i * 2) + 1] = tmp[1];
+ }
+ crc = GetCRC(result, 8);
+
+ result[tlen - 2] = crc[0]; // CRCH
+ result[tlen - 1] = crc[1]; // CRCL
+
+ return result;
+ }
+
+ public static byte[] MakeCheckSum(byte[] sData, int offset, int len, bool flag)
+ {
+ byte[] result = new byte[2];
+ int checksum = 0;
+
+ for (int i = 0; i < len; i++)
+ {
+ checksum += sData[i + offset];
+ }
+
+ checksum = ~checksum + 1;
+
+ result[0] = (byte)(checksum >> 8);
+ result[1] = (byte)checksum;
+
+ return result;
+ }
+
+ private static byte[] MakeTxPacket(byte[] sData, int len)
+ {
+ string str = "";
+ byte[] result;
+ char[] chrArray;
+ int checksum = 0;
+ string checksumStr = "";
+ char[] checksumChr;
+
+ str = "~";
+
+ for (int i = 0; i < len; i++)
+ {
+ str += sData[i].ToString("X2");
+ }
+
+ str += "\r";
+
+ chrArray = str.ToCharArray();
+
+ for (int i = 0; i < (chrArray.Length - 6); i++)
+ {
+ checksum += chrArray[i + 1];
+ }
+
+ checksum = ~checksum + 1;
+
+ checksumStr = String.Format("{0:X2}{1:X2}", (byte)(checksum >> 8), (byte)checksum);
+ checksumChr = checksumStr.ToCharArray();
+
+ for (int i = 0; i < 4; i++)
+ {
+ chrArray[chrArray.Length - 5 + i] = checksumChr[i];
+ }
+
+ result = new byte[chrArray.Length];
+
+ for (int i = 0; i < chrArray.Length; i++)
+ {
+ result[i] = (byte)chrArray[i];
+ }
+
+ return result;
+ }
+
+ public static byte[] LengthLchk(int sLen)
+ {
+ byte[] result = new byte[2];
+ int lchksum = 0;
+
+ lchksum = (~(((sLen >> 8) & 0xF) +
+ ((sLen >> 4) & 0xF) +
+ ((sLen >> 0) & 0xF)) + 1) % 16;
+ lchksum = ((lchksum << 12) | sLen);
+
+ result[0] = (byte)(lchksum >> 8);
+ result[1] = (byte)(lchksum >> 0);
+
+ return result;
+ }
+
+ public static byte[] MakeTxData(byte addr, byte cmd, int sLen)
+ {
+ int buffCh = 0;
+ byte[] sData;
+ byte[] lenId;
+ byte[] checksum;
+
+ sData = new byte[((sLen > 0) ? 11 : 10)];
+
+ sData[buffCh] = 0x7E; buffCh++; // SOI
+ sData[buffCh] = 0x25; buffCh++; // VER
+ sData[buffCh] = addr; buffCh++; // ADDR
+ sData[buffCh] = 0x46; buffCh++; // CID1
+ sData[buffCh] = cmd; buffCh++; // CID2 (CMD)
+
+ lenId = LengthLchk(sLen); // LENID
+ sData[buffCh] = lenId[0]; buffCh++; // LENID MSB
+ sData[buffCh] = lenId[1]; buffCh++; // LENID LSB
+
+ if (sLen > 0)
+ {
+ sData[buffCh] = (byte)(sLen / 2); buffCh++; // INFO
+ }
+
+ checksum = csSerialCommFunction.MakeCheckSum(sData, 1, sData.Length - 4, false);
+
+ sData[buffCh] = checksum[1]; buffCh++;
+ sData[buffCh] = checksum[0]; buffCh++;
+
+ sData[buffCh] = 0x0D; buffCh++; // EOI
+
+ return MakeTxPacket(sData, sData.Length);
+ }
+
+ public static int TbPacketCheck(byte[] rdata, int rlen)
+ {
+ int result = 0;
+ byte[] cdata;
+ byte[] checksum;
+ byte[] checksum1;
+
+ checksum = MakeCheckSum(rdata, 1, rlen - 6, false);
+
+ checksum1 = new byte[2];
+ checksum1[0] = csUtils.StrByte2toByte(rdata[rlen - 4], rdata[rlen - 5]);
+ checksum1[1] = csUtils.StrByte2toByte(rdata[rlen - 2], rdata[rlen - 3]);
+
+
+ if ((checksum[0] == checksum1[0]) && (checksum[1] == checksum1[1]))
+ {
+ cdata = csUtils.StrToByteArray(rdata, 0, rlen);
+
+ result = 1;
+ }
+
+ return result;
+ }
+
+ static public int ModbusPacketFromSlaveCheck(byte[] rdata, ushort rlen)
+ {
+ int result = 0;
+ byte[] cdata, crc;
+ ushort clen, bytecount;
+
+ if (rlen > 2)
+ {
+ cdata = rdata;
+
+ switch (cdata[1])
+ {
+ case READ_COIL_STATUS:
+ case READ_HOLDING_REG:
+ case READ_INPUT_REG:
+ bytecount = cdata[2];
+ clen = (ushort)(bytecount + 5); // header 3, tail 2
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[1] == cdata[rlen - 2]) && (crc[0] == cdata[rlen - 1])) result = 1;
+ else result = -1;
+ }
+ break;
+ case PRESET_MULTI_REG:
+ case FORCE_SINGLE_COIL:
+ case PRESET_SINGLE_REG:
+ clen = 8;
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 1;
+ else result = -1;
+ }
+ break;
+ case ERROR_REG:
+ clen = 6;
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 1;
+ else result = -1;
+ }
+ break;
+ case FW_FLASH_ERASE_CMD:
+ clen = 5;
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 2;
+ else result = -1;
+ }
+ break;
+ case FW_FLASH_WRITE_CMD:
+ clen = 5;
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 2;
+ else result = -1;
+ }
+ break;
+
+ default:
+ result = -1;
+ break;
+ }
+ }
+ return result;
+ }
+
+ public static short[] SerialRxProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData)
+ {
+ short[] result = new short[2];
+
+ switch (rData[1])
+ {
+ case READ_COIL_STATUS:
+ ReadCoilRegisterProcess(rData, rRegAddr, rLen, ref rSystemData);
+ break;
+ case READ_HOLDING_REG:
+ ReadHoldRegisterProcess(rData, rRegAddr, rLen, ref rSystemData);
+ break;
+ case READ_INPUT_REG:
+ //ReadInputRegisterProcess(rData, rRegAddr, rLen, ref rSystemData);
+ break;
+ //case READ_INPUT_REG:
+ // ReadRegister(rData, rRegAddr, rLen, ref rSystemData);
+ // break;
+ case PRESET_MULTI_REG:
+ // read_holding_reg_process(reverse16(rsp->start_addr, true), reverse16(rsp->qty_reg, true));
+ //result[0] = 1;
+ //result[1] = 1;
+ break;
+ case ERROR_REG:
+ result[0] = 2;
+ result[1] = (short)((rData[0] << 8) | rData[1]);
+ break;
+ }
+
+ return result;
+ }
+
+ private static void ReadCoilRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData)
+ {
+ int i, j;
+ short reg_count;
+ short reg_value;
+ i = 2;
+ reg_count = rData[i];
+
+ i++;
+ for (j = 0; j < reg_count; j++)
+ {
+ reg_value = (short)(rData[i + j]);
+ SetCoilRegister((short)(rRegAddr + j), reg_value, ref rSystemData);
+ i++;
+ }
+ }
+
+ private static void ReadHoldRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData)
+ {
+ int i, j;
+ short reg_count;
+ short reg_value;
+ i = 2;
+ reg_count = (short)(rData[i] / 2); i += 1;
+
+ for (j = 0; j < reg_count; j++)
+ {
+ reg_value = (short)(rData[i] << 8 | rData[i + 1]);
+ SetHoldRegister((short)(rRegAddr + j), reg_value, ref rSystemData);
+ i += 2;
+ }
+ }
+
+ private static void SetCoilRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData)
+ {
+ switch (reg_addr)
+ {
+ case 0x3078:
+ rSystemData.StatusData.relayStatus = reg_value;
+ rSystemData.CalibrationData.FetCalib.FetStatus = reg_value;
+ break;
+ case 0x502E:
+ rSystemData.CalibrationData.Current.ChargeOption = reg_value;
+ break;
+ }
+ }
+
+ private static void SetHoldRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData)
+ {
+ int temp = 0;
+ try
+ {
+ switch (reg_addr)
+ {
+ case 0: rSystemData.ValueData.voltageOfPack = (short)(reg_value / 10); break; //Total Voltage
+ case 1: rSystemData.ValueData.current = (short)((reg_value) / 10); break; //Total Current
+ case 2: // Cell Voltage #1
+ case 3: // Cell Voltage #2
+ case 4: // Cell Voltage #3
+ case 5: // Cell Voltage #4
+ case 6: // Cell Voltage #5
+ case 7: // Cell Voltage #6
+ case 8: // Cell Voltage #7
+ case 9: // Cell Voltage #8'
+ case 10: // Cell Voltage #9
+ case 11: // Cell Voltage #10
+ case 12: // Cell Voltage #11
+ case 13: // Cell Voltage #12
+ case 14: // Cell Voltage #13
+ case 15: // Cell Voltage #14
+ case 16: // Cell Voltage #15
+ case 17: // Cell Voltage #16
+ rSystemData.ValueData.CellVoltage[reg_addr - 2] = (ushort)(reg_value / 1);
+ csUtils.MakeMaxAvgMinCellVoltage(ref rSystemData, 39);
+ break; // 15 CellVoltage 1mV
+ case 18: rSystemData.ValueData.Ext1Temperature = (short)((reg_value) * 10); break; // Ext1 Temperature (Temp of MOS-FET)
+ case 19: rSystemData.ValueData.Ext2Temperature = (short)((reg_value) * 10); break; // Ext2 Amb. PCB Temperature 1C
+ case 20: break; // Temp Max.
+ case 21: rSystemData.ValueData.remainingCapacity = (short)(reg_value / 1); break; // Remaining Capacity
+ case 22: rSystemData.ValueData.MaxBattChargeCurr = reg_value / 1; break;
+ case 23: rSystemData.ValueData.stateOfHealth = (short)(reg_value * 10); break;
+ case 24: rSystemData.ValueData.rSOC = (short)(reg_value * 10); break; // SOC
+ case 25: rSystemData.StatusData.status = reg_value; break; // Operating Status
+ case 26: rSystemData.StatusData.warning = MakeUartWarningData(reg_value); break; // Warning Status
+ case 27: rSystemData.StatusData.protection = MakeUartTripData(reg_value); break; // Protection Status
+ case 28: rSystemData.StatusData.errorCode = reg_value; break; // Error Code
+ // 0x0001 : Voltage error
+ // 0x0002 : Temperature error
+ // 0x0004 : Current Check Error
+ // 0x0010 : Cell unbalance
+ // 0x4000 : Gyro alarm
+ // 0x8000 : Communication alarm
+ case 29: // Cycle count MSB
+ temp = rSystemData.ValueData.cycleCount;
+ rSystemData.ValueData.cycleCount = (temp & (0x0000FFFF)) | (reg_value << 16);
+ break;
+ case 30: // Cycle count LSB
+ temp = rSystemData.ValueData.cycleCount;
+ rSystemData.ValueData.cycleCount = (int)(temp & (0xFFFF0000)) | (reg_value << 0);
+ break;
+ //case 31: // fullChargeCapacity MSB
+ // temp = rSystemData.ValueData.fullChargeCapacity;
+ // rSystemData.ValueData.fullChargeCapacity = (temp & (0x0000FFFF)) | (reg_value << 16);
+ // break;
+ //case 32: // fullChargeCapacity LSB
+ // temp = rSystemData.ValueData.fullChargeCapacity;
+ // rSystemData.ValueData.fullChargeCapacity = (int)(temp & (0xFFFF0000)) | (reg_value << 0);
+ // break;
+ case 32:
+ case 33:
+ case 34:
+ case 35:
+ try
+ {
+ rSystemData.ValueData.CellTemperature[((reg_addr - 32) * 2) + 0] = (short)(((reg_value >> 8) & 0xFF) * 10);
+ rSystemData.ValueData.CellTemperature[((reg_addr - 32) * 2) + 1] = (short)(((reg_value >> 0) & 0xFF) * 10);
+ csUtils.MakeMaxAvgMinTemperature(ref rSystemData, 8);
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(string.Format("{0} - ({1})({2})", ex, reg_addr, rSystemData.ValueData.CellTemperature.Length), "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ break;
+ case 36: rSystemData.recv_cellQty = reg_value; break; // Cell Qty
+ case 37: rSystemData.ValueData.designedCapacity = reg_value; break;
+ case 38: rSystemData.StatusData.cellBallanceStatus = reg_value; break;
+
+ //case 42:
+ // rSystemData.ValueData.CellTemperature[6 + 0] = (short)(((reg_value >> 8) & 0xFF) * 10);
+ // rSystemData.ValueData.CellTemperature[6 + 1] = (short)(((reg_value >> 0) & 0xFF) * 10);
+ // MakeMaxAvgMinTemperature(ref rSystemData);
+ // break;
+
+ //case 61: rSystemData.StatusData.cellBallanceStatus = reg_value; break;
+ //45 ~ 99 : Reserved
+ case 45: rSystemData.BmsDateTimeShort1 = (ushort)reg_value; break; // DateTime
+ case 46:
+ rSystemData.BmsDateTimeShort2 = (ushort)reg_value;
+ int yy, MM, dd, HH, mm, ss;
+ rSystemData.BmsDateTimeInt = (rSystemData.BmsDateTimeShort1 << 16) | (rSystemData.BmsDateTimeShort2);
+ yy = (rSystemData.BmsDateTimeInt >> 26) & 0x003F;
+ MM = ((rSystemData.BmsDateTimeInt >> 22) & 0x000F) % 13;
+ dd = ((rSystemData.BmsDateTimeInt >> 17) & 0x001F) % 32;
+ HH = ((rSystemData.BmsDateTimeInt >> 12) & 0x001F) % 24;
+ mm = ((rSystemData.BmsDateTimeInt >> 6) & 0x003F) % 60;
+ ss = ((rSystemData.BmsDateTimeInt >> 0) & 0x003F) % 60;
+ yy += 2000;
+
+ rSystemData.BmsDateTime.DateTimeStr = string.Format("{0:0000}-{1:00}-{2:00} {3:00}:{4:00}:{5:00}"
+ , yy
+ , MM
+ , dd
+ , HH
+ , mm
+ , ss
+ );
+ break; // DateTime
+
+ case 47: rSystemData.CalibrationData.ChaMode.Mode = reg_value; break; // 0x2F
+ case 48: rSystemData.CalibrationData.ChaMode.Value = reg_value; break; // 0x2F
+
+ case 49: rSystemData.StatusData.specialAlarm = (short)(reg_value); break; // Special Alarm
+
+ case 56: rSystemData.CalibrationData.BalCalib.Volt = reg_value; break; // Cell Balance Voltage
+ case 57: rSystemData.CalibrationData.BalCalib.Diff = reg_value; break; // Cell Balance Diff
+
+ case 58: rSystemData.ParamData.LowSocWarning = reg_value; break;
+
+ case 61: rSystemData.ParamData.CellUnderVoltageWarning = reg_value; break;
+ case 62: rSystemData.ParamData.CellUnderVoltageTrip = reg_value; break;
+ case 63: rSystemData.ParamData.CellUnderVoltageRelease = reg_value; break;
+ case 64: rSystemData.ParamData.SysUnderVoltageWarning = (short)(reg_value / 10); break;
+ case 65: rSystemData.ParamData.SysUnderVoltageTrip = (short)(reg_value / 10); break;
+ case 66: rSystemData.ParamData.SysUnderVoltageRelease = (short)(reg_value / 10); break;
+ case 67: rSystemData.ParamData.CellOverVoltageWarning = reg_value; break;
+ case 68: rSystemData.ParamData.CellOverVoltageTrip = reg_value; break;
+ case 69: rSystemData.ParamData.CellOverVoltageRelease = reg_value; break;
+ case 70: rSystemData.ParamData.SysOverVoltageWarning = (short)(reg_value / 10); break;
+ case 71: rSystemData.ParamData.SysOverVoltageTrip = (short)(reg_value / 10); break;
+ case 72: rSystemData.ParamData.SysOverVoltageRelease = (short)(reg_value / 10); break;
+
+ case 76: rSystemData.ParamData.ChaOverCurrentTimes = (short)(reg_value / 1); break;
+ case 77: rSystemData.ParamData.DchOverCurrentTimes = (short)(reg_value / 1); break;
+ case 78: rSystemData.ParamData.ChaOverCurrentReleaseTime = (short)(reg_value * 1); break;
+ case 79: rSystemData.ParamData.DchOverCurrentReleaseTime = (short)(reg_value * 1); break;
+ case 80: rSystemData.ParamData.ChaOverCurrentTrip1 = (short)(reg_value / 10); break;
+ case 81: rSystemData.ParamData.DchOverCurrentTrip1 = (short)(reg_value / 10); break;
+ case 82: rSystemData.ParamData.ShortCircuit = (short)(reg_value / 10); break; // Short Circuit Current = 300A
+ case 83: rSystemData.ParamData.ChaOverCurrentTrip2 = (short)(reg_value / 10); break;
+ case 84: rSystemData.ParamData.DchOverCurrentTrip2 = (short)(reg_value / 10); break;
+ case 85: rSystemData.ParamData.ChaOverCurrentDelay1 = (short)(reg_value / 1); break;
+ case 86: rSystemData.ParamData.ChaOverCurrentDelay2 = (short)(reg_value / 1); break;
+ case 87: rSystemData.ParamData.DchOverCurrentDelay1 = (short)(reg_value / 1); break;
+ case 88: rSystemData.ParamData.DchOverCurrentDelay2 = (short)(reg_value / 1); break;
+
+ case 90: rSystemData.ParamData.ChaLowTempWarning = (short)(reg_value - 50); break;
+ case 91: rSystemData.ParamData.ChaLowTempTrip = (short)(reg_value - 50); break;
+ case 92: rSystemData.ParamData.ChaLowTempRelease = (short)(reg_value - 50); break;
+ case 93: rSystemData.ParamData.ChaHighTempWarning = (short)(reg_value - 50); break;
+ case 94: rSystemData.ParamData.ChaHighTempTrip = (short)(reg_value - 50); break;
+ case 95: rSystemData.ParamData.ChaHighTempRelease = (short)(reg_value - 50); break;
+ case 96: rSystemData.ParamData.DchLowTempWarning = (short)(reg_value - 50); break;
+ case 97: rSystemData.ParamData.DchLowTempTrip = (short)(reg_value - 50); break;
+ case 98: rSystemData.ParamData.DchLowTempRelease = (short)(reg_value - 50); break;
+ case 99: rSystemData.ParamData.DchHighTempWarning = (short)(reg_value - 50); break;
+ case 100: rSystemData.ParamData.DchHighTempTrip = (short)(reg_value - 50); break;
+ case 101: rSystemData.ParamData.DchHighTempRelease = (short)(reg_value - 50); break;
+
+ case 102: break; // PCB High Temp Warning
+ case 103: break; // PCB High Temp Trip
+ case 104: break; // PCB High Temp Release
+ //100 ~111 : Model_Product Name
+ case 105:
+ case 106:
+ case 107:
+ case 108:
+ case 109:
+ case 110:
+ case 111:
+ case 112:
+ case 113:
+ case 114:
+ case 115:
+ case 116:
+ int mReg = reg_addr - 105;
+ rSystemData.Information.Model_Byte[(mReg * 2) + 0] = (byte)(reg_value >> 8);
+ rSystemData.Information.Model_Byte[(mReg * 2) + 1] = (byte)(reg_value >> 0);
+ if (reg_addr == 116)
+ {
+ rSystemData.Information.ModelName = Encoding.Default.GetString(rSystemData.Information.Model_Byte).Trim('\0');
+ }
+ break;
+
+ //112 ~114 : FW Version
+ case 117:
+ case 118:
+ case 119:
+ int fReg = reg_addr - 117;
+ rSystemData.Information.FwVer_Byte[(fReg * 2) + 0] = (byte)(reg_value >> 8);
+ rSystemData.Information.FwVer_Byte[(fReg * 2) + 1] = (byte)(reg_value >> 0);
+ if (reg_addr == 119)
+ {
+ rSystemData.Information.SwProductRev = Encoding.Default.GetString(rSystemData.Information.FwVer_Byte).Trim('\0');
+ }
+ break;
+ //115 ~ 122 : BMS Serial number
+ case 120:
+ case 121:
+ case 122:
+ case 123:
+ case 124:
+ case 125:
+ case 126:
+ case 127:
+ int snReg = reg_addr - 120;
+ rSystemData.Information.BMS_SN[(snReg * 2) + 0] = (byte)(reg_value >> 8);
+ rSystemData.Information.BMS_SN[(snReg * 2) + 1] = (byte)(reg_value >> 0);
+ if (reg_addr == 127)
+ {
+ rSystemData.Information.HwSerialNumber = Encoding.Default.GetString(rSystemData.Information.BMS_SN).Trim('\0');
+ }
+ break;
+
+ case 130: rSystemData.ParamData.EnvLowTempWarning = (short)(reg_value - 50); break;
+ case 131: rSystemData.ParamData.EnvLowTempTrip = (short)(reg_value - 50); break;
+ case 132: rSystemData.ParamData.EnvLowTempRelease = (short)(reg_value - 50); break;
+ case 133: rSystemData.ParamData.EnvHighTempWarning = (short)(reg_value - 50); break;
+ case 134: rSystemData.ParamData.EnvHighTempTrip = (short)(reg_value - 50); break;
+ case 135: rSystemData.ParamData.EnvHighTempRelease = (short)(reg_value - 50); break;
+
+ case 136: // Anti-Theft Communication
+ rSystemData.CalibrationData.AntiTheft.Comm = reg_value;
+ break;
+ case 137: // Anti-Theft Gyro-Scope
+ rSystemData.CalibrationData.AntiTheft.GyroScope = reg_value;
+ break;
+
+ case 138: // Cell Voltage #17
+ case 139: // Cell Voltage #18
+ case 140: // Cell Voltage #19
+ case 141: // Cell Voltage #20
+ case 142: // Cell Voltage #21
+ case 143: // Cell Voltage #22
+ case 144: // Cell Voltage #23
+ case 145: // Cell Voltage #24
+ case 146: // Cell Voltage #25
+ case 147: // Cell Voltage #26
+ case 148: // Cell Voltage #27
+ case 149: // Cell Voltage #28
+ case 150: // Cell Voltage #29
+ case 151: // Cell Voltage #30
+ case 152: // Cell Voltage #31
+ case 153: // Cell Voltage #32
+ case 154: // Cell Voltage #33
+ case 155: // Cell Voltage #34
+ case 156: // Cell Voltage #35
+ case 157: // Cell Voltage #36
+ case 158: // Cell Voltage #37
+ case 159: // Cell Voltage #38
+ case 160: // Cell Voltage #39
+ rSystemData.ValueData.CellVoltage[reg_addr - 138 + 16] = (ushort)(reg_value / 1);
+ break;
+
+ case 163: // 0xA3
+ case 164: // 0xA4
+ case 165: // 0xA5
+ case 166: // 0xA6
+ int ManuDateReg = reg_addr - 163;
+ rSystemData.Information.ManuDate_Byte[(ManuDateReg * 2) + 0] = (byte)(reg_value >> 8);
+ rSystemData.Information.ManuDate_Byte[(ManuDateReg * 2) + 1] = (byte)(reg_value >> 0);
+ if (reg_addr == 166)
+ {
+ rSystemData.Information.ManufacturingDate = Encoding.Default.GetString(rSystemData.Information.ManuDate_Byte).Trim('\0');
+ }
+ break;
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(string.Format("{0} - ({1})", ex, reg_addr), "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ csMakeDataFunction.MakeAlarm(ref rSystemData);
+ }
+
+ public static short MakeUartWarningData(short rdata)
+ {
+ short result = 0;
+ bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
+
+ if (bAlarm[0] == true) result |= (short)(1 << 2); // 0x0001:Pack OV
+ if (bAlarm[1] == true) result |= (short)(1 << 4); // 0x0002:Cell OV
+ if (bAlarm[2] == true) result |= (short)(1 << 3); // 0x0004:Pack UV
+ if (bAlarm[3] == true) result |= (short)(1 << 5); // 0x0008:Cell UV
+
+ if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC
+ if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC
+
+ if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Tempratuer
+ if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Discharging Over Tempratuer
+ if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0040: Charging Under Tempratuer
+ if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Tempratuer
+ if (bAlarm[12] == true) result |= (short)(1 << 11); // 0x0200:SOC Low
+
+ return result;
+ }
+
+ public static short MakeUartTripData(short rdata)
+ {
+ short result = 0;
+ bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
+
+ if (bAlarm[0] == true) result |= (short)(1 << 2); // 0x0001:Pack OV
+ if (bAlarm[1] == true) result |= (short)(1 << 4); // 0x0002:Cell OV
+ if (bAlarm[2] == true) result |= (short)(1 << 3); // 0x0004:Pack UV
+ if (bAlarm[3] == true) result |= (short)(1 << 5); // 0x0008:Cell UV
+
+ if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC
+ if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC
+
+ if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Tempratuer
+ if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Discharging Over Tempratuer
+ if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0040: Charging Under Tempratuer
+ if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Tempratuer
+ if (bAlarm[13] == true) result |= (short)(1 << 9); // 0x0200:Short Circuit Protection
+
+ return result;
+ }
+
+ private static short MakeUartErrorData(short rdata, short cdata)
+ {
+ short result = cdata;
+ bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
+
+ if (bAlarm[0] == true) result |= (short)(1 << 9); // 0x0001:Voltage error
+ if (bAlarm[1] == true) result |= (short)(1 << 9); // 0x0002:Temperature error
+ if (bAlarm[2] == true) result |= (short)(1 << 9); // 0x0004: 电流检测Error
+ if (bAlarm[3] == true) result |= (short)(1 << 9); // 0x0010:Cell unbalance
+
+ return result;
+ }
+ }
+}
diff --git a/LFP_Manager/Function/CsSerialCommFunctionDelta.cs b/LFP_Manager/Function/CsSerialCommFunctionDelta.cs
new file mode 100644
index 0000000..77f9536
--- /dev/null
+++ b/LFP_Manager/Function/CsSerialCommFunctionDelta.cs
@@ -0,0 +1,961 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Utils;
+using LFP_Manager.Controls;
+using System.Web.Services.Description;
+using DevExpress.XtraTreeList;
+using SnmpSharpNet;
+using DevExpress.XtraGrid.Views.BandedGrid.Handler;
+using static DevExpress.Xpo.Helpers.AssociatedCollectionCriteriaHelper;
+
+namespace LFP_Manager.Function
+{
+ class CsSerialCommFunctionDelta
+ {
+ public const byte READ_COIL_STATUS = 0x01;
+ public const byte READ_HOLDING_REG = 0x03;
+ public const byte READ_INPUT_REG = 0x04; //Byul 구문 추가 필요
+ public const byte FORCE_SINGLE_COIL = 0x05;
+ public const byte PRESET_SINGLE_REG = 0x06;
+ public const byte PRESET_MULTI_REG = 0x10;
+ public const byte WRITE_COIL_REG = 0x0F;
+ public const byte ERROR_REG = 0x90;
+
+ public const byte READ_WRITE_REG = 0x17;
+ public const byte SPECIAL_REG_02 = 0x19;
+ public const byte READ_DEV_ID = 0x2B;
+
+ public const byte FW_FLASH_ERASE_CMD = 0x43;
+ public const byte FW_FLASH_WRITE_CMD = 0x31;
+
+ public const byte NO_CMD = 0xFF;
+
+ public static byte[] GetCRC(byte[] pby, int nSize)
+ {
+ ushort uIndex, i;
+ ushort crc;
+ byte uchCRCHi = 0xff;
+ byte uchCRCLo = 0xff;
+ byte[] result = new byte[2];
+
+ for (i = 0; i < nSize; i++)
+ {
+ uIndex = (ushort)((int)uchCRCLo ^ (int)pby[i]);
+ uchCRCLo = (byte)(uchCRCHi ^ csConstData.CRC_Data.auchCRCHi[uIndex]);
+ uchCRCHi = csConstData.CRC_Data.auchCRCLo[uIndex];
+ }
+ crc = (ushort)((uchCRCHi << 8) | uchCRCLo);
+
+ result[0] = (byte)(crc >> 8);
+ result[1] = (byte)(crc >> 0);
+
+ return result;
+ }
+
+ static public byte[] MakeReadRegisterData(ushort DevID, ushort cmd, ushort ReadAddr, ushort Size)
+ {
+ byte[] result = new byte[8];
+ byte[] crc;
+
+ result[0] = (byte)DevID; // Device ID
+ result[1] = (byte)cmd; // Command
+ result[2] = (byte)(ReadAddr >> 8); // Register Address MSB
+ result[3] = (byte)(ReadAddr >> 0); // Register Address LSB
+ result[4] = (byte)(Size >> 8); // Count of Register MSB
+ result[5] = (byte)(Size >> 0); // Count of Register LSB
+
+ crc = GetCRC(result, 6);
+
+ result[6] = crc[1]; // CRCH
+ result[7] = crc[0]; // CRCL
+
+ return result;
+ }
+
+ static public byte[] MakeWriteCoilData(ushort DevID, ushort WriteAddr, short WriteData)
+ {
+ byte[] result = new byte[7 + (1 * 1) + 2];
+ byte[] crc;
+ ushort i = 0;
+
+ result[i++] = (byte)DevID; // Device ID
+ result[i++] = (byte)WRITE_COIL_REG; // Command
+ result[i++] = (byte)(WriteAddr >> 8); // Register Address MSB
+ result[i++] = (byte)(WriteAddr >> 0); // Register Address LSB
+ result[i++] = (byte)(1 >> 8); // Count of Register MSB
+ result[i++] = (byte)(1 >> 0); // Count of Register LSB
+ result[i++] = (byte)(1 * 1); // Byte Count - [2 * (Num of register)]
+
+ result[i++] = (byte)(WriteData >> 0);
+
+ crc = GetCRC(result, i);
+
+ result[i++] = crc[1]; // CRCH
+ result[i++] = crc[0]; // CRCL
+
+ return result;
+ }
+
+ static public byte[] MakeWriteRegisterData(ushort DevID, ushort WriteAddr, short WriteData)
+ {
+ byte[] result = new byte[9 + (1 * 2)];
+ byte[] crc;
+ ushort i = 0;
+
+ result[i++] = (byte)DevID; // Device ID
+ result[i++] = (byte)PRESET_MULTI_REG; // Command
+ result[i++] = (byte)(WriteAddr >> 8); // Register Address MSB
+ result[i++] = (byte)(WriteAddr >> 0); // Register Address LSB
+ result[i++] = (byte)(1 >> 8); // Count of Register MSB
+ result[i++] = (byte)(1 >> 0); // Count of Register LSB
+ result[i++] = (byte)(1 * 2); // Byte Count - [2 * (Num of register)]
+
+ result[i++] = (byte)(WriteData >> 8);
+ result[i++] = (byte)(WriteData >> 0);
+
+ crc = GetCRC(result, i);
+
+ result[i++] = crc[1]; // CRCH
+ result[i++] = crc[0]; // CRCL
+
+ return result;
+ }
+
+ static public byte[] MakeReadDevIdRegReqData(ushort DevID, ushort cmd, ushort ReadAddr)
+ {
+ byte[] result = new byte[7];
+ byte[] crc;
+
+ result[0] = (byte)DevID; // Device ID
+ result[1] = (byte)cmd; // Command
+ result[2] = (byte)0x0E; // MEI Type
+ result[3] = (byte)0x02; // Read Dev Id code
+ result[4] = (byte)ReadAddr; // Object Id
+
+ crc = GetCRC(result, 5);
+
+ result[5] = crc[1]; // CRCH
+ result[6] = crc[0]; // CRCL
+
+ return result;
+ }
+
+ static short GetRegister(ushort reg_addr, ref DeviceParamData aParam)
+ {
+ short result = 0;
+
+ switch (reg_addr)
+ {
+ //case 19: result = (short)(0 >> 16); break; // 0021 : UTC TimeStamp MSB
+ //case 20: result = (short)(58 >> 0); break; // 0022 : UTC TimeStamp LSB
+ //case 21: result = (short)0x1000; break; // 0023 : Cell Balancing Flag
+ //case 22: result = (short)0x0000; break; // 0024 : Cell Balancing Voltage
+ //case 23: result = (short)15; break; // 0024 : Cell Balancing Time
+
+ case 0x4002: result = (short)aParam.CellUnderVoltageWarning; break; // 0061 : Low cell voltage warning data
+ //case 33: result = (short)param.sf1.voltage.CUV_Threshold; break; // 0062 : Low cell voltage protection data
+ //case 34: result = (short)param.sf1.voltage.CUV_Recovery; break; // 0063 : Low cell voltage recovery data
+ //case 35: result = (short)param.sf1.voltage.SUV_Warning; break; // 0064 : Low voltage warning data
+ //case 36: result = (short)param.sf1.voltage.SUV_Threshold; break; // 0065 : Low voltage protection data
+ //case 37: result = (short)param.sf1.voltage.SUV_Recovery; break; // 0066 : Low voltage recovery data
+ //case 38: result = (short)param.sf1.voltage.COV_Warning; break; // 0067 : Over cell voltage warning data
+ //case 39: result = (short)param.sf1.voltage.COV_Threshold; break; // 0068 : Over cell voltage protection data
+ //case 40: result = (short)param.sf1.voltage.COV_Recovery; break; // 0069 : Over cell voltage recovery data
+ //case 41: result = (short)param.sf1.voltage.SOV_Warning; break; // 0070 : Over voltage warning data
+ //case 42: result = (short)param.sf1.voltage.SOV_Threshold; break; // 0071 : Over voltage protection data
+ //case 43: result = (short)param.sf1.voltage.SOV_Recovery; break; // 0072 : Over voltage recovery data
+
+ //case 44: result = (short)param.sf1.temperature.OT_Chg_Warning; break; // 0044 : Charge over temperature warning data
+ //case 45: result = (short)param.sf1.temperature.OT_Chg_Threshold; break; // 0045 : Charge over temperature protection data
+ //case 46: result = (short)param.sf1.temperature.OT_Chg_Recovery; break; // 0046 : Charge over temperature recovery data
+ //case 47: result = (short)param.sf1.temperature.OT_Chg_Time; break; // 0047 : Charge over temperature time
+
+ //case 48: result = (short)param.sf1.temperature.OT_Dsg_Warning; break; // 0048 : Discharge over temperature warning data
+ //case 49: result = (short)param.sf1.temperature.OT_Dsg_Threshold; break; // 0049 : Discharge over temperature protection data
+ //case 50: result = (short)param.sf1.temperature.OT_Dsg_Recovery; break; // 0050 : Discharge over temperature recovery data
+ //case 51: result = (short)param.sf1.temperature.OT_Dsg_Time; break; // 0051 : Discharge over temperature time
+ }
+
+ return result;
+ }
+
+ static byte[] ModBusGetRegWordToBytes(ushort addr, ref DeviceParamData aParam)
+ {
+ short data;
+ byte[] result = new byte[2];
+
+ data = GetRegister(addr, ref aParam);
+
+ result[0] = (byte)(data >> 8);
+ result[1] = (byte)(data >> 0);
+
+ return result;
+ }
+
+ static public byte[] MakeWriteRegisterData(ushort DevID, ushort WriteAddr, ushort reg_len, ref DeviceParamData aParam)
+ {
+ int tlen = (reg_len * 2) + 7 + 2;
+ byte[] result = new byte[tlen];
+ byte[] tmp;
+ byte[] crc;
+
+ result[0] = (byte)DevID; // Device ID
+ result[1] = (byte)PRESET_MULTI_REG; // Command
+ result[2] = (byte)(WriteAddr >> 8); // Register Address MSB
+ result[3] = (byte)(WriteAddr >> 0); // Register Address LSB
+ result[4] = (byte)(reg_len >> 8); // Count of Register MSB
+ result[5] = (byte)(reg_len >> 0); // Count of Register LSB
+ result[6] = (byte)(reg_len * 2); ; // Current Value MSB
+
+ for (int i = 0; i < reg_len; i++)
+ {
+ tmp = ModBusGetRegWordToBytes((ushort)(WriteAddr + i), ref aParam);
+ result[7 + (i * 2) + 0] = tmp[0];
+ result[7 + (i * 2) + 1] = tmp[1];
+ }
+ crc = GetCRC(result, 8);
+
+ result[tlen - 2] = crc[0]; // CRCH
+ result[tlen - 1] = crc[1]; // CRCL
+
+ return result;
+ }
+
+ static public byte[] MakeReadWriteRegisterData(ushort DevID, ushort WriteAddr, short WriteData)
+ {
+ byte[] result = new byte[15];
+ byte[] crc;
+ ushort i = 0;
+
+ result[i++] = (byte)DevID; // Device ID
+ result[i++] = (byte)READ_WRITE_REG; // Command
+ result[i++] = (byte)(WriteAddr >> 8); // Read Register Address MSB
+ result[i++] = (byte)(WriteAddr >> 0); // Read Register Address LSB
+ result[i++] = (byte)(0 >> 8); // Read Count of Register MSB
+ result[i++] = (byte)(0 >> 0); // Read Count of Register LSB
+ result[i++] = (byte)(WriteAddr >> 8); // Write Register Address MSB
+ result[i++] = (byte)(WriteAddr >> 0); // Write Register Address LSB
+ result[i++] = (byte)(1 >> 8); // Write Count of Register MSB
+ result[i++] = (byte)(1 >> 0); // Write Count of Register LSB
+ result[i++] = (byte)(1 * 2); // Byte Count - [2 * (Num of register)]
+
+ result[i++] = (byte)(WriteData >> 8);
+ result[i++] = (byte)(WriteData >> 0);
+
+ crc = GetCRC(result, i);
+
+ result[i++] = crc[0]; // CRCH
+ result[i++] = crc[1]; // CRCL
+
+ return result;
+ }
+
+ public static byte[] MakeCheckSum(byte[] sData, int offset, int len, bool flag)
+ {
+ byte[] result = new byte[2];
+ int checksum = 0;
+
+ for (int i = 0; i < len; i++)
+ {
+ checksum += sData[i + offset];
+ }
+
+ checksum = ~checksum + 1;
+
+ result[0] = (byte)(checksum >> 8);
+ result[1] = (byte)checksum;
+
+ return result;
+ }
+
+ private static byte[] MakeTxPacket(byte[] sData, int len)
+ {
+ string str = "";
+ byte[] result;
+ char[] chrArray;
+ int checksum = 0;
+ string checksumStr = "";
+ char[] checksumChr;
+
+ str = "~";
+
+ for (int i = 0; i < len; i++)
+ {
+ str += sData[i].ToString("X2");
+ }
+
+ str += "\r";
+
+ chrArray = str.ToCharArray();
+
+ for (int i = 0; i < (chrArray.Length - 6); i++)
+ {
+ checksum += chrArray[i + 1];
+ }
+
+ checksum = ~checksum + 1;
+
+ checksumStr = String.Format("{0:X2}{1:X2}", (byte)(checksum >> 8), (byte)checksum);
+ checksumChr = checksumStr.ToCharArray();
+
+ for (int i = 0; i < 4; i++)
+ {
+ chrArray[chrArray.Length - 5 + i] = checksumChr[i];
+ }
+
+ result = new byte[chrArray.Length];
+
+ for (int i = 0; i < chrArray.Length; i++)
+ {
+ result[i] = (byte)chrArray[i];
+ }
+
+ return result;
+ }
+
+ public static byte[] LengthLchk(int sLen)
+ {
+ byte[] result = new byte[2];
+ int lchksum = 0;
+
+ lchksum = (~(((sLen >> 8) & 0xF) +
+ ((sLen >> 4) & 0xF) +
+ ((sLen >> 0) & 0xF)) + 1) % 16;
+ lchksum = ((lchksum << 12) | sLen);
+
+ result[0] = (byte)(lchksum >> 8);
+ result[1] = (byte)(lchksum >> 0);
+
+ return result;
+ }
+
+ public static byte[] MakeTxData(byte addr, byte cmd, int sLen)
+ {
+ int buffCh = 0;
+ byte[] sData;
+ byte[] lenId;
+ byte[] checksum;
+
+ sData = new byte[((sLen > 0) ? 11 : 10)];
+
+ sData[buffCh] = 0x7E; buffCh++; // SOI
+ sData[buffCh] = 0x25; buffCh++; // VER
+ sData[buffCh] = addr; buffCh++; // ADDR
+ sData[buffCh] = 0x46; buffCh++; // CID1
+ sData[buffCh] = cmd; buffCh++; // CID2 (CMD)
+
+ lenId = LengthLchk(sLen); // LENID
+ sData[buffCh] = lenId[0]; buffCh++; // LENID MSB
+ sData[buffCh] = lenId[1]; buffCh++; // LENID LSB
+
+ if (sLen > 0)
+ {
+ sData[buffCh] = (byte)(sLen / 2); buffCh++; // INFO
+ }
+
+ checksum = csSerialCommFunction.MakeCheckSum(sData, 1, sData.Length - 4, false);
+
+ sData[buffCh] = checksum[1]; buffCh++;
+ sData[buffCh] = checksum[0]; buffCh++;
+
+ sData[buffCh] = 0x0D; buffCh++; // EOI
+
+ return MakeTxPacket(sData, sData.Length);
+ }
+
+ public static int TbPacketCheck(byte[] rdata, int rlen)
+ {
+ int result = 0;
+ byte[] cdata;
+ byte[] checksum;
+ byte[] checksum1;
+
+ checksum = MakeCheckSum(rdata, 1, rlen - 6, false);
+
+ checksum1 = new byte[2];
+ checksum1[0] = csUtils.StrByte2toByte(rdata[rlen - 4], rdata[rlen - 5]);
+ checksum1[1] = csUtils.StrByte2toByte(rdata[rlen - 2], rdata[rlen - 3]);
+
+
+ if ((checksum[0] == checksum1[0]) && (checksum[1] == checksum1[1]))
+ {
+ cdata = csUtils.StrToByteArray(rdata, 0, rlen);
+
+ result = 1;
+ }
+
+ return result;
+ }
+
+ static public int ModbusPacketFromSlaveCheck(byte[] rdata, ushort rlen)
+ {
+ int result = 0;
+ byte[] cdata, crc;
+ ushort clen, bytecount;
+
+ if (rlen > 2)
+ {
+ cdata = rdata;
+
+ switch (cdata[1])
+ {
+ case READ_DEV_ID:
+ if (rlen < 10) break;
+ if (rdata[7] == 0) break;
+
+ int tmp = 0;
+ int cPos = 7;
+ int alen = 0;
+ for (int i = 0; i < cdata[7]; i++)
+ {
+ alen = cdata[cPos + 2];
+ cPos += alen + 2;
+ if (rlen < (cPos + 3))
+ {
+ tmp = 1;
+ break;
+ }
+ }
+ if (tmp == 1) break;
+
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[1] == cdata[rlen - 2]) && (crc[0] == cdata[rlen - 1])) result = 1;
+ else result = -1;
+ break;
+ case READ_COIL_STATUS:
+ case READ_HOLDING_REG:
+ case READ_INPUT_REG:
+ case READ_WRITE_REG:
+ bytecount = cdata[2];
+ clen = (ushort)(bytecount + 5); // header 3, tail 2
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[1] == cdata[rlen - 2]) && (crc[0] == cdata[rlen - 1])) result = 1;
+ else result = -1;
+ }
+ break;
+ case PRESET_MULTI_REG:
+ case FORCE_SINGLE_COIL:
+ case PRESET_SINGLE_REG:
+ clen = 8;
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 1;
+ else result = -1;
+ }
+ break;
+ case ERROR_REG:
+ clen = 6;
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 1;
+ else result = -1;
+ }
+ break;
+ case FW_FLASH_ERASE_CMD:
+ clen = 5;
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 2;
+ else result = -1;
+ }
+ break;
+ case FW_FLASH_WRITE_CMD:
+ clen = 5;
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 2;
+ else result = -1;
+ }
+ break;
+ default:
+ result = -1;
+ break;
+ }
+ }
+ return result;
+ }
+
+ public static short[] SerialRxProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData)
+ {
+ short[] result = new short[2];
+
+ switch (rData[1])
+ {
+ case READ_HOLDING_REG: // 0x03
+ ReadHoldingRegisterProcess(rData, rRegAddr, rLen, ref rSystemData);
+ break;
+ case READ_INPUT_REG: // 0x04
+ ReadInputRegisterProcess(rData, rRegAddr, rLen, ref rSystemData);
+ break;
+ case READ_WRITE_REG: // 0x17
+ //ReadSP1RegisterProcess(rData, rRegAddr, rLen, ref rSystemData);
+ break;
+ case SPECIAL_REG_02: // 0x19
+ //ReadInputRegisterProcess(rData, rRegAddr, rLen, ref rSystemData);
+ break;
+ case READ_DEV_ID: // 0x2B
+ ReadDevIdRegisterProcess(rData, rRegAddr, rLen, ref rSystemData);
+ break;
+ case PRESET_MULTI_REG:
+ // read_holding_reg_process(reverse16(rsp->start_addr, true), reverse16(rsp->qty_reg, true));
+ //result[0] = 1;
+ //result[1] = 1;
+ break;
+ case ERROR_REG:
+ result[0] = 2;
+ result[1] = (short)((rData[0] << 8) | rData[1]);
+ break;
+ }
+ return result;
+ }
+
+ private static void ReadCoilRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData)
+ {
+ int i, j;
+ short reg_count;
+ short reg_value;
+ i = 2;
+ reg_count = rData[i];
+
+ i++;
+ for (j = 0; j < reg_count; j++)
+ {
+ reg_value = (short)(rData[i + j]);
+ SetCoilRegister((short)(rRegAddr + j), reg_value, ref rSystemData);
+ i++;
+ }
+ }
+
+ private static void ReadHoldingRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData)
+ {
+ int i, j;
+ short reg_count;
+ short reg_value;
+ i = 2;
+ reg_count = (short)(rData[i] / 2); i += 1;
+
+ for (j = 0; j < reg_count; j++)
+ {
+ reg_value = (short)(rData[i] << 8 | rData[i + 1]);
+ SetHoldingRegister((short)(rRegAddr + j), reg_value, ref rSystemData);
+ i += 2;
+ }
+ }
+ private static void ReadInputRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData)
+ {
+ int i, j;
+ short reg_count;
+ short reg_value;
+ i = 2;
+ reg_count = (short)(rData[i] / 2); i += 1;
+
+ for (j = 0; j < reg_count; j++)
+ {
+ reg_value = (short)(rData[i] << 8 | rData[i + 1]);
+ SetInputRegister((short)(rRegAddr + j), reg_value, ref rSystemData);
+ i += 2;
+ }
+ }
+ private static void ReadDevIdRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData)
+ {
+ int cPos = 7;
+ int alen = 0;
+ int regCount = rData[7];
+ int oID = 0;
+
+ for (int i = 0; i < regCount; i++)
+ {
+ oID = rData[cPos + 1];
+ alen = rData[cPos + 2];
+ byte[] tmp = new byte[alen];
+ for (int j = 0; j < alen; j++) { tmp[j] = rData[cPos + 3 + j]; }
+
+ switch (oID)
+ {
+ case 0x00: rSystemData.Information.VendorName = Encoding.ASCII.GetString(tmp).Trim('\0'); break;
+ case 0x01: rSystemData.Information.ProductCode = Encoding.ASCII.GetString(tmp).Trim('\0'); break;
+ case 0x02: rSystemData.Information.MajorMinorRev = Encoding.ASCII.GetString(tmp).Trim('\0'); break;
+ //case 0x05: rSystemData.Information.ModelName = Encoding.ASCII.GetString(tmp).Trim('\0'); break;
+ //case 0x82: rSystemData.Information.HwSerialNumber = Encoding.ASCII.GetString(tmp).Trim('\0'); break;
+ //case 0x83: rSystemData.Information.HwProductRev = Encoding.ASCII.GetString(tmp).Trim('\0'); break;
+ //case 0x84: rSystemData.Information.ManufacturingDate = Encoding.ASCII.GetString(tmp).Trim('\0'); break;
+ //case 0x86: rSystemData.Information.SwProductRev = Encoding.ASCII.GetString(tmp).Trim('\0'); break;
+ }
+
+ cPos += alen + 2;
+ if (rLen < (cPos + 3))
+ {
+ break;
+ }
+ }
+ }
+ private static void ReadSP2RegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData)
+ {
+ int i, j;
+ short reg_count;
+ short reg_value;
+ i = 2;
+ reg_count = (short)(rData[i] / 2); i += 1;
+
+ for (j = 0; j < reg_count; j++)
+ {
+ reg_value = (short)(rData[i] << 8 | rData[i + 1]);
+ SetSP2Register((short)(rRegAddr + j), reg_value, ref rSystemData);
+ i += 2;
+ }
+ }
+ private static void ReadSP1RegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData)
+ {
+ int i, j;
+ short reg_count;
+ short reg_value;
+ i = 2;
+ reg_count = (short)(rData[i] / 2); i += 1;
+
+ for (j = 0; j < reg_count; j++)
+ {
+ reg_value = (short)(rData[i] << 8 | rData[i + 1]);
+ SetSP1Register((short)(rRegAddr + j), reg_value, ref rSystemData);
+ i += 2;
+ }
+ }
+
+ private static readonly int CURRENT_OFFSET = 10000;
+ private static readonly int TEMP_OFFSET = 400;
+
+ private static short MakeWarningData_AMG(short reg_value)
+ {
+ byte[] reg_byte = new byte[2];
+ ushort result = 0;
+
+ reg_byte[1] = (byte)(reg_value >> 8);
+ reg_byte[0] = (byte)(reg_value >> 0);
+
+ if (((reg_byte[0] >> 0) & 0x01) == 0x01) result |= (ushort)(1 << 4); // Cell Over Voltage
+ if (((reg_byte[0] >> 1) & 0x01) == 0x01) result |= (ushort)(1 << 5); // Cell Under Voltage
+ if (((reg_byte[0] >> 2) & 0x01) == 0x01) result |= (ushort)(1 << 2); // Pack Over Voltage
+ if (((reg_byte[0] >> 3) & 0x01) == 0x01) result |= (ushort)(1 << 3); // Pack Under Voltage
+ if (((reg_byte[0] >> 4) & 0x01) == 0x01) result |= (ushort)(1 << 6); // Charge Over Current
+ if (((reg_byte[0] >> 5) & 0x01) == 0x01) result |= (ushort)(1 << 7); // Discharge Over Current
+ if (((reg_byte[0] >> 6) & 0x01) == 0x01) result |= (ushort)(1 << 14); // ENV Over Temperature
+ if (((reg_byte[0] >> 7) & 0x01) == 0x01) result |= (ushort)(1 << 15); // ENV Under Temperature
+
+ if (((reg_byte[1] >> 0) & 0x01) == 0x01) result |= (ushort)(1 << 0); // Chg Over Temperature
+ if (((reg_byte[1] >> 1) & 0x01) == 0x01) result |= (ushort)(1 << 1); // Chg Under Temperature
+ if (((reg_byte[1] >> 2) & 0x01) == 0x01) result |= (ushort)(1 << 0); // Dch Over Temperature
+ if (((reg_byte[1] >> 3) & 0x01) == 0x01) result |= (ushort)(1 << 1); // Dch Under Temperature
+ if (((reg_byte[1] >> 4) & 0x01) == 0x01) result |= (ushort)(1 << 11); // SOC Low Alarm
+ if (((reg_byte[1] >> 5) & 0x01) == 0x01) result |= (ushort)(1 << 9); // Diff Voltage Alarm
+ if (((reg_byte[1] >> 6) & 0x01) == 0x01) result |= (ushort)(1 << 13); // CB On/OFF (1: OFF, 0: ON)
+ if (((reg_byte[1] >> 7) & 0x01) == 0x01) result |= (ushort)(1 << 12); // reserved
+
+ return (short)result;
+ }
+
+ private static short MakeProtectData_AMG(short reg_value)
+ {
+ byte[] reg_byte = new byte[2];
+ ushort result = 0;
+
+ reg_byte[1] = (byte)(reg_value >> 8);
+ reg_byte[0] = (byte)(reg_value >> 0);
+
+ if (((reg_byte[0] >> 0) & 0x01) == 0x01) result |= (ushort)(1 << 4); // Cell Over Voltage
+ if (((reg_byte[0] >> 1) & 0x01) == 0x01) result |= (ushort)(1 << 2); // Pack Over Voltage
+ if (((reg_byte[0] >> 2) & 0x01) == 0x01) result |= (ushort)(1 << 5); // Cell Under Voltage
+ if (((reg_byte[0] >> 3) & 0x01) == 0x01) result |= (ushort)(1 << 3); // Pack Under Voltage
+ if (((reg_byte[0] >> 4) & 0x01) == 0x01) result |= (ushort)(1 << 6); // Cha Over Current 1
+ if (((reg_byte[0] >> 5) & 0x01) == 0x01) result |= (ushort)(1 << 6); // Cha Over Current 2
+ if (((reg_byte[0] >> 6) & 0x01) == 0x01) result |= (ushort)(1 << 7); // Dch Over Current 1
+ if (((reg_byte[0] >> 7) & 0x01) == 0x01) result |= (ushort)(1 << 7); // Dch Over Current 2
+
+ if (((reg_byte[1] >> 0) & 0x01) == 0x01) result |= (ushort)(1 << 8); // SC Protect / CB off
+ if (((reg_byte[1] >> 1) & 0x01) == 0x01) result |= (ushort)(1 << 0); // Chg Over Temperature
+ if (((reg_byte[1] >> 2) & 0x01) == 0x01) result |= (ushort)(1 << 1); // Chg Under Temperature
+ if (((reg_byte[1] >> 3) & 0x01) == 0x01) result |= (ushort)(1 << 0); // Dch Over Temperature
+ if (((reg_byte[1] >> 4) & 0x01) == 0x01) result |= (ushort)(1 << 1); // Dch Under Temperature
+
+ return (short)result;
+ }
+
+ private static void MakeAlarm(ref DeviceSystemData rSystemData)
+ {
+ if (((rSystemData.StatusData.faultstatus >> 14) & 0x0001) == 0x0001)
+ {
+ rSystemData.StatusData.batteryStatus = 4; // Anti-theft Gyroscope
+ }
+ else if (((rSystemData.StatusData.faultstatus >> 15) & 0x0001) == 0x0001)
+ {
+ rSystemData.StatusData.batteryStatus = 5; // Anti-theft Comm.
+ }
+ else if (rSystemData.StatusData.protection != 0x0000)
+ {
+ rSystemData.StatusData.batteryStatus = 2;
+ }
+ else if (rSystemData.StatusData.warning != 0x0000)
+ {
+ rSystemData.StatusData.batteryStatus = 1;
+ }
+ else
+ {
+ rSystemData.StatusData.batteryStatus = 0;
+ }
+ }
+
+ private static void SetHoldingRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData)
+ {
+ switch (reg_addr)
+ {
+ //100 ~111 : Model_Product Name
+ case 100:
+ case 101:
+ case 102:
+ case 103:
+ case 104:
+ case 105:
+ case 106:
+ case 107:
+ case 108:
+ case 109:
+ case 110:
+ case 111:
+ int mReg = reg_addr - 100;
+ rSystemData.Information.Model_Byte[(mReg * 2) + 0] = (byte)(reg_value >> 8);
+ rSystemData.Information.Model_Byte[(mReg * 2) + 1] = (byte)(reg_value >> 0);
+ if (reg_addr == 111)
+ {
+ rSystemData.Information.ModelName = Encoding.Default.GetString(rSystemData.Information.Model_Byte).Trim('\0');
+ }
+ break;
+ //112 ~114 : FW Version
+ case 112:
+ case 113:
+ case 114:
+ int fReg = reg_addr - 112;
+ rSystemData.Information.FwVer_Byte[(fReg * 2) + 0] = (byte)(reg_value >> 8);
+ rSystemData.Information.FwVer_Byte[(fReg * 2) + 1] = (byte)(reg_value >> 0);
+ if (reg_addr == 114)
+ {
+ rSystemData.Information.SwProductRev = Encoding.Default.GetString(rSystemData.Information.FwVer_Byte).Trim('\0');
+ }
+ break;
+ //115 ~ 122 : BMS Serial number
+ case 115:
+ case 116:
+ case 117:
+ case 118:
+ case 119:
+ case 120:
+ case 121:
+ case 122:
+ int snReg = reg_addr - 115;
+ rSystemData.Information.BMS_SN[(snReg * 2) + 0] = (byte)(reg_value >> 8);
+ rSystemData.Information.BMS_SN[(snReg * 2) + 1] = (byte)(reg_value >> 0);
+ if (reg_addr == 122)
+ {
+ rSystemData.Information.HwSerialNumber = Encoding.Default.GetString(rSystemData.Information.BMS_SN).Trim('\0');
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+ private static void SetInputRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData)
+ {
+ switch (reg_addr)
+ {
+ case 0x0FFF:
+ rSystemData.ValueData.voltageOfPack = (short)(reg_value / 10);
+ rSystemData.active = true;
+ break; // 48.00V = 4800
+ case 0x1000: rSystemData.ValueData.current = (short)(reg_value - CURRENT_OFFSET); break; // 100.0A = 1000 -10000 = 0;
+ case 0x1001: rSystemData.ValueData.remainingCapacity = (short)(reg_value / 1); break; // 100.0Ah = 1000
+ case 0x1002: rSystemData.ValueData.Ext1Temperature = (short)(reg_value - TEMP_OFFSET); break; // 10.0C = 100
+ case 0x1003: rSystemData.ValueData.Ext2Temperature = (short)(reg_value - TEMP_OFFSET); break; // 10.0C = 100
+
+ case 0x1004: rSystemData.StatusData.warning = MakeWarningData_AMG(reg_value); break; // Warning Status
+ case 0x1005: rSystemData.StatusData.protection = MakeProtectData_AMG(reg_value); break; // Protection Status
+ case 0x1006: // Fault Status
+ rSystemData.StatusData.faultstatus = (short)(reg_value / 1);
+ rSystemData.StatusData.status = (short)((reg_value >> 8) & 0x0003);
+ MakeAlarm(ref rSystemData);
+ break; // Fault Status
+
+ case 0x1007: rSystemData.ValueData.rSOC = (short)(reg_value / 10); break; // 100.00% = 10000
+ case 0x1008: rSystemData.ValueData.stateOfHealth = (short)(reg_value / 10); break; // 100.00% = 10000
+
+ case 0x1009: rSystemData.ValueData.fullChargeCapacity = (short)(reg_value / 1); break; // 100.0Ah = 1000
+ case 0x100A: rSystemData.ValueData.cycleCount = (short)(reg_value / 1); break; // 100 cycles = 100
+ case 0x100B: rSystemData.ValueData.NumOfCells = (short)(reg_value / 1); break; // 15 cells = 15
+ case 0x100C:
+ case 0x100D:
+ case 0x100E:
+ case 0x100F:
+ case 0x1010:
+ case 0x1011:
+ case 0x1012:
+ case 0x1013:
+ case 0x1014:
+ case 0x1015:
+ case 0x1016:
+ case 0x1017:
+ case 0x1018:
+ case 0x1019:
+ case 0x101A:
+ case 0x101B: // 3.256V = 3256
+ int cNo = reg_addr - 0x100C;
+ if (cNo < 15)
+ { rSystemData.ValueData.CellVoltage[cNo] = (ushort)(reg_value / 1); }
+ csUtils.MakeMaxAvgMinCellVoltage(ref rSystemData, 15);
+ break; // 100.00% = 10000
+ case 0x101C: rSystemData.ValueData.NumOfTemps = (short)(reg_value / 1); break; // 5 temps = 5
+ case 0x101D:
+ case 0x101E:
+ case 0x101F:
+ case 0x1020: // 25.3C = 253 - 400 = -147 (Offset -400)
+ int tNo = reg_addr - 0x101D;
+ rSystemData.ValueData.CellTemperature[tNo] = (short)(reg_value - TEMP_OFFSET);
+ csUtils.MakeMaxAvgMinTemperature(ref rSystemData, 4);
+ break; // 100.00% = 10000
+ case 0x1021: rSystemData.MaxValue.MaxChgCurrent = (short)(reg_value); break; // Max. Charge Current
+ case 0x1022: rSystemData.MaxValue.MaxChgTemperature = (short)(reg_value - TEMP_OFFSET); break; // Max. Charge Temperature
+ case 0x1023: rSystemData.MaxValue.MinChgTemperature = (short)(reg_value - TEMP_OFFSET); break; // Min. Charge Temperature
+ case 0x1024: rSystemData.MaxValue.FloatChgVolt = (short)(reg_value / 10); break; // Float Charge Current
+ case 0x1025: rSystemData.MaxValue.BoostChgVolt = (short)(reg_value / 10); break; // Boost Charge Current
+
+ case 0x3000: rSystemData.CalibrationData.AntiTheftComm.TimeOut = (short)(reg_value / 1); break;
+ case 0x3002: rSystemData.CalibrationData.AntiTheftComm.FuncSwitch = (short)(reg_value / 1); break;
+
+ case 0x4000: rSystemData.CalibrationData.AntiTheftGyro.XAxis = (short)(reg_value / 1); break;
+ case 0x4001: rSystemData.CalibrationData.AntiTheftGyro.YAxis = (short)(reg_value / 1); break;
+ case 0x4002: rSystemData.CalibrationData.AntiTheftGyro.ZAxis = (short)(reg_value / 1); break;
+ case 0x4003: rSystemData.CalibrationData.AntiTheftGyro.GyroPolicySel = (short)(reg_value / 1); break;
+ case 0x4004: rSystemData.CalibrationData.AntiTheftGyro.GyroFuncSwitch = (short)(reg_value / 1); break;
+ case 0x4006: rSystemData.CalibrationData.AntiTheftGyro.GyroState = (short)(reg_value / 1); break;
+ default:
+ break;
+ }
+ }
+
+ private static void SetSP1Register(short reg_addr, short reg_value, ref DeviceSystemData rSystemData)
+ {
+ switch (reg_addr)
+ {
+ case 0x4000: rSystemData.GyroValue.X_axis = (short)(reg_value); break; //
+ case 0x4001: rSystemData.GyroValue.Y_axis = (short)(reg_value); break; //
+ case 0x4002: rSystemData.GyroValue.Z_axis = (short)(reg_value); break; //
+ case 0x4003: rSystemData.GyroValue.Gyro_policy_sel = (short)(reg_value); break; //
+ case 0x4004: rSystemData.GyroValue.Gyro_func_sw = (short)(reg_value); break; //
+ case 0x4006: rSystemData.GyroValue.Gyro_state = (short)(reg_value); break; //
+ default:
+ break;
+ }
+ }
+ private static void SetSP2Register(short reg_addr, short reg_value, ref DeviceSystemData rSystemData)
+ {
+ switch (reg_addr)
+ {
+ case 0x3000: rSystemData.GyroValue.X_axis = (short)(reg_value); break; //
+ case 0x3002: rSystemData.GyroValue.Y_axis = (short)(reg_value); break; //
+ default:
+ break;
+ }
+ }
+ private static void SetReadIdRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData)
+ {
+ switch (reg_addr)
+ {
+ case 0x4000: rSystemData.GyroValue.X_axis = (short)(reg_value); break; //
+ case 0x4001: rSystemData.GyroValue.Y_axis = (short)(reg_value); break; //
+ case 0x4002: rSystemData.GyroValue.Z_axis = (short)(reg_value); break; //
+ case 0x4003: rSystemData.GyroValue.Gyro_policy_sel = (short)(reg_value); break; //
+ case 0x4004: rSystemData.GyroValue.Gyro_func_sw = (short)(reg_value); break; //
+ case 0x4006: rSystemData.GyroValue.Gyro_state = (short)(reg_value); break; //
+ default:
+ break;
+ }
+ }
+
+ private static void SetCoilRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData)
+ {
+ switch (reg_addr)
+ {
+ case 0x3078:
+ rSystemData.StatusData.relayStatus = reg_value;
+ rSystemData.CalibrationData.FetCalib.FetStatus = reg_value;
+ break;
+ case 0x502E:
+ rSystemData.CalibrationData.Current.ChargeOption = reg_value;
+ break;
+ }
+ }
+
+ private static short MakeUartWarningData(short rdata)
+ {
+ short result = 0;
+ bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
+
+ if (bAlarm[0] == true) result |= (short)(1 << 2); // 0x0001:Pack OV
+ if (bAlarm[1] == true) result |= (short)(1 << 4); // 0x0002:Cell OV
+ if (bAlarm[2] == true) result |= (short)(1 << 3); // 0x0004:Pack UV
+ if (bAlarm[3] == true) result |= (short)(1 << 5); // 0x0008:Cell UV
+
+ if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC
+ if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC
+
+ if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Tempratuer
+ if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Discharging Over Tempratuer
+ if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0040: Charging Under Tempratuer
+ if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Tempratuer
+ if (bAlarm[12] == true) result |= (short)(1 << 11); // 0x0200:SOC Low
+
+ return result;
+ }
+
+ private static short MakeUartTripData(short rdata)
+ {
+ short result = 0;
+ bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
+
+ if (bAlarm[0] == true) result |= (short)(1 << 2); // 0x0001:Pack OV
+ if (bAlarm[1] == true) result |= (short)(1 << 4); // 0x0002:Cell OV
+ if (bAlarm[2] == true) result |= (short)(1 << 3); // 0x0004:Pack UV
+ if (bAlarm[3] == true) result |= (short)(1 << 5); // 0x0008:Cell UV
+
+ if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC
+ if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC
+
+ if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Temprature
+ if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Discharging Over Temprature
+ if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0040: Charging Under Temprature
+ if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Temprature
+ if (bAlarm[13] == true) result |= (short)(1 << 9); // 0x0200:Short Circuit Protection
+
+ return result;
+ }
+
+ private static short MakeUartErrorData(short rdata, short cdata)
+ {
+ short result = cdata;
+ bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
+
+ if (bAlarm[0] == true) result |= (short)(1 << 9); // 0x0001:Voltage error
+ if (bAlarm[1] == true) result |= (short)(1 << 9); // 0x0002:Temperature error
+ if (bAlarm[2] == true) result |= (short)(1 << 9); // 0x0004: 电流检测Error
+ if (bAlarm[3] == true) result |= (short)(1 << 9); // 0x0010:Cell unbalance
+
+ return result;
+ }
+ }
+}
diff --git a/LFP_Manager/Function/csExcelExport.cs b/LFP_Manager/Function/csExcelExport.cs
new file mode 100644
index 0000000..d1f4bab
--- /dev/null
+++ b/LFP_Manager/Function/csExcelExport.cs
@@ -0,0 +1,191 @@
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.IO;
+using System.Data.OleDb;
+using System.Text;
+using System.ComponentModel;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Function
+{
+ public static class csExcelExport
+ {
+ public static void ExportToExcel(this DataTable dataTable, String filePath, bool overwiteFile = true)
+ {
+ if (Directory.Exists(Path.GetDirectoryName(filePath)) == false)
+ Directory.CreateDirectory(Path.GetDirectoryName(filePath));
+ if (File.Exists(filePath) && overwiteFile)
+ File.Delete(filePath);
+
+ //var conn = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR=Yes;IMEX=0';", filePath);
+ var conn = "";
+
+ if (filePath.IndexOf(".xlsx") > -1) // 확장자에 따라서 provider 주의
+ conn = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR=Yes;IMEX=3';", filePath);
+ else
+ conn = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR=Yes;IMEX=3';", filePath);
+
+ using (OleDbConnection connection = new OleDbConnection(conn))
+ {
+ connection.Open();
+ using (OleDbCommand command = new OleDbCommand())
+ {
+ command.Connection = connection;
+ List columnNames = new List();
+ List columnTypes = new List();
+ foreach (DataColumn dataColumn in dataTable.Columns)
+ {
+ columnNames.Add(dataColumn.ColumnName);
+ string tName = "VARCHAR";
+ switch (dataColumn.DataType.Name)
+ {
+ case "Int16": tName = "INTEGER"; break;
+ case "Int32": tName = "INTEGER"; break;
+ case "Int64": tName = "INTEGER"; break;
+ case "Double": tName = "DOUBLE"; break;
+ case "String": tName = "VARCHAR"; break;
+ default: tName = dataColumn.DataType.Name; break;
+ }
+ columnTypes.Add(tName);
+ }
+ String tableName = !String.IsNullOrWhiteSpace(dataTable.TableName) ? dataTable.TableName : Guid.NewGuid().ToString();
+ //command.CommandText = @"CREATE TABLE [{tableName}] ({String.Join(",", columnNames.Select(c => $"[{c}] VARCHAR").ToArray())});";
+ //string join = String.Join(",", columnNames.Select(c => String.Format("[{0}] VARCHAR", c)).ToArray());
+ string join = "";
+ for (int i = 0; i < columnNames.Count; i++)
+ {
+ join += String.Format("[{0}] {1}", columnNames[i], columnTypes[i]);
+ if (i < (columnNames.Count - 1)) join += ",";
+ }
+ command.CommandText = String.Format("CREATE TABLE [{0}] ({1});",
+ tableName,
+ join
+ );
+ command.ExecuteNonQuery();
+
+ foreach (DataRow row in dataTable.Rows)
+ {
+ List rowValues = new List();
+ foreach (DataColumn column in dataTable.Columns)
+ {
+ rowValues.Add((row[column] != null && row[column] != DBNull.Value) ? row[column].ToString() : String.Empty);
+ }
+ //command.CommandText = $"INSERT INTO [{tableName}]({String.Join(",", columnNames.Select(c => $"[{c}]"))}) VALUES ({String.Join(",", rowValues.Select(r => $"'{r}'").ToArray())});";
+ string a = String.Join(",", columnNames.Select(c => String.Format("[{0}]", c)));
+ string b = String.Join(",", rowValues.Select(r => String.Format("'{0}'", (r == "") ? "0" : r)).ToArray());
+ command.CommandText = String.Format("INSERT INTO [{0}]({1}) VALUES ({2});", tableName, a, b);
+ command.ExecuteNonQuery();
+ }
+ }
+
+ connection.Close();
+ }
+ }
+
+ public static void ExportToExcelExt(this DataTable dataTable, String filePath, bool overwiteFile = true)
+ {
+ string result = String.Empty;
+
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+ WaitForm.ShowOnTopMode = DevExpress.XtraWaitForm.ShowFormOnTopMode.AboveParent;
+
+ WaitForm.Show();
+
+ try
+ {
+ if (Directory.Exists(Path.GetDirectoryName(filePath)) == false)
+ Directory.CreateDirectory(Path.GetDirectoryName(filePath));
+ if (File.Exists(filePath) && overwiteFile)
+ File.Delete(filePath);
+
+ //var conn = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR=Yes;IMEX=0';", filePath);
+ var conn = "";
+
+ if (filePath.IndexOf(".xlsx") > -1) // 확장자에 따라서 provider 주의
+ conn = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR=Yes;IMEX=3';", filePath);
+ else
+ conn = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR=Yes;IMEX=3';", filePath);
+
+ using (OleDbConnection connection = new OleDbConnection(conn))
+ {
+ connection.Open();
+ using (OleDbCommand command = new OleDbCommand())
+ {
+ command.Connection = connection;
+ List columnNames = new List();
+ List columnTypes = new List();
+ foreach (DataColumn dataColumn in dataTable.Columns)
+ {
+ columnNames.Add(dataColumn.ColumnName);
+ string tName = "VARCHAR";
+ switch (dataColumn.DataType.Name)
+ {
+ case "Boolean": tName = "VARCHAR"; break;
+ case "Int16": tName = "INTEGER"; break;
+ case "Int32": tName = "INTEGER"; break;
+ case "Int64": tName = "INTEGER"; break;
+ case "Double": tName = "DOUBLE"; break;
+ case "Decimal": tName = "DOUBLE"; break;
+ case "String": tName = "VARCHAR"; break;
+ default: tName = dataColumn.DataType.Name; break;
+ }
+ columnTypes.Add(tName);
+ }
+ String tableName = !String.IsNullOrWhiteSpace(dataTable.TableName) ? dataTable.TableName : Guid.NewGuid().ToString();
+ //command.CommandText = @"CREATE TABLE [{tableName}] ({String.Join(",", columnNames.Select(c => $"[{c}] VARCHAR").ToArray())});";
+ //string join = String.Join(",", columnNames.Select(c => String.Format("[{0}] VARCHAR", c)).ToArray());
+ string join = "";
+ for (int i = 0; i < columnNames.Count; i++)
+ {
+ join += String.Format("[{0}] {1}", columnNames[i], columnTypes[i]);
+ if (i < (columnNames.Count - 1)) join += ",";
+ }
+ command.CommandText = String.Format("CREATE TABLE [{0}] ({1});",
+ tableName,
+ join
+ );
+ command.ExecuteNonQuery();
+
+ int rNo = 0;
+
+ foreach (DataRow row in dataTable.Rows)
+ {
+ List rowValues = new List();
+ foreach (DataColumn column in dataTable.Columns)
+ {
+ rowValues.Add((row[column] != null && row[column] != DBNull.Value) ? row[column].ToString().Trim('\0') : String.Empty);
+ }
+ //command.CommandText = $"INSERT INTO [{tableName}]({String.Join(",", columnNames.Select(c => $"[{c}]"))}) VALUES ({String.Join(",", rowValues.Select(r => $"'{r}'").ToArray())});";
+ string a = String.Join(",", columnNames.Select(c => String.Format("[{0}]", c)));
+ string b = String.Join(",", rowValues.Select(r => String.Format("'{0}'", (r == "") ? "0" : r)).ToArray());
+
+ command.CommandText = String.Format("INSERT INTO [{0}]({1}) VALUES ({2});", tableName, a, b);
+ command.ExecuteNonQuery();
+
+ rNo++;
+
+ WaitForm.SetDescription(String.Format("{0}//{1}", rNo, dataTable.Rows.Count));
+ Application.DoEvents();
+ }
+ }
+
+ connection.Close();
+ }
+ }
+ catch (Exception ex)
+ {
+ result = ex.Message;
+ }
+ finally
+ {
+ WaitForm.Close();
+
+ if (result != String.Empty)
+ throw new Exception(result);
+ }
+ }
+ }
+}
diff --git a/LFP_Manager/Function/csExcelFunction.cs b/LFP_Manager/Function/csExcelFunction.cs
new file mode 100644
index 0000000..3f10aa2
--- /dev/null
+++ b/LFP_Manager/Function/csExcelFunction.cs
@@ -0,0 +1,145 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Data;
+using System.Windows.Forms;
+
+using System.Data.OleDb;
+
+namespace LFP_Manager.Function
+{
+ public class csExcelFunction
+ {
+ public static DataTable[] ExcelImport(string Ps_FileName, string[] sheetName)
+ {
+ DataTable[] result = null;
+
+ try
+ {
+ string ExcelConn = string.Empty;
+
+ if (Ps_FileName.IndexOf(".xlsx") > -1) // 확장자에 따라서 provider 주의
+ {
+ ExcelConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Ps_FileName
+ + ";Extended Properties='Excel 12.0;HDR=YES'";
+ }
+ else
+ {
+ ExcelConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Ps_FileName
+ + ";Extended Properties='Excel 8.0;HDR=YES'";
+ }
+
+ // 첫 번째 시트의 이름을 가져옮
+ using (OleDbConnection con = new OleDbConnection(ExcelConn))
+ {
+ using (OleDbCommand cmd = new OleDbCommand())
+ {
+ cmd.Connection = con;
+ con.Open();
+
+ DataTable dtExcelSchema = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
+
+ if (dtExcelSchema.Rows.Count > 0)
+ {
+ sheetName = new string[dtExcelSchema.Rows.Count];
+
+ for (int i = 0; i < dtExcelSchema.Rows.Count; i++)
+ sheetName[i] = dtExcelSchema.Rows[i]["TABLE_NAME"].ToString();
+ }
+ con.Close();
+ }
+ }
+ string msg = string.Empty;
+ for (int i = 0; i < sheetName.Length; i++)
+ msg += sheetName[i] + "\r\n";
+ //MessageBox.Show("sheetName = " + msg);
+
+ // 첫 번째 쉬트의 데이타를 읽어서 datagridview 에 보이게 함.
+ using (OleDbConnection con = new OleDbConnection(ExcelConn))
+ {
+ using (OleDbCommand cmd = new OleDbCommand())
+ {
+ using (OleDbDataAdapter oda = new OleDbDataAdapter())
+ {
+ result = new DataTable[sheetName.Length];
+
+ for (int i = 0; i < sheetName.Length; i++)
+ {
+ result[i] = new DataTable();
+ result[i].TableName = sheetName[i];
+ cmd.CommandText = "SELECT * From [" + sheetName[i] + "]";
+ cmd.Connection = con;
+ con.Open();
+ oda.SelectCommand = cmd;
+ try
+ {
+ oda.Fill(result[i]);
+ }
+ catch (Exception)
+ {
+ //MessageBox.Show(e1.Message);
+ }
+ con.Close();
+ }
+ }
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ MessageBox.Show(e.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ return result;
+ }
+
+ public static void ExcelExport(string Ps_FileName, string[] sheetName)
+ {
+ string ExcelConn = string.Empty;
+
+ if (Ps_FileName.IndexOf(".xlsx") > -1) // 확장자에 따라서 provider 주의
+ {
+ ExcelConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Ps_FileName
+ + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=3;READONLY=FALSE'";
+ }
+ else
+ {
+ ExcelConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Ps_FileName
+ + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=3;READONLY=FALSE'";
+ }
+
+ // 첫 번째 시트의 이름을 가져옮
+ using (OleDbConnection con = new OleDbConnection(ExcelConn))
+ {
+ using (OleDbCommand cmd = new OleDbCommand())
+ {
+ cmd.Connection = con;
+ con.Open();
+
+ DataTable dtExcelSchema = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
+
+ if (dtExcelSchema.Rows.Count > 0)
+ {
+ sheetName = new string[dtExcelSchema.Rows.Count];
+
+ for (int i = 0; i < dtExcelSchema.Rows.Count; i++)
+ sheetName[i] = dtExcelSchema.Rows[i]["TABLE_NAME"].ToString();
+ }
+ con.Close();
+ }
+ }
+ using (OleDbConnection connection =
+ new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @"C:\Users\[...]\Classeur.xls"
+ + ";Extended Properties=\"Excel 8.0;HDR=NO;IMEX=1;READONLY=FALSE\""))
+ {
+ connection.Open();
+ OleDbCommand commande = new OleDbCommand(
+ "INSERT INTO [Feuil1$](F1,F2,F3) VALUES ('A3','B3','C3');", connection);
+ commande.ExecuteNonQuery();
+
+ connection.Close();
+ connection.Dispose();
+ }
+ }
+ }
+}
diff --git a/LFP_Manager/Function/csHistoryFunction.cs b/LFP_Manager/Function/csHistoryFunction.cs
new file mode 100644
index 0000000..74c1062
--- /dev/null
+++ b/LFP_Manager/Function/csHistoryFunction.cs
@@ -0,0 +1,120 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.IO;
+using System.Data;
+
+using System.Data.SQLite;
+using LFP_Manager.DataStructure;
+using LFP_Manager.Utils;
+
+namespace LFP_Manager.Function
+{
+ class csHistoryFunction
+ {
+ #region DB CREATE
+
+ public static void DbCreate(string mPath)
+ {
+ string dbFilename = mPath + csDbConstData.DataBase.FileName;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilename)) == false)
+ Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilename));
+
+ if (File.Exists(dbFilename) == false)
+ // Create database
+ SQLiteConnection.CreateFile(dbFilename);
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilename;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Create table
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ command.CommandText = csDbConstData.DataBase.CreateTable;
+ command.ExecuteNonQuery();
+ }
+ }
+ catch (Exception)
+ {
+ }
+ finally
+ {
+ connection.Close();
+ }
+ }
+ }
+
+ #endregion
+
+ #region DB INSERT DATA
+ private void IDInsert(DataTable aData, string mPath, string Quary)
+ {
+ string dbFilename = mPath + csDbConstData.DataBase.FileName;
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilename;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //WaitForm.ShowWaitForm();
+
+ command.CommandText = "BEGIN;"; //명시적 트렌젝션 시작
+ command.ExecuteNonQuery();
+
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ //command.CommandText = "INSERT INTO " + csDbConstData.DataBase.TableName + "(id) " + " Values (@id);";
+ command.CommandText = Quary;
+ SQLiteParameter p = new SQLiteParameter("@id", DbType.String);
+
+ command.Parameters.Add(p);
+
+ for (int i = 0; i < aData.Rows.Count; i++)
+ {
+ p.Value = String.Format("{0}", aData.Rows[i][0].ToString()); // id
+
+ try
+ {
+ command.ExecuteNonQuery();
+ }
+ catch (Exception)
+ {
+ //MessageBox.Show(e1.ToString() + ":" + i.ToString());
+ }
+ finally
+ {
+ //System.Windows.Forms.Application.DoEvents();
+ //WaitForm.SetWaitFormDescription(String.Format("{0}//{1}", i, aData.Rows.Count));
+ }
+ }
+ command.CommandText = "COMMIT;"; //명시적 트렌젝션 시작
+ command.ExecuteNonQuery();
+
+ //WaitForm.CloseWaitForm();
+ }
+ }
+ catch (Exception)
+ {
+ //MessageBox.Show(e.ToString());
+ }
+ finally
+ {
+ connection.Close();
+ }
+ }
+ }
+
+ #endregion
+
+ }
+}
diff --git a/LFP_Manager/Function/csIniControlFunction.cs b/LFP_Manager/Function/csIniControlFunction.cs
new file mode 100644
index 0000000..3214099
--- /dev/null
+++ b/LFP_Manager/Function/csIniControlFunction.cs
@@ -0,0 +1,199 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+using System.Runtime.InteropServices;
+using System.IO;
+
+using LFP_Manager.DataStructure;
+
+namespace LFP_Manager.Function
+{
+ class csIniControlFunction
+ {
+ #region [Function] INI File Read Function(Section Setting)
+ public static string[] GetIniValue(string Section, string path)
+ {
+ byte[] ba = new byte[5000];
+ uint Flag = GetPrivateProfileSection(Section, ba, 5000, path);
+ return Encoding.Default.GetString(ba).Split(new char[1] { '\0' }, StringSplitOptions.RemoveEmptyEntries);
+ }
+ #endregion
+
+ #region [Function] INI File Read Function(Section and Key Setting)
+ public static string GetIniValue(string Section, string key, string path)
+ {
+ StringBuilder sb = new StringBuilder(500);
+ int Flag = GetPrivateProfileString(Section, key, "", sb, 500, path);
+ return sb.ToString();
+ }
+ #endregion
+
+ #region [Function] INI File Read Function(Section, Key, Value, Address Setting)
+ public bool SetIniValue(string Section, string Key, string Value, string path)
+ {
+ return (WritePrivateProfileString(Section, Key, Value, path));
+ }
+ #endregion
+
+ #region [DLL Function] INI DLL Load
+ [DllImport("kernel32")]
+ public static extern int GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName);
+ [DllImport("kernel32")]
+ public static extern bool WritePrivateProfileString(string lpAppName, string lpKeyName, string lpString, string lpFileName);
+ [DllImport("kernel32")]
+ public static extern uint GetPrivateProfileInt(string lpAppName, string lpKeName, int nDefault, string lpFileName);
+ [DllImport("kernel32")]
+ public static extern uint GetPrivateProfileSection(string lpAppName, byte[] lpPairValues, uint nSize, string lpFileName);
+ [DllImport("kernel32")]
+ public static extern uint GetPrivateProfileSectionNames(byte[] lpSections, uint nSize, string lpFileName);
+ #endregion
+
+ public static DateTime Delay(int MS)
+ {
+ DateTime thisMoment = DateTime.Now;
+ TimeSpan duration = new TimeSpan(0, 0, 0, 0, MS);
+ DateTime afterMoment = thisMoment.Add(duration);
+
+ while (afterMoment >= thisMoment)
+ {
+ System.Windows.Forms.Application.DoEvents();
+
+ thisMoment = DateTime.Now;
+ }
+
+ return DateTime.Now;
+ }
+
+ public static void IniLoad(string AppPath, ref CommConfig rConfig)
+ {
+ string path;
+
+ path = System.IO.Path.GetDirectoryName(AppPath);
+
+ if (File.Exists(String.Format("{0}\\CommSet.ini", path)))
+ {
+ StringBuilder ret = new StringBuilder();
+ string InIPath = String.Format("{0}\\CommSet.ini", path);
+
+ // CommType = 0: RS-485, 1: SNMP
+ rConfig.CommType = (int)csIniControlFunction.GetPrivateProfileInt("COMM TYPE", "TYPE", 0, InIPath);
+
+ // SNMP Config
+ // IP
+ ret.Clear();
+ csIniControlFunction.GetPrivateProfileString("SNMP", "IP", "(NONE)", ret, 32, InIPath);
+ rConfig.SnmpIP = ret.ToString();
+ // Model
+ rConfig.SnmpModelIndex = (int)csIniControlFunction.GetPrivateProfileInt("SNMP", "MODEL", 2, InIPath);
+
+ // Serial Port Config
+ // PORT
+ ret.Clear();
+ csIniControlFunction.GetPrivateProfileString("UART", "PORT", "(NONE)", ret, 32, InIPath);
+ rConfig.UartPort = ret.ToString();
+ // MODEL
+ rConfig.UartModelIndex = (int)csIniControlFunction.GetPrivateProfileInt("UART", "MODEL", 0, InIPath);
+
+ // Module Qunatity = 1 - 16
+ rConfig.ModuleQty = (int)csIniControlFunction.GetPrivateProfileInt("UART", "MODULE_QTY", 1, InIPath);
+
+ // PROTOCOL
+ rConfig.UartProtocol = (int)csIniControlFunction.GetPrivateProfileInt("UART", "PROTOCOL", 0, InIPath);
+
+ // PROTOCOL
+ rConfig.RecvWaitTime = (int)csIniControlFunction.GetPrivateProfileInt("UART", "RECV_WAIT_TIME", 1500, InIPath);
+
+ // Etc. Config
+ rConfig.DbLogPeriod = (int)csIniControlFunction.GetPrivateProfileInt("DATABASE", "LOG_PERIOD", 1, InIPath);
+
+ // Gyro. Config
+ rConfig.GyroSensitive = (int)csIniControlFunction.GetPrivateProfileInt("GYRO", "SENSITIVITY", 120, InIPath);
+
+ try
+ {
+ // ENABLE PASSWORD
+ ret.Clear();
+ csIniControlFunction.GetPrivateProfileString("PW", "MASTER", CsCryptoHelper.Encrypt("8003"), ret, 32, InIPath);
+ rConfig.MasterPw = CsCryptoHelper.Decrypt(ret.ToString());
+ // DISABLE PASSWORD
+ ret.Clear();
+ csIniControlFunction.GetPrivateProfileString("PW", "ENGINEER", CsCryptoHelper.Encrypt("7003"), ret, 32, InIPath);
+ rConfig.EngineerPw = CsCryptoHelper.Decrypt(ret.ToString());
+ // LEVEL PASSWORD
+ ret.Clear();
+ csIniControlFunction.GetPrivateProfileString("PW", "TECHNICIAN", CsCryptoHelper.Encrypt("6003"), ret, 32, InIPath);
+ rConfig.TechnicianPw = CsCryptoHelper.Decrypt(ret.ToString());
+ }
+ catch (Exception)
+ {
+ rConfig.MasterPw = "8003";
+ rConfig.EngineerPw = "7003";
+ rConfig.TechnicianPw = "6003";
+ }
+ }
+ else
+ {
+ rConfig.CommType = 0;
+
+ rConfig.SnmpIP = "192.168.0.200";
+ rConfig.SnmpModelIndex = 0;
+
+ rConfig.UartPort = "";
+ rConfig.UartProtocol= 0;
+ rConfig.RecvWaitTime = 1500;
+
+ rConfig.DbLogPeriod = 5;
+
+ rConfig.GyroSensitive = 120;
+
+ rConfig.MasterPw = "8003";
+ rConfig.EngineerPw = "7003";
+ rConfig.TechnicianPw = "6003";
+ }
+ }
+
+ public static void IniSave(string AppPath, CommConfig aConfig)
+ {
+ string path = Path.GetDirectoryName(AppPath);
+ string InIPath = String.Format("{0}\\CommSet.ini", path);
+
+ // write ini
+
+ // CommType = 0: SNMP, 1: RS-485
+ WritePrivateProfileString("COMM TYPE", "TYPE", aConfig.CommType.ToString(), InIPath);
+
+ // SNMP Config
+ // IP
+ WritePrivateProfileString("SNMP", "IP", aConfig.SnmpIP, InIPath);
+ // Model
+ WritePrivateProfileString("SNMP", "MODEL", aConfig.SnmpModelIndex.ToString(), InIPath);
+
+ // Serial Port Config
+ // PORT
+ WritePrivateProfileString("UART", "PORT", aConfig.UartPort, InIPath);
+ // MODEL
+ WritePrivateProfileString("UART", "MODEL", aConfig.UartModelIndex.ToString(), InIPath);
+ // MODULE QTY = 1 - 16
+ WritePrivateProfileString("UART", "MODULE_QTY", aConfig.ModuleQty.ToString(), InIPath);
+ // PROTOCOL
+ WritePrivateProfileString("UART", "PROTOCOL", aConfig.UartProtocol.ToString(), InIPath);
+ // RECV_WAIT_TIME
+ WritePrivateProfileString("UART", "RECV_WAIT_TIME", aConfig.RecvWaitTime.ToString(), InIPath);
+
+ // Etc Config
+ WritePrivateProfileString("DATABASE", "LOG_PERIOD", aConfig.DbLogPeriod.ToString(), InIPath);
+
+ // Gyro Config
+ WritePrivateProfileString("GYRO", "SENSITIVITY", aConfig.GyroSensitive.ToString(), InIPath);
+
+ // MASTER PASSWORD
+ WritePrivateProfileString("PW", "MASTER", CsCryptoHelper.Encrypt(aConfig.MasterPw), InIPath);
+ // ENGINEER PASSWORD
+ WritePrivateProfileString("PW", "ENGINEER", CsCryptoHelper.Encrypt(aConfig.EngineerPw), InIPath);
+ // TECHNICIAN PASSWORD
+ WritePrivateProfileString("PW", "TECHNICIAN", CsCryptoHelper.Encrypt(aConfig.TechnicianPw), InIPath);
+ }
+ }
+}
diff --git a/LFP_Manager/Function/csMakeDataFunction.cs b/LFP_Manager/Function/csMakeDataFunction.cs
new file mode 100644
index 0000000..0b4b304
--- /dev/null
+++ b/LFP_Manager/Function/csMakeDataFunction.cs
@@ -0,0 +1,308 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Runtime.Serialization.Formatters.Binary;
+using System.IO;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Utils;
+
+namespace LFP_Manager.Function
+{
+ class csMakeDataFunction
+ {
+ private static DeviceSystemData MakeAlarmTripData(int id, short ndata, DeviceSystemData rSystemData)
+ {
+ bool[] aData = csUtils.Int16ToBitArray(ndata);
+ short bFault = rSystemData.StatusData.protection;
+ short bWarning = rSystemData.StatusData.warning;
+ int i = 0;
+
+ switch (id)
+ {
+ case 0: // Warning
+ if (aData[i++]) bWarning |= (1 << 2); // Bit 0 : Over voltage warning
+ else bWarning &= ~(1 << 2);
+ if (aData[i++]) bWarning |= (1 << 4); // Bit 1 : Cell Over voltage warning
+ else bWarning &= ~(1 << 4);
+ if (aData[i++]) bWarning |= (1 << 3); // Bit 2 : Low voltage warning
+ else bWarning &= ~(1 << 3);
+ if (aData[i++]) bWarning |= (1 << 5); // Bit 3 : Low cell voltage warning
+ else bWarning &= ~(1 << 5);
+ if (aData[i++]) bWarning |= (1 << 6); // Bit 4 : Charge over current warning
+ else bWarning &= ~(1 << 6);
+ if (aData[i++]) bWarning |= (1 << 7); // Bit 5 : Discharge over current warning
+ else bWarning &= ~(1 << 7);
+ i++; // 06 Abnormal balancing current
+ i++; // 07 Reserved
+ if ((aData[8]) || (aData[9])) bWarning |= (1 << 0); // Bit 8 : Charge over temperature warning, Bit 9 : Discharge over temperature warning
+ else bWarning &= ~(1 << 0);
+ i++; // 08
+ i++; // 09
+ if ((aData[10]) || (aData[11])) bWarning |= (1 << 1); // Bit 10 : Charge low temperature warning, Bit 11 : Discharge low temperature warning
+ else bWarning &= ~(1 << 1);
+ i++; // 10
+ i++; // 11
+ if (aData[i++]) bWarning |= (1 << 11); // 12 : Low capacity warning
+ else bWarning &= ~(1 << 11);
+ i++; // 13
+ if (aData[i++]) bWarning |= (1 << 9); // 14 Cell Voltage Difference Warning
+ else bWarning &= ~(1 << 9);
+ break;
+ case 1: // Status Code 2
+ if (aData[i++]) bFault |= (1 << 2); // Bit 0 : Over voltage warning
+ else bFault &= ~(1 << 2);
+ if (aData[i++]) bFault |= (1 << 4); // Bit 1 : Cell Over voltage warning
+ else bFault &= ~(1 << 4);
+ if (aData[i++]) bFault |= (1 << 3); // Bit 2 : Low voltage warning
+ else bFault &= ~(1 << 3);
+ if (aData[i++]) bFault |= (1 << 5); // Bit 3 : Low cell voltage warning
+ else bFault &= ~(1 << 5);
+ if (aData[i++]) bFault |= (1 << 6); // Bit 4 : Charge over current warning
+ else bFault &= ~(1 << 6);
+ if (aData[i++]) bFault |= (1 << 7); // Bit 5 : Discharge over current warning
+ else bFault &= ~(1 << 7);
+ i++; // 06 Abnormal balancing current
+ i++; // 07 Reserved
+ if ((aData[8]) || (aData[9])) bFault |= (1 << 0); // Bit 8 : Charge over temperature warning, Bit 9 : Discharge over temperature warning
+ else bFault &= ~(1 << 0);
+ i++; // 08
+ i++; // 09
+ if ((aData[10]) || (aData[11])) bFault |= (1 << 1); // Bit 10 : Charge low temperature warning, Bit 11 : Discharge low temperature warning
+ else bFault &= ~(1 << 1);
+ i++; // 10
+ i++; // 11
+ i++; // 12
+ i++; // 13
+ if (aData[i++]) bFault |= (1 << 9); // 14 Cell Voltage Difference Warning
+ else bFault &= ~(1 << 9);
+ break;
+ }
+
+ rSystemData.StatusData.protection = bFault;
+ rSystemData.StatusData.warning = bWarning;
+
+ return rSystemData;
+ }
+
+ public static void SetData(int index, double sdata, ref DeviceSystemData aSystemData)
+ {
+ switch (index)
+ {
+ case 0: aSystemData.ValueData.voltageOfPack = (short)(sdata / 100); break; // voltageOfPack
+ case 1: aSystemData.ValueData.current = (short)(sdata / 10); break; // current
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 8:
+ case 9:
+ case 10:
+ case 11:
+ case 12:
+ case 13:
+ case 14:
+ case 15:
+ case 16: aSystemData.ValueData.CellVoltage[index - 2] = (ushort)(sdata / 1); break; // CellVoltage14
+ case 17: aSystemData.ValueData.CellTemperature[0] = (short)(sdata / 1); break; // CellTemperature0
+ case 18: aSystemData.ValueData.CellTemperature[1] = (short)(sdata / 1); break; // CellTemperature1
+ case 19: aSystemData.ValueData.CellTemperature[2] = (short)(sdata / 1); break; // CellTemperature2
+ case 20: aSystemData.ValueData.CellTemperature[3] = (short)(sdata / 1); break; // CellTemperature3
+ case 21: aSystemData.ValueData.rSOC = (short)(sdata / 1); break; // Relatvie State Of Charge
+ case 22: aSystemData.ValueData.remainingCapacity = (short)(sdata / 1); break; // Remaining Capacity
+ case 23: aSystemData.ValueData.stateOfHealth = (short)(sdata / 1); break; // stateOfHealth
+ case 24: aSystemData.ValueData.cycleCount = (short)(sdata / 1); break; // cycleCount
+
+ case 25: aSystemData.AvgData.maxCellVoltage = (short)(sdata / 1); break; // maxCellVoltage
+ case 26: aSystemData.AvgData.minCellVoltage = (short)(sdata / 1); break; // minCellVoltage
+ case 27: aSystemData.AvgData.avgCellVoltage = (short)(sdata / 1); break; // avgCellVoltage
+ case 28: aSystemData.AvgData.diffCellVoltage = (short)(sdata / 1); break; // diffCellVoltage
+ case 29: aSystemData.StatusData.batteryStatus = (short)(sdata / 1); break; // batteryStatus
+ //case 37: aSystemData.StatusData.warning = (short)(sdata / 1); break; // warning
+ case 30: aSystemData = MakeAlarmTripData(0, (short)(sdata / 1), aSystemData); break; // warning
+ //case 38: aSystemData.StatusData.protection = (short)(sdata / 1); break; // OID-44 protection
+ case 31: aSystemData = MakeAlarmTripData(1, (short)(sdata / 1), aSystemData); break; // OID-44 protection
+ case 32: aSystemData.StatusData.status = (short)(sdata / 1); break; // status
+ case 33: aSystemData.StatusData.relayStatus = (short)(sdata / 1); break; // relayStatus
+ case 34: aSystemData.StatusData.cellBallanceStatus = (short)(sdata / 1); break; // cellBallanceStatus
+ case 35: aSystemData.StatusData.cellBalanceValue = (short)(sdata / 1); break; // cellBalanceValue
+ case 36: aSystemData.StatusData.cellBalanceFlag = (short)(sdata / 1); break; // cellBalanceFlag
+ case 37: aSystemData.AvgData.maxCellNum = (short)(sdata / 1); break; // maxCellNum
+ case 38: aSystemData.AvgData.minCellNum = (short)(sdata / 1); break; // minCellNum
+ //case 46: aSystemData.AvgData.maxTemp = (short)(sdata / 1); break; // maxTemp
+ //case 47: aSystemData.AvgData.minTemp = (short)(sdata / 1); break; // minTemp
+ //case 48: aSystemData.AvgData.maxTempNum = (short)(sdata / 1); break; // maxTempNum
+ //case 49: aSystemData.AvgData.minTempNum = (short)(sdata / 1); break; // minTempNum
+ }
+ }
+
+ public static void SetSnmpData(int index, object sdata, ref DeviceSystemData aSystemData)
+ {
+ switch (index)
+ {
+ case 1: aSystemData.ValueData.voltageOfPack = (short)(Convert.ToDouble(sdata) / 10); break; // voltageOfPack - 0.01V
+ case 2: aSystemData.ValueData.current = (short)(Convert.ToDouble(sdata) - 10000); break; // current - 0.1A, Offset: 10000
+ case 3: // Cell Voltage #1
+ case 4: // Cell Voltage #2
+ case 5: // Cell Voltage #3
+ case 6: // Cell Voltage #4
+ case 7: // Cell Voltage #5
+ case 8: // Cell Voltage #6
+ case 9: // Cell Voltage #7
+ case 10: // Cell Voltage #8
+ case 11: // Cell Voltage #9
+ case 12: // Cell Voltage #10
+ case 13: // Cell Voltage #11
+ case 14: // Cell Voltage #12
+ case 15: // Cell Voltage #13
+ case 16: // Cell Voltage #14
+ case 17: aSystemData.ValueData.CellVoltage[index - 3] = (ushort)(Convert.ToDouble(sdata) / 1);
+ csUtils.MakeMaxAvgMinCellVoltage(ref aSystemData, 15);
+ break; // Cell Voltage #16
+
+ case 19: aSystemData.ValueData.Ext1Temperature = (short)(Convert.ToDouble(sdata) * 10); break; // Temp of PCB - C
+ case 20: aSystemData.ValueData.Ext2Temperature = (short)(Convert.ToDouble(sdata) * 10); break; // Temp of Ambient - C
+ case 21: aSystemData.AvgData.maxTemp = (short)(Convert.ToDouble(sdata) * 10); break; // Max. Temp
+
+ case 22: aSystemData.ValueData.remainingCapacity = (short)(Convert.ToDouble(sdata) * 1); break; // Remaining Capacity
+
+ case 24: aSystemData.ValueData.stateOfHealth = (short)(Convert.ToDouble(sdata) / 10); break; // stateOfHealth
+ case 25: aSystemData.ValueData.rSOC = (short)(Convert.ToDouble(sdata) / 10); break; // Relatvie State Of Charge
+
+ case 26: aSystemData.StatusData.status = (short)(Convert.ToDouble(sdata) / 1); break; // Status
+ case 27: aSystemData.StatusData.warning = MakeSnmpWarningData((short)Convert.ToDouble(sdata)); break; // warning
+ case 28: aSystemData.StatusData.protection = MakeSnmpTripData((short)Convert.ToDouble(sdata)); break; // Protection
+ case 29: // FaultAndStatus
+ aSystemData.StatusData.faultAndStatus = (short)(Convert.ToDouble(sdata) / 1);
+ //aSystemData.StatusData.status = (short)(((short)Convert.ToDouble(sdata) >> 8) & 0x0003);
+ MakeAlarm(ref aSystemData);
+ break;
+ case 30: aSystemData.ValueData.cycleCount = (short)(Convert.ToDouble(sdata) / 1); break; // cycleCount
+
+ case 31: // Temperature #1
+ case 32: // Temperature #2
+ case 33: // Temperature #3
+ case 34: // Temperature #4
+ csUtils.MakeMaxAvgMinCellVoltage(ref aSystemData, 4);
+ break;
+
+ case 37: aSystemData.cellQty = (short)(Convert.ToDouble(sdata) * 1); break; // Cell Number
+ case 38: aSystemData.ValueData.designedCapacity = (short)(Convert.ToDouble(sdata) * 1); break; // Cell Number
+ case 40: aSystemData.ValueData.MaxBattChargeCurr = (short)(Convert.ToDouble(sdata) * 1); break; // Max. Charge Current - A
+ case 41: aSystemData.ntcQty = (short)(Convert.ToDouble(sdata) * 1); break; // NTC Number
+
+ case 42: aSystemData.BmsDateTime.year = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Year
+ case 43: aSystemData.BmsDateTime.month = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Month
+ case 44: aSystemData.BmsDateTime.day = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Day
+ case 45: aSystemData.BmsDateTime.hour = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Hour
+ case 46: aSystemData.BmsDateTime.minute = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Minute
+ case 47: aSystemData.BmsDateTime.second = (short)(Convert.ToDouble(sdata) * 1); // BMS DateTime - Second
+ aSystemData.BmsDateTime.DateTimeStr = string.Format("{0:0000}-{1:00}-{2:00} {3:00}:{4:00}:{5:00}"
+ , aSystemData.BmsDateTime.year
+ , aSystemData.BmsDateTime.month
+ , aSystemData.BmsDateTime.day
+ , aSystemData.BmsDateTime.hour
+ , aSystemData.BmsDateTime.minute
+ , aSystemData.BmsDateTime.second
+ );
+ break;
+
+ case 48: aSystemData.FloatVoltage = (int)Convert.ToDouble(sdata); break; // Float Voltage - 0.01V
+ case 49: aSystemData.BoostVoltage = (int)Convert.ToDouble(sdata); break; // Boost Voltage - 0.01V
+
+ case 50: aSystemData.MinChargeTemp = (int)Convert.ToDouble(sdata); break; // Min. Charge Temp - C
+ case 51: aSystemData.MaxChargeTemp = (int)Convert.ToDouble(sdata); break; // Max. Charge Temp - C
+
+ case 60: aSystemData.Information.ModelName = (string)sdata; break; // Model - string
+ case 61: aSystemData.Information.SwProductRev = (string)sdata; break; // BMS Fw Version - string
+ case 62: aSystemData.Information.HwSerialNumber = (string)sdata; break; // Pack Serial Number - string
+ case 63: aSystemData.Information.VendorName = (string)sdata; break; // Vendor Name - string
+ case 64: aSystemData.Information.ProductCode = (string)sdata; break; // Product Code - string
+ case 65: aSystemData.Information.MajorMinorRev = (string)sdata; break; // Major Minor Revision - string
+ case 66: aSystemData.Information.HwProductRev = (string)sdata; break; // Hardware Product Revision - string
+ case 67: aSystemData.Information.ManufacturingDate = (string)sdata; break; // Manufacturing Date - string
+
+ default:
+ break;
+ }
+ }
+ public static void MakeAlarm(ref DeviceSystemData rSystemData)
+ {
+ if (((rSystemData.StatusData.faultAndStatus >> 14) & 0x0001) == 0x0001)
+ {
+ rSystemData.StatusData.batteryStatus = 4; // Anti-theft Gyroscope
+ }
+ else if (((rSystemData.StatusData.faultAndStatus >> 15) & 0x0001) == 0x0001)
+ {
+ rSystemData.StatusData.batteryStatus = 5; // Anti-theft Comm.
+ }
+ else if (rSystemData.StatusData.protection != 0x0000)
+ {
+ rSystemData.StatusData.batteryStatus = 2;
+ }
+ else if (rSystemData.StatusData.warning != 0x0000)
+ {
+ rSystemData.StatusData.batteryStatus = 1;
+ }
+ else
+ {
+ rSystemData.StatusData.batteryStatus = 0;
+ }
+ }
+ public static short MakeSnmpTripData(short rdata)
+ {
+ short result = 0;
+ bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
+
+ if (bAlarm[0] == true) result |= (short)(1 << 4); // 0x0001:Cell OV
+ if (bAlarm[1] == true) result |= (short)(1 << 2); // 0x0002:Pack OV
+ if (bAlarm[2] == true) result |= (short)(1 << 5); // 0x0004:Cell UV
+ if (bAlarm[3] == true) result |= (short)(1 << 3); // 0x0008:Pack UV
+
+ if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC1
+ if (bAlarm[5] == true) result |= (short)(1 << 6); // 0x0020:Charging OC2
+ if (bAlarm[6] == true) result |= (short)(1 << 7); // 0x0010:Discharging OC1
+ if (bAlarm[7] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC2
+
+ if (bAlarm[8] == true) result |= (short)(1 << 9); // 0x0200:Short Circuit Protection
+
+ if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Tempratuer
+ if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0080: Charging Under Tempratuer
+ if (bAlarm[11] == true) result |= (short)(1 << 0); // 0x0040: Discharging Over Tempratuer
+ if (bAlarm[12] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Tempratuer
+
+ return result;
+ }
+ public static short MakeSnmpWarningData(short rdata)
+ {
+ short result = 0;
+ bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
+
+ if (bAlarm[0] == true) result |= (short)(1 << 4); // 0x0001:Cell OV
+ if (bAlarm[1] == true) result |= (short)(1 << 5); // 0x0002:Cell UV
+ if (bAlarm[2] == true) result |= (short)(1 << 2); // 0x0004:Pack OV
+ if (bAlarm[3] == true) result |= (short)(1 << 3); // 0x0008:Pack UV
+
+ if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC
+ if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC
+
+ if (bAlarm[6] == true) result |= (short)(1 << 8); // 0x0040:ENV OT
+ if (bAlarm[7] == true) result |= (short)(1 << 9); // 0x0080:ENV UT
+
+ if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0100: Charging Over Temprature
+ if (bAlarm[9] == true) result |= (short)(1 << 1); // 0x0200: Charging Under Temprature
+ if (bAlarm[10] == true) result |= (short)(1 << 0); // 0x0400: Discharging Over Temprature
+ if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0800: Discharging Under Temprature
+
+ if (bAlarm[12] == true) result |= (short)(1 << 11); // 0x1000:SOC Low
+
+ if (bAlarm[13] == true) result |= (short)(1 << 13); // 0x2000:Diff Volt
+ if (bAlarm[14] == true) result |= (short)(1 << 14); // 0x4000:CB Off
+
+ return result;
+ }
+ }
+}
diff --git a/LFP_Manager/Function/csSerialCommFunction.cs b/LFP_Manager/Function/csSerialCommFunction.cs
new file mode 100644
index 0000000..99a31f0
--- /dev/null
+++ b/LFP_Manager/Function/csSerialCommFunction.cs
@@ -0,0 +1,819 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Utils;
+using LFP_Manager.Controls;
+using System.Web.Services.Description;
+using System.Data.Entity.Core.Common.CommandTrees;
+using DevExpress.XtraRichEdit.Fields.Expression;
+using DevExpress.XtraRichEdit.Layout;
+using DevExpress.XtraPrinting.Native.LayoutAdjustment;
+
+namespace LFP_Manager.Function
+{
+ class csSerialCommFunction
+ {
+ static readonly byte[] auchCRCHi = {
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
+ 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
+ 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
+ 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,
+ 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
+ 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
+ 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
+ 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
+ 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
+ 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
+ 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
+ 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
+ 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40
+ };
+
+ static readonly byte[] auchCRCLo = {
+ 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4,
+ 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,
+ 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD,
+ 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,
+ 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7,
+ 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A,
+ 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE,
+ 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,
+ 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2,
+ 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,
+ 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB,
+ 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,
+ 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91,
+ 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,
+ 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88,
+ 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
+ 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80,0x40
+ };
+
+ public const byte READ_COIL_STATUS = 0x01;
+ public const byte READ_HOLDING_REG = 0x03;
+ public const byte READ_INPUT_REG = 0x04; //Byul 구문 추가 필요
+ public const byte FORCE_SINGLE_COIL = 0x05;
+ public const byte PRESET_SINGLE_REG = 0x06;
+ public const byte PRESET_MULTI_REG = 0x10;
+ public const byte WRITE_COIL_REG = 0x0F;
+ public const byte ERROR_REG = 0x90;
+
+ public const byte FW_FLASH_ERASE_CMD = 0x43;
+ public const byte FW_FLASH_WRITE_CMD = 0x31;
+
+ public const byte NO_CMD = 0xFF;
+
+ public static byte[] GetCRC(byte[] pby, int nSize)
+ {
+ ushort uIndex, i;
+ ushort crc;
+ byte uchCRCHi = 0xff;
+ byte uchCRCLo = 0xff;
+ byte[] result = new byte[2];
+
+ for (i = 0; i < nSize; i++)
+ {
+ uIndex = (ushort)((int)uchCRCLo ^ (int)pby[i]);
+ uchCRCLo = (byte)(uchCRCHi ^ auchCRCHi[uIndex]);
+ uchCRCHi = auchCRCLo[uIndex];
+ }
+ crc = (ushort)((uchCRCHi << 8) | uchCRCLo);
+
+ result[0] = (byte)(crc >> 8);
+ result[1] = (byte)(crc >> 0);
+
+ return result;
+ }
+
+ static public byte[] MakeReadRegisterData(ushort DevID, ushort cmd, ushort ReadAddr, ushort Size)
+ {
+ byte[] result = new byte[8];
+ byte[] crc;
+
+ result[0] = (byte)DevID; // Device ID
+ result[1] = (byte)cmd; // Command
+ result[2] = (byte)(ReadAddr >> 8); // Register Address MSB
+ result[3] = (byte)(ReadAddr >> 0); // Register Address LSB
+ result[4] = (byte)(Size >> 8); // Count of Register MSB
+ result[5] = (byte)(Size >> 0); // Count of Register LSB
+
+ crc = GetCRC(result, 6);
+
+ result[6] = crc[1]; // CRCH
+ result[7] = crc[0]; // CRCL
+
+ return result;
+ }
+
+ static public byte[] MakeWriteCoilData(ushort DevID, ushort WriteAddr, short WriteData)
+ {
+ byte[] result = new byte[7 + (1 * 1) + 2];
+ byte[] crc;
+ ushort i = 0;
+
+ result[i++] = (byte)DevID; // Device ID
+ result[i++] = (byte)WRITE_COIL_REG; // Command
+ result[i++] = (byte)(WriteAddr >> 8); // Register Address MSB
+ result[i++] = (byte)(WriteAddr >> 0); // Register Address LSB
+ result[i++] = (byte)(1 >> 8); // Count of Register MSB
+ result[i++] = (byte)(1 >> 0); // Count of Register LSB
+ result[i++] = (byte)(1 * 1); // Byte Count - [2 * (Num of register)]
+
+ result[i++] = (byte)(WriteData >> 0);
+
+ crc = GetCRC(result, i);
+
+ result[i++] = crc[1]; // CRCH
+ result[i++] = crc[0]; // CRCL
+
+ return result;
+ }
+
+ static public byte[] MakeWriteRegisterData(ushort DevID, ushort WriteAddr, short[] WriteData)
+ {
+ byte[] result = new byte[9 + (WriteData.Length * 2)];
+ byte[] crc;
+ ushort i = 0;
+
+ result[i++] = (byte)DevID; // Device ID
+ result[i++] = (byte)PRESET_MULTI_REG; // Command
+ result[i++] = (byte)(WriteAddr >> 8); // Register Address MSB
+ result[i++] = (byte)(WriteAddr >> 0); // Register Address LSB
+ result[i++] = (byte)(WriteData.Length >> 8); // Count of Register MSB
+ result[i++] = (byte)(WriteData.Length >> 0); // Count of Register LSB
+ result[i++] = (byte)(WriteData.Length * 2); // Byte Count - [2 * (Num of register)]
+
+ for (int j = 0; j < WriteData.Length; j++)
+ {
+ result[i++] = (byte)(WriteData[j] >> 8);
+ result[i++] = (byte)(WriteData[j] >> 0);
+ }
+
+ crc = GetCRC(result, i);
+
+ result[i++] = crc[1]; // CRCH
+ result[i++] = crc[0]; // CRCL
+
+ return result;
+ }
+
+ static short GetRegister(ushort reg_addr, ref DeviceParamData aParam)
+ {
+ short result = 0;
+
+ switch (reg_addr)
+ {
+ //case 19: result = (short)(0 >> 16); break; // 0021 : UTC TimeStamp MSB
+ //case 20: result = (short)(58 >> 0); break; // 0022 : UTC TimeStamp LSB
+ //case 21: result = (short)0x1000; break; // 0023 : Cell Balancing Flag
+ //case 22: result = (short)0x0000; break; // 0024 : Cell Balancing Voltage
+ //case 23: result = (short)15; break; // 0024 : Cell Balancing Time
+
+ case 0x4002: result = (short)aParam.CellUnderVoltageWarning; break; // 0061 : Low cell voltage warning data
+ //case 33: result = (short)param.sf1.voltage.CUV_Threshold; break; // 0062 : Low cell voltage protection data
+ //case 34: result = (short)param.sf1.voltage.CUV_Recovery; break; // 0063 : Low cell voltage recovery data
+ //case 35: result = (short)param.sf1.voltage.SUV_Warning; break; // 0064 : Low voltage warning data
+ //case 36: result = (short)param.sf1.voltage.SUV_Threshold; break; // 0065 : Low voltage protection data
+ //case 37: result = (short)param.sf1.voltage.SUV_Recovery; break; // 0066 : Low voltage recovery data
+ //case 38: result = (short)param.sf1.voltage.COV_Warning; break; // 0067 : Over cell voltage warning data
+ //case 39: result = (short)param.sf1.voltage.COV_Threshold; break; // 0068 : Over cell voltage protection data
+ //case 40: result = (short)param.sf1.voltage.COV_Recovery; break; // 0069 : Over cell voltage recovery data
+ //case 41: result = (short)param.sf1.voltage.SOV_Warning; break; // 0070 : Over voltage warning data
+ //case 42: result = (short)param.sf1.voltage.SOV_Threshold; break; // 0071 : Over voltage protection data
+ //case 43: result = (short)param.sf1.voltage.SOV_Recovery; break; // 0072 : Over voltage recovery data
+
+ //case 44: result = (short)param.sf1.temperature.OT_Chg_Warning; break; // 0044 : Charge over temperature warning data
+ //case 45: result = (short)param.sf1.temperature.OT_Chg_Threshold; break; // 0045 : Charge over temperature protection data
+ //case 46: result = (short)param.sf1.temperature.OT_Chg_Recovery; break; // 0046 : Charge over temperature recovery data
+ //case 47: result = (short)param.sf1.temperature.OT_Chg_Time; break; // 0047 : Charge over temperature time
+
+ //case 48: result = (short)param.sf1.temperature.OT_Dsg_Warning; break; // 0048 : Discharge over temperature warning data
+ //case 49: result = (short)param.sf1.temperature.OT_Dsg_Threshold; break; // 0049 : Discharge over temperature protection data
+ //case 50: result = (short)param.sf1.temperature.OT_Dsg_Recovery; break; // 0050 : Discharge over temperature recovery data
+ //case 51: result = (short)param.sf1.temperature.OT_Dsg_Time; break; // 0051 : Discharge over temperature time
+ }
+
+ return result;
+ }
+
+ static byte[] ModBusGetRegWordToBytes(ushort addr, ref DeviceParamData aParam)
+ {
+ short data;
+ byte[] result = new byte[2];
+
+ data = GetRegister(addr, ref aParam);
+
+ result[0] = (byte)(data >> 8);
+ result[1] = (byte)(data >> 0);
+
+ return result;
+ }
+
+ static public byte[] MakeWriteRegisterData(ushort DevID, ushort WriteAddr, ushort reg_len, ref DeviceParamData aParam)
+ {
+ int tlen = (reg_len * 2) + 7 + 2;
+ byte[] result = new byte[tlen];
+ byte[] tmp;
+ byte[] crc;
+
+ result[0] = (byte)DevID; // Device ID
+ result[1] = (byte)PRESET_MULTI_REG; // Command
+ result[2] = (byte)(WriteAddr >> 8); // Register Address MSB
+ result[3] = (byte)(WriteAddr >> 0); // Register Address LSB
+ result[4] = (byte)(reg_len >> 8); // Count of Register MSB
+ result[5] = (byte)(reg_len >> 0); // Count of Register LSB
+ result[6] = (byte)(reg_len * 2); ; // Current Value MSB
+
+ for (int i = 0; i < reg_len; i++)
+ {
+ tmp = ModBusGetRegWordToBytes((ushort)(WriteAddr + i),ref aParam);
+ result[7 + (i * 2) + 0] = tmp[0];
+ result[7 + (i * 2) + 1] = tmp[1];
+ }
+ crc = GetCRC(result, 8);
+
+ result[tlen - 2] = crc[0]; // CRCH
+ result[tlen - 1] = crc[1]; // CRCL
+
+ return result;
+ }
+
+ public static byte[] MakeCheckSum(byte[] sData, int offset, int len, bool flag)
+ {
+ byte[] result = new byte[2];
+ int checksum = 0;
+
+ for (int i = 0; i < len; i++)
+ {
+ checksum += sData[i + offset];
+ }
+
+ checksum = ~checksum + 1;
+
+ result[0] = (byte)(checksum >> 8);
+ result[1] = (byte)checksum;
+
+ return result;
+ }
+
+ private static byte[] MakeTxPacket(byte[] sData, int len)
+ {
+ string str = "";
+ byte[] result;
+ char[] chrArray;
+ int checksum = 0;
+ string checksumStr = "";
+ char[] checksumChr;
+
+ str = "~";
+
+ for (int i = 0; i < len; i++)
+ {
+ str += sData[i].ToString("X2");
+ }
+
+ str += "\r";
+
+ chrArray = str.ToCharArray();
+
+ for (int i = 0; i < (chrArray.Length - 6); i++)
+ {
+ checksum += chrArray[i + 1];
+ }
+
+ checksum = ~checksum + 1;
+
+ checksumStr = String.Format("{0:X2}{1:X2}", (byte)(checksum >> 8), (byte)checksum);
+ checksumChr = checksumStr.ToCharArray();
+
+ for (int i = 0; i < 4; i++)
+ {
+ chrArray[chrArray.Length - 5 + i] = checksumChr[i];
+ }
+
+ result = new byte[chrArray.Length];
+
+ for (int i = 0; i < chrArray.Length; i++)
+ {
+ result[i] = (byte)chrArray[i];
+ }
+
+ return result;
+ }
+
+ public static byte[] LengthLchk(int sLen)
+ {
+ byte[] result = new byte[2];
+ int lchksum = 0;
+
+ lchksum = (~(((sLen >> 8) & 0xF) +
+ ((sLen >> 4) & 0xF) +
+ ((sLen >> 0) & 0xF)) + 1) % 16;
+ lchksum = ((lchksum << 12) | sLen);
+
+ result[0] = (byte)(lchksum >> 8);
+ result[1] = (byte)(lchksum >> 0);
+
+ return result;
+ }
+
+ public static byte[] MakeTxData(byte addr, byte cmd, int sLen)
+ {
+ int buffCh = 0;
+ byte[] sData;
+ byte[] lenId;
+ byte[] checksum;
+
+ sData = new byte[((sLen > 0) ? 11 : 10)];
+
+ sData[buffCh] = 0x7E; buffCh++; // SOI
+ sData[buffCh] = 0x25; buffCh++; // VER
+ sData[buffCh] = addr; buffCh++; // ADDR
+ sData[buffCh] = 0x46; buffCh++; // CID1
+ sData[buffCh] = cmd; buffCh++; // CID2 (CMD)
+
+ lenId = LengthLchk(sLen); // LENID
+ sData[buffCh] = lenId[0]; buffCh++; // LENID MSB
+ sData[buffCh] = lenId[1]; buffCh++; // LENID LSB
+
+ if (sLen > 0)
+ {
+ sData[buffCh] = (byte)(sLen / 2); buffCh++; // INFO
+ }
+
+ checksum = csSerialCommFunction.MakeCheckSum(sData, 1, sData.Length - 4, false);
+
+ sData[buffCh] = checksum[1]; buffCh++;
+ sData[buffCh] = checksum[0]; buffCh++;
+
+ sData[buffCh] = 0x0D; buffCh++; // EOI
+
+ return MakeTxPacket(sData, sData.Length);
+ }
+
+ public static int TbPacketCheck(byte[] rdata, int rlen)
+ {
+ int result = 0;
+ byte[] cdata;
+ byte[] checksum;
+ byte[] checksum1;
+
+ checksum = MakeCheckSum(rdata, 1, rlen - 6, false);
+
+ checksum1 = new byte[2];
+ checksum1[0] = csUtils.StrByte2toByte(rdata[rlen - 4], rdata[rlen - 5]);
+ checksum1[1] = csUtils.StrByte2toByte(rdata[rlen - 2], rdata[rlen - 3]);
+
+
+ if ((checksum[0] == checksum1[0]) && (checksum[1] == checksum1[1]))
+ {
+ cdata = csUtils.StrToByteArray(rdata, 0, rlen);
+
+ result = 1;
+ }
+
+ return result;
+ }
+
+ static public int ModbusPacketFromSlaveCheck(byte[] rdata, ushort rlen)
+ {
+ int result = 0;
+ byte[] cdata, crc;
+ ushort clen, bytecount;
+
+ if (rlen > 2)
+ {
+ cdata = rdata;
+
+ switch (cdata[1])
+ {
+ case READ_COIL_STATUS:
+ case READ_HOLDING_REG:
+ case READ_INPUT_REG:
+ bytecount = cdata[2];
+ clen = (ushort)(bytecount + 5); // header 3, tail 2
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[1] == cdata[rlen - 2]) && (crc[0] == cdata[rlen - 1])) result = 1;
+ else result = -1;
+ }
+ break;
+ case PRESET_MULTI_REG:
+ case FORCE_SINGLE_COIL:
+ case PRESET_SINGLE_REG:
+ clen = 8;
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 1;
+ else result = -1;
+ }
+ break;
+ case ERROR_REG:
+ clen = 6;
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 1;
+ else result = -1;
+ }
+ break;
+ case FW_FLASH_ERASE_CMD:
+ clen = 5;
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 2;
+ else result = -1;
+ }
+ break;
+ case FW_FLASH_WRITE_CMD:
+ clen = 5;
+ if (rlen >= clen)
+ {
+ crc = GetCRC(cdata, (ushort)(rlen - 2));
+ if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 2;
+ else result = -1;
+ }
+ break;
+
+ default:
+ result = -1;
+ break;
+ }
+ }
+ return result;
+ }
+
+ public static short[] SerialRxProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData)
+ {
+ short[] result = new short[2];
+
+ switch (rData[1])
+ {
+ case READ_COIL_STATUS:
+ ReadCoilRegisterProcess(rData, rRegAddr, rLen, ref rSystemData);
+ break;
+ case READ_HOLDING_REG:
+ ReadHoldRegisterProcess(rData, rRegAddr, rLen, ref rSystemData);
+ break;
+ case READ_INPUT_REG:
+ //ReadInputRegisterProcess(rData, rRegAddr, rLen, ref rSystemData);
+ break;
+ //case READ_INPUT_REG:
+ // ReadRegister(rData, rRegAddr, rLen, ref rSystemData);
+ // break;
+ case PRESET_MULTI_REG:
+ // read_holding_reg_process(reverse16(rsp->start_addr, true), reverse16(rsp->qty_reg, true));
+ //result[0] = 1;
+ //result[1] = 1;
+ break;
+ case ERROR_REG:
+ result[0] = 2;
+ result[1] = (short)((rData[0] << 8) | rData[1]);
+ break;
+ }
+
+ return result;
+ }
+
+ private static void ReadCoilRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData)
+ {
+ int i, j;
+ short reg_count;
+ short reg_value;
+ i = 2;
+ reg_count = rData[i];
+
+ i++;
+ for (j = 0; j < reg_count; j++)
+ {
+ reg_value = (short)(rData[i + j]);
+ SetCoilRegister((short)(rRegAddr + j), reg_value, ref rSystemData);
+ i++;
+ }
+ }
+
+ private static void ReadHoldRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData)
+ {
+ int i, j;
+ short reg_count;
+ short reg_value;
+ i = 2;
+ reg_count = (short)(rData[i] / 2); i += 1;
+
+ for (j = 0; j < reg_count; j++)
+ {
+ reg_value = (short)(rData[i] << 8 | rData[i + 1]);
+ SetHoldRegister((short)(rRegAddr + j), reg_value, ref rSystemData);
+ i += 2;
+ }
+ }
+
+ private static void SetCoilRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData)
+ {
+ switch (reg_addr)
+ {
+ case 0x3078:
+ rSystemData.StatusData.relayStatus = reg_value;
+ rSystemData.CalibrationData.FetCalib.FetStatus = reg_value;
+ break;
+ case 0x502E:
+ rSystemData.CalibrationData.Current.ChargeOption = reg_value;
+ break;
+ }
+ }
+
+ private static void SetHoldRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData)
+ {
+ int temp = 0;
+ switch (reg_addr)
+ {
+ case 0: rSystemData.ValueData.voltageOfPack = (short)(reg_value / 10); break; //Total Voltage
+ case 1: rSystemData.ValueData.current = (short)((reg_value) / 10); break; //Total Current
+ case 2: // Cell Voltage #1
+ case 3: // Cell Voltage #2
+ case 4: // Cell Voltage #3
+ case 5: // Cell Voltage #4
+ case 6: // Cell Voltage #5
+ case 7: // Cell Voltage #6
+ case 8: // Cell Voltage #7
+ case 9: // Cell Voltage #8'
+ case 10: // Cell Voltage #9
+ case 11: // Cell Voltage #10
+ case 12: // Cell Voltage #11
+ case 13: // Cell Voltage #12
+ case 14: // Cell Voltage #13
+ case 15: // Cell Voltage #14
+ case 16: // Cell Voltage #15
+ rSystemData.ValueData.CellVoltage[reg_addr - 2] = (ushort)(reg_value / 1);
+ csUtils.MakeMaxAvgMinCellVoltage(ref rSystemData, 15);
+ break; // 15 CellVoltage 1mV
+ case 17: break; // Cell Voltage #16 - Reserved
+ case 18: rSystemData.ValueData.Ext1Temperature = (short)((reg_value) * 10); break; //Ext1 Temperature (Temp of MOS-FET)
+ case 19: rSystemData.ValueData.Ext2Temperature = (short)((reg_value) * 10); break; //Ext2 Amb. PCB Temperature 1C
+ case 20: break; // Temp Max.
+ case 21: rSystemData.ValueData.remainingCapacity = (short)(reg_value / 1); break; // Remaining Capacity
+ case 22: rSystemData.ValueData.MaxBattChargeCurr = reg_value / 1; break;
+ case 23: rSystemData.ValueData.stateOfHealth = (short)(reg_value * 10); break;
+ case 24: rSystemData.ValueData.rSOC = (short)(reg_value * 10); break; //SOC
+ case 25: rSystemData.StatusData.status = reg_value; break; //Operating Status
+ case 26: rSystemData.StatusData.warning = MakeUartWarningData(reg_value); break; //Warning Status
+ case 27: rSystemData.StatusData.protection = MakeUartTripData(reg_value); break; //Protection Status
+ case 28: // Error Code
+ // 0x0001:Voltage error
+ // 0x0002:Temperature error
+ // 0x0004: Current Check Error
+ // 0x0010:Cell unbalance
+ break;
+ case 29: // Cycle count MSB
+ temp = rSystemData.ValueData.cycleCount;
+ rSystemData.ValueData.cycleCount = (temp & (0x0000FFFF)) | (reg_value << 16);
+ break;
+ case 30: // Cycle count LSB
+ temp = rSystemData.ValueData.cycleCount;
+ rSystemData.ValueData.cycleCount = (int)(temp & (0xFFFF0000)) | (reg_value << 0);
+ break;
+ case 31: // fullChargeCapacity MSB
+ temp = rSystemData.ValueData.fullChargeCapacity;
+ rSystemData.ValueData.fullChargeCapacity = (temp & (0x0000FFFF)) | (reg_value << 16);
+ break;
+ case 32: // fullChargeCapacity LSB
+ temp = rSystemData.ValueData.fullChargeCapacity;
+ rSystemData.ValueData.fullChargeCapacity = (int)(temp & (0xFFFF0000)) | (reg_value << 0);
+ break;
+ case 33:
+ case 34:
+ rSystemData.ValueData.CellTemperature[((reg_addr - 33) * 2) + 0] = (short)(((reg_value >> 8) & 0xFF) * 10);
+ rSystemData.ValueData.CellTemperature[((reg_addr - 33) * 2) + 1] = (short)(((reg_value >> 0) & 0xFF) * 10);
+ csUtils.MakeMaxAvgMinTemperature(ref rSystemData, 4);
+ break;
+ case 35: break; // Reserved
+ case 36: rSystemData.cellQty = reg_value; break; // Cell Qty
+ case 37: rSystemData.ValueData.designedCapacity = reg_value; break;
+ case 38: rSystemData.StatusData.cellBallanceStatus = reg_value; break;
+
+ case 39: rSystemData.StatusData.specialAlarm = (short)(reg_value); break; // Special Alarm
+
+ //case 61: rSystemData.StatusData.cellBallanceStatus = reg_value; break;
+ //45 ~ 99 : Reserved
+ case 45: rSystemData.BmsDateTimeShort1 = (ushort)reg_value; break; // DateTime
+ case 46: rSystemData.BmsDateTimeShort2 = (ushort)reg_value;
+ int yy, MM, dd, HH, mm, ss;
+ rSystemData.BmsDateTimeInt = (rSystemData.BmsDateTimeShort1 << 16) | (rSystemData.BmsDateTimeShort2);
+ yy = (rSystemData.BmsDateTimeInt >> 26) & 0x003F;
+ MM = ((rSystemData.BmsDateTimeInt >> 22) & 0x000F) % 13;
+ dd = ((rSystemData.BmsDateTimeInt >> 17) & 0x001F) % 32;
+ HH = ((rSystemData.BmsDateTimeInt >> 12) & 0x001F) % 24;
+ mm = ((rSystemData.BmsDateTimeInt >> 6) & 0x003F) % 60;
+ ss = ((rSystemData.BmsDateTimeInt >> 0) & 0x003F) % 60;
+ yy += 2000;
+
+ rSystemData.BmsDateTime.DateTimeStr = string.Format("{0:0000}-{1:00}-{2:00} {3:00}:{4:00}:{5:00}"
+ , yy
+ , MM
+ , dd
+ , HH
+ , mm
+ , ss
+ );
+ break; // DateTime
+
+ case 47: rSystemData.CalibrationData.ChaMode.Mode = reg_value; break; // 0x2F
+ case 48: rSystemData.CalibrationData.ChaMode.Value = reg_value; break; // 0x2F
+
+ case 56: rSystemData.CalibrationData.BalCalib.Volt = reg_value; break; // Cell Balance Voltage
+ case 57: rSystemData.CalibrationData.BalCalib.Diff = reg_value; break; // Cell Balance Diff
+
+ case 58: rSystemData.ParamData.LowSocWarning = reg_value; break;
+
+ case 61: rSystemData.ParamData.CellUnderVoltageWarning = reg_value; break;
+ case 62: rSystemData.ParamData.CellUnderVoltageTrip = reg_value; break;
+ case 63: rSystemData.ParamData.CellUnderVoltageRelease = reg_value; break;
+ case 64: rSystemData.ParamData.SysUnderVoltageWarning = (short)(reg_value / 10); break;
+ case 65: rSystemData.ParamData.SysUnderVoltageTrip = (short)(reg_value / 10); break;
+ case 66: rSystemData.ParamData.SysUnderVoltageRelease = (short)(reg_value / 10); break;
+ case 67: rSystemData.ParamData.CellOverVoltageWarning = reg_value; break;
+ case 68: rSystemData.ParamData.CellOverVoltageTrip = reg_value; break;
+ case 69: rSystemData.ParamData.CellOverVoltageRelease = reg_value; break;
+ case 70: rSystemData.ParamData.SysOverVoltageWarning = (short)(reg_value / 10); break;
+ case 71: rSystemData.ParamData.SysOverVoltageTrip = (short)(reg_value / 10); break;
+ case 72: rSystemData.ParamData.SysOverVoltageRelease = (short)(reg_value / 10); break;
+
+ case 76: rSystemData.ParamData.ChaOverCurrentTimes = (short)(reg_value / 1); break;
+ case 77: rSystemData.ParamData.DchOverCurrentTimes = (short)(reg_value / 1); break;
+ case 78: rSystemData.ParamData.ChaOverCurrentReleaseTime = (short)(reg_value * 1); break;
+ case 79: rSystemData.ParamData.DchOverCurrentReleaseTime = (short)(reg_value * 1); break;
+ case 80: rSystemData.ParamData.ChaOverCurrentTrip1 = (short)(reg_value / 10); break;
+ case 81: rSystemData.ParamData.DchOverCurrentTrip1 = (short)(reg_value / 10); break;
+ case 82: rSystemData.ParamData.ShortCircuit = (short)(reg_value / 10); break; // Short Circuit Current = 300A
+ case 83: rSystemData.ParamData.ChaOverCurrentTrip2 = (short)(reg_value / 10); break;
+ case 84: rSystemData.ParamData.DchOverCurrentTrip2 = (short)(reg_value / 10); break;
+ case 85: rSystemData.ParamData.ChaOverCurrentDelay1 = (short)(reg_value / 1); break;
+ case 86: rSystemData.ParamData.ChaOverCurrentDelay2 = (short)(reg_value / 1); break;
+ case 87: rSystemData.ParamData.DchOverCurrentDelay1 = (short)(reg_value / 1); break;
+ case 88: rSystemData.ParamData.DchOverCurrentDelay2 = (short)(reg_value / 1); break;
+
+ case 90: rSystemData.ParamData.ChaLowTempWarning = (short)(reg_value - 50); break;
+ case 91: rSystemData.ParamData.ChaLowTempTrip = (short)(reg_value - 50); break;
+ case 92: rSystemData.ParamData.ChaLowTempRelease = (short)(reg_value - 50); break;
+ case 93: rSystemData.ParamData.ChaHighTempWarning = (short)(reg_value - 50); break;
+ case 94: rSystemData.ParamData.ChaHighTempTrip = (short)(reg_value - 50); break;
+ case 95: rSystemData.ParamData.ChaHighTempRelease = (short)(reg_value - 50); break;
+ case 96: rSystemData.ParamData.DchLowTempWarning = (short)(reg_value - 50); break;
+ case 97: rSystemData.ParamData.DchLowTempTrip = (short)(reg_value - 50); break;
+ case 98: rSystemData.ParamData.DchLowTempRelease = (short)(reg_value - 50); break;
+ case 99: rSystemData.ParamData.DchHighTempWarning = (short)(reg_value - 50); break;
+ case 100: rSystemData.ParamData.DchHighTempTrip = (short)(reg_value - 50); break;
+ case 101: rSystemData.ParamData.DchHighTempRelease = (short)(reg_value - 50); break;
+
+ case 102: break; // PCB High Temp Warning
+ case 103: break; // PCB High Temp Trip
+ case 104: break; // PCB High Temp Release
+ //100 ~111 : Model_Product Name
+ case 105:
+ case 106:
+ case 107:
+ case 108:
+ case 109:
+ case 110:
+ case 111:
+ case 112:
+ case 113:
+ case 114:
+ case 115:
+ case 116:
+ int mReg = reg_addr - 105;
+ rSystemData.Information.Model_Byte[(mReg * 2) + 0] = (byte)(reg_value >> 8);
+ rSystemData.Information.Model_Byte[(mReg * 2) + 1] = (byte)(reg_value >> 0);
+ if (reg_addr == 116)
+ {
+ rSystemData.Information.ModelName = Encoding.Default.GetString(rSystemData.Information.Model_Byte).Trim('\0');
+ }
+ break;
+
+ //112 ~114 : FW Version
+ case 117:
+ case 118:
+ case 119:
+ int fReg = reg_addr - 117;
+ rSystemData.Information.FwVer_Byte[(fReg * 2) + 0] = (byte)(reg_value >> 8);
+ rSystemData.Information.FwVer_Byte[(fReg * 2) + 1] = (byte)(reg_value >> 0);
+ if (reg_addr == 119)
+ {
+ rSystemData.Information.SwProductRev = Encoding.Default.GetString(rSystemData.Information.FwVer_Byte).Trim('\0');
+ }
+ break;
+ //115 ~ 122 : BMS Serial number
+ case 120:
+ case 121:
+ case 122:
+ case 123:
+ case 124:
+ case 125:
+ case 126:
+ case 127:
+ int snReg = reg_addr - 120;
+ rSystemData.Information.BMS_SN[(snReg * 2) + 0] = (byte)(reg_value >> 8);
+ rSystemData.Information.BMS_SN[(snReg * 2) + 1] = (byte)(reg_value >> 0);
+ if (reg_addr == 127)
+ {
+ rSystemData.Information.HwSerialNumber = Encoding.Default.GetString(rSystemData.Information.BMS_SN).Trim('\0');
+ }
+ break;
+
+ case 130: rSystemData.ParamData.EnvLowTempWarning = (short)(reg_value - 50); break;
+ case 131: rSystemData.ParamData.EnvLowTempTrip = (short)(reg_value - 50); break;
+ case 132: rSystemData.ParamData.EnvLowTempRelease = (short)(reg_value - 50); break;
+ case 133: rSystemData.ParamData.EnvHighTempWarning = (short)(reg_value - 50); break;
+ case 134: rSystemData.ParamData.EnvHighTempTrip = (short)(reg_value - 50); break;
+ case 135: rSystemData.ParamData.EnvHighTempRelease = (short)(reg_value - 50); break;
+
+ case 136: // Anti-Theft Communication
+ rSystemData.CalibrationData.AntiTheft.Comm = reg_value;
+ break;
+ case 137: // Anti-Theft Gyro-Scope
+ rSystemData.CalibrationData.AntiTheft.GyroScope = reg_value;
+ break;
+ case 163: // 0xA3
+ case 164: // 0xA4
+ case 165: // 0xA5
+ case 166: // 0xA6
+ int ManuDateReg = reg_addr - 163;
+ rSystemData.Information.ManuDate_Byte[(ManuDateReg * 2) + 0] = (byte)(reg_value >> 8);
+ rSystemData.Information.ManuDate_Byte[(ManuDateReg * 2) + 1] = (byte)(reg_value >> 0);
+ if (reg_addr == 166)
+ {
+ rSystemData.Information.ManufacturingDate = Encoding.Default.GetString(rSystemData.Information.ManuDate_Byte).Trim('\0');
+ }
+ break;
+ }
+ csMakeDataFunction.MakeAlarm(ref rSystemData);
+ }
+
+ public static short MakeUartWarningData(short rdata)
+ {
+ short result = 0;
+ bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
+
+ if (bAlarm[0] == true) result |= (short)(1 << 2); // 0x0001:Pack OV
+ if (bAlarm[1] == true) result |= (short)(1 << 4); // 0x0002:Cell OV
+ if (bAlarm[2] == true) result |= (short)(1 << 3); // 0x0004:Pack UV
+ if (bAlarm[3] == true) result |= (short)(1 << 5); // 0x0008:Cell UV
+
+ if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC
+ if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC
+
+ if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Tempratuer
+ if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Discharging Over Tempratuer
+ if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0040: Charging Under Tempratuer
+ if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Tempratuer
+ if (bAlarm[12] == true) result |= (short)(1 << 11); // 0x0200:SOC Low
+
+ return result;
+ }
+
+ public static short MakeUartTripData(short rdata)
+ {
+ short result = 0;
+ bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
+
+ if (bAlarm[0] == true) result |= (short)(1 << 2); // 0x0001:Pack OV
+ if (bAlarm[1] == true) result |= (short)(1 << 4); // 0x0002:Cell OV
+ if (bAlarm[2] == true) result |= (short)(1 << 3); // 0x0004:Pack UV
+ if (bAlarm[3] == true) result |= (short)(1 << 5); // 0x0008:Cell UV
+
+ if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC
+ if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC
+
+ if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Tempratuer
+ if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Discharging Over Tempratuer
+ if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0040: Charging Under Tempratuer
+ if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Tempratuer
+ if (bAlarm[13] == true) result |= (short)(1 << 9); // 0x0200:Short Circuit Protection
+
+ return result;
+ }
+
+ private static short MakeUartErrorData(short rdata, short cdata)
+ {
+ short result = cdata;
+ bool[] bAlarm = csUtils.Int16ToBitArray(rdata);
+
+ if (bAlarm[0] == true) result |= (short)(1 << 9); // 0x0001:Voltage error
+ if (bAlarm[1] == true) result |= (short)(1 << 9); // 0x0002:Temperature error
+ if (bAlarm[2] == true) result |= (short)(1 << 9); // 0x0004: 电流检测Error
+ if (bAlarm[3] == true) result |= (short)(1 << 9); // 0x0010:Cell unbalance
+
+ return result;
+ }
+ }
+}
diff --git a/LFP_Manager/LFP_Manager.zip b/LFP_Manager/LFP_Manager.zip
new file mode 100644
index 0000000..f2f4fc4
Binary files /dev/null and b/LFP_Manager/LFP_Manager.zip differ
diff --git a/LFP_Manager/LFP_Manager_DBG_Delta.csproj b/LFP_Manager/LFP_Manager_DBG_Delta.csproj
new file mode 100644
index 0000000..e89d5a0
--- /dev/null
+++ b/LFP_Manager/LFP_Manager_DBG_Delta.csproj
@@ -0,0 +1,640 @@
+
+
+
+
+
+ Debug
+ AnyCPU
+ 9.0.21022
+ 2.0
+ {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}
+ WinExe
+ Properties
+ LFP_Manager
+ LFP_Manager_DBG_Delta
+ v4.8
+ 512
+
+
+ 3.5
+
+
+
+
+
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ true
+ x86
+ false
+
+
+ pdbonly
+ false
+ bin\Release\
+ DEBUG;TRACE
+ prompt
+ 4
+ true
+ x86
+ false
+
+
+ AMO_LOGO.ico
+
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+
+ True
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+ True
+
+
+ True
+
+
+
+ True
+
+
+
+ True
+
+
+
+
+
+ ..\packages\EntityFramework.6.5.1\lib\net45\EntityFramework.dll
+
+
+ ..\packages\EntityFramework.6.5.1\lib\net45\EntityFramework.SqlServer.dll
+
+
+ dll\IPAddressControlLib.dll
+
+
+ dll\log4net.dll
+
+
+ ..\packages\Microsoft.Bcl.AsyncInterfaces.9.0.5\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll
+
+
+ ..\packages\Microsoft.Extensions.Configuration.9.0.5\lib\net462\Microsoft.Extensions.Configuration.dll
+
+
+ ..\packages\Microsoft.Extensions.Configuration.Abstractions.9.0.5\lib\net462\Microsoft.Extensions.Configuration.Abstractions.dll
+
+
+ ..\packages\Microsoft.Extensions.Configuration.Binder.9.0.5\lib\net462\Microsoft.Extensions.Configuration.Binder.dll
+
+
+ ..\packages\Microsoft.Extensions.DependencyInjection.9.0.5\lib\net462\Microsoft.Extensions.DependencyInjection.dll
+
+
+ ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.9.0.5\lib\net462\Microsoft.Extensions.DependencyInjection.Abstractions.dll
+
+
+ ..\packages\Microsoft.Extensions.Logging.9.0.5\lib\net462\Microsoft.Extensions.Logging.dll
+
+
+ ..\packages\Microsoft.Extensions.Logging.Abstractions.9.0.5\lib\net462\Microsoft.Extensions.Logging.Abstractions.dll
+
+
+ ..\packages\Microsoft.Extensions.Logging.Configuration.9.0.5\lib\net462\Microsoft.Extensions.Logging.Configuration.dll
+
+
+ ..\packages\Microsoft.Extensions.Logging.Console.9.0.5\lib\net462\Microsoft.Extensions.Logging.Console.dll
+
+
+ ..\packages\Microsoft.Extensions.Logging.Debug.9.0.5\lib\net462\Microsoft.Extensions.Logging.Debug.dll
+
+
+ ..\packages\Microsoft.Extensions.Options.9.0.5\lib\net462\Microsoft.Extensions.Options.dll
+
+
+ ..\packages\Microsoft.Extensions.Options.ConfigurationExtensions.9.0.5\lib\net462\Microsoft.Extensions.Options.ConfigurationExtensions.dll
+
+
+ ..\packages\Microsoft.Extensions.Primitives.9.0.5\lib\net462\Microsoft.Extensions.Primitives.dll
+
+
+ False
+ dll\SnmpSharpNet.dll
+
+
+
+ ..\packages\System.Buffers.4.6.1\lib\net462\System.Buffers.dll
+
+
+
+
+ 3.5
+
+
+
+ ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0\lib\net46\System.Data.SQLite.dll
+
+
+ ..\packages\System.Data.SQLite.EF6.1.0.119.0\lib\net46\System.Data.SQLite.EF6.dll
+
+
+ ..\packages\System.Data.SQLite.Linq.1.0.119.0\lib\net46\System.Data.SQLite.Linq.dll
+
+
+ ..\packages\System.Diagnostics.DiagnosticSource.9.0.5\lib\net462\System.Diagnostics.DiagnosticSource.dll
+
+
+ ..\packages\System.IO.Pipelines.9.0.5\lib\net462\System.IO.Pipelines.dll
+
+
+ ..\packages\System.Memory.4.6.3\lib\net462\System.Memory.dll
+
+
+
+ ..\packages\System.Numerics.Vectors.4.6.1\lib\net462\System.Numerics.Vectors.dll
+
+
+
+ ..\packages\System.Runtime.CompilerServices.Unsafe.6.1.2\lib\net462\System.Runtime.CompilerServices.Unsafe.dll
+
+
+
+
+
+
+ ..\packages\System.Text.Encodings.Web.9.0.5\lib\net462\System.Text.Encodings.Web.dll
+
+
+ ..\packages\System.Text.Json.9.0.5\lib\net462\System.Text.Json.dll
+
+
+ ..\packages\System.Threading.Tasks.Extensions.4.6.3\lib\net462\System.Threading.Tasks.Extensions.dll
+
+
+
+
+ 3.5
+
+
+ 3.5
+
+
+
+
+
+
+
+ dll\Tftp.Net.dll
+
+
+
+
+ UserControl
+
+
+ UcAntiTheftControl.cs
+
+
+ UserControl
+
+
+ ucCalibration.cs
+
+
+ UserControl
+
+
+ ucCalibrationView.cs
+
+
+ UserControl
+
+
+ ucCommConfig.cs
+
+
+ UserControl
+
+
+ ucDataLog.cs
+
+
+ UserControl
+
+
+ ucEventLog.cs
+
+
+ UserControl
+
+
+ ucHistroy.cs
+
+
+ UserControl
+
+
+ ucMainStatus.cs
+
+
+ UserControl
+
+
+ ucModuleMainB.cs
+
+
+ UserControl
+
+
+ ucModuleMainHeader.cs
+
+
+ UserControl
+
+
+ ucParamSet.cs
+
+
+ UserControl
+
+
+ ucShelfStatus.cs
+
+
+ UserControl
+
+
+ ucStatus.cs
+
+
+ UserControl
+
+
+ ucTargetControl.cs
+
+
+ UserControl
+
+
+ ucTftpClientcs.cs
+
+
+ UserControl
+
+
+ ucModuleMainA.cs
+
+
+
+
+
+
+ Form
+
+
+ fmxAntiTheft.cs
+
+
+ Form
+
+
+ FmxChangePw.cs
+
+
+ Form
+
+
+ fmxExcelFile.cs
+
+
+ Form
+
+
+ fmxCalibration.cs
+
+
+ Form
+
+
+ fmxFwUpdate.cs
+
+
+ Form
+
+
+ fmxHistory.cs
+
+
+ Form
+
+
+ FmxInformation.cs
+
+
+ Form
+
+
+ fmxInventoryConfig.cs
+
+
+ Form
+
+
+ FmxLevelConfig.cs
+
+
+ Form
+
+
+ fmxModuleDetail.cs
+
+
+ Form
+
+
+ fmxParamConfig.cs
+
+
+ Form
+
+
+ FmxPassword.cs
+
+
+ Form
+
+
+ FmxPasswordChange.cs
+
+
+ Form
+
+
+ fmxWait.cs
+
+
+
+
+
+
+
+
+
+
+
+ True
+ True
+ Resources.resx
+
+
+
+
+
+
+ Form
+
+
+ fmxCommConfig.cs
+
+
+ Form
+
+
+ fmxMain.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UcAntiTheftControl.cs
+
+
+ ucCalibration.cs
+
+
+ ucCalibrationView.cs
+
+
+ ucCommConfig.cs
+
+
+ ucDataLog.cs
+
+
+ ucEventLog.cs
+
+
+ ucHistroy.cs
+
+
+ ucMainStatus.cs
+
+
+ ucModuleMainA.cs
+
+
+ ucModuleMainB.cs
+
+
+ ucModuleMainHeader.cs
+
+
+ ucParamSet.cs
+
+
+ ucShelfStatus.cs
+
+
+ ucStatus.cs
+
+
+ ucTargetControl.cs
+
+
+ ucTftpClientcs.cs
+
+
+ fmxAntiTheft.cs
+
+
+ FmxChangePw.cs
+
+
+ fmxExcelFile.cs
+
+
+ fmxCalibration.cs
+
+
+ fmxCommConfig.cs
+
+
+ fmxFwUpdate.cs
+
+
+ fmxHistory.cs
+
+
+ FmxInformation.cs
+
+
+ fmxInventoryConfig.cs
+
+
+ FmxLevelConfig.cs
+
+
+ fmxMain.cs
+
+
+ fmxModuleDetail.cs
+
+
+ fmxParamConfig.cs
+
+
+ FmxPassword.cs
+
+
+ FmxPasswordChange.cs
+
+
+ fmxWait.cs
+
+
+
+ ResXFileCodeGenerator
+ Designer
+ Resources.Designer.cs
+
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if not exist "$(TargetDir)\Library" mkdir "$(TargetDir)\Library"
+if not exist "$(TargetDir)\Library\kerneldlls" mkdir "$(TargetDir)\Library\kerneldlls"
+move "$(TargetDir)\*.dll" "$(TargetDir)\Library"
+move "$(TargetDir)\*.pdb" "$(TargetDir)\Library"
+move "$(TargetDir)\*.xml" "$(TargetDir)\Library"
+copy "$(ProjectDir)\dll\*.dll" "$(TargetDir)\Library"
+copy "$(ProjectDir)\dll\kerneldlls\*.*" "$(TargetDir)\Library\kerneldlls"
+
+if not exist "$(TargetDir)\sql" mkdir "$(TargetDir)\sql"
+copy "$(ProjectDir)\DB Schema\*.sql" "$(TargetDir)\sql"
+
+
+ if exist "$(TargetDir)\library" rmdir /s /q "$(TargetDir)\library"
+if exist "$(TargetDir)\sql" rmdir /s /q "$(TargetDir)\sql"
+
+
+
+ 이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다.
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/LFP_Manager_GL.csproj b/LFP_Manager/LFP_Manager_GL.csproj
new file mode 100644
index 0000000..00d107c
--- /dev/null
+++ b/LFP_Manager/LFP_Manager_GL.csproj
@@ -0,0 +1,530 @@
+
+
+
+
+ Debug
+ AnyCPU
+ 9.0.21022
+ 2.0
+ {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}
+ WinExe
+ Properties
+ LFP_Manager
+ LFP_Manager_GL
+ v4.5.2
+ 512
+
+
+ 3.5
+
+
+
+
+
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ true
+ x86
+ false
+
+
+ pdbonly
+ false
+ bin\Release\
+ DEBUG;TRACE
+ prompt
+ 4
+ true
+ x86
+ false
+
+
+ Resources\AMO_LOGO.ico
+
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+
+ True
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+ True
+
+
+ True
+
+
+
+ True
+
+
+
+ True
+
+
+
+
+
+ ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll
+
+
+ ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll
+
+
+ dll\IPAddressControlLib.dll
+
+
+ dll\log4net.dll
+
+
+ False
+ dll\SnmpSharpNet.dll
+
+
+
+
+
+ 3.5
+
+
+
+ ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net451\System.Data.SQLite.dll
+
+
+ ..\packages\System.Data.SQLite.EF6.1.0.113.0\lib\net451\System.Data.SQLite.EF6.dll
+
+
+ ..\packages\System.Data.SQLite.Linq.1.0.113.0\lib\net451\System.Data.SQLite.Linq.dll
+
+
+
+
+
+
+
+
+ 3.5
+
+
+ 3.5
+
+
+
+
+
+
+
+ dll\Tftp.Net.dll
+
+
+
+
+ UserControl
+
+
+ ucCalibration.cs
+
+
+ UserControl
+
+
+ ucCalibrationView.cs
+
+
+ UserControl
+
+
+ ucCommConfig.cs
+
+
+ UserControl
+
+
+ ucDataLog.cs
+
+
+ UserControl
+
+
+ ucEtcStatusView.cs
+
+
+ UserControl
+
+
+ ucEventLog.cs
+
+
+ UserControl
+
+
+ ucHistroy.cs
+
+
+ UserControl
+
+
+ ucMainStatus.cs
+
+
+ UserControl
+
+
+ ucModuleMainB.cs
+
+
+ UserControl
+
+
+ ucParamSet.cs
+
+
+ UserControl
+
+
+ ucShelfStatus.cs
+
+
+ UserControl
+
+
+ ucStatus.cs
+
+
+ UserControl
+
+
+ ucTargetControl.cs
+
+
+ UserControl
+
+
+ ucTftpClientcs.cs
+
+
+ UserControl
+
+
+ ucModuleMainA.cs
+
+
+
+
+ Form
+
+
+ fmxEtcStatus.cs
+
+
+ Form
+
+
+ fmxExcelFile.cs
+
+
+ Form
+
+
+ fmxFwImageConverter.cs
+
+
+ Form
+
+
+ fmxCalibration.cs
+
+
+ Form
+
+
+ fmxFwUpdate.cs
+
+
+ Form
+
+
+ fmxFwUpdateTftp.cs
+
+
+ Form
+
+
+ fmxHistory.cs
+
+
+ Form
+
+
+ fmxInventoryConfig.cs
+
+
+ Form
+
+
+ fmxModuleDetail.cs
+
+
+ Form
+
+
+ fmxParamConfig.cs
+
+
+ Form
+
+
+ fmxSystemSet.cs
+
+
+ Form
+
+
+ fmxWait.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ fmxCommConfig.cs
+
+
+ Form
+
+
+ fmxMain.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ucCalibration.cs
+
+
+ ucCalibrationView.cs
+
+
+ ucCommConfig.cs
+
+
+ ucDataLog.cs
+
+
+ ucEtcStatusView.cs
+
+
+ ucEventLog.cs
+
+
+ ucHistroy.cs
+
+
+ ucMainStatus.cs
+
+
+ ucModuleMainA.cs
+
+
+ ucModuleMainB.cs
+
+
+ ucParamSet.cs
+
+
+ ucShelfStatus.cs
+
+
+ ucStatus.cs
+
+
+ ucTargetControl.cs
+
+
+ ucTftpClientcs.cs
+
+
+ fmxEtcStatus.cs
+
+
+ fmxExcelFile.cs
+
+
+ fmxFwImageConverter.cs
+
+
+ fmxCalibration.cs
+
+
+ fmxCommConfig.cs
+
+
+ fmxFwUpdate.cs
+
+
+ fmxFwUpdateTftp.cs
+
+
+ fmxHistory.cs
+
+
+ fmxInventoryConfig.cs
+
+
+ fmxMain.cs
+
+
+ fmxModuleDetail.cs
+
+
+ fmxParamConfig.cs
+
+
+ fmxSystemSet.cs
+
+
+ fmxWait.cs
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+ True
+
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if not exist "$(TargetDir)\Library" mkdir "$(TargetDir)\Library"
+if not exist "$(TargetDir)\Library\kerneldlls" mkdir "$(TargetDir)\Library\kerneldlls"
+move "$(TargetDir)\*.dll" "$(TargetDir)\Library"
+move "$(TargetDir)\*.pdb" "$(TargetDir)\Library"
+move "$(TargetDir)\*.xml" "$(TargetDir)\Library"
+copy "$(ProjectDir)\dll\*.dll" "$(TargetDir)\Library"
+copy "$(ProjectDir)\dll\kerneldlls\*.*" "$(TargetDir)\Library\kerneldlls"
+
+if not exist "$(TargetDir)\sql" mkdir "$(TargetDir)\sql"
+copy "$(ProjectDir)\DB Schema\*.sql" "$(TargetDir)\sql"
+
+
+ if exist "$(TargetDir)\library" rmdir /s /q "$(TargetDir)\library"
+if exist "$(TargetDir)\sql" rmdir /s /q "$(TargetDir)\sql"
+
+
+
+ 이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다.
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/LFP_Manager_GL.csproj.bak b/LFP_Manager/LFP_Manager_GL.csproj.bak
new file mode 100644
index 0000000..ea0297e
--- /dev/null
+++ b/LFP_Manager/LFP_Manager_GL.csproj.bak
@@ -0,0 +1,526 @@
+
+
+
+
+ Debug
+ AnyCPU
+ 9.0.21022
+ 2.0
+ {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}
+ WinExe
+ Properties
+ LFP_Manager
+ LFP_Manager_GL
+ v4.5.2
+ 512
+
+
+ 3.5
+
+
+
+
+
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ true
+ x86
+ false
+
+
+ pdbonly
+ false
+ bin\Release\
+ DEBUG;TRACE
+ prompt
+ 4
+ true
+ x86
+ false
+
+
+ Resources\AMO_LOGO.ico
+
+
+
+
+ True
+
+
+ True
+
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+
+ True
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+ True
+
+
+ True
+
+
+
+ True
+
+
+
+ True
+
+
+
+
+ ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll
+
+
+ ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll
+
+
+ dll\IPAddressControlLib.dll
+
+
+ dll\log4net.dll
+
+
+ False
+ dll\SnmpSharpNet.dll
+
+
+
+
+
+ 3.5
+
+
+
+ ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net451\System.Data.SQLite.dll
+
+
+ ..\packages\System.Data.SQLite.EF6.1.0.113.0\lib\net451\System.Data.SQLite.EF6.dll
+
+
+ ..\packages\System.Data.SQLite.Linq.1.0.113.0\lib\net451\System.Data.SQLite.Linq.dll
+
+
+
+
+
+
+
+
+ 3.5
+
+
+ 3.5
+
+
+
+
+
+
+
+ dll\Tftp.Net.dll
+
+
+
+
+ UserControl
+
+
+ ucCalibration.cs
+
+
+ UserControl
+
+
+ ucCalibrationView.cs
+
+
+ UserControl
+
+
+ ucCommConfig.cs
+
+
+ UserControl
+
+
+ ucDataLog.cs
+
+
+ UserControl
+
+
+ ucEtcStatusView.cs
+
+
+ UserControl
+
+
+ ucEventLog.cs
+
+
+ UserControl
+
+
+ ucHistroy.cs
+
+
+ UserControl
+
+
+ ucMainStatus.cs
+
+
+ UserControl
+
+
+ ucModuleMainB.cs
+
+
+ UserControl
+
+
+ ucParamSet.cs
+
+
+ UserControl
+
+
+ ucShelfStatus.cs
+
+
+ UserControl
+
+
+ ucStatus.cs
+
+
+ UserControl
+
+
+ ucTargetControl.cs
+
+
+ UserControl
+
+
+ ucTftpClientcs.cs
+
+
+ UserControl
+
+
+ ucModuleMainA.cs
+
+
+
+
+ Form
+
+
+ fmxEtcStatus.cs
+
+
+ Form
+
+
+ fmxExcelFile.cs
+
+
+ Form
+
+
+ fmxFwImageConverter.cs
+
+
+ Form
+
+
+ fmxCalibration.cs
+
+
+ Form
+
+
+ fmxFwUpdate.cs
+
+
+ Form
+
+
+ fmxFwUpdateTftp.cs
+
+
+ Form
+
+
+ fmxHistory.cs
+
+
+ Form
+
+
+ fmxInventoryConfig.cs
+
+
+ Form
+
+
+ fmxModuleDetail.cs
+
+
+ Form
+
+
+ fmxParamConfig.cs
+
+
+ Form
+
+
+ fmxSystemSet.cs
+
+
+ Form
+
+
+ fmxWait.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ fmxCommConfig.cs
+
+
+ Form
+
+
+ fmxMain.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ucCalibration.cs
+
+
+ ucCalibrationView.cs
+
+
+ ucCommConfig.cs
+
+
+ ucDataLog.cs
+
+
+ ucEtcStatusView.cs
+
+
+ ucEventLog.cs
+
+
+ ucHistroy.cs
+
+
+ ucMainStatus.cs
+
+
+ ucModuleMainA.cs
+
+
+ ucModuleMainB.cs
+
+
+ ucParamSet.cs
+
+
+ ucShelfStatus.cs
+
+
+ ucStatus.cs
+
+
+ ucTargetControl.cs
+
+
+ ucTftpClientcs.cs
+
+
+ fmxEtcStatus.cs
+
+
+ fmxExcelFile.cs
+
+
+ fmxFwImageConverter.cs
+
+
+ fmxCalibration.cs
+
+
+ fmxCommConfig.cs
+
+
+ fmxFwUpdate.cs
+
+
+ fmxFwUpdateTftp.cs
+
+
+ fmxHistory.cs
+
+
+ fmxInventoryConfig.cs
+
+
+ fmxMain.cs
+
+
+ fmxModuleDetail.cs
+
+
+ fmxParamConfig.cs
+
+
+ fmxSystemSet.cs
+
+
+ fmxWait.cs
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+ True
+
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if not exist "$(TargetDir)\Library" mkdir "$(TargetDir)\Library"
+if not exist "$(TargetDir)\Library\kerneldlls" mkdir "$(TargetDir)\Library\kerneldlls"
+move "$(TargetDir)\*.dll" "$(TargetDir)\Library"
+move "$(TargetDir)\*.pdb" "$(TargetDir)\Library"
+move "$(TargetDir)\*.xml" "$(TargetDir)\Library"
+copy "$(ProjectDir)\dll\*.dll" "$(TargetDir)\Library"
+copy "$(ProjectDir)\dll\kerneldlls\*.*" "$(TargetDir)\Library\kerneldlls"
+
+if not exist "$(TargetDir)\sql" mkdir "$(TargetDir)\sql"
+copy "$(ProjectDir)\DB Schema\*.sql" "$(TargetDir)\sql"
+
+
+ if exist "$(TargetDir)\library" rmdir /s /q "$(TargetDir)\library"
+if exist "$(TargetDir)\sql" rmdir /s /q "$(TargetDir)\sql"
+
+
+
+ 이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다.
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/LFP_Manager_JP.csproj.bak b/LFP_Manager/LFP_Manager_JP.csproj.bak
new file mode 100644
index 0000000..ed92028
--- /dev/null
+++ b/LFP_Manager/LFP_Manager_JP.csproj.bak
@@ -0,0 +1,411 @@
+
+
+
+ Debug
+ AnyCPU
+ 9.0.21022
+ 2.0
+ {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}
+ WinExe
+ Properties
+ LFP_Manager
+ LFP_Manager_JP
+ v4.5.2
+ 512
+
+
+ 3.5
+
+
+
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ true
+ x86
+ false
+
+
+ pdbonly
+ false
+ bin\Release\
+ DEBUG;TRACE
+ prompt
+ 4
+ true
+ x86
+ false
+
+
+ Resources\AMO_LOGO.ico
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+ True
+
+
+
+ True
+
+
+ dll\IPAddressControlLib.dll
+
+
+ dll\log4net.dll
+
+
+ False
+ dll\SnmpSharpNet.dll
+
+
+
+
+ 3.5
+
+
+ False
+ dll\System.Data.SQLite.dll
+
+
+
+
+
+ 3.5
+
+
+ 3.5
+
+
+
+
+
+
+
+ dll\Tftp.Net.dll
+
+
+
+
+ UserControl
+
+
+ ucCalibration.cs
+
+
+ UserControl
+
+
+ ucCommConfig.cs
+
+
+ UserControl
+
+
+ ucDataLog.cs
+
+
+ UserControl
+
+
+ ucEventLog.cs
+
+
+ UserControl
+
+
+ ucHistroy.cs
+
+
+ UserControl
+
+
+ ucMainStatus.cs
+
+
+ UserControl
+
+
+ ucParamSet.cs
+
+
+ UserControl
+
+
+ ucShelfStatus.cs
+
+
+ UserControl
+
+
+ ucStatus.cs
+
+
+ UserControl
+
+
+ ucTargetControl.cs
+
+
+ UserControl
+
+
+ ucTftpClientcs.cs
+
+
+
+
+ Form
+
+
+ fmxExcelFile.cs
+
+
+ Form
+
+
+ fmxFwImageConverter.cs
+
+
+ Form
+
+
+ fmxCalibration.cs
+
+
+ Form
+
+
+ fmxFwUpdate.cs
+
+
+ Form
+
+
+ fmxFwUpdateTftp.cs
+
+
+ Form
+
+
+ fmxHistorycs.cs
+
+
+ Form
+
+
+ fmxInventoryConfig.cs
+
+
+ Form
+
+
+ fmxParamConfig.cs
+
+
+ Form
+
+
+ fmxSystemSet.cs
+
+
+ Form
+
+
+ fmxWait.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ fmxCommConfig.cs
+
+
+ Form
+
+
+ fmxMain.cs
+
+
+
+
+
+
+
+
+
+
+
+
+ ucCalibration.cs
+
+
+ ucCommConfig.cs
+
+
+ ucDataLog.cs
+
+
+ ucEventLog.cs
+
+
+ ucHistroy.cs
+
+
+ ucMainStatus.cs
+
+
+ ucParamSet.cs
+
+
+ ucShelfStatus.cs
+
+
+ ucStatus.cs
+
+
+ ucTargetControl.cs
+
+
+ ucTftpClientcs.cs
+
+
+ fmxExcelFile.cs
+
+
+ fmxFwImageConverter.cs
+
+
+ fmxCalibration.cs
+
+
+ fmxCommConfig.cs
+
+
+ fmxFwUpdate.cs
+
+
+ fmxFwUpdateTftp.cs
+
+
+ fmxHistorycs.cs
+
+
+ fmxInventoryConfig.cs
+
+
+ fmxMain.cs
+
+
+ fmxParamConfig.cs
+
+
+ fmxSystemSet.cs
+
+
+ fmxWait.cs
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+ True
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if not exist "$(TargetDir)\Library" mkdir "$(TargetDir)\Library"
+move "$(TargetDir)\*.dll" "$(TargetDir)\Library"
+move "$(TargetDir)\*.pdb" "$(TargetDir)\Library"
+move "$(TargetDir)\*.xml" "$(TargetDir)\Library"
+
+
+ if not exist "$(TargetDir)\sql" mkdir "$(TargetDir)\sql"
+copy "$(ProjectDir)\DB Schema\*.sql" "$(TargetDir)\sql"
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/LFP_Manager_M20.csproj.bak b/LFP_Manager/LFP_Manager_M20.csproj.bak
new file mode 100644
index 0000000..4641307
--- /dev/null
+++ b/LFP_Manager/LFP_Manager_M20.csproj.bak
@@ -0,0 +1,508 @@
+
+
+
+
+ Debug
+ AnyCPU
+ 9.0.21022
+ 2.0
+ {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}
+ WinExe
+ Properties
+ LFP_Manager
+ LFP_Manager_M20
+ v4.8
+ 512
+
+
+ 3.5
+
+
+
+
+
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ true
+ x86
+ false
+
+
+ pdbonly
+ false
+ bin\Release\
+ DEBUG;TRACE
+ prompt
+ 4
+ true
+ x86
+ false
+
+
+ Resources\AMO_LOGO.ico
+
+
+
+
+ True
+
+
+ True
+
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+
+ True
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+
+ True
+
+
+ True
+
+
+
+ True
+
+
+
+ True
+
+
+
+
+ ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll
+
+
+ ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll
+
+
+ dll\IPAddressControlLib.dll
+
+
+ dll\log4net.dll
+
+
+ False
+ dll\SnmpSharpNet.dll
+
+
+
+
+
+ 3.5
+
+
+
+ ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net451\System.Data.SQLite.dll
+
+
+ ..\packages\System.Data.SQLite.EF6.1.0.113.0\lib\net451\System.Data.SQLite.EF6.dll
+
+
+ ..\packages\System.Data.SQLite.Linq.1.0.113.0\lib\net451\System.Data.SQLite.Linq.dll
+
+
+
+
+
+
+
+
+ 3.5
+
+
+ 3.5
+
+
+
+
+
+
+
+ dll\Tftp.Net.dll
+
+
+
+
+ UserControl
+
+
+ ucCalibration.cs
+
+
+ UserControl
+
+
+ ucCalibrationView.cs
+
+
+ UserControl
+
+
+ ucCommConfig.cs
+
+
+ UserControl
+
+
+ ucDataLog.cs
+
+
+ UserControl
+
+
+ ucEventLog.cs
+
+
+ UserControl
+
+
+ ucHistroy.cs
+
+
+ UserControl
+
+
+ ucMainStatus.cs
+
+
+ UserControl
+
+
+ ucModuleMainB.cs
+
+
+ UserControl
+
+
+ ucParamSet.cs
+
+
+ UserControl
+
+
+ ucShelfStatus.cs
+
+
+ UserControl
+
+
+ ucStatus.cs
+
+
+ UserControl
+
+
+ ucTargetControl.cs
+
+
+ UserControl
+
+
+ ucTftpClientcs.cs
+
+
+ UserControl
+
+
+ ucModuleMainA.cs
+
+
+
+
+ Form
+
+
+ fmxExcelFile.cs
+
+
+ Form
+
+
+ fmxFwImageConverter.cs
+
+
+ Form
+
+
+ fmxCalibration.cs
+
+
+ Form
+
+
+ fmxFwUpdate.cs
+
+
+ Form
+
+
+ fmxFwUpdateTftp.cs
+
+
+ Form
+
+
+ fmxHistory.cs
+
+
+ Form
+
+
+ fmxInventoryConfig.cs
+
+
+ Form
+
+
+ fmxModuleDetail.cs
+
+
+ Form
+
+
+ fmxParamConfig.cs
+
+
+ Form
+
+
+ fmxSystemSet.cs
+
+
+ Form
+
+
+ fmxWait.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ fmxCommConfig.cs
+
+
+ Form
+
+
+ fmxMain.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ucCalibration.cs
+
+
+ ucCalibrationView.cs
+
+
+ ucCommConfig.cs
+
+
+ ucDataLog.cs
+
+
+ ucEventLog.cs
+
+
+ ucHistroy.cs
+
+
+ ucMainStatus.cs
+
+
+ ucModuleMainA.cs
+
+
+ ucModuleMainB.cs
+
+
+ ucParamSet.cs
+
+
+ ucShelfStatus.cs
+
+
+ ucStatus.cs
+
+
+ ucTargetControl.cs
+
+
+ ucTftpClientcs.cs
+
+
+ fmxExcelFile.cs
+
+
+ fmxFwImageConverter.cs
+
+
+ fmxCalibration.cs
+
+
+ fmxCommConfig.cs
+
+
+ fmxFwUpdate.cs
+
+
+ fmxFwUpdateTftp.cs
+
+
+ fmxHistory.cs
+
+
+ fmxInventoryConfig.cs
+
+
+ fmxMain.cs
+
+
+ fmxModuleDetail.cs
+
+
+ fmxParamConfig.cs
+
+
+ fmxSystemSet.cs
+
+
+ fmxWait.cs
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+ True
+
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if not exist "$(TargetDir)\Library" mkdir "$(TargetDir)\Library"
+if not exist "$(TargetDir)\Library\kerneldlls" mkdir "$(TargetDir)\Library\kerneldlls"
+move "$(TargetDir)\*.dll" "$(TargetDir)\Library"
+move "$(TargetDir)\*.pdb" "$(TargetDir)\Library"
+move "$(TargetDir)\*.xml" "$(TargetDir)\Library"
+copy "$(ProjectDir)\dll\*.dll" "$(TargetDir)\Library"
+copy "$(ProjectDir)\dll\kerneldlls\*.*" "$(TargetDir)\Library\kerneldlls"
+
+if not exist "$(TargetDir)\sql" mkdir "$(TargetDir)\sql"
+copy "$(ProjectDir)\DB Schema\*.sql" "$(TargetDir)\sql"
+
+
+ if exist "$(TargetDir)\library" rmdir /s /q "$(TargetDir)\library"
+if exist "$(TargetDir)\sql" rmdir /s /q "$(TargetDir)\sql"
+
+
+
+ 이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다.
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Program.cs b/LFP_Manager/Program.cs
new file mode 100644
index 0000000..a0e08e6
--- /dev/null
+++ b/LFP_Manager/Program.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Windows.Forms;
+
+using LFP_Manager.Forms;
+
+namespace LFP_Manager
+{
+ static class Program
+ {
+ ///
+ /// The main entry point for the application.
+ ///
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new fmxMain());
+ }
+ }
+}
diff --git a/LFP_Manager/Properties/AssemblyInfo.cs b/LFP_Manager/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..f968bc7
--- /dev/null
+++ b/LFP_Manager/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("LFP Monitor Program (LFP Module 48V Series)")]
+[assembly: AssemblyDescription("For LFPM-48xxxD")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("AMG (Amogreentech)")]
+[assembly: AssemblyProduct("LFP Monitor - DBG Port for Delta")]
+[assembly: AssemblyCopyright("Copyright 2024 © Amogreentech. Co., Ltd.")]
+[assembly: AssemblyTrademark("AMG Energy Solution")]
+[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("a97c6f26-af24-466a-888d-dfdba0e4bb78")]
+
+// 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("1.0.1.7")]
+[assembly: AssemblyFileVersion("1.0.1.7")]
diff --git a/LFP_Manager/Properties/Resources.Designer.cs b/LFP_Manager/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..82187f2
--- /dev/null
+++ b/LFP_Manager/Properties/Resources.Designer.cs
@@ -0,0 +1,93 @@
+//------------------------------------------------------------------------------
+//
+// 이 코드는 도구를 사용하여 생성되었습니다.
+// 런타임 버전:4.0.30319.42000
+//
+// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
+// 이러한 변경 내용이 손실됩니다.
+//
+//------------------------------------------------------------------------------
+
+namespace LFP_Manager.Properties {
+ using System;
+
+
+ ///
+ /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다.
+ ///
+ // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder
+ // 클래스에서 자동으로 생성되었습니다.
+ // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을
+ // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.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() {
+ }
+
+ ///
+ /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다.
+ ///
+ [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("LFP_Manager.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을
+ /// 재정의합니다.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ ///
+ /// (아이콘)과(와) 유사한 System.Drawing.Icon 형식의 지역화된 리소스를 찾습니다.
+ ///
+ internal static System.Drawing.Icon AMO_LOGO {
+ get {
+ object obj = ResourceManager.GetObject("AMO_LOGO", resourceCulture);
+ return ((System.Drawing.Icon)(obj));
+ }
+ }
+
+ ///
+ /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
+ ///
+ internal static System.Drawing.Bitmap AMO_LOGO1 {
+ get {
+ object obj = ResourceManager.GetObject("AMO_LOGO1", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
+ ///
+ internal static System.Drawing.Bitmap Delta_Logo_Small_250522 {
+ get {
+ object obj = ResourceManager.GetObject("Delta_Logo_Small_250522", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+ }
+}
diff --git a/LFP_Manager/Properties/Resources.resx b/LFP_Manager/Properties/Resources.resx
new file mode 100644
index 0000000..f1e2cf8
--- /dev/null
+++ b/LFP_Manager/Properties/Resources.resx
@@ -0,0 +1,130 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ ..\Resources\AMO_LOGO1.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\AMO_LOGO.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\Delta_Logo_Small_250522.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
\ No newline at end of file
diff --git a/LFP_Manager/Properties/Settings.Designer.cs b/LFP_Manager/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..d696fde
--- /dev/null
+++ b/LFP_Manager/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+//
+// 이 코드는 도구를 사용하여 생성되었습니다.
+// 런타임 버전:4.0.30319.42000
+//
+// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
+// 이러한 변경 내용이 손실됩니다.
+//
+//------------------------------------------------------------------------------
+
+namespace LFP_Manager.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.3.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/LFP_Manager/Properties/Settings.settings b/LFP_Manager/Properties/Settings.settings
new file mode 100644
index 0000000..3964565
--- /dev/null
+++ b/LFP_Manager/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/LFP_Manager/Properties/licenses.licx b/LFP_Manager/Properties/licenses.licx
new file mode 100644
index 0000000..0465324
--- /dev/null
+++ b/LFP_Manager/Properties/licenses.licx
@@ -0,0 +1,10 @@
+DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.ProgressBarControl, DevExpress.XtraEditors.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraCharts.ChartControl, DevExpress.XtraCharts.v22.2.UI, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraGauges.Win.GaugeControl, DevExpress.XtraGauges.v22.2.Win, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraDataLayout.DataLayoutControl, DevExpress.XtraLayout.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
diff --git a/LFP_Manager/Properties/licenses.licx.bak b/LFP_Manager/Properties/licenses.licx.bak
new file mode 100644
index 0000000..9075858
--- /dev/null
+++ b/LFP_Manager/Properties/licenses.licx.bak
@@ -0,0 +1,13 @@
+DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraGauges.Win.GaugeControl, DevExpress.XtraGauges.v20.1.Win, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraBars.Navigation.OfficeNavigationBar, DevExpress.XtraBars.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraNavBar.NavBarControl, DevExpress.XtraNavBar.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.ProgressBarControl, DevExpress.XtraEditors.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraCharts.ChartControl, DevExpress.XtraCharts.v20.1.UI, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraTreeMap.TreeMapControl, DevExpress.XtraTreeMap.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.Utils.MVVM.MVVMContext, DevExpress.Utils.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
diff --git a/LFP_Manager/Resources/AMO_LOGO.ico b/LFP_Manager/Resources/AMO_LOGO.ico
new file mode 100644
index 0000000..a18b5d2
Binary files /dev/null and b/LFP_Manager/Resources/AMO_LOGO.ico differ
diff --git a/LFP_Manager/Resources/AMO_LOGO1.ico b/LFP_Manager/Resources/AMO_LOGO1.ico
new file mode 100644
index 0000000..a18b5d2
Binary files /dev/null and b/LFP_Manager/Resources/AMO_LOGO1.ico differ
diff --git a/LFP_Manager/Resources/Delta_Logo_Small_250522.png b/LFP_Manager/Resources/Delta_Logo_Small_250522.png
new file mode 100644
index 0000000..0b6aebf
Binary files /dev/null and b/LFP_Manager/Resources/Delta_Logo_Small_250522.png differ
diff --git a/LFP_Manager/Threads/CsDbAsyncTask.cs b/LFP_Manager/Threads/CsDbAsyncTask.cs
new file mode 100644
index 0000000..5f19d37
--- /dev/null
+++ b/LFP_Manager/Threads/CsDbAsyncTask.cs
@@ -0,0 +1,552 @@
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Utils;
+using Microsoft.Extensions.Logging;
+using System;
+using System.Data;
+using System.Data.SQLite;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Threads
+{
+ public class DbAsyncTask : IDisposable
+ {
+ #region FIELDS
+
+ private readonly CommConfig _config;
+ private DeviceSystemData[] _systemData;
+ private readonly short[] _status = new short[2];
+ private readonly short[] _oldStatus = new short[2];
+ private readonly int _moduleId;
+ private readonly int _moduleQuantity;
+ private readonly ILogger _logger;
+
+ private readonly CancellationTokenSource _cancellationTokenSource = new CancellationTokenSource();
+ private Task _dbTask;
+ private readonly SemaphoreSlim _dataLock = new SemaphoreSlim(1, 1);
+ private readonly SemaphoreSlim _statusLock = new SemaphoreSlim(1, 1);
+
+ private volatile bool _isRunning;
+ private volatile bool _disposed;
+
+ // Connection pooling for better performance
+ private readonly object _connectionLock = new object();
+ private SQLiteConnection _connection;
+
+ public event DbDataPrint OnPrint;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public DbAsyncTask(int moduleId, CommConfig config, DeviceSystemData[] systemData, ILogger logger = null)
+ {
+ if (config == null)
+ throw new ArgumentNullException(nameof(config));
+ if (systemData == null)
+ throw new ArgumentNullException(nameof(systemData));
+ if (moduleId <= 0)
+ throw new ArgumentOutOfRangeException(nameof(moduleId), "Module ID must be positive");
+
+ _moduleId = moduleId;
+ _config = config;
+ _systemData = systemData;
+ _logger = logger ?? CreateDefaultLogger();
+
+ _moduleQuantity = CalculateModuleQuantity(_config.CommType, _config.ModuleQty);
+
+ _logger.LogInformation("DbAsyncTask initialized for Module {0} with {1} modules",
+ _moduleId, _moduleQuantity);
+ }
+
+ private static ILogger CreateDefaultLogger()
+ {
+ var loggerFactory = LoggerFactory.Create(builder =>
+ {
+ builder.AddConsole()
+ .AddDebug()
+ .SetMinimumLevel(LogLevel.Information);
+ });
+
+ return loggerFactory.CreateLogger();
+ }
+
+ #endregion
+
+ #region PUBLIC METHODS
+
+ public async Task StartAsync(CancellationToken cancellationToken)
+ {
+ if (_disposed)
+ throw new ObjectDisposedException(nameof(DbAsyncTask));
+
+ if (_isRunning)
+ {
+ _logger.LogWarning("DB thread for Module {0} is already running", _moduleId);
+ return true;
+ }
+
+ try
+ {
+ _logger.LogInformation("Starting DB thread for Module {0}", _moduleId);
+
+ await InitializeDatabaseAsync(cancellationToken).ConfigureAwait(false);
+ await InitializeConnectionAsync().ConfigureAwait(false);
+
+ _dbTask = DbThreadProcessAsync(_cancellationTokenSource.Token);
+ _isRunning = true;
+
+ _logger.LogInformation("DB thread started successfully for Module {0}", _moduleId);
+ OnPrint?.Invoke(this, string.Format("DB thread started for Module {0}", _moduleId));
+
+ return true;
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Failed to start DB thread for Module {0}", _moduleId);
+ OnPrint?.Invoke(this, string.Format("Failed to start DB thread: {0}", ex.Message));
+
+ await CleanupResourcesAsync().ConfigureAwait(false);
+ return false;
+ }
+ }
+
+ public async Task StopAsync(CancellationToken cancellationToken)
+ {
+ if (_disposed || !_isRunning)
+ return;
+
+ _logger.LogInformation("Stopping DB thread for Module {0}", _moduleId);
+
+ _isRunning = false;
+ _cancellationTokenSource.Cancel();
+
+ if (_dbTask != null)
+ {
+ try
+ {
+ await _dbTask.ConfigureAwait(false);
+ _logger.LogInformation("DB thread stopped successfully for Module {0}", _moduleId);
+ }
+ catch (OperationCanceledException)
+ {
+ _logger.LogDebug("DB thread was cancelled for Module {0}", _moduleId);
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Error stopping DB thread for Module {0}", _moduleId);
+ OnPrint?.Invoke(this, string.Format("Error stopping DB thread: {0}", ex.Message));
+ }
+ }
+
+ await CleanupResourcesAsync().ConfigureAwait(false);
+ }
+
+ public async Task UpdateStatusAsync(short status1, short status2, CancellationToken cancellationToken)
+ {
+ await _statusLock.WaitAsync(cancellationToken).ConfigureAwait(false);
+ try
+ {
+ _status[0] = status1;
+ _status[1] = status2;
+ }
+ finally
+ {
+ _statusLock.Release();
+ }
+
+ _logger.LogTrace("Status updated for Module {ModuleId}: Status1={Status1}, Status2={Status2}",
+ _moduleId, status1, status2);
+ }
+
+ public async Task UpdateDataAsync(int moduleId, DeviceSystemData[] systemData, CancellationToken cancellationToken)
+ {
+ if (systemData == null)
+ throw new ArgumentNullException(nameof(systemData));
+
+ await _dataLock.WaitAsync(cancellationToken).ConfigureAwait(false);
+ try
+ {
+ _systemData = new DeviceSystemData[systemData.Length];
+ Array.Copy(systemData, _systemData, systemData.Length);
+ }
+ finally
+ {
+ _dataLock.Release();
+ }
+
+ _logger.LogDebug("System data updated for Module {ModuleId}", moduleId);
+ }
+
+ // Backward compatibility methods
+ public void UpdateStatus(short status1, short status2)
+ {
+ var task = UpdateStatusAsync(status1, status2, CancellationToken.None);
+ task.GetAwaiter().GetResult();
+ }
+
+ public void UpdateData(int moduleId, DeviceSystemData[] systemData)
+ {
+ var task = UpdateDataAsync(moduleId, systemData, CancellationToken.None);
+ task.GetAwaiter().GetResult();
+ }
+
+ #endregion
+
+ #region PRIVATE METHODS
+
+ private static int CalculateModuleQuantity(int commType, int configModuleQty)
+ {
+ if (commType == csConstData.CommType.COMM_RS485)
+ return Math.Max(1, configModuleQty);
+ return 1;
+ }
+
+ private async Task InitializeDatabaseAsync(CancellationToken cancellationToken)
+ {
+ string dbPath = System.IO.Path.GetDirectoryName(Application.ExecutablePath);
+ if (string.IsNullOrEmpty(dbPath))
+ throw new InvalidOperationException("Unable to determine executable path");
+
+ await Task.Run(() => csHistoryFunction.DbCreate(dbPath), cancellationToken).ConfigureAwait(false);
+ }
+
+ private async Task InitializeConnectionAsync()
+ {
+ string dbFilename = System.IO.Path.GetDirectoryName(Application.ExecutablePath) + csDbConstData.DataBase.FileName;
+ string connectionString = string.Format("Data Source={0};Pooling=true;Max Pool Size=10;", dbFilename);
+
+ _connection = new SQLiteConnection(connectionString);
+ await _connection.OpenAsync().ConfigureAwait(false);
+ }
+
+ private async Task DbThreadProcessAsync(CancellationToken cancellationToken)
+ {
+ DateTime lastLogTime = DateTime.MinValue;
+ int logPeriodSeconds = Math.Max(1, _config.DbLogPeriod);
+
+ _logger.LogDebug("DB thread process started for Module {ModuleId}", _moduleId);
+
+ try
+ {
+ while (!cancellationToken.IsCancellationRequested && _isRunning)
+ {
+ try
+ {
+ DateTime currentTime = DateTime.Now;
+
+ if (ShouldLogData(lastLogTime, currentTime, logPeriodSeconds))
+ {
+ await ProcessDatabaseLoggingAsync(currentTime, cancellationToken).ConfigureAwait(false);
+ lastLogTime = currentTime;
+ }
+
+ // Check for alarms
+ await CheckAlarmAsync(cancellationToken).ConfigureAwait(false);
+
+ await Task.Delay(100, cancellationToken).ConfigureAwait(false);
+ }
+ catch (OperationCanceledException)
+ {
+ _logger.LogDebug("DB thread process cancelled for Module {ModuleId}", _moduleId);
+ break;
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "DB thread error for Module {ModuleId}", _moduleId);
+ OnPrint?.Invoke(this, string.Format("DB thread error: {0}", ex.Message));
+
+ // Exponential backoff for error recovery
+ int delay = Math.Min(10000, 1000 * (int)Math.Pow(2, Math.Min(5, 1)));
+ await Task.Delay(delay, cancellationToken).ConfigureAwait(false);
+ }
+ }
+ }
+ finally
+ {
+ _logger.LogDebug("DB thread process completed for Module {ModuleId}", _moduleId);
+ }
+ }
+
+ private static bool ShouldLogData(DateTime lastTime, DateTime currentTime, int periodSeconds)
+ {
+ if (lastTime == DateTime.MinValue)
+ return true;
+
+ TimeSpan timeDiff = currentTime - lastTime;
+ return timeDiff.TotalSeconds >= periodSeconds;
+ }
+
+ private async Task ProcessDatabaseLoggingAsync(DateTime currentTime, CancellationToken cancellationToken)
+ {
+ string modelName = csConstData.MODEL_STR[_config.UartModelIndex];
+ await Task.Run(() => csDbUtils.LogDbCreate(modelName), cancellationToken).ConfigureAwait(false);
+
+ DeviceSystemData[] systemDataCopy;
+ await _dataLock.WaitAsync(cancellationToken).ConfigureAwait(false);
+ try
+ {
+ systemDataCopy = new DeviceSystemData[_systemData.Length];
+ Array.Copy(_systemData, systemDataCopy, _systemData.Length);
+ }
+ finally
+ {
+ _dataLock.Release();
+ }
+
+ await LogDataByCommTypeAsync(modelName, systemDataCopy, currentTime, cancellationToken).ConfigureAwait(false);
+ }
+
+ private async Task LogDataByCommTypeAsync(string modelName, DeviceSystemData[] systemData, DateTime currentTime, CancellationToken cancellationToken)
+ {
+ switch (_config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ case csConstData.CommType.COMM_SNMP:
+ await LogSingleModuleAsync(modelName, systemData, currentTime, cancellationToken).ConfigureAwait(false);
+ break;
+
+ case csConstData.CommType.COMM_RS485:
+ await LogMultipleModulesAsync(modelName, systemData, currentTime, cancellationToken).ConfigureAwait(false);
+ break;
+
+ default:
+ _logger.LogWarning("Unknown communication type: {0}", _config.CommType);
+ break;
+ }
+ }
+
+ private async Task LogSingleModuleAsync(string modelName, DeviceSystemData[] systemData, DateTime currentTime, CancellationToken cancellationToken)
+ {
+ if (_moduleId > 0 && _moduleId <= systemData.Length)
+ {
+ systemData[_moduleId - 1].mNo = _moduleId;
+ await Task.Run(() => csDbUtils.BmsLogDataInsert(modelName, ref systemData[_moduleId - 1], currentTime, 1000), cancellationToken)
+ .ConfigureAwait(false);
+ }
+ }
+
+ private async Task LogMultipleModulesAsync(string modelName, DeviceSystemData[] systemData, DateTime currentTime, CancellationToken cancellationToken)
+ {
+ if (_moduleQuantity <= 1)
+ {
+ await LogSingleModuleAsync(modelName, systemData, currentTime, cancellationToken).ConfigureAwait(false);
+ return;
+ }
+
+ using (var semaphore = new SemaphoreSlim(Environment.ProcessorCount))
+ {
+ var tasks = new Task[Math.Min(_moduleQuantity, systemData.Length)];
+
+ for (int i = 0; i < tasks.Length; i++)
+ {
+ int moduleIndex = i;
+ tasks[i] = ProcessModuleAsync(semaphore, modelName, systemData, moduleIndex, currentTime, cancellationToken);
+ }
+
+ await Task.WhenAll(tasks).ConfigureAwait(false);
+ }
+ }
+
+ private async Task ProcessModuleAsync(SemaphoreSlim semaphore, string modelName, DeviceSystemData[] systemData, int index, DateTime currentTime, CancellationToken cancellationToken)
+ {
+ await semaphore.WaitAsync(cancellationToken).ConfigureAwait(false);
+ try
+ {
+ systemData[index].mNo = index + 1;
+ await Task.Run(() => csDbUtils.BmsLogDataInsert(modelName, ref systemData[index], currentTime, 1000), cancellationToken)
+ .ConfigureAwait(false);
+ }
+ finally
+ {
+ semaphore.Release();
+ }
+ }
+
+ private async Task CheckAlarmAsync(CancellationToken cancellationToken)
+ {
+ short[] currentStatus = new short[2];
+ short[] previousStatus = new short[2];
+
+ await _statusLock.WaitAsync(cancellationToken).ConfigureAwait(false);
+ try
+ {
+ Array.Copy(_status, currentStatus, 2);
+ Array.Copy(_oldStatus, previousStatus, 2);
+ }
+ finally
+ {
+ _statusLock.Release();
+ }
+
+ if (HasStatusChanged(currentStatus, previousStatus))
+ {
+ await ProcessAlarmChangesAsync(currentStatus, previousStatus, cancellationToken).ConfigureAwait(false);
+
+ await _statusLock.WaitAsync(cancellationToken).ConfigureAwait(false);
+ try
+ {
+ Array.Copy(_status, _oldStatus, 2);
+ }
+ finally
+ {
+ _statusLock.Release();
+ }
+ }
+ }
+
+ private static bool HasStatusChanged(short[] current, short[] previous)
+ {
+ return current[0] != previous[0] || current[1] != previous[1];
+ }
+
+ private async Task ProcessAlarmChangesAsync(short[] currentStatus, short[] previousStatus, CancellationToken cancellationToken)
+ {
+ bool[] currentBits1 = csUtils.Int16ToBitArray(currentStatus[0]);
+ bool[] currentBits2 = csUtils.Int16ToBitArray(currentStatus[1]);
+ bool[] previousBits1 = csUtils.Int16ToBitArray(previousStatus[0]);
+ bool[] previousBits2 = csUtils.Int16ToBitArray(previousStatus[1]);
+
+ _logger.LogTrace("Processing alarm changes for Module {ModuleId}", _moduleId);
+ await CheckCellVoltageAlarmAsync(currentBits1, currentBits2, previousBits1, previousBits2, cancellationToken).ConfigureAwait(false);
+ }
+
+ private async Task CheckCellVoltageAlarmAsync(bool[] currentBits1, bool[] currentBits2, bool[] previousBits1, bool[] previousBits2, CancellationToken cancellationToken)
+ {
+ // Cell Over/Under Voltage Check
+ if (previousBits2[0] != currentBits2[0])
+ {
+ if (currentBits2[0])
+ {
+ await InsertAlarmRecordAsync(csDbConstData.DB_ALARM.CELL_UNDER_VOLTAGE, csDbConstData.DB_ALARM.FLAG_TRIP, cancellationToken).ConfigureAwait(false);
+ }
+ else
+ {
+ await HandleVoltageWarningOrReleaseAsync(currentBits1, previousBits1, cancellationToken).ConfigureAwait(false);
+ }
+ }
+ else if (previousBits1[0] != currentBits1[0])
+ {
+ await HandleVoltageWarningOrReleaseAsync(currentBits1, previousBits1, cancellationToken).ConfigureAwait(false);
+ }
+ }
+
+ private async Task HandleVoltageWarningOrReleaseAsync(bool[] currentBits1, bool[] previousBits1, CancellationToken cancellationToken)
+ {
+ int flag = currentBits1[0] ?
+ csDbConstData.DB_ALARM.FLAG_WARNING :
+ csDbConstData.DB_ALARM.FLAG_RELEASE;
+
+ await InsertAlarmRecordAsync(csDbConstData.DB_ALARM.CELL_UNDER_VOLTAGE, flag, cancellationToken).ConfigureAwait(false);
+ }
+
+ private async Task InsertAlarmRecordAsync(int alarmCode, int flagCode, CancellationToken cancellationToken)
+ {
+ if (_connection == null || _connection.State != ConnectionState.Open)
+ {
+ await InitializeConnectionAsync().ConfigureAwait(false);
+ }
+
+ using (var transaction = _connection.BeginTransaction())
+ {
+ try
+ {
+ using (var command = _connection.CreateCommand())
+ {
+ command.Transaction = transaction;
+ command.CommandText = string.Format(
+ "INSERT INTO {0} (HTime, model, sno, alarm_name, alarm_code, flag_name, flag, param1, param2) " +
+ "VALUES (@HTime, @model, @sno, @alarm_name, @alarm_code, @flag_name, @flag, @param1, @param2)",
+ csDbConstData.DataBase.TableName);
+
+ AddParameters(command, alarmCode, flagCode);
+
+ await Task.Run(() => command.ExecuteNonQuery(), cancellationToken).ConfigureAwait(false);
+ }
+ transaction.Commit();
+ }
+ catch
+ {
+ transaction.Rollback();
+ throw;
+ }
+ }
+ }
+
+ private static void AddParameters(SQLiteCommand command, int alarmCode, int flagCode)
+ {
+ var parameters = new[]
+ {
+ new SQLiteParameter("@HTime", DbType.DateTime) { Value = DateTime.Now },
+ new SQLiteParameter("@model", DbType.String) { Value = "AAA" },
+ new SQLiteParameter("@sno", DbType.Int16) { Value = 1 },
+ new SQLiteParameter("@alarm_name", DbType.String) { Value = csDbConstData.DB_ALARM.ALARM_NAME[alarmCode] },
+ new SQLiteParameter("@alarm_code", DbType.Int16) { Value = alarmCode },
+ new SQLiteParameter("@flag_name", DbType.String) { Value = csDbConstData.DB_ALARM.FLAG_NAME[flagCode] },
+ new SQLiteParameter("@flag", DbType.Int16) { Value = flagCode },
+ new SQLiteParameter("@param1", DbType.Decimal) { Value = 0.0m },
+ new SQLiteParameter("@param2", DbType.Decimal) { Value = 0.0m }
+ };
+
+ command.Parameters.AddRange(parameters);
+ }
+
+ private async Task CleanupResourcesAsync()
+ {
+ if (_connection != null)
+ {
+ try
+ {
+ if (_connection.State == ConnectionState.Open)
+ {
+ _connection.Close();
+ }
+ _connection.Dispose();
+ _connection = null;
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Error cleaning up database connection for Module {0}", _moduleId);
+ }
+ }
+
+ await Task.CompletedTask.ConfigureAwait(false);
+ }
+
+ #endregion
+
+ #region DISPOSE PATTERN
+
+ public void Dispose()
+ {
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+
+ protected virtual void Dispose(bool disposing)
+ {
+ if (!_disposed && disposing)
+ {
+ try
+ {
+ StopAsync(CancellationToken.None).GetAwaiter().GetResult();
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Error during disposal for Module {0}", _moduleId);
+ }
+
+ _cancellationTokenSource?.Dispose();
+ _dataLock?.Dispose();
+ _statusLock?.Dispose();
+ _connection?.Dispose();
+
+ _disposed = true;
+ }
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Threads/CsRs232Thread124050.cs b/LFP_Manager/Threads/CsRs232Thread124050.cs
new file mode 100644
index 0000000..59c86ee
--- /dev/null
+++ b/LFP_Manager/Threads/CsRs232Thread124050.cs
@@ -0,0 +1,706 @@
+using System;
+using System.Threading;
+using System.IO.Ports;
+using System.Windows.Forms;
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Utils;
+
+namespace LFP_Manager.Threads
+{
+ public sealed class CsRs232Thread124050 : IDisposable
+ {
+ #region ENUMS
+
+ private enum CommandType
+ {
+ NoCommand = 0,
+ WriteParam = 1,
+ WriteCoil = 2,
+ WriteRegister = 3,
+ ReadRegister = 4
+ }
+
+ private enum AddressChannel
+ {
+ Channel0 = 0,
+ Channel1 = 1,
+ Channel2 = 2,
+ Channel3 = 3
+ }
+
+ #endregion
+
+ #region CONSTANTS
+
+ private static class Constants
+ {
+ public const int BUFFER_SIZE = 512;
+ public const int DEFAULT_BAUD_RATE = 115200;
+ public const int MAX_TIMEOUT_COUNT = 5;
+ public const int DEFAULT_DATA_BITS = 8;
+ public const int POLLING_INTERVAL = 100;
+ public const int ERROR_RETRY_DELAY = 1000;
+ }
+
+ #endregion
+
+ #region PRIVATE FIELDS
+
+ private readonly object _lockObject = new object();
+ private readonly CommConfig _config;
+ private DeviceSystemData _systemData;
+ private readonly CancellationTokenSource _cancellationTokenSource;
+ private volatile bool _isRunning;
+ private volatile bool _isDisposed;
+
+ private SerialPort _serialPort;
+ private Thread _commThread;
+
+ private readonly byte[] _receiveBuffer;
+ private readonly byte[] _readBuffer;
+ private int _bufferStart;
+ private int _bufferEnd;
+ private ushort _readPosition;
+ private bool _bufferStarted;
+
+ private readonly TUartTxBuff _uartTxBuff;
+
+ private int _systemId;
+ private bool _uartPolling;
+ private bool _autoUartTx;
+ private AddressChannel _currentChannel;
+
+ private ushort _requestRegAddr;
+ private ushort _requestRegLen;
+ private bool _responseFlag;
+ private int _responseType;
+ private CommandType _currentCommand;
+ private int _timeoutCount;
+
+ private ushort _writeRegAddr;
+ private short _writeCoilRegData;
+ private byte[] _writeRegData;
+
+ #endregion
+
+ #region EVENTS
+
+ public event UartDataUpdate OnUpdate;
+ public event UartDataRecv OnDataRecv;
+ public event UartDataPrint OnPrint;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public CsRs232Thread124050(int systemId, CommConfig config, ref DeviceSystemData systemData)
+ {
+ if (config == null)
+ throw new ArgumentNullException(nameof(config));
+
+ _systemId = systemId;
+ _config = config;
+ _systemData = systemData;
+ _cancellationTokenSource = new CancellationTokenSource();
+
+ _receiveBuffer = new byte[Constants.BUFFER_SIZE];
+ _readBuffer = new byte[Constants.BUFFER_SIZE];
+ _uartTxBuff = new TUartTxBuff();
+ _autoUartTx = true;
+
+ InitializeSerialPort();
+ }
+
+ private void InitializeSerialPort()
+ {
+ try
+ {
+ _serialPort = new SerialPort();
+ _serialPort.BaudRate = Constants.DEFAULT_BAUD_RATE;
+ _serialPort.DataBits = Constants.DEFAULT_DATA_BITS;
+ _serialPort.StopBits = StopBits.One;
+ _serialPort.Parity = Parity.None;
+ _serialPort.ReadTimeout = 500;
+ _serialPort.WriteTimeout = 500;
+
+ _serialPort.DataReceived += SerialPort_DataReceived;
+ _serialPort.ErrorReceived += SerialPort_ErrorReceived;
+ _serialPort.PinChanged += SerialPort_PinChanged;
+ }
+ catch (Exception ex)
+ {
+ if (OnPrint != null)
+ {
+ OnPrint(this, string.Format("Failed to initialize serial port: {0}", ex.Message));
+ }
+ throw;
+ }
+ }
+
+ #endregion
+
+ #region PUBLIC METHODS
+
+ public bool Start(ref CommConfig config, int systemId, bool polling)
+ {
+ ThrowIfDisposed();
+
+ lock (_lockObject)
+ {
+ if (_isRunning)
+ return false;
+
+ _systemId = systemId;
+ _uartPolling = polling;
+
+ try
+ {
+ if (OpenPort(config.UartPort))
+ {
+ _isRunning = true;
+ _commThread = new Thread(CommThreadProcess);
+ _commThread.IsBackground = true;
+ _commThread.Name = "UART_Communication_Thread";
+ _commThread.Priority = ThreadPriority.AboveNormal;
+ _commThread.Start();
+ return true;
+ }
+ }
+ catch (Exception ex)
+ {
+ if (OnPrint != null)
+ {
+ OnPrint(this, string.Format("Failed to start UART thread: {0}", ex.Message));
+ }
+ }
+
+ return false;
+ }
+ }
+
+ public void Stop()
+ {
+ if (_isDisposed)
+ return;
+
+ lock (_lockObject)
+ {
+ _isRunning = false;
+ if (_cancellationTokenSource != null)
+ {
+ _cancellationTokenSource.Cancel();
+ }
+ ClosePort();
+ }
+ }
+
+ public void Dispose()
+ {
+ if (_isDisposed)
+ return;
+
+ Stop();
+
+ lock (_lockObject)
+ {
+ if (_cancellationTokenSource != null)
+ {
+ _cancellationTokenSource.Dispose();
+ }
+ if (_serialPort != null)
+ {
+ _serialPort.Dispose();
+ }
+ _isDisposed = true;
+ }
+
+ GC.SuppressFinalize(this);
+ }
+
+ public void SetPolling(bool flag, int systemId, ref DeviceSystemData systemData)
+ {
+ ThrowIfDisposed();
+
+ lock (_lockObject)
+ {
+ _systemId = systemId;
+ _uartPolling = flag;
+ _systemData = systemData;
+ _systemData.mNo = systemId;
+ }
+ }
+
+ public void SetAutoTx(bool autoTx)
+ {
+ ThrowIfDisposed();
+
+ lock (_lockObject)
+ {
+ _autoUartTx = autoTx;
+ }
+ }
+
+ public void SetWriteCoilReg(ushort writeAddr, short writeData)
+ {
+ ThrowIfDisposed();
+
+ lock (_lockObject)
+ {
+ _currentCommand = CommandType.WriteCoil;
+ _writeRegAddr = writeAddr;
+ _writeCoilRegData = writeData;
+ Thread.Sleep(500);
+ }
+ }
+
+ public void SetReadReg(ushort readAddr, ushort readLen, bool replyFlag)
+ {
+ ThrowIfDisposed();
+
+ lock (_lockObject)
+ {
+ _currentCommand = CommandType.ReadRegister;
+ _requestRegAddr = readAddr;
+ _requestRegLen = readLen;
+ _responseFlag = replyFlag;
+ }
+ }
+
+ public void SetWriteReg(ushort writeAddr, short[] writeData)
+ {
+ ThrowIfDisposed();
+
+ if (writeData == null)
+ throw new ArgumentNullException(nameof(writeData));
+
+ lock (_lockObject)
+ {
+ _currentCommand = CommandType.WriteParam;
+ _writeRegAddr = writeAddr;
+
+ TUartTRxData uartTRxData = new TUartTRxData();
+ uartTRxData.type = (int)CommandType.WriteParam;
+ uartTRxData.data = csSerialCommFunction.MakeWriteRegisterData((ushort)_systemId, writeAddr, writeData);
+ uartTRxData.length = uartTRxData.data.Length;
+
+ if (_uartTxBuff != null)
+ {
+ _uartTxBuff.PutBuff(uartTRxData);
+ }
+ }
+ }
+
+ #endregion
+
+ #region PRIVATE METHODS
+
+ private void ThrowIfDisposed()
+ {
+ if (_isDisposed)
+ throw new ObjectDisposedException(GetType().FullName);
+ }
+
+ private bool OpenPort(string portName)
+ {
+ try
+ {
+ if (string.IsNullOrEmpty(portName))
+ throw new ArgumentException("Port name cannot be null or empty", "portName");
+
+ if (_serialPort.IsOpen)
+ _serialPort.Close();
+
+ _serialPort.PortName = portName;
+ _serialPort.Open();
+ return true;
+ }
+ catch (Exception ex)
+ {
+ if (OnPrint != null)
+ {
+ OnPrint(this, string.Format("Failed to open port {0}: {1}", portName, ex.Message));
+ }
+ return false;
+ }
+ }
+
+ private void ClosePort()
+ {
+ try
+ {
+ if (_serialPort != null && _serialPort.IsOpen)
+ _serialPort.Close();
+ }
+ catch (Exception ex)
+ {
+ if (OnPrint != null)
+ {
+ OnPrint(this, string.Format("Error closing port: {0}", ex.Message));
+ }
+ }
+ }
+
+ private void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
+ {
+ try
+ {
+ if (!_serialPort.IsOpen) return;
+
+ int bytesToRead = _serialPort.BytesToRead;
+ if (bytesToRead == 0) return;
+
+ byte[] buffer = new byte[bytesToRead];
+ int bytesRead = _serialPort.Read(buffer, 0, bytesToRead);
+
+ lock (_lockObject)
+ {
+ for (int i = 0; i < bytesRead; i++)
+ {
+ AddToBuffer(buffer[i]);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ if (OnPrint != null)
+ {
+ OnPrint(this, string.Format("Error in data receive: {0}", ex.Message));
+ }
+ }
+ }
+
+ private void SerialPort_ErrorReceived(object sender, SerialErrorReceivedEventArgs e)
+ {
+ if (OnPrint != null)
+ {
+ OnPrint(this, string.Format("Serial port error: {0}", e.EventType));
+ }
+ }
+
+ private void SerialPort_PinChanged(object sender, SerialPinChangedEventArgs e)
+ {
+ if (OnPrint != null)
+ {
+ OnPrint(this, string.Format("Serial pin changed: {0}", e.EventType));
+ }
+ }
+
+ private void AddToBuffer(byte data)
+ {
+ _receiveBuffer[_bufferStart++] = data;
+ _bufferStart %= Constants.BUFFER_SIZE;
+
+ if (_bufferStart == _bufferEnd)
+ {
+ _bufferEnd = (_bufferEnd + 1) % Constants.BUFFER_SIZE;
+ }
+ }
+
+ private int GetFromBuffer()
+ {
+ if (_bufferStart == _bufferEnd)
+ return 0;
+
+ int result = 0x0100 + _receiveBuffer[_bufferEnd++];
+ _bufferEnd %= Constants.BUFFER_SIZE;
+ return result;
+ }
+
+ private void FlushBuffer()
+ {
+ _bufferStart = _bufferEnd = 0;
+ }
+
+ private void ProcessReceivedData()
+ {
+ if (_readPosition >= Constants.BUFFER_SIZE)
+ {
+ ResetReceiveState();
+ return;
+ }
+
+ if (!_bufferStarted)
+ {
+ int data = GetFromBuffer();
+ if ((data & 0xFF) == _systemId || (data & 0xFF) == 0x7F)
+ {
+ _readPosition = 0;
+ _readBuffer[_readPosition++] = (byte)(data & 0xFF);
+ _bufferStarted = true;
+ }
+ return;
+ }
+
+ int receivedByte = GetFromBuffer();
+ if ((receivedByte & 0x0100) == 0)
+ return;
+
+ _readBuffer[_readPosition++] = (byte)(receivedByte & 0xFF);
+
+ ProcessModbusResponse();
+ }
+
+ private void ProcessModbusResponse()
+ {
+ int result = csSerialCommFunction.ModbusPacketFromSlaveCheck(_readBuffer, _readPosition);
+
+ switch (result)
+ {
+ case 0: // Need more data
+ return;
+
+ case 1: // Valid packet
+ if (OnPrint != null)
+ {
+ OnPrint(this, csLog.trx_data_print(_readBuffer, _readPosition, 1));
+ }
+ _timeoutCount = 0;
+ ProcessValidResponse();
+ break;
+
+ case 2: // Firmware update packet
+ if (OnPrint != null)
+ {
+ OnPrint(this, csLog.trx_data_print(_readBuffer, _readPosition, 1));
+ }
+ _timeoutCount = 0;
+ ProcessFirmwareResponse();
+ break;
+
+ case -1: // Error packet
+ ResetReceiveState();
+ break;
+ }
+ }
+
+ private void ProcessValidResponse()
+ {
+ try
+ {
+ int moduleId = _readBuffer[0];
+ if (moduleId > 0) moduleId--;
+
+ _systemData.CommFail = false;
+ _systemData.ShelfCommFail = false;
+
+ if (_responseType == 0)
+ {
+ short[] resultCode = csSerialCommFunction124050.SerialRxProcess(_readBuffer, _requestRegAddr, _readPosition, ref _systemData);
+ if (OnUpdate != null)
+ {
+ OnUpdate(this, ref _systemData);
+ }
+ }
+ else
+ {
+ _responseType = 0;
+ if (OnDataRecv != null)
+ {
+ byte[] responseData = new byte[_readPosition];
+ Array.Copy(_readBuffer, responseData, _readPosition);
+ OnDataRecv(responseData);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ if (OnPrint != null)
+ {
+ OnPrint(this, string.Format("Error processing valid response: {0}", ex.Message));
+ }
+ }
+ finally
+ {
+ ResetReceiveState();
+ }
+ }
+
+ private void ProcessFirmwareResponse()
+ {
+ try
+ {
+ if (OnDataRecv != null)
+ {
+ byte[] responseData = new byte[_readPosition];
+ Array.Copy(_readBuffer, responseData, _readPosition);
+ OnDataRecv(responseData);
+ }
+ }
+ catch (Exception ex)
+ {
+ if (OnPrint != null)
+ {
+ OnPrint(this, string.Format("Error processing firmware response: {0}", ex.Message));
+ }
+ }
+ finally
+ {
+ ResetReceiveState();
+ }
+ }
+
+ private void ResetReceiveState()
+ {
+ _bufferStarted = false;
+ _readPosition = 0;
+ _responseFlag = false;
+ }
+
+ private void CommThreadProcess()
+ {
+ while (_isRunning && !_cancellationTokenSource.Token.IsCancellationRequested)
+ {
+ try
+ {
+ ProcessCommunication();
+ Thread.Sleep(Constants.POLLING_INTERVAL);
+ }
+ catch (Exception ex)
+ {
+ if (OnPrint != null)
+ {
+ OnPrint(this, string.Format("Communication thread error: {0}", ex.Message));
+ }
+ Thread.Sleep(Constants.ERROR_RETRY_DELAY);
+ }
+ }
+ }
+
+ private void ProcessCommunication()
+ {
+ if (_serialPort == null || !_serialPort.IsOpen)
+ return;
+
+ bool writeMode = false;
+ byte[] txData = PrepareTransmitData(ref writeMode);
+
+ if (txData != null)
+ {
+ SendData(txData);
+ if (_responseFlag)
+ {
+ ProcessReceivedData();
+ }
+ }
+ }
+
+ private byte[] PrepareTransmitData(ref bool writeMode)
+ {
+ byte[] txData = null;
+ _responseType = 0;
+
+ if (_uartTxBuff != null && _uartTxBuff.CheckBuff())
+ {
+ TUartTRxData txBuffer = _uartTxBuff.GetBuff();
+ if (txBuffer != null)
+ {
+ txData = txBuffer.data;
+ writeMode = true;
+ _responseFlag = true;
+ _responseType = txBuffer.type;
+ }
+ }
+ else if (_currentCommand == CommandType.WriteCoil)
+ {
+ txData = csSerialCommFunction.MakeWriteCoilData((ushort)_systemId, _writeRegAddr, _writeCoilRegData);
+ _currentCommand = CommandType.NoCommand;
+ _responseFlag = true;
+ }
+ else if (_currentCommand == CommandType.ReadRegister)
+ {
+ txData = csSerialCommFunction.MakeReadRegisterData((ushort)_systemId, csSerialCommFunction.READ_HOLDING_REG, _requestRegAddr, _requestRegLen);
+ _currentCommand = CommandType.NoCommand;
+ _responseFlag = true;
+ }
+ else if (_uartPolling && _autoUartTx)
+ {
+ txData = PreparePollingData();
+ }
+
+ return txData;
+ }
+
+ private byte[] PreparePollingData()
+ {
+ ushort command;
+
+ switch (_currentChannel)
+ {
+ case AddressChannel.Channel0:
+ _currentChannel = AddressChannel.Channel1;
+ _requestRegAddr = 0x0000;
+ _requestRegLen = 0x0040;
+ command = csSerialCommFunction.READ_HOLDING_REG;
+ _responseFlag = true;
+ break;
+
+ case AddressChannel.Channel1:
+ _currentChannel = AddressChannel.Channel2;
+ _requestRegAddr = 0x0040;
+ _requestRegLen = 0x0040;
+ command = csSerialCommFunction.READ_HOLDING_REG;
+ _responseFlag = true;
+ break;
+
+ case AddressChannel.Channel2:
+ _currentChannel = AddressChannel.Channel3;
+ _requestRegAddr = 0x0080;
+ _requestRegLen = 0x0040;
+ command = csSerialCommFunction.READ_HOLDING_REG;
+ _responseFlag = true;
+ break;
+
+ case AddressChannel.Channel3:
+ if (_config.ModuleQty > 1)
+ {
+ _systemId++;
+ if (_systemId > _config.ModuleQty)
+ {
+ _systemId = 1;
+ }
+ }
+ _currentChannel = AddressChannel.Channel0;
+ command = csSerialCommFunction.NO_CMD;
+ _responseFlag = false;
+ break;
+
+ default:
+ _currentChannel = AddressChannel.Channel0;
+ _requestRegAddr = 0x0000;
+ _requestRegLen = 0x0040;
+ command = csSerialCommFunction.READ_HOLDING_REG;
+ break;
+ }
+
+ return command == csSerialCommFunction.NO_CMD ? null :
+ csSerialCommFunction.MakeReadRegisterData((ushort)_systemId, command, _requestRegAddr, _requestRegLen);
+ }
+
+ private void SendData(byte[] data)
+ {
+ try
+ {
+ if (data == null)
+ throw new ArgumentNullException("data");
+
+ FlushBuffer();
+ _serialPort.Write(data, 0, data.Length);
+ if (OnPrint != null)
+ {
+ OnPrint(this, csLog.trx_data_print(data, data.Length, 0));
+ }
+ }
+ catch (Exception ex)
+ {
+ if (OnPrint != null)
+ {
+ OnPrint(this, string.Format("Send data error: {0}", ex.Message));
+ }
+ throw;
+ }
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Threads/CsRs485Thread124050.cs b/LFP_Manager/Threads/CsRs485Thread124050.cs
new file mode 100644
index 0000000..abadab4
--- /dev/null
+++ b/LFP_Manager/Threads/CsRs485Thread124050.cs
@@ -0,0 +1,568 @@
+using System;
+
+using System.Threading;
+using System.IO.Ports;
+using System.Windows.Forms;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Utils;
+using DevExpress.XtraGauges.Core.Model;
+
+namespace LFP_Manager.Threads
+{
+ class CsRs485Thread124050
+ {
+ #region VARIABLES
+
+ private readonly CommConfig Config;
+ private DeviceSystemData[] SystemData;
+ private Thread serialComm = null;
+ private SerialPort sPort = null;
+ private bool SerialPortThreadEnd = true;
+
+ public int ModuleID = 1;
+ private bool UartPolling = false;
+ private bool AutoUartTx = true;
+
+ private int addr_ch = 0;
+ private ushort RequestRegAddr = 0x0000; //Byul Init 0x0000
+ private ushort RequestRegLen = 50;
+ private bool rFlag = false;
+ private int wFlag = 0;
+ private int rFlag2 = 0;
+
+ private ushort ExtReqRegAddr = 0x0000;
+
+ private ushort WriteRegAddr = 0x0000; //Byul Init 0x0000
+ private short WriteCoilRegData = 0;
+ private byte[] WriteRegData;
+ private short WriteParamRegData;
+
+ private TUartTxBuff UartTxBuff;
+
+ public event UartDataUpdateRS485 OnUpdate = null;
+ public event UartDataRecvRS485 OnDataRecv = null;
+ public event UartDataPrintRS485 OnPrint = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public CsRs485Thread124050(int mID, CommConfig aConfig, ref DeviceSystemData[] aSystemData)
+ {
+ ModuleID = mID;
+ Config = aConfig;
+ SystemData = aSystemData;
+
+ UartTxBuff = new TUartTxBuff();
+
+ serialComm = new Thread(uartCommThread);
+ }
+
+ public void disposeThread()
+ {
+ if (sPort != null)
+ {
+ if (sPort.IsOpen)
+ {
+ sPort.Close();
+ }
+ sPort = null;
+ }
+ SerialPortThreadEnd = true;
+ if (serialComm != null)
+ {
+ if (serialComm.IsAlive)
+ {
+ serialComm.Abort();
+ }
+ serialComm = null;
+ }
+ }
+
+ public bool Start(ref CommConfig aConfig, int mID, bool aPolling)
+ {
+ bool result = false;
+
+ ModuleID = mID;
+ UartPolling = aPolling;
+
+ if (Open(aConfig.UartPort, 9600)) //Byul Init 9600
+ {
+ SerialPortThreadEnd = false;
+ serialComm.Start();
+ result = true;
+ }
+ return result;
+ }
+
+ public void Stop()
+ {
+ SerialPortThreadEnd = true;
+ Close();
+ }
+
+ #endregion
+
+ #region COMMPORT CONTROLS
+
+ private void sDataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
+ {
+ byte[] sRead = new byte[1024];
+ int rLen = 0;
+
+ try
+ {
+ rLen = ((SerialPort)sender).Read(sRead, 0, 1024);
+
+ for (int i = 0; i < rLen; i++)
+ {
+ PutBuff(sRead[i]);
+ }
+ }
+ catch (Exception)
+ {
+
+ }
+ }
+
+ private void sErrorReceived(object sender, System.IO.Ports.SerialErrorReceivedEventArgs e)
+ {
+ //
+ //csMakeDataFunction.SetData()
+ }
+
+ private void sPinChanged(object sender, System.IO.Ports.SerialPinChangedEventArgs e)
+ {
+ //
+ }
+
+ private bool Open(string cPort, int cBaudrate)
+ {
+ sPort = new SerialPort();
+ sPort.PortName = cPort;
+ sPort.BaudRate = cBaudrate;
+ sPort.DataReceived += sDataReceived;
+ sPort.ErrorReceived += sErrorReceived;
+ sPort.PinChanged += sPinChanged;
+
+ try
+ {
+ sPort.Open();
+ }
+ catch (Exception ex)
+ {
+ throw new Exception("Error Open - " + ex.Message);
+ }
+
+ return sPort.IsOpen;
+ }
+
+ private void Close()
+ {
+ if (sPort != null)
+ {
+ if (sPort.IsOpen)
+ {
+ sPort.Close();
+ }
+ sPort = null;
+ }
+ }
+
+ #endregion
+
+ #region PUBLIC FUNCTION
+
+ public void SetPolling(bool flag, int mID, ref DeviceSystemData[] aSystemData)
+ {
+ ModuleID = mID;
+ UartPolling = flag;
+ SystemData = aSystemData;
+ SystemData[ModuleID - 1].mNo = ModuleID;
+ }
+
+ public void SetAutoTx(bool autoTx)
+ {
+ AutoUartTx = autoTx;
+ }
+
+ public void SetWriteCoilReg(ushort WriteAddr, short WriteData)
+ {
+ wFlag = 2;
+ WriteRegAddr = WriteAddr;
+ WriteCoilRegData = WriteData;
+
+ for (int i = 0; i < 500; i += 10)
+ {
+ Thread.Sleep(10);
+ Application.DoEvents();
+ }
+ }
+ public void SetWriteReg(ushort WriteAddr, byte[] WriteData, bool ReplyFlag, int type)
+ {
+ WriteRegAddr = WriteAddr;
+
+ TUartTRxData uartTRxData = new TUartTRxData();
+ uartTRxData.type = type;
+ //uartTRxData.data = CsRs485CommFunction124050.MakeWriteRegisterData((ushort)ModuleID, WriteRegAddr, WriteData);
+ uartTRxData.data = WriteData;
+ uartTRxData.length = uartTRxData.data.Length;
+
+ UartTxBuff?.PutBuff(uartTRxData);
+ }
+
+ public void SetParam(ushort WriteAddr, short WriteData)
+ {
+ byte[] sData = CsRs485CommFunction124050.MakeWriteRegisterData((ushort)ModuleID, WriteAddr, WriteData);
+
+ if (sData != null)
+ {
+ TUartTRxData aData = new TUartTRxData();
+ aData.length = sData.Length;
+ aData.data = sData;
+
+ UartTxBuff.PutBuff(aData);
+ }
+ }
+
+ public void SetReadWriteParam(ushort WriteAddr, short WriteData)
+ {
+ byte[] sData = CsRs485CommFunction124050.MakeReadWriteRegisterData((ushort)ModuleID, WriteAddr, WriteData);
+
+ if (sData != null)
+ {
+ TUartTRxData aData = new TUartTRxData();
+ aData.length = sData.Length;
+ aData.data = sData;
+
+ ExtReqRegAddr = WriteAddr;
+
+ UartTxBuff.PutBuff(aData);
+ }
+ }
+
+ #endregion
+
+ #region RX BUFFERING
+
+ private const int BUFFER_SIZE = 512;
+
+ private readonly byte[] rBuffer = new byte[BUFFER_SIZE];
+ private int rBufStart = 0;
+ private int rBufEnd = 0;
+
+ private void PutBuff(byte c)
+ {
+ rBuffer[rBufStart++] = c;
+ rBufStart %= BUFFER_SIZE;
+
+ if (rBufStart == rBufEnd)
+ {
+ rBufEnd++;
+ rBufEnd %= BUFFER_SIZE;
+ }
+ }
+
+ private int GetBuff()
+ {
+ int result = 0;
+
+ if (rBufStart != rBufEnd)
+ {
+ result = 0x0100 + rBuffer[rBufEnd++];
+ rBufEnd %= BUFFER_SIZE;
+ }
+ return result;
+ }
+
+ private void FlushBuff()
+ {
+ rBufStart = rBufEnd = 0;
+ }
+
+ #endregion
+
+ #region TX BUFFERING
+
+ private byte[] MakeWriteRegData(ushort DevID, ushort WriteAddr, ushort WriteLen, ref ushort[] WriteData)
+ {
+ byte[] wData = null;
+
+ if (WriteLen > 0)
+ {
+
+ }
+
+ return wData;
+ }
+
+ private string MakeCheckSum(byte[] sData, int len)
+ {
+ string result = "";
+ int checksum = 0;
+
+ for (int i = 0; i < len; i++)
+ {
+ checksum += sData[i + 1];
+ }
+
+ checksum = ~checksum + 1;
+
+ result = String.Format("{0:X2}{1:X2}", (byte)(checksum >> 8), (byte)checksum);
+
+ return result;
+ }
+
+ private byte[] MakeTxDataDelta(bool wData)
+ {
+ byte[] sData = null;
+
+ if ((UartTxBuff != null) && (UartTxBuff.CheckBuff()))
+ {
+ TUartTRxData sBuff = UartTxBuff.GetBuff();
+ if (sBuff != null)
+ {
+ sData = sBuff.data;
+ wData = true;
+ rFlag = true;
+ rFlag2 = sBuff.type;
+
+ RequestRegAddr = ExtReqRegAddr;
+ }
+ }
+ else
+ {
+ if (AutoUartTx && UartPolling)
+ {
+ ushort sCmd;
+ switch (addr_ch)
+ {
+ case 0: // Battery Status Data
+ addr_ch = 1;
+ RequestRegAddr = 0x0FFF; //Byul Init 0x0000
+ RequestRegLen = 0x4C;
+ sCmd = CsSerialCommFunctionDelta.READ_INPUT_REG; // Command 0x04
+ rFlag = true;
+ break;
+ case 1: // Gyroscope Data
+ addr_ch = 2;
+ RequestRegAddr = 0x4000;
+ RequestRegLen = 7;
+ sCmd = CsSerialCommFunctionDelta.READ_INPUT_REG; // Command 0x17
+ rFlag = true;
+ break;
+ case 2:
+ addr_ch = 3;
+ RequestRegAddr = 0x3000;
+ RequestRegLen = 3;
+ sCmd = CsSerialCommFunctionDelta.READ_INPUT_REG; // Command 0x19
+ rFlag = true;
+ break;
+ //case 3:
+ // addr_ch = 4;
+ // RequestRegAddr = 0x0000;
+ // RequestRegLen = 1;
+ // sCmd = CsSerialCommFunctionDelta.READ_DEV_ID; // Command 0x2B
+ // rFlag = true;
+ // break;
+ case 3:
+ addr_ch = 4;
+ RequestRegAddr = 100;
+ RequestRegLen = 28;
+ sCmd = CsSerialCommFunctionDelta.READ_HOLDING_REG; // Command 0x03
+ rFlag = true;
+ break;
+ case 4:
+ if (Config.ModuleQty > 1)
+ {
+ ModuleID++;
+ if (ModuleID > Config.ModuleQty)
+ {
+ ModuleID = 1;
+ }
+ }
+ addr_ch = 0;
+ sCmd = CsSerialCommFunctionDelta.NO_CMD;
+ rFlag = false;
+ break;
+ default:
+ addr_ch = 0;
+ RequestRegAddr = 0x0FFF; //Byul Init 0x0000
+ RequestRegLen = 27;
+ sCmd = CsSerialCommFunctionDelta.READ_INPUT_REG; // Command 0x04
+ rFlag = true;
+ break;
+ }
+ if (sCmd == CsSerialCommFunctionDelta.NO_CMD)
+ {
+ sData = null;
+ }
+ else if (sCmd == CsSerialCommFunctionDelta.READ_DEV_ID)
+ {
+ sData = CsSerialCommFunctionDelta.MakeReadDevIdRegReqData((ushort)ModuleID, sCmd, RequestRegAddr);
+ }
+ else
+ {
+ sData = CsSerialCommFunctionDelta.MakeReadRegisterData((ushort)ModuleID, sCmd, RequestRegAddr, RequestRegLen);
+ }
+ }
+ }
+ return sData;
+ }
+
+ #endregion
+
+ #region COMM THREAD
+
+ private readonly byte[] ReadBuf = new byte[BUFFER_SIZE];
+ ushort rPosition = 0;
+ bool BuffStart = false;
+
+ private void RecvPacketInit()
+ {
+ BuffStart = false;
+ rPosition = 0;
+ }
+
+ private void uartCommThread()
+ {
+ int RecvTimeout = Config.RecvWaitTime;
+ int getData = 0;
+ byte cData = 0;
+ int[] TimeOutCount = new int[csConstData.SystemInfo.MAX_MODULE_SIZE];
+
+ StartSend:
+ while (SerialPortThreadEnd == false)
+ {
+ if ((sPort == null) || (sPort.IsOpen == false)) continue;
+
+ FlushBuff();
+ byte[] txData = MakeTxDataDelta(false);
+ if (sPort == null) return;
+ if (txData != null)
+ {
+ sPort.Write(txData, 0, txData.Length);
+ OnPrint?.Invoke(this, csLog.trx_data_print(txData, txData.Length, 0));
+ }
+
+ if (rFlag == true)
+ {
+ DateTime rDateTime = DateTime.Now;
+
+ RecvPacketInit();
+
+ while (true)
+ {
+ DateTime nDateTime = rDateTime.AddMilliseconds(RecvTimeout);
+ if (nDateTime < DateTime.Now) break;
+
+ if (((getData = GetBuff()) & 0x0100) != 0x0000)
+ {
+ rDateTime = DateTime.Now;
+
+ cData = (byte)(getData & 0x00FF);
+
+ if (rPosition >= BUFFER_SIZE) RecvPacketInit();
+
+ if (BuffStart == false)
+ {
+ if ((cData == (byte)ModuleID) || (cData == (byte)0x7F))
+ {
+ rPosition = 0;
+ ReadBuf[rPosition++] = cData;
+ BuffStart = true;
+ }
+ }
+ else
+ {
+ ReadBuf[rPosition++] = cData;
+
+ switch (CsRs485CommFunction124050.ModbusPacketFromSlaveCheck(ReadBuf, rPosition))
+ {
+ case 0: // Need more data
+ break;
+ case 1: // Packet OK, no error
+ OnPrint?.Invoke(this, csLog.trx_data_print(ReadBuf, rPosition, 1));
+
+ TimeOutCount[ModuleID - 1] = 0;
+
+ int mID = ReadBuf[0];
+ if (mID > 0) mID--;
+
+ SystemData[mID].CommFail = false;
+ SystemData[mID].ShelfCommFail = false;
+ short[] result_code = CsRs485CommFunction124050.SerialRxProcess(ReadBuf, RequestRegAddr, rPosition, ref SystemData[mID]);
+
+ OnUpdate?.Invoke(this, ref SystemData);
+
+ Thread.Sleep(5);
+ goto StartSend;
+ case 2: // Fw Update Packet OK
+ OnPrint?.Invoke(this, csLog.trx_data_print(ReadBuf, rPosition, 1));
+
+ TimeOutCount[ModuleID - 1] = 0;
+ rFlag = false;
+ if (OnDataRecv != null)
+ {
+ byte[] adata = new byte[rPosition + 1];
+ for (int j = 0; j < adata.Length; j++)
+ {
+ adata[j] = ReadBuf[j];
+ }
+ OnDataRecv(adata);
+ }
+ goto StartSend;
+ case -1: // Packet error
+ RecvPacketInit();
+ Thread.Sleep(100);
+ goto StartSend;
+ default:
+ break;
+ }
+ }
+ Thread.Sleep(1);
+ }
+ else
+ {
+ Thread.Sleep(1);
+ }
+ }
+
+ if (rPosition > 0)
+ {
+ OnPrint?.Invoke(this, csLog.trx_data_print(ReadBuf, rPosition, 1));
+
+ Thread.Sleep(1);
+ }
+ else
+ {
+ TimeOutCount[ModuleID - 1]++;
+ if (TimeOutCount[ModuleID - 1] >= 10)
+ {
+ TimeOutCount[ModuleID - 1] = 10;
+ //SystemData[0].CommFail = true;
+ if (SystemData[ModuleID - 1].ShelfCommFail == false)
+ {
+ SystemData[ModuleID - 1].ShelfCommFail = true;
+ csUtils.DataInit(Config, ref SystemData[ModuleID - 1]);
+ }
+ }
+ Thread.Sleep(100);
+ }
+ OnUpdate?.Invoke(this, ref SystemData);
+ Thread.Sleep(1);
+ }
+ else
+ {
+ Thread.Sleep(10);
+ } /* if (rFlag == true) */
+ rPosition = 0;
+ Thread.Sleep(100);
+ }
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Threads/CsSnmpThread.cs b/LFP_Manager/Threads/CsSnmpThread.cs
new file mode 100644
index 0000000..aed7a72
--- /dev/null
+++ b/LFP_Manager/Threads/CsSnmpThread.cs
@@ -0,0 +1,526 @@
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using SnmpSharpNet;
+using System;
+using System.Net;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+using LFP_Manager.Utils;
+using System.Windows.Forms;
+using static DevExpress.Xpo.Helpers.AssociatedCollectionCriteriaHelper;
+
+namespace LFP_Manager.Threads
+{
+ public delegate void SetResult(string result, bool error);
+ public delegate void DataUpdate(object sender, ref DeviceSystemData rData);
+ class CsSnmpThread
+ {
+ #region VARIABLES
+ private DeviceSystemData SystemData;
+ private CommConfig Config;
+
+ private Thread snmpThread = null;
+ private bool snmpThreadHold = true;
+
+ private string targetIP = "";
+
+ private bool snmpDataRecv = false;
+ private string snmpResult = "";
+
+ private bool AutoSnmpTx = true;
+
+ private int type = 0;
+ private int OidIndex = 0;
+ private int OidMax = 0;
+ private int OidIndexBase = 0;
+
+ private int CommTimeOut = 0;
+
+ private string[] OidList;
+
+ private int SetSnmpMode = 0;
+ private int SetSnmpMode1 = 0;
+ private UInt32 SetSnmpValue = 0;
+ private string SetSnmpStringData;
+
+ public event DataUpdate OnUpdate = null;
+ public event SetResult OnSetResult = null;
+ #endregion
+
+ #region CONSTRUCTORS
+ public CsSnmpThread()
+ {
+ snmpThread = new Thread(snmpThreadFuncA);
+ snmpThread.Start();
+ }
+
+ public CsSnmpThread(CommConfig aConfig, ref DeviceSystemData aSystemData)
+ {
+ Config = aConfig;
+
+ type = Config.SnmpModelIndex;
+
+ OidIndex = 0;
+ OidList = CsSnmpConstData.SnmpOidInfo;
+ OidMax = OidList.Length;
+
+ SystemData = aSystemData;
+
+ snmpThread = new Thread(snmpThreadFuncA);
+ snmpThread.Start();
+ }
+ #endregion
+
+ #region PUBLIC FUNCTION
+ public void disposeThread()
+ {
+ snmpThreadHold = true;
+ snmpThread.Abort();
+ }
+
+ public void Start(string IP, bool autoTx)
+ {
+ targetIP = IP;
+ snmpThreadHold = false;
+
+ AutoSnmpTx = autoTx;
+ }
+
+ public void Stop()
+ {
+ snmpThreadHold = true;
+ }
+
+ public bool GetStatus()
+ {
+ return snmpThreadHold;
+ }
+
+ public string GetResult()
+ {
+ string result = "";
+
+ if (snmpDataRecv)
+ {
+ result = snmpResult;
+ snmpDataRecv = false;
+ }
+ return result;
+ }
+ public void SetAutoTx(bool autoTx)
+ {
+ AutoSnmpTx = autoTx;
+ }
+ #endregion
+
+ #region COMM. THREAD
+
+ public string GetSnmpOidInfo(int index)
+ {
+ return OidList[index];
+ }
+
+ bool SetCmdbySnmp(UdpTarget sTarget, int mode, UInt32 value, string svalue)
+ {
+ bool resultError = false;
+ Pdu SetPdu = new Pdu(PduType.Set);
+
+ // Set a value to unsigned integer
+ SetPdu.VbList.Clear();
+
+ switch (mode)
+ {
+ case 1: // Reset Command
+ SetPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.13.1.0"), new Integer32(Convert.ToInt32(value)));
+ break;
+ case 2: // Module Quantity Set
+ SetPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.2.4.0"), new Integer32(Convert.ToInt32(value)));
+ break;
+ case 3: // Alarm Output Mode
+ SetPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.2.5.0"), new Integer32(Convert.ToInt32(value)));
+ break;
+ case 4: // Manufacture Date
+ SetPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.2.6.0"), new Integer32(Convert.ToInt32(value)));
+ break;
+ case 5: // BMS Serial Number
+ SetPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.2.7.0"), new OctetString(svalue));
+ break;
+ }
+
+ // Set Agent security parameters
+ AgentParameters aparam = new AgentParameters(SnmpVersion.Ver1, new OctetString("public"));
+
+ // Make SNMP request
+ try
+ {
+ // Send request and wait for response
+ SnmpV1Packet result = sTarget.Request(SetPdu, aparam) as SnmpV1Packet;
+
+ // If result is null then agent didn't reply or we couldn't parse the reply.
+ if (result != null)
+ {
+ // ErrorStatus other then 0 is an error returned by
+ // the Agent - see SnmpConstants for error definitions
+ if (result.Pdu.ErrorStatus != 0)
+ {
+ // agent reported an error with the request
+ snmpResult = String.Format("Error in SNMP reply. Error {0} index {1}",
+ result.Pdu.ErrorStatus,
+ result.Pdu.ErrorIndex);
+
+ if (OnSetResult != null)
+ {
+ OnSetResult(snmpResult, true);
+ }
+ }
+ else
+ {
+ // Everything is ok. Agent will return the new value for the OID we changed
+ string resultString;
+ if (result.Pdu.VbList[0].Type == AsnType.OCTETSTRING)
+ resultString = result.Pdu.VbList[0].Value.ToString();
+ else
+ resultString = result.Pdu.VbList[0].Value.ToString();
+
+ snmpResult = String.Format("SNMP Received data. result {0}",
+ resultString);
+
+ OnSetResult?.Invoke(snmpResult, false);
+ }
+ }
+ else
+ {
+ if (snmpDataRecv == false)
+ {
+ snmpResult = DateTime.Now.ToString("[yyyy-MM-dd hh:mm:ss] ") + String.Format("No response received from SNMP agent.");
+ snmpDataRecv = true;
+
+ OnSetResult?.Invoke(snmpResult, true);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ if (snmpDataRecv == false)
+ {
+ snmpResult = "[" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "] " + String.Format("Exception : {0}", ex.Message);
+ snmpDataRecv = true;
+
+ OnSetResult?.Invoke(snmpResult, true);
+ }
+ resultError = true;
+ }
+
+ return resultError;
+ }
+
+ public void SetDataBySnmp(int mode, UInt32 value)
+ {
+ SetSnmpMode = mode;
+ SetSnmpValue = value;
+ }
+
+ public void SetDataBySnmp(int mode, string value)
+ {
+ SetSnmpMode1 = mode;
+ SetSnmpStringData = value;
+ }
+
+ private void snmpThreadFuncA()
+ {
+ while (true)
+ {
+ if (snmpThreadHold == false)
+ {
+ // SNMP community name
+ OctetString community = new OctetString("admin");
+
+ // Define agent parameters class
+ AgentParameters param = new AgentParameters(community);
+ // Set SNMP version to 1 (or 2)
+ param.Version = SnmpVersion.Ver1;
+ // Construct the agent address object
+ // IpAddress class is easy to use here because
+ // it will try to resolve constructor parameter if it doesn't
+ // parse to an IP address
+ String dstAddr = targetIP;
+ IpAddress agent = new IpAddress(dstAddr);
+
+ // Construct target
+ UdpTarget target = new UdpTarget((IPAddress)agent, 161, 1000, 1);
+
+ // Pdu class used for all requests
+ Pdu pdu = new Pdu(PduType.Get);
+
+ if (SetSnmpMode != 0)
+ {
+ SetCmdbySnmp(target, SetSnmpMode, SetSnmpValue, SetSnmpStringData);
+ SetSnmpMode = 0;
+ }
+ else if (SetSnmpMode1 != 0)
+ {
+ SetCmdbySnmp(target, SetSnmpMode1, SetSnmpValue, SetSnmpStringData);
+ SetSnmpMode1 = 0;
+ }
+ else
+ {
+ // SNMP GET
+ while (AutoSnmpTx)
+ {
+ snmpResult = "";
+
+ if ((SetSnmpMode != 0) || (SetSnmpMode1 != 0))
+ {
+ break;
+ }
+
+ pdu.VbList.Clear();
+ pdu.VbList.Add(GetSnmpOidInfo(OidIndex));
+
+ // Make SNMP request
+ try
+ {
+ //SnmpV1Packet result = (SnmpV1Packet)target.Request(pdu, param);
+ target.Timeout = 100;
+ // agent reported an error with the request
+ snmpResult = csLog.trx_msg_print(string.Format("SEND {0}: OID [{1}]"
+ , target.Address.ToString()
+ , pdu.VbList[0].Oid.ToString()
+ )
+ , 0
+ )
+ ;
+ OnSetResult?.Invoke(snmpResult, true);
+
+ SnmpV1Packet result = (SnmpV1Packet)target.Request(pdu, param);
+ // If result is null then agent didn't reply or we couldn't parse the reply.
+ if (result != null)
+ {
+ // ErrorStatus other then 0 is an error returned by
+ // the Agent - see SnmpConstants for error definitions
+ if (result.Pdu.ErrorStatus != 0)
+ {
+ // agent reported an error with the request
+ snmpResult = csLog.trx_msg_print(string.Format("Error in SNMP reply. Error {0} index {1} - {2}"
+ , result.Pdu.ErrorStatus
+ , result.Pdu.ErrorIndex
+ , result.Pdu.VbList[0].Oid.ToString()
+ )
+ , 1
+ )
+ ;
+ OnSetResult?.Invoke(snmpResult, true);
+ }
+ else
+ {
+ snmpResult = csLog.trx_msg_print(string.Format("RECV {0}: OID [{1}]: [{2}]"
+ , target.Address.ToString()
+ , result.Pdu.VbList[0].Oid.ToString()
+ , result.Pdu.VbList[0].Value.ToString()
+ )
+ , 1
+ )
+ ;
+ OnSetResult?.Invoke(snmpResult, true);
+
+ String resultTxt = "";
+ // Reply variables are returned in the same order as they were added
+ // to the VbList
+ //resultTxt = String.Format("[{0}] ({1}): {2}",
+ // result.Pdu.VbList[0].Oid.ToString(),
+ // SnmpConstants.GetTypeName(result.Pdu.VbList[0].Value.Type),
+ // result.Pdu.VbList[0].Value.ToString());
+
+ resultTxt = String.Format(".{0}", result.Pdu.VbList[0].Oid.ToString());
+ uint[] resultInt = (uint[])result.Pdu.VbList[0].Oid;
+
+ int len = resultInt.Length;
+
+ if ((resultInt[0] == 1)
+ && (resultInt[1] == 3)
+ && (resultInt[2] == 6)
+ && (resultInt[3] == 1)
+ && (resultInt[4] == 2)
+ && (resultInt[5] == 1)
+ && (resultInt[6] == 15)
+ )
+ {
+ //double resultDouble = 0.0;
+ if (result.Pdu.VbList[0].Value.Type == AsnType.OCTETSTRING)
+ {
+ try
+ {
+ //resultDouble = Convert.ToDouble(result.Pdu.VbList[0].Value.ToString());
+ csMakeDataFunction.SetSnmpData((int)resultInt[7], result.Pdu.VbList[0].Value.ToString(), ref SystemData);
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message);
+ }
+ }
+ else if (result.Pdu.VbList[0].Type == AsnType.OCTETSTRING)
+ {
+ MessageBox.Show(result.Pdu.VbList[0].Value.ToString());
+ }
+
+ CalcAvgTemperatureModule(ref SystemData, (uint)SystemData.tempQty);
+ CheckShelfCommFail(ref SystemData);
+
+ OnUpdate?.Invoke(this, ref SystemData);
+ }
+
+ CommTimeOut = 0;
+ SystemData.CommFail = false;
+ }
+ Thread.Sleep(50);
+ }
+ else
+ {
+ if (snmpDataRecv == false)
+ {
+ snmpResult = DateTime.Now.ToString("[yyyy-MM-dd hh:mm:ss] ") + String.Format("No response received from SNMP agent.");
+ snmpDataRecv = true;
+ }
+ CommTimeOut++;
+
+ if (CommTimeOut >= 20)
+ {
+ SystemData.CommFail = true;
+ InitModuleData();
+ CommTimeOut = 20;
+ }
+ }
+
+ OidIndex++;
+ OidIndex %= OidMax;
+
+ Thread.Sleep(1);
+ }
+ catch (Exception ex)
+ {
+ snmpResult = csLog.trx_msg_print(string.Format("Exception in SNMP reply. Error {0} - {1}"
+ , pdu.VbList[0].Oid.ToString()
+ , ex.Message
+ )
+ , 1
+ )
+ ;
+ OnSetResult?.Invoke(snmpResult, true);
+ CommTimeOut++;
+
+ if (CommTimeOut >= 10)
+ {
+ SystemData.CommFail = true;
+ InitModuleData();
+ CommTimeOut = 10;
+ }
+ break;
+ }
+ }
+ CheckShelfCommFail(ref SystemData);
+ OnUpdate?.Invoke(this, ref SystemData);
+ }
+ pdu.Clone();
+ target.Close();
+
+ Thread.Sleep(500);
+ }
+ }
+ }
+
+ private void InitModuleData()
+ {
+ SystemData.ValueData.voltageOfPack = 0;
+ SystemData.ValueData.current = 0;
+ SystemData.ValueData.averageCurrent = 0;
+ SystemData.ValueData.rSOC = 0;
+ SystemData.ValueData.stateOfHealth = 0;
+ for (int i = 0; i < SystemData.ValueData.CellVoltage.Length; i++)
+ {
+ SystemData.ValueData.CellVoltage[i] = 0;
+ }
+ for (int i = 0; i < SystemData.ValueData.CellTemperature.Length; i++)
+ {
+ SystemData.ValueData.CellTemperature[i] = 0;
+ }
+ SystemData.AvgData.avgCellVoltage = 0;
+ SystemData.AvgData.diffCellVoltage = 0;
+ SystemData.AvgData.maxCellVoltage = 0;
+ SystemData.AvgData.minCellVoltage = 0;
+ SystemData.AvgData.maxCellNum = 0;
+ SystemData.AvgData.minCellNum = 0;
+
+ SystemData.AvgData.avgTemp = 0;
+ SystemData.AvgData.diffTemp = 0;
+ SystemData.AvgData.maxTemp = 0;
+ SystemData.AvgData.minTemp = 0;
+ SystemData.AvgData.maxTempNum = 0;
+ SystemData.AvgData.minTempNum = 0;
+ }
+
+ private void CheckShelfCommFail(ref DeviceSystemData aSystemData)
+ {
+ if (aSystemData.StatusData.batteryStatus == 0x0003)
+ { aSystemData.ShelfCommFail = true; }
+ else
+ { aSystemData.ShelfCommFail = false; }
+ }
+
+ #endregion
+
+ static void CalcAvgTemperatureModule(ref DeviceSystemData aSystemData, UInt32 tSize)
+ {
+ short i, j;
+ int sum;
+ TMinMax min, max;
+
+ min = new TMinMax();
+ max = new TMinMax();
+
+ sum = 0;
+ max.value = 0;
+ max.num = 0;
+ min.value = 0;
+ min.num = 0;
+
+ j = 0;
+ for (i = 0; i < tSize; i++)
+ {
+ if (j == 0)
+ {
+ max.value = aSystemData.ValueData.CellTemperature[i];
+ max.num = i;
+ min.value = aSystemData.ValueData.CellTemperature[i];
+ min.num = i;
+ }
+
+ if (max.value < aSystemData.ValueData.CellTemperature[i])
+ {
+ max.value = aSystemData.ValueData.CellTemperature[i];
+ max.num = i;
+ }
+ if (min.value > aSystemData.ValueData.CellTemperature[i])
+ {
+ min.value = aSystemData.ValueData.CellTemperature[i];
+ min.num = i;
+ }
+
+ sum += aSystemData.ValueData.CellTemperature[i];
+ j++;
+ }
+
+ if (j == 0)
+ { aSystemData.AvgData.avgTemp = 0; }
+ else
+ { aSystemData.AvgData.avgTemp = (short)(sum / j); }
+
+ aSystemData.AvgData.maxTemp = max.value;
+ aSystemData.AvgData.maxTempNum = max.num;
+ aSystemData.AvgData.minTemp = min.value;
+ aSystemData.AvgData.minTempNum = min.num;
+ }
+ }
+}
diff --git a/LFP_Manager/Threads/CsSnmpThread124050.cs b/LFP_Manager/Threads/CsSnmpThread124050.cs
new file mode 100644
index 0000000..cdad2c4
--- /dev/null
+++ b/LFP_Manager/Threads/CsSnmpThread124050.cs
@@ -0,0 +1,583 @@
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Utils;
+using SnmpSharpNet;
+using System;
+using System.Net;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace LFP_Manager.Threads
+{
+ ///
+ /// 향상된 SNMP 통신 스레드 클래스 - 안전하고 효율적인 리소스 관리
+ ///
+ public class CsSnmpThread124050 : IDisposable
+ {
+ #region CONSTANTS
+ private const int MAX_COMM_TIMEOUT = 20;
+ private const int SNMP_TIMEOUT_MS = 1000;
+ private const int SNMP_RETRIES = 1;
+ private const int SNMP_PORT = 161;
+ private const int THREAD_SLEEP_MS = 50;
+ private const int OPERATION_SLEEP_MS = 500;
+ private const string DEFAULT_COMMUNITY = "admin";
+ #endregion
+
+ #region FIELDS
+ private DeviceSystemData _systemData;
+ private readonly CommConfig _config;
+ private readonly string[] _oidList;
+ private readonly object _lockObject = new object();
+
+ private Task _snmpTask;
+ private CancellationTokenSource _cancellationTokenSource;
+ private volatile bool _disposed = false;
+
+ private string _targetIP = "";
+ private bool _autoSnmpTx = true;
+ private int _oidIndex = 0;
+ private int _commTimeOut = 0;
+
+ // SNMP SET 관련 필드
+ private volatile int _setSnmpMode = 0;
+ private volatile int _setSnmpMode1 = 0;
+ private volatile uint _setSnmpValue = 0;
+ private volatile string _setSnmpStringData = "";
+
+ // 이벤트 및 델리게이트
+ public event DataUpdate OnUpdate;
+ public event SetResult OnSetResult;
+ #endregion
+
+ #region CONSTRUCTORS
+ public CsSnmpThread124050()
+ {
+ _cancellationTokenSource = new CancellationTokenSource();
+ _snmpTask = Task.Run(() => SnmpThreadFunction(_cancellationTokenSource.Token));
+ }
+
+ public CsSnmpThread124050(CommConfig config, ref DeviceSystemData systemData)
+ {
+ _config = config ?? throw new ArgumentNullException(nameof(config));
+ _systemData = systemData ?? throw new ArgumentNullException(nameof(systemData));
+
+ _oidList = CsSnmpConstData124050.SnmpOidInfo;
+ if (_oidList == null || _oidList.Length == 0)
+ {
+ throw new InvalidOperationException("OID 목록이 비어있습니다.");
+ }
+
+ _cancellationTokenSource = new CancellationTokenSource();
+ _snmpTask = Task.Run(() => SnmpThreadFunction(_cancellationTokenSource.Token));
+ }
+ #endregion
+
+ #region PUBLIC METHODS
+ ///
+ /// SNMP 통신 시작
+ ///
+ public void Start(string ip, bool autoTx = true)
+ {
+ if (string.IsNullOrWhiteSpace(ip))
+ throw new ArgumentException("IP 주소가 유효하지 않습니다.", nameof(ip));
+
+ lock (_lockObject)
+ {
+ _targetIP = ip;
+ _autoSnmpTx = autoTx;
+ }
+ }
+
+ ///
+ /// SNMP 통신 중지
+ ///
+ public void Stop()
+ {
+ lock (_lockObject)
+ {
+ _autoSnmpTx = false;
+ }
+ }
+
+ ///
+ /// 현재 상태 반환
+ ///
+ public bool IsRunning => _autoSnmpTx && !_disposed;
+
+ ///
+ /// 자동 전송 모드 설정
+ ///
+ public void SetAutoTx(bool autoTx)
+ {
+ lock (_lockObject)
+ {
+ _autoSnmpTx = autoTx;
+ }
+ }
+
+ ///
+ /// SNMP SET 명령 (정수 값)
+ ///
+ public void SetDataBySnmp(int mode, uint value)
+ {
+ lock (_lockObject)
+ {
+ _setSnmpMode = mode;
+ _setSnmpValue = value;
+ }
+ }
+
+ ///
+ /// SNMP SET 명령 (문자열 값)
+ ///
+ public void SetDataBySnmp(int mode, string value)
+ {
+ lock (_lockObject)
+ {
+ _setSnmpMode1 = mode;
+ _setSnmpStringData = value ?? "";
+ }
+ }
+
+ ///
+ /// 리소스 해제
+ ///
+ public void Dispose()
+ {
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+ #endregion
+
+ #region PRIVATE METHODS
+ protected virtual void Dispose(bool disposing)
+ {
+ if (!_disposed && disposing)
+ {
+ _cancellationTokenSource?.Cancel();
+
+ try
+ {
+ _snmpTask?.Wait(1000); // 5초 대기
+ }
+ catch (OperationCanceledException)
+ {
+ // 정상적인 취소
+ }
+ catch (AggregateException ex) when (ex.InnerExceptions.Count == 1 && ex.InnerException is OperationCanceledException)
+ {
+ // 정상적인 취소
+ }
+
+ _cancellationTokenSource?.Dispose();
+ _disposed = true;
+ }
+ }
+
+ ///
+ /// 메인 SNMP 스레드 함수
+ ///
+ private async Task SnmpThreadFunction(CancellationToken cancellationToken)
+ {
+ while (!cancellationToken.IsCancellationRequested)
+ {
+ try
+ {
+ if (string.IsNullOrEmpty(_targetIP))
+ {
+ await Task.Delay(OPERATION_SLEEP_MS, cancellationToken);
+ continue;
+ }
+
+ using (var target = CreateSnmpTarget())
+ {
+ await ProcessSnmpOperations(target, cancellationToken);
+ }
+
+ await Task.Delay(OPERATION_SLEEP_MS, cancellationToken);
+ }
+ catch (OperationCanceledException)
+ {
+ break;
+ }
+ catch (Exception ex)
+ {
+ LogError($"SNMP 스레드 오류: {ex.Message}");
+ await Task.Delay(1000, cancellationToken);
+ }
+ }
+ }
+
+ ///
+ /// SNMP 타겟 생성
+ ///
+ private UdpTarget CreateSnmpTarget()
+ {
+ var agent = new IpAddress(_targetIP);
+ return new UdpTarget((IPAddress)agent, SNMP_PORT, SNMP_TIMEOUT_MS, SNMP_RETRIES);
+ }
+
+ ///
+ /// SNMP 작업 처리
+ ///
+ private async Task ProcessSnmpOperations(UdpTarget target, CancellationToken cancellationToken)
+ {
+ // SET 명령 처리
+ if (_setSnmpMode != 0)
+ {
+ await ExecuteSetCommand(target, _setSnmpMode, _setSnmpValue, _setSnmpStringData);
+ _setSnmpMode = 0;
+ return;
+ }
+
+ if (_setSnmpMode1 != 0)
+ {
+ await ExecuteSetCommand(target, _setSnmpMode1, _setSnmpValue, _setSnmpStringData);
+ _setSnmpMode1 = 0;
+ return;
+ }
+
+ // GET 명령 처리
+ if (_autoSnmpTx)
+ {
+ await ExecuteGetOperations(target, cancellationToken);
+ }
+ }
+
+ ///
+ /// SNMP SET 명령 실행
+ ///
+ private async Task ExecuteSetCommand(UdpTarget target, int mode, uint value, string stringValue)
+ {
+ try
+ {
+ var setPdu = new Pdu(PduType.Set);
+
+ switch (mode)
+ {
+ case 1: // Reset Command
+ setPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.13.1.0"), new Integer32(Convert.ToInt32(value)));
+ break;
+ case 2: // Module Quantity Set
+ setPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.2.4.0"), new Integer32(Convert.ToInt32(value)));
+ break;
+ case 3: // Alarm Output Mode
+ setPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.2.5.0"), new Integer32(Convert.ToInt32(value)));
+ break;
+ case 4: // Manufacture Date
+ setPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.2.6.0"), new Integer32(Convert.ToInt32(value)));
+ break;
+ case 5: // BMS Serial Number
+ setPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.2.7.0"), new OctetString(stringValue));
+ break;
+ default:
+ LogError($"알 수 없는 SET 모드: {mode}");
+ return false;
+ }
+
+ var param = new AgentParameters(SnmpVersion.Ver1, new OctetString(DEFAULT_COMMUNITY));
+ var result = await Task.Run(() => target.Request(setPdu, param) as SnmpV1Packet);
+
+ return ProcessSetResult(result);
+ }
+ catch (Exception ex)
+ {
+ LogError($"SET 명령 실행 중 오류: {ex.Message}");
+ OnSetResult?.Invoke($"SET 명령 실행 실패: {ex.Message}", true);
+ return false;
+ }
+ }
+
+ ///
+ /// SET 결과 처리
+ ///
+ private bool ProcessSetResult(SnmpV1Packet result)
+ {
+ if (result == null)
+ {
+ LogError("SNMP 에이전트로부터 응답이 없습니다.");
+ OnSetResult?.Invoke("SNMP 에이전트 응답 없음", true);
+ return false;
+ }
+
+ if (result.Pdu.ErrorStatus != 0)
+ {
+ var errorMsg = $"SNMP 응답 오류: Error {result.Pdu.ErrorStatus} index {result.Pdu.ErrorIndex}";
+ LogError(errorMsg);
+ OnSetResult?.Invoke(errorMsg, true);
+ return false;
+ }
+
+ var resultValue = result.Pdu.VbList[0].Value.ToString();
+ var successMsg = $"SNMP SET 성공: {resultValue}";
+ OnSetResult?.Invoke(successMsg, false);
+ return true;
+ }
+
+ ///
+ /// SNMP GET 작업 실행
+ ///
+ private async Task ExecuteGetOperations(UdpTarget target, CancellationToken cancellationToken)
+ {
+ while (_autoSnmpTx && !cancellationToken.IsCancellationRequested)
+ {
+ if (_setSnmpMode != 0 || _setSnmpMode1 != 0)
+ break;
+
+ try
+ {
+ var pdu = new Pdu(PduType.Get);
+ pdu.VbList.Add(GetCurrentOid());
+
+ var param = new AgentParameters(SnmpVersion.Ver1, new OctetString(DEFAULT_COMMUNITY));
+
+ LogTransaction($"SEND {target.Address}: OID [{pdu.VbList[0].Oid}]");
+
+ var result = await Task.Run(() => target.Request(pdu, param) as SnmpV1Packet);
+
+ if (await ProcessGetResult(result, target))
+ {
+ _commTimeOut = 0;
+ _systemData.CommFail = false;
+ }
+ else
+ {
+ HandleCommunicationTimeout();
+ }
+
+ MoveToNextOid();
+ await Task.Delay(THREAD_SLEEP_MS, cancellationToken);
+ }
+ catch (Exception ex)
+ {
+ LogError($"GET 작업 중 오류: {ex.Message}");
+ HandleCommunicationTimeout();
+ break;
+ }
+ }
+
+ UpdateSystemStatus();
+ }
+
+ ///
+ /// GET 결과 처리
+ ///
+ private async Task ProcessGetResult(SnmpV1Packet result, UdpTarget target)
+ {
+ return await Task.Run(() =>
+ {
+ if (result == null)
+ {
+ LogError("SNMP 에이전트로부터 응답이 없습니다.");
+ return false;
+ }
+
+ if (result.Pdu.ErrorStatus != 0)
+ {
+ LogError($"SNMP 응답 오류: Error {result.Pdu.ErrorStatus} index {result.Pdu.ErrorIndex}");
+ return false;
+ }
+
+ LogTransaction($"RECV {target.Address}: OID [{result.Pdu.VbList[0].Oid}]: [{result.Pdu.VbList[0].Value}]");
+
+ // OID 검증 및 데이터 처리
+ var oidArray = (uint[])result.Pdu.VbList[0].Oid;
+ if (IsValidTargetOid(oidArray))
+ {
+ ProcessValidData(result, oidArray);
+ return true;
+ }
+
+ return false;
+ });
+ }
+
+ ///
+ /// 유효한 타겟 OID인지 확인
+ ///
+ private bool IsValidTargetOid(uint[] oidArray)
+ {
+ return oidArray.Length >= 8 &&
+ oidArray[0] == 1 && oidArray[1] == 3 && oidArray[2] == 6 &&
+ oidArray[3] == 1 && oidArray[4] == 2 && oidArray[5] == 1 && oidArray[6] == 15;
+ }
+
+ ///
+ /// 유효한 데이터 처리
+ ///
+ private void ProcessValidData(SnmpV1Packet result, uint[] oidArray)
+ {
+ try
+ {
+ if (result.Pdu.VbList[0].Value.Type == AsnType.OCTETSTRING)
+ {
+ var value = result.Pdu.VbList[0].Value.ToString();
+ csMakeDataFunction124050.SetSnmpData((int)oidArray[7], value, ref _systemData);
+ }
+
+ CalcAvgTemperatureModule(ref _systemData, (uint)_systemData.tempQty);
+ CheckShelfCommFail(ref _systemData);
+
+ OnUpdate?.Invoke(this, ref _systemData);
+ }
+ catch (Exception ex)
+ {
+ LogError($"데이터 처리 중 오류: {ex.Message}");
+ }
+ }
+
+ ///
+ /// 통신 타임아웃 처리
+ ///
+ private void HandleCommunicationTimeout()
+ {
+ _commTimeOut++;
+ if (_commTimeOut >= MAX_COMM_TIMEOUT)
+ {
+ _systemData.CommFail = true;
+ InitModuleData();
+ _commTimeOut = MAX_COMM_TIMEOUT;
+ }
+ }
+
+ ///
+ /// 시스템 상태 업데이트
+ ///
+ private void UpdateSystemStatus()
+ {
+ CheckShelfCommFail(ref _systemData);
+ OnUpdate?.Invoke(this, ref _systemData);
+ }
+
+ ///
+ /// 현재 OID 반환
+ ///
+ private string GetCurrentOid()
+ {
+ return _oidList?[_oidIndex] ?? "";
+ }
+
+ ///
+ /// 다음 OID로 이동
+ ///
+ private void MoveToNextOid()
+ {
+ _oidIndex = (_oidIndex + 1) % (_oidList?.Length ?? 1);
+ }
+
+ ///
+ /// 모듈 데이터 초기화
+ ///
+ private void InitModuleData()
+ {
+ if (_systemData?.ValueData == null) return;
+
+ _systemData.ValueData.voltageOfPack = 0;
+ _systemData.ValueData.current = 0;
+ _systemData.ValueData.averageCurrent = 0;
+ _systemData.ValueData.rSOC = 0;
+ _systemData.ValueData.stateOfHealth = 0;
+
+ Array.Clear(_systemData.ValueData.CellVoltage, 0, _systemData.ValueData.CellVoltage.Length);
+ Array.Clear(_systemData.ValueData.CellTemperature, 0, _systemData.ValueData.CellTemperature.Length);
+
+ if (_systemData.AvgData != null)
+ {
+ _systemData.AvgData.avgCellVoltage = 0;
+ _systemData.AvgData.diffCellVoltage = 0;
+ _systemData.AvgData.maxCellVoltage = 0;
+ _systemData.AvgData.minCellVoltage = 0;
+ _systemData.AvgData.maxCellNum = 0;
+ _systemData.AvgData.minCellNum = 0;
+ _systemData.AvgData.avgTemp = 0;
+ _systemData.AvgData.diffTemp = 0;
+ _systemData.AvgData.maxTemp = 0;
+ _systemData.AvgData.minTemp = 0;
+ _systemData.AvgData.maxTempNum = 0;
+ _systemData.AvgData.minTempNum = 0;
+ }
+ }
+
+ ///
+ /// 선반 통신 실패 확인
+ ///
+ private void CheckShelfCommFail(ref DeviceSystemData systemData)
+ {
+ systemData.ShelfCommFail = systemData.StatusData.batteryStatus == 0x0003;
+ }
+
+ ///
+ /// 평균 온도 계산
+ ///
+ private static void CalcAvgTemperatureModule(ref DeviceSystemData systemData, uint tempSize)
+ {
+ if (systemData?.ValueData?.CellTemperature == null || systemData.AvgData == null)
+ return;
+
+ var temperatures = systemData.ValueData.CellTemperature;
+ var validCount = Math.Min((int)tempSize, temperatures.Length);
+
+ if (validCount == 0)
+ {
+ systemData.AvgData.avgTemp = 0;
+ return;
+ }
+
+ var sum = 0;
+ var max = new { value = temperatures[0], index = 0 };
+ var min = new { value = temperatures[0], index = 0 };
+
+ for (int i = 0; i < validCount; i++)
+ {
+ var temp = temperatures[i];
+ sum += temp;
+
+ if (temp > max.value)
+ max = new { value = temp, index = i };
+ if (temp < min.value)
+ min = new { value = temp, index = i };
+ }
+
+ systemData.AvgData.avgTemp = (short)(sum / validCount);
+ systemData.AvgData.maxTemp = max.value;
+ systemData.AvgData.maxTempNum = max.index;
+ systemData.AvgData.minTemp = min.value;
+ systemData.AvgData.minTempNum = min.index;
+ }
+
+ ///
+ /// 트랜잭션 로그
+ ///
+ private void LogTransaction(string message)
+ {
+ try
+ {
+ var logMessage = csLog.trx_msg_print(message, 1);
+ OnSetResult?.Invoke(logMessage, false);
+ }
+ catch
+ {
+ // 로그 실패 시 무시
+ }
+ }
+
+ ///
+ /// 오류 로그
+ ///
+ private void LogError(string message)
+ {
+ try
+ {
+ var timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+ var logMessage = $"[{timestamp}] {message}";
+ OnSetResult?.Invoke(logMessage, true);
+ }
+ catch
+ {
+ // 로그 실패 시 무시
+ }
+ }
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/LFP_Manager/Threads/CsUartThread124050.cs b/LFP_Manager/Threads/CsUartThread124050.cs
new file mode 100644
index 0000000..0e06f73
--- /dev/null
+++ b/LFP_Manager/Threads/CsUartThread124050.cs
@@ -0,0 +1,765 @@
+using System;
+
+using System.Threading;
+using System.IO.Ports;
+using System.Windows.Forms;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Utils;
+using DevExpress.XtraGauges.Core.Model;
+
+namespace LFP_Manager.Threads
+{
+ class CsUartThread124050
+ {
+ #region VARIABLES
+
+ private readonly CommConfig Config;
+ private DeviceSystemData SystemData;
+ private Thread serialComm = null;
+ private SerialPort sPort = null;
+ private bool SerialPortThreadEnd = true;
+
+ public int SystemId = 0;
+ private bool UartPolling = false;
+ private bool AutoUartTx = true;
+
+ private int addr_ch = 0;
+ private ushort RequestRegAddr = 0x0000; //Byul Init 0x0000
+ private ushort RequestRegLen = 50;
+ private bool rFlag = false;
+ private int rFlag2 = 0;
+ private int wFlag = 0;
+
+ private ushort ReadRegAddr = 0x0000; //Byul Init 0x0000
+ private ushort ReadRegLen = 0x0000; //Byul Init 0x0000
+
+ private ushort WriteRegAddr = 0x0000; //Byul Init 0x0000
+ private short WriteCoilRegData = 0;
+ private byte[] WriteRegData;
+
+ private TUartTxBuff uartTxBuff = null;
+
+ public event UartDataUpdate OnUpdate = null;
+ public event UartDataRecv OnDataRecv = null;
+ public event UartDataPrint OnPrint = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public CsUartThread124050(int sId, CommConfig aConfig, ref DeviceSystemData aSystemData)
+ {
+ SystemId = sId;
+ Config = aConfig;
+ SystemData = aSystemData;
+
+ uartTxBuff = new TUartTxBuff();
+
+ serialComm = new Thread(uartCommThread);
+ }
+
+ public void disposeThread()
+ {
+ if (sPort != null)
+ {
+ if (sPort.IsOpen)
+ {
+ sPort.Close();
+ }
+ sPort = null;
+ }
+ SerialPortThreadEnd = true;
+ if (serialComm != null)
+ {
+ if (serialComm.IsAlive)
+ {
+ serialComm.Abort();
+ }
+ serialComm = null;
+ }
+ }
+
+ public bool Start(ref CommConfig aConfig, int sId, bool aPolling)
+ {
+ bool result = false;
+
+ SystemId = sId;
+ UartPolling = aPolling;
+
+ if (Open(aConfig.UartPort, 115200)) //Byul Init 9600
+ {
+ SerialPortThreadEnd = false;
+ serialComm.Start();
+ result = true;
+ }
+ return result;
+ }
+
+ public void Stop()
+ {
+ SerialPortThreadEnd = true;
+ Close();
+ }
+
+ #endregion
+
+ #region COMMPORT CONTROLS
+
+ private void sDataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
+ {
+ byte[] sRead = new byte[1024];
+ int rLen = 0;
+
+ try
+ {
+ rLen = ((SerialPort)sender).Read(sRead, 0, 1024);
+
+ for (int i = 0; i < rLen; i++)
+ {
+ PutBuff(sRead[i]);
+ }
+ }
+ catch (Exception)
+ {
+
+ }
+ }
+
+ private void sErrorReceived(object sender, System.IO.Ports.SerialErrorReceivedEventArgs e)
+ {
+ //
+ //csMakeDataFunction.SetData()
+ }
+
+ private void sPinChanged(object sender, System.IO.Ports.SerialPinChangedEventArgs e)
+ {
+ //
+ }
+
+ private bool Open(string cPort, int cBaudrate)
+ {
+ sPort = new SerialPort();
+ sPort.PortName = cPort;
+ sPort.BaudRate = cBaudrate;
+ sPort.DataReceived += sDataReceived;
+ sPort.ErrorReceived += sErrorReceived;
+ sPort.PinChanged += sPinChanged;
+
+ try
+ {
+ sPort.Open();
+ }
+ catch (Exception ex)
+ {
+ throw new Exception("Error Open - " + ex.Message);
+ }
+
+ return sPort.IsOpen;
+ }
+
+ private void Close()
+ {
+ if (sPort != null)
+ {
+ if (sPort.IsOpen)
+ {
+ sPort.Close();
+ }
+ sPort = null;
+ }
+ }
+
+ #endregion
+
+ #region PUBLIC FUNCTION
+
+ public void SetPolling(bool flag, int sId, ref DeviceSystemData aSystemData)
+ {
+ SystemId = sId;
+ UartPolling = flag;
+ SystemData = aSystemData;
+ SystemData.mNo = SystemId;
+ }
+
+ public void SetAutoTx(bool autoTx)
+ {
+ AutoUartTx = autoTx;
+ }
+
+ public void SetWriteCoilReg(ushort WriteAddr, short WriteData)
+ {
+ wFlag = 2;
+ WriteRegAddr = WriteAddr;
+ WriteCoilRegData = WriteData;
+
+ for (int i = 0; i < 500; i += 10)
+ {
+ Thread.Sleep(10);
+ Application.DoEvents();
+ }
+ }
+
+ public void SetWriteReg(ushort WriteAddr, byte[] WriteData, bool ReplyFlag, int type)
+ {
+ WriteRegAddr = WriteAddr;
+
+ TUartTRxData uartTRxData = new TUartTRxData();
+ uartTRxData.type = type;
+ //uartTRxData.data = csSerialCommFunction.MakeWriteRegisterData((ushort)SystemId, WriteRegAddr, WriteData);
+ uartTRxData.data = WriteData;
+ uartTRxData.length = uartTRxData.data.Length;
+
+ uartTxBuff?.PutBuff(uartTRxData);
+ }
+ public void SetReadReg(ushort ReadAddr, ushort ReadLen, bool ReplyFlag)
+ {
+ wFlag = 4;
+ ReadRegAddr = ReadAddr;
+ ReadRegLen = ReadLen;
+ }
+
+ public void SetParam(ushort WriteAddr, short[] WriteData)
+ {
+ wFlag = 1;
+
+ WriteRegAddr = WriteAddr;
+
+ TUartTRxData uartTRxData = new TUartTRxData();
+ uartTRxData.type = wFlag;
+ uartTRxData.data = csSerialCommFunction.MakeWriteRegisterData((ushort)SystemId, WriteRegAddr, WriteData);
+ uartTRxData.length = uartTRxData.data.Length;
+
+ uartTxBuff?.PutBuff(uartTRxData);
+ }
+
+ public void SendProcessFromApp(int sId, int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib)
+ {
+ short[] data = null;
+
+ switch (mode)
+ {
+ case csConstData.UART_PARAM_LIST.CELL_UNDER_VOLTAGE: // Cell Under Volatge Parameter
+ data = new short[1];
+ data[0] = aParam.CellUnderVoltageWarning; SetParam((ushort)(mode + 0), data);
+ data[0] = aParam.CellUnderVoltageTrip; SetParam((ushort)(mode + 1), data);
+ data[0] = aParam.CellUnderVoltageRelease; SetParam((ushort)(mode + 2), data);
+ break;
+ case csConstData.UART_PARAM_LIST.CELL_OVER_VOLTAGE: // Cell Over Volatge Parameter
+ data = new short[1];
+ data[0] = aParam.CellOverVoltageWarning; SetParam((ushort)(mode + 0), data);
+ data[0] = aParam.CellOverVoltageTrip; SetParam((ushort)(mode + 1), data);
+ data[0] = aParam.CellOverVoltageRelease; SetParam((ushort)(mode + 2), data);
+ break;
+ case csConstData.UART_PARAM_LIST.PACK_UNDER_VOLTAGE: // Pack Under Volatge Parameter
+ data = new short[1];
+ data[0] = (short)(aParam.SysUnderVoltageWarning * 10); SetParam((ushort)(mode + 0), data);
+ data[0] = (short)(aParam.SysUnderVoltageTrip * 10); SetParam((ushort)(mode + 1), data);
+ data[0] = (short)(aParam.SysUnderVoltageRelease * 10); SetParam((ushort)(mode + 2), data);
+ break;
+ case csConstData.UART_PARAM_LIST.PACK_OVER_VOLTAGE: // Pack Over Volatge Parameter
+ data = new short[1];
+ data[0] = (short)(aParam.SysOverVoltageWarning * 10); SetParam((ushort)(mode + 0), data);
+ data[0] = (short)(aParam.SysOverVoltageTrip * 10); SetParam((ushort)(mode + 1), data);
+ data[0] = (short)(aParam.SysOverVoltageRelease * 10); SetParam((ushort)(mode + 2), data);
+ break;
+ case csConstData.UART_PARAM_LIST.CHG_LOW_TEMPERATURE: // Charge Low Temperature Parameter
+ data = new short[1];
+ data[0] = (short)(aParam.ChaLowTempWarning + 50); SetParam((ushort)(mode + 0), data);
+ data[0] = (short)(aParam.ChaLowTempTrip + 50); SetParam((ushort)(mode + 1), data);
+ data[0] = (short)(aParam.ChaLowTempRelease + 50); SetParam((ushort)(mode + 2), data);
+ break;
+ case csConstData.UART_PARAM_LIST.CHG_HIGH_TEMPERATURE: // Pack High Temperature Parameter
+ data = new short[1];
+ data[0] = (short)(aParam.ChaHighTempWarning + 50); SetParam((ushort)(mode + 0), data);
+ data[0] = (short)(aParam.ChaHighTempTrip + 50); SetParam((ushort)(mode + 1), data);
+ data[0] = (short)(aParam.ChaHighTempRelease + 50); SetParam((ushort)(mode + 2), data);
+ break;
+ case csConstData.UART_PARAM_LIST.DCH_LOW_TEMPERATURE: // Charge Low Temperature Parameter
+ data = new short[1];
+ data[0] = (short)(aParam.DchLowTempWarning + 50); SetParam((ushort)(mode + 0), data);
+ data[0] = (short)(aParam.DchLowTempTrip + 50); SetParam((ushort)(mode + 1), data);
+ data[0] = (short)(aParam.DchLowTempRelease + 50); SetParam((ushort)(mode + 2), data);
+ break;
+ case csConstData.UART_PARAM_LIST.DCH_HIGH_TEMPERATURE: // Pack High Temperature Parameter
+ data = new short[1];
+ data[0] = (short)(aParam.DchHighTempWarning + 50); SetParam((ushort)(mode + 0), data);
+ data[0] = (short)(aParam.DchHighTempTrip + 50); SetParam((ushort)(mode + 1), data);
+ data[0] = (short)(aParam.DchHighTempRelease + 50); SetParam((ushort)(mode + 2), data);
+ break;
+ case csConstData.UART_PARAM_LIST.CHG_OVER_CURRENT: // Charge Over Current Parameter
+ data = new short[1];
+ data[0] = (short)(aParam.ChaOverCurrentReleaseTime * 1); SetParam((ushort)(mode + 0), data);
+ data[0] = (short)(aParam.ChaOverCurrentTrip1 * 10); SetParam((ushort)(mode + 2), data);
+ data[0] = (short)(aParam.ChaOverCurrentTrip2 * 10); SetParam((ushort)(mode + 5), data);
+ break;
+ case csConstData.UART_PARAM_LIST.DCH_OVER_CURRENT: // Discharge Over Current Parameter
+ data = new short[1];
+ data[0] = (short)(aParam.DchOverCurrentReleaseTime * 1); SetParam((ushort)(mode + 0), data);
+ data[0] = (short)(aParam.DchOverCurrentTrip1 * 10); SetParam((ushort)(mode + 2), data);
+ data[0] = (short)(aParam.DchOverCurrentTrip2 * 10); SetParam((ushort)(mode + 5), data);
+ break;
+ case csConstData.UART_PARAM_LIST.LOW_CAPACITY:
+ data = new short[1];
+ data[0] = aParam.LowSocWarning; SetParam((ushort)(mode + 0), data);
+ break;
+ case csConstData.UART_PARAM_LIST.DEFAULT_PARAM: // Default Parameter
+ int i = 0;
+
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+
+ try
+ {
+ data = new short[1];
+
+ i = csConstData.UART_PARAM_LIST.CELL_UNDER_VOLTAGE;
+ data[0] = 0; SetParam((ushort)(i + 0), data);
+ data[0] = 0; SetParam((ushort)(i + 1), data);
+ data[0] = 0; SetParam((ushort)(i + 2), data);
+ i = csConstData.UART_PARAM_LIST.PACK_UNDER_VOLTAGE;
+ data[0] = 0; SetParam((ushort)(i + 0), data);
+ data[0] = 0; SetParam((ushort)(i + 1), data);
+ data[0] = 0; SetParam((ushort)(i + 2), data);
+ i = csConstData.UART_PARAM_LIST.CELL_OVER_VOLTAGE;
+ data[0] = 0; SetParam((ushort)(i + 0), data);
+ data[0] = 0; SetParam((ushort)(i + 1), data);
+ data[0] = 0; SetParam((ushort)(i + 2), data);
+ i = csConstData.UART_PARAM_LIST.PACK_OVER_VOLTAGE;
+ data[0] = 0; SetParam((ushort)(i + 0), data);
+ data[0] = 0; SetParam((ushort)(i + 1), data);
+ data[0] = 0; SetParam((ushort)(i + 2), data);
+
+ i = csConstData.UART_PARAM_LIST.CHG_OVER_CURRENT;
+ data[0] = 0; SetParam((ushort)(i - 2), data);
+ data[0] = 0; SetParam((ushort)(i + 0), data);
+ data[0] = 0; SetParam((ushort)(i + 2), data);
+ data[0] = 0; SetParam((ushort)(i + 5), data);
+ data[0] = 0; SetParam((ushort)(i + 8), data);
+ data[0] = 0; SetParam((ushort)(i + 9), data);
+
+ i = csConstData.UART_PARAM_LIST.DCH_OVER_CURRENT;
+ data[0] = 0; SetParam((ushort)(i - 2), data);
+ data[0] = 0; SetParam((ushort)(i + 0), data);
+ data[0] = 0; SetParam((ushort)(i + 2), data);
+ data[0] = 0; SetParam((ushort)(i + 5), data);
+ data[0] = 0; SetParam((ushort)(i + 8), data);
+ data[0] = 0; SetParam((ushort)(i + 9), data);
+
+ i = csConstData.UART_PARAM_LIST.CHG_LOW_TEMPERATURE;
+ data[0] = 0; SetParam((ushort)(i + 0), data);
+ data[0] = 0; SetParam((ushort)(i + 1), data);
+ data[0] = 0; SetParam((ushort)(i + 2), data);
+ i = csConstData.UART_PARAM_LIST.CHG_HIGH_TEMPERATURE;
+ data[0] = 0; SetParam((ushort)(i + 0), data);
+ data[0] = 0; SetParam((ushort)(i + 1), data);
+ data[0] = 0; SetParam((ushort)(i + 2), data);
+ i = csConstData.UART_PARAM_LIST.DCH_LOW_TEMPERATURE;
+ data[0] = 0; SetParam((ushort)(i + 0), data);
+ data[0] = 0; SetParam((ushort)(i + 1), data);
+ data[0] = 0; SetParam((ushort)(i + 2), data);
+ i = csConstData.UART_PARAM_LIST.DCH_HIGH_TEMPERATURE;
+ data[0] = 0; SetParam((ushort)(i + 0), data);
+ data[0] = 0; SetParam((ushort)(i + 1), data);
+ data[0] = 0; SetParam((ushort)(i + 2), data);
+
+ i = csConstData.UART_PARAM_LIST.LOW_CAPACITY;
+ data[0] = 0; SetParam((ushort)(i + 0), data);
+
+ i = csConstData.UART_PARAM_LIST.ENV_LOW_TEMPERATURE;
+ data[0] = 0; SetParam((ushort)(i + 0), data);
+ data[0] = 0; SetParam((ushort)(i + 1), data);
+ data[0] = 0; SetParam((ushort)(i + 2), data);
+ i = csConstData.UART_PARAM_LIST.ENV_HIGH_TEMPERATURE;
+ data[0] = 0; SetParam((ushort)(i + 0), data);
+ data[0] = 0; SetParam((ushort)(i + 1), data);
+ data[0] = 0; SetParam((ushort)(i + 2), data);
+ }
+ catch (Exception)
+ {
+
+ }
+ break;
+ case 15: // Capcity change
+ data = new short[1];
+ i = csConstData.UART_PARAM_LIST.DESIGN_CAPACITY;
+ data[0] = (short)aCalib.CapCalib.DesignCapacity; SetParam((ushort)(i + 0), data);
+ i = csConstData.UART_PARAM_LIST.SOC_VALUE;
+ data[0] = (short)aCalib.CapCalib.SocValue; SetParam((ushort)(i + 0), data);
+ break;
+ case 16: // Charge Mode
+ data = new short[1];
+ i = csConstData.UART_CALIB_ADDR_LIST.CHAGE_MODE;
+ data[0] = (short)aCalib.ChaMode.Mode; SetParam((ushort)(i + 0), data);
+ data[0] = (short)aCalib.ChaMode.Value; SetParam((ushort)(i + 1), data);
+ break;
+ case 17: // BMS DateTime Set
+ data = new short[2];
+ i = csConstData.UART_CALIB_ADDR_LIST.BMS_DATETIME;
+ data[0] = (short)aCalib.BmsDateTime.sValue[0];
+ data[1] = (short)aCalib.BmsDateTime.sValue[1]; SetParam((ushort)(i + 0), data);
+ break;
+ case 18:
+ data = new short[1];
+ i = csConstData.UART_CALIB_ADDR_LIST.ANTI_THEFT_GYRO;
+ data[0] = (short)aCalib.AntiTheft.GyroScope; SetParam((ushort)(i + 0), data);
+ break;
+ case 19: // Clear Protect
+ data = new short[1];
+ i = csConstData.UART_CALIB_ADDR_LIST.ANTI_THEFT_GYRO;
+ data[0] = (short)0; SetParam((ushort)(i + 0), data);
+ data[0] = (short)aCalib.AntiTheft.GyroScope; SetParam((ushort)(i + 0), data);
+ break;
+ case 20:
+ data = new short[1];
+ i = csConstData.UART_CALIB_ADDR_LIST.ANTI_THEFT_COMM;
+ data[0] = (short)aCalib.AntiTheft.Comm; SetParam((ushort)(i + 0), data);
+ break;
+ case 21: // Cell Balancing Voltage
+ data = new short[1];
+ i = csConstData.UART_CALIB_ADDR_LIST.BAL_VOLT;
+ data[0] = (short)aCalib.BalCalib.Volt; SetParam((ushort)(i + 0), data);
+ break;
+ case 22: // Cell Balancing Diff
+ data = new short[1];
+ i = csConstData.UART_CALIB_ADDR_LIST.BAL_DIFF;
+ data[0] = (short)aCalib.BalCalib.Diff; SetParam((ushort)(i + 0), data);
+ break;
+ default:
+ break;
+ }
+ }
+
+ #endregion
+
+ #region RX BUFFERING
+
+ private const int BUFFER_SIZE = 512;
+
+ private readonly byte[] rBuffer = new byte[BUFFER_SIZE];
+ private int rBufStart = 0;
+ private int rBufEnd = 0;
+
+ private void PutBuff(byte c)
+ {
+ rBuffer[rBufStart++] = c;
+ rBufStart %= BUFFER_SIZE;
+
+ if (rBufStart == rBufEnd)
+ {
+ rBufEnd++;
+ rBufEnd %= BUFFER_SIZE;
+ }
+ }
+
+ private int GetBuff()
+ {
+ int result = 0;
+
+ if (rBufStart != rBufEnd)
+ {
+ result = 0x0100 + rBuffer[rBufEnd++];
+ rBufEnd %= BUFFER_SIZE;
+ }
+ return result;
+ }
+
+ private void FlushBuff()
+ {
+ rBufStart = rBufEnd = 0;
+ }
+
+ #endregion
+
+ #region TX BUFFERING
+
+ private byte[] MakeWriteRegData(ushort DevID, ushort WriteAddr, ushort WriteLen, ref ushort[] WriteData)
+ {
+ byte[] wData = null;
+
+ if (WriteLen > 0)
+ {
+
+ }
+
+ return wData;
+ }
+
+ private string MakeCheckSum(byte[] sData, int len)
+ {
+ string result = "";
+ int checksum = 0;
+
+ for (int i = 0; i < len; i++)
+ {
+ checksum += sData[i + 1];
+ }
+
+ checksum = ~checksum + 1;
+
+ result = String.Format("{0:X2}{1:X2}", (byte)(checksum >> 8), (byte)checksum);
+
+ return result;
+ }
+
+ private byte[] MakeTxDataVision(ref bool wData)
+ {
+ byte[] sData = null;
+
+ rFlag2 = 0;
+
+ if ((uartTxBuff != null) && (uartTxBuff.CheckBuff()))
+ {
+ TUartTRxData sBuff = uartTxBuff.GetBuff();
+ if (sBuff != null)
+ {
+ sData = sBuff.data;
+ wData = true;
+ rFlag = true;
+ rFlag2 = sBuff.type;
+ }
+ }
+ else if (wFlag == 2)
+ {
+ sData = csSerialCommFunction.MakeWriteCoilData((ushort)SystemId, WriteRegAddr, WriteCoilRegData);
+ if (wFlag != 0) wFlag = 0;
+ rFlag = true;
+ }
+ else if (wFlag == 3)
+ {
+ sData = WriteRegData;
+ if (wFlag != 0) wFlag = 0;
+ rFlag = true;
+ }
+ else if (wFlag == 4)
+ {
+ sData = csSerialCommFunction.MakeReadRegisterData((ushort)SystemId, csSerialCommFunction.READ_HOLDING_REG, ReadRegAddr, ReadRegLen);
+ if (wFlag != 0) wFlag = 0;
+ rFlag = true;
+ }
+ else
+ {
+ if (UartPolling && AutoUartTx)
+ {
+ ushort sCmd;
+ switch (addr_ch)
+ {
+ case 0:
+ addr_ch = 1;
+ RequestRegAddr = 0x0000; //Byul Init 0x0000
+ RequestRegLen = 0x0040;
+ sCmd = csSerialCommFunction.READ_HOLDING_REG;
+ rFlag = true;
+ break;
+ case 1:
+ addr_ch = 2;
+ RequestRegAddr = 0x0040;
+ RequestRegLen = 0x0040;
+ sCmd = csSerialCommFunction.READ_HOLDING_REG;
+ rFlag = true;
+ break;
+ case 2:
+ addr_ch = 3;
+ RequestRegAddr = 0x0080;
+ RequestRegLen = 0x0040;
+ sCmd = csSerialCommFunction.READ_HOLDING_REG;
+ rFlag = true;
+ break;
+ case 3:
+ if (Config.ModuleQty > 1)
+ {
+ SystemId++;
+ if (SystemId > Config.ModuleQty)
+ {
+ SystemId = 1;
+ }
+ }
+ addr_ch = 0;
+ sCmd = csSerialCommFunction.NO_CMD;
+ rFlag = false;
+ break;
+ default:
+ addr_ch = 0;
+ RequestRegAddr = 0x0000; //Byul Init 0x0000
+ RequestRegLen = 100;
+ sCmd = csSerialCommFunction.READ_HOLDING_REG;
+ break;
+ }
+ if (sCmd == csSerialCommFunction.NO_CMD)
+ {
+ sData = null;
+ }
+ else
+ {
+ sData = csSerialCommFunction.MakeReadRegisterData((ushort)SystemId, sCmd, RequestRegAddr, RequestRegLen);
+ }
+ }
+ }
+ return sData;
+ }
+
+ #endregion
+
+ #region COMM THREAD
+
+ private readonly byte[] ReadBuf = new byte[BUFFER_SIZE];
+ ushort rPosition = 0;
+ bool BuffStart = false;
+
+ private void RecvPacketInit()
+ {
+ BuffStart = false;
+ rPosition = 0;
+ }
+
+ private void uartCommThread()
+ {
+ int RecvTimeout = Config.RecvWaitTime;
+ int getData = 0;
+ byte cData = 0;
+ int TimeOutCount = 0;
+
+ StartSend:
+ while (SerialPortThreadEnd == false)
+ {
+ if ((sPort == null) || (sPort.IsOpen == false)) continue;
+
+ bool wMode = false;
+ byte[] txData = MakeTxDataVision(ref wMode);
+ if (txData != null)
+ {
+ FlushBuff();
+ sPort.Write(txData, 0, txData.Length);
+ OnPrint?.Invoke(this, csLog.trx_data_print(txData, txData.Length, 0));
+ }
+
+ if (rFlag == true)
+ {
+ RecvPacketInit();
+ DateTime rDateTime = DateTime.Now;
+
+ while (true)
+ {
+ DateTime nDateTime = rDateTime.AddMilliseconds(RecvTimeout);
+ if (nDateTime < DateTime.Now) break;
+
+ if (((getData = GetBuff()) & 0x0100) != 0x0000)
+ {
+ rDateTime = DateTime.Now;
+ cData = (byte)(getData & 0x00FF);
+ if (rPosition >= BUFFER_SIZE) RecvPacketInit();
+
+ if (BuffStart == false)
+ {
+ if ((cData == (byte)SystemId) || (cData == (byte)0x7F))
+ {
+ rPosition = 0;
+ ReadBuf[rPosition++] = cData;
+ BuffStart = true;
+ }
+ }
+ else
+ {
+ ReadBuf[rPosition++] = cData;
+
+ switch (csSerialCommFunction.ModbusPacketFromSlaveCheck(ReadBuf, rPosition))
+ {
+ case 0: // Need more data
+ break;
+ case 1: // Packet OK, no error
+ OnPrint?.Invoke(this, csLog.trx_data_print(ReadBuf, rPosition, 1));
+
+ TimeOutCount = 0;
+
+ int mID = ReadBuf[0];
+ if (mID > 0) mID--;
+
+ SystemData.CommFail = false;
+ SystemData.ShelfCommFail = false;
+
+ if (rFlag2 == 0)
+ {
+ short[] result_code = csSerialCommFunction124050.SerialRxProcess(ReadBuf, RequestRegAddr, rPosition, ref SystemData);
+
+ OnUpdate?.Invoke(this, ref SystemData);
+ }
+ else
+ {
+ rFlag2 = 0;
+ wMode = false;
+ WriteRegAddr = 0;
+ if (OnDataRecv != null)
+ {
+ byte[] adata = new byte[rPosition + 1];
+ for (int j = 0; j < adata.Length; j++) { adata[j] = ReadBuf[j]; }
+ OnDataRecv(adata);
+ }
+ }
+ rFlag = false;
+ Thread.Sleep(100);
+ goto StartSend;
+ case 2: // Fw Update Packet OK
+ OnPrint?.Invoke(this, csLog.trx_data_print(ReadBuf, rPosition, 1));
+
+ TimeOutCount = 0;
+ rFlag = false;
+ if (OnDataRecv != null)
+ {
+ byte[] adata = new byte[rPosition + 1];
+ for (int j = 0; j < adata.Length; j++)
+ {
+ adata[j] = ReadBuf[j];
+ }
+ OnDataRecv(adata);
+ }
+ goto StartSend;
+ case -1: // Packet error
+ RecvPacketInit();
+ Thread.Sleep(100);
+ goto StartSend;
+ default:
+ break;
+ }
+ }
+ }
+ else
+ {
+ Thread.Sleep(1);
+ }
+ }
+
+ if (rPosition > 0)
+ {
+ Thread.Sleep(1);
+ }
+ else
+ {
+ WriteRegAddr = 0;
+ TimeOutCount++;
+ if (TimeOutCount >= 5)
+ {
+ TimeOutCount = 5;
+ //SystemData[0].CommFail = true;
+ if (SystemData.ShelfCommFail == false)
+ {
+ SystemData.ShelfCommFail = true;
+ csUtils.DataInit(Config, ref SystemData);
+ }
+ }
+ Thread.Sleep(100);
+ }
+ OnUpdate?.Invoke(this, ref SystemData);
+ Thread.Sleep(1);
+ }
+ else
+ {
+ Thread.Sleep(100);
+ } /* if (rFlag == true) */
+ rPosition = 0;
+ }
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Threads/CsUartThreadDelta.cs b/LFP_Manager/Threads/CsUartThreadDelta.cs
new file mode 100644
index 0000000..2a690b4
--- /dev/null
+++ b/LFP_Manager/Threads/CsUartThreadDelta.cs
@@ -0,0 +1,574 @@
+using System;
+
+using System.Threading;
+using System.IO.Ports;
+using System.Windows.Forms;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Utils;
+using DevExpress.XtraGauges.Core.Model;
+
+namespace LFP_Manager.Threads
+{
+ #region DELEGATE
+ public delegate void UartDataUpdateRS485(object sender, ref DeviceSystemData[] aSystemData);
+ public delegate void UartDataRecvRS485(byte[] data);
+ public delegate void UartDataPrintRS485(object sender, string msg);
+ #endregion
+
+ class CsUartThreadDelta
+ {
+ #region VARIABLES
+
+ private readonly CommConfig Config;
+ private DeviceSystemData[] SystemData;
+ private Thread serialComm = null;
+ private SerialPort sPort = null;
+ private bool SerialPortThreadEnd = true;
+
+ public int ModuleID = 1;
+ private bool UartPolling = false;
+ private bool AutoUartTx = true;
+
+ private int addr_ch = 0;
+ private ushort RequestRegAddr = 0x0000; //Byul Init 0x0000
+ private ushort RequestRegLen = 50;
+ private bool rFlag = false;
+ private int wFlag = 0;
+ private int rFlag2 = 0;
+
+ private ushort ExtReqRegAddr = 0x0000;
+
+ private ushort WriteRegAddr = 0x0000; //Byul Init 0x0000
+ private short WriteCoilRegData = 0;
+ private byte[] WriteRegData;
+ private short WriteParamRegData;
+
+ private TUartTxBuff UartTxBuff;
+
+ public event UartDataUpdateRS485 OnUpdate = null;
+ public event UartDataRecvRS485 OnDataRecv = null;
+ public event UartDataPrintRS485 OnPrint = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public CsUartThreadDelta(int mID, CommConfig aConfig, ref DeviceSystemData[] aSystemData)
+ {
+ ModuleID = mID;
+ Config = aConfig;
+ SystemData = aSystemData;
+
+ UartTxBuff = new TUartTxBuff();
+
+ serialComm = new Thread(uartCommThread);
+ }
+
+ public void disposeThread()
+ {
+ if (sPort != null)
+ {
+ if (sPort.IsOpen)
+ {
+ sPort.Close();
+ }
+ sPort = null;
+ }
+ SerialPortThreadEnd = true;
+ if (serialComm != null)
+ {
+ if (serialComm.IsAlive)
+ {
+ serialComm.Abort();
+ }
+ serialComm = null;
+ }
+ }
+
+ public bool Start(ref CommConfig aConfig, int mID, bool aPolling)
+ {
+ bool result = false;
+
+ ModuleID = mID;
+ UartPolling = aPolling;
+
+ if (Open(aConfig.UartPort, 9600)) //Byul Init 9600
+ {
+ SerialPortThreadEnd = false;
+ serialComm.Start();
+ result = true;
+ }
+ return result;
+ }
+
+ public void Stop()
+ {
+ SerialPortThreadEnd = true;
+ Close();
+ }
+
+ #endregion
+
+ #region COMMPORT CONTROLS
+
+ private void sDataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
+ {
+ byte[] sRead = new byte[1024];
+ int rLen = 0;
+
+ try
+ {
+ rLen = ((SerialPort)sender).Read(sRead, 0, 1024);
+
+ for (int i = 0; i < rLen; i++)
+ {
+ PutBuff(sRead[i]);
+ }
+ }
+ catch (Exception)
+ {
+
+ }
+ }
+
+ private void sErrorReceived(object sender, System.IO.Ports.SerialErrorReceivedEventArgs e)
+ {
+ //
+ //csMakeDataFunction.SetData()
+ }
+
+ private void sPinChanged(object sender, System.IO.Ports.SerialPinChangedEventArgs e)
+ {
+ //
+ }
+
+ private bool Open(string cPort, int cBaudrate)
+ {
+ sPort = new SerialPort();
+ sPort.PortName = cPort;
+ sPort.BaudRate = cBaudrate;
+ sPort.DataReceived += sDataReceived;
+ sPort.ErrorReceived += sErrorReceived;
+ sPort.PinChanged += sPinChanged;
+
+ try
+ {
+ sPort.Open();
+ }
+ catch (Exception ex)
+ {
+ throw new Exception("Error Open - " + ex.Message);
+ }
+
+ return sPort.IsOpen;
+ }
+
+ private void Close()
+ {
+ if (sPort != null)
+ {
+ if (sPort.IsOpen)
+ {
+ sPort.Close();
+ }
+ sPort = null;
+ }
+ }
+
+ #endregion
+
+ #region PUBLIC FUNCTION
+
+ public void SetPolling(bool flag, int mID, ref DeviceSystemData[] aSystemData)
+ {
+ ModuleID = mID;
+ UartPolling = flag;
+ SystemData = aSystemData;
+ SystemData[0].mNo = ModuleID;
+ }
+
+ public void SetAutoTx(bool autoTx)
+ {
+ AutoUartTx = autoTx;
+ }
+
+ public void SetWriteCoilReg(ushort WriteAddr, short WriteData)
+ {
+ wFlag = 2;
+ WriteRegAddr = WriteAddr;
+ WriteCoilRegData = WriteData;
+
+ for (int i = 0; i < 500; i += 10)
+ {
+ Thread.Sleep(10);
+ Application.DoEvents();
+ }
+ }
+ public void SetWriteReg(ushort WriteAddr, byte[] WriteData, bool ReplyFlag, int type)
+ {
+ WriteRegAddr = WriteAddr;
+
+ TUartTRxData uartTRxData = new TUartTRxData();
+ uartTRxData.type = type;
+ //uartTRxData.data = csSerialCommFunction.MakeWriteRegisterData((ushort)SystemId, WriteRegAddr, WriteData);
+ uartTRxData.data = WriteData;
+ uartTRxData.length = uartTRxData.data.Length;
+
+ UartTxBuff?.PutBuff(uartTRxData);
+ }
+
+ public void SetParam(ushort WriteAddr, short WriteData)
+ {
+ byte[] sData = CsSerialCommFunctionDelta.MakeWriteRegisterData((ushort)ModuleID, WriteAddr, WriteData);
+
+ if (sData != null)
+ {
+ TUartTRxData aData = new TUartTRxData();
+ aData.length = sData.Length;
+ aData.data = sData;
+
+ UartTxBuff.PutBuff(aData);
+ }
+ }
+
+ public void SetReadWriteParam(ushort WriteAddr, short WriteData)
+ {
+ byte[] sData = CsSerialCommFunctionDelta.MakeReadWriteRegisterData((ushort)ModuleID, WriteAddr, WriteData);
+
+ if (sData != null)
+ {
+ TUartTRxData aData = new TUartTRxData();
+ aData.length = sData.Length;
+ aData.data = sData;
+
+ ExtReqRegAddr = WriteAddr;
+
+ UartTxBuff.PutBuff(aData);
+ }
+ }
+
+ #endregion
+
+ #region RX BUFFERING
+
+ private const int BUFFER_SIZE = 512;
+
+ private readonly byte[] rBuffer = new byte[BUFFER_SIZE];
+ private int rBufStart = 0;
+ private int rBufEnd = 0;
+
+ private void PutBuff(byte c)
+ {
+ rBuffer[rBufStart++] = c;
+ rBufStart %= BUFFER_SIZE;
+
+ if (rBufStart == rBufEnd)
+ {
+ rBufEnd++;
+ rBufEnd %= BUFFER_SIZE;
+ }
+ }
+
+ private int GetBuff()
+ {
+ int result = 0;
+
+ if (rBufStart != rBufEnd)
+ {
+ result = 0x0100 + rBuffer[rBufEnd++];
+ rBufEnd %= BUFFER_SIZE;
+ }
+ return result;
+ }
+
+ private void FlushBuff()
+ {
+ rBufStart = rBufEnd = 0;
+ }
+
+ #endregion
+
+ #region TX BUFFERING
+
+ private byte[] MakeWriteRegData(ushort DevID, ushort WriteAddr, ushort WriteLen, ref ushort[] WriteData)
+ {
+ byte[] wData = null;
+
+ if (WriteLen > 0)
+ {
+
+ }
+
+ return wData;
+ }
+
+ private string MakeCheckSum(byte[] sData, int len)
+ {
+ string result = "";
+ int checksum = 0;
+
+ for (int i = 0; i < len; i++)
+ {
+ checksum += sData[i + 1];
+ }
+
+ checksum = ~checksum + 1;
+
+ result = String.Format("{0:X2}{1:X2}", (byte)(checksum >> 8), (byte)checksum);
+
+ return result;
+ }
+
+ private byte[] MakeTxDataDelta(bool wData)
+ {
+ byte[] sData = null;
+
+ if ((UartTxBuff != null) && (UartTxBuff.CheckBuff()))
+ {
+ TUartTRxData sBuff = UartTxBuff.GetBuff();
+ if (sBuff != null)
+ {
+ sData = sBuff.data;
+ wData = true;
+ rFlag = true;
+ rFlag2 = sBuff.type;
+
+ RequestRegAddr = ExtReqRegAddr;
+ }
+ }
+ else
+ {
+ if (AutoUartTx && UartPolling)
+ {
+ ushort sCmd;
+ switch (addr_ch)
+ {
+ case 0: // Battery Status Data
+ addr_ch = 1;
+ RequestRegAddr = 0x0FFF; //Byul Init 0x0000
+ RequestRegLen = 0x27;
+ sCmd = CsSerialCommFunctionDelta.READ_INPUT_REG; // Command 0x04
+ rFlag = true;
+ break;
+ case 1: // Gyroscope Data
+ addr_ch = 2;
+ RequestRegAddr = 0x4000;
+ RequestRegLen = 7;
+ sCmd = CsSerialCommFunctionDelta.READ_INPUT_REG; // Command 0x17
+ rFlag = true;
+ break;
+ case 2:
+ addr_ch = 3;
+ RequestRegAddr = 0x3000;
+ RequestRegLen = 3;
+ sCmd = CsSerialCommFunctionDelta.READ_INPUT_REG; // Command 0x19
+ rFlag = true;
+ break;
+ case 3:
+ addr_ch = 4;
+ RequestRegAddr = 0x0000;
+ RequestRegLen = 1;
+ sCmd = CsSerialCommFunctionDelta.READ_DEV_ID; // Command 0x2B
+ rFlag = true;
+ break;
+ case 4:
+ addr_ch = 5;
+ RequestRegAddr = 100;
+ RequestRegLen = 30;
+ sCmd = CsSerialCommFunctionDelta.READ_HOLDING_REG; // Command 0x03
+ rFlag = true;
+ break;
+ case 5:
+ if (Config.ModuleQty > 1)
+ {
+ ModuleID++;
+ if (ModuleID > Config.ModuleQty)
+ {
+ ModuleID = 1;
+ }
+ }
+ addr_ch = 0;
+ sCmd = CsSerialCommFunctionDelta.NO_CMD;
+ rFlag = false;
+ break;
+ default:
+ addr_ch = 0;
+ RequestRegAddr = 0x0FFF; //Byul Init 0x0000
+ RequestRegLen = 27;
+ sCmd = CsSerialCommFunctionDelta.READ_INPUT_REG; // Command 0x04
+ rFlag = true;
+ break;
+ }
+ if (sCmd == CsSerialCommFunctionDelta.NO_CMD)
+ {
+ sData = null;
+ }
+ else if (sCmd == CsSerialCommFunctionDelta.READ_DEV_ID)
+ {
+ sData = CsSerialCommFunctionDelta.MakeReadDevIdRegReqData((ushort)ModuleID, sCmd, RequestRegAddr);
+ }
+ else
+ {
+ sData = CsSerialCommFunctionDelta.MakeReadRegisterData((ushort)ModuleID, sCmd, RequestRegAddr, RequestRegLen);
+ }
+ }
+ }
+ return sData;
+ }
+
+ #endregion
+
+ #region COMM THREAD
+
+ private readonly byte[] ReadBuf = new byte[BUFFER_SIZE];
+ ushort rPosition = 0;
+ bool BuffStart = false;
+
+ private void RecvPacketInit()
+ {
+ BuffStart = false;
+ rPosition = 0;
+ }
+
+ private void uartCommThread()
+ {
+ int RecvTimeout = Config.RecvWaitTime;
+ int getData = 0;
+ byte cData = 0;
+ int[] TimeOutCount = new int[csConstData.SystemInfo.MAX_MODULE_SIZE];
+
+ StartSend:
+ while (SerialPortThreadEnd == false)
+ {
+ if ((sPort == null) || (sPort.IsOpen == false)) continue;
+
+ FlushBuff();
+ byte[] txData = MakeTxDataDelta(false);
+ if (sPort == null) return;
+ if (txData != null)
+ {
+ sPort.Write(txData, 0, txData.Length);
+ OnPrint?.Invoke(this, csLog.trx_data_print(txData, txData.Length, 0));
+ }
+
+ if (rFlag == true)
+ {
+ DateTime rDateTime = DateTime.Now;
+
+ RecvPacketInit();
+
+ while (true)
+ {
+ DateTime nDateTime = rDateTime.AddMilliseconds(RecvTimeout);
+ if (nDateTime < DateTime.Now) break;
+
+ if (((getData = GetBuff()) & 0x0100) != 0x0000)
+ {
+ rDateTime = DateTime.Now;
+
+ cData = (byte)(getData & 0x00FF);
+
+ if (rPosition >= BUFFER_SIZE) RecvPacketInit();
+
+ if (BuffStart == false)
+ {
+ if ((cData == (byte)ModuleID) || (cData == (byte)0x7F))
+ {
+ rPosition = 0;
+ ReadBuf[rPosition++] = cData;
+ BuffStart = true;
+ }
+ }
+ else
+ {
+ ReadBuf[rPosition++] = cData;
+
+ switch (CsSerialCommFunctionDelta.ModbusPacketFromSlaveCheck(ReadBuf, rPosition))
+ {
+ case 0: // Need more data
+ break;
+ case 1: // Packet OK, no error
+ OnPrint?.Invoke(this, csLog.trx_data_print(ReadBuf, rPosition, 1));
+
+ TimeOutCount[ModuleID - 1] = 0;
+
+ int mID = ReadBuf[0];
+ if (mID > 0) mID--;
+
+ SystemData[mID].CommFail = false;
+ SystemData[mID].ShelfCommFail = false;
+ short[] result_code = CsSerialCommFunctionDelta.SerialRxProcess(ReadBuf, RequestRegAddr, rPosition, ref SystemData[mID]);
+
+ OnUpdate?.Invoke(this, ref SystemData);
+
+ Thread.Sleep(5);
+ goto StartSend;
+ case 2: // Fw Update Packet OK
+ OnPrint?.Invoke(this, csLog.trx_data_print(ReadBuf, rPosition, 1));
+
+ TimeOutCount[ModuleID - 1] = 0;
+ rFlag = false;
+ if (OnDataRecv != null)
+ {
+ byte[] adata = new byte[rPosition + 1];
+ for (int j = 0; j < adata.Length; j++)
+ {
+ adata[j] = ReadBuf[j];
+ }
+ OnDataRecv(adata);
+ }
+ goto StartSend;
+ case -1: // Packet error
+ RecvPacketInit();
+ Thread.Sleep(100);
+ goto StartSend;
+ default:
+ break;
+ }
+ }
+ Thread.Sleep(1);
+ }
+ else
+ {
+ Thread.Sleep(1);
+ }
+ }
+
+ if (rPosition > 0)
+ {
+ OnPrint?.Invoke(this, csLog.trx_data_print(ReadBuf, rPosition, 1));
+
+ Thread.Sleep(1);
+ }
+ else
+ {
+ TimeOutCount[ModuleID - 1]++;
+ if (TimeOutCount[ModuleID - 1] >= 10)
+ {
+ TimeOutCount[ModuleID - 1] = 10;
+ //SystemData[0].CommFail = true;
+ if (SystemData[ModuleID - 1].ShelfCommFail == false)
+ {
+ SystemData[ModuleID - 1].ShelfCommFail = true;
+ csUtils.DataInit(Config, ref SystemData[ModuleID - 1]);
+ }
+ }
+ Thread.Sleep(100);
+ }
+ OnUpdate?.Invoke(this, ref SystemData);
+ Thread.Sleep(1);
+ }
+ else
+ {
+ Thread.Sleep(10);
+ } /* if (rFlag == true) */
+ rPosition = 0;
+ Thread.Sleep(100);
+ }
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Threads/csDbThread.cs b/LFP_Manager/Threads/csDbThread.cs
new file mode 100644
index 0000000..b2e7ab5
--- /dev/null
+++ b/LFP_Manager/Threads/csDbThread.cs
@@ -0,0 +1,315 @@
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Utils;
+using System;
+using System.Data;
+using System.Data.SQLite;
+using System.Threading;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Threads
+{
+ public delegate void DbDataPrint(object sender, string msg);
+
+ class csDbThread
+ {
+ #region VARIABLES
+
+ private CommConfig Config = new CommConfig();
+ private DeviceSystemData[] SystemData;
+ private short[] Status, oldStatus;
+
+ private Thread dbProc = null;
+
+ private bool Active = false;
+
+ private int mQty = 1;
+
+ private int ModuleID = 1;
+
+ ////////////////////////////////////////
+ private bool DbThreadEnd = true;
+
+ public event DbDataPrint OnPrint = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public csDbThread(int mID, CommConfig aConfig, DeviceSystemData[] aSystemData)
+ {
+ ModuleID = mID;
+ Status = new short[2];
+ oldStatus = new short[2];
+ Config = aConfig;
+ SystemData = aSystemData;
+
+ dbProc = new Thread(dbThreadProcess);
+ }
+
+ public void disposeThread()
+ {
+ DbThreadEnd = true;
+ if (dbProc != null)
+ {
+ if (dbProc.IsAlive)
+ {
+ dbProc.Abort();
+ }
+ dbProc = null;
+ }
+ }
+
+ public unsafe bool Start(int mID, CommConfig aConfig)
+ {
+ bool result = false;
+
+ ModuleID = mID;
+ Config = aConfig;
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART: // RS-232
+ mQty = 1;
+ break;
+ case csConstData.CommType.COMM_RS485: // RS-485
+ mQty = Config.ModuleQty;
+ break;
+ case csConstData.CommType.COMM_SNMP: // SNMP
+ mQty = 1;
+ break;
+ default:
+ mQty = 1;
+ break;
+ }
+
+ // DB Create with Path Create
+ csHistoryFunction.DbCreate(System.IO.Path.GetDirectoryName(Application.ExecutablePath));
+
+ try
+ {
+ DbThreadEnd = false;
+ dbProc.Start();
+
+ Active = true;
+ }
+ catch (Exception ex)
+ {
+ OnPrint?.Invoke(this, ex.Message);
+ }
+
+ return result;
+ }
+
+ public void Stop()
+ {
+ DbThreadEnd = true;
+
+ Active = false;
+ }
+
+ public void UpdateStatus(short st1, short st2)
+ {
+ Status[0] = st1;
+ Status[1] = st2;
+ }
+
+ #endregion
+
+ #region UPDATE DATA
+
+ public void UpdateData(int mID, DeviceSystemData[] aSystemData)
+ {
+ ModuleID = mID;
+ SystemData = aSystemData;
+ }
+
+ #endregion
+
+ #region MAKE ALARM HISTORY
+
+ private void CheckAlarm()
+ {
+ bool[] Data1 = csUtils.Int16ToBitArray((short)Status[0]);
+ bool[] Data2 = csUtils.Int16ToBitArray((short)Status[1]);
+ bool[] oData1 = csUtils.Int16ToBitArray((short)oldStatus[0]);
+ bool[] oData2 = csUtils.Int16ToBitArray((short)oldStatus[1]);
+
+ // Cell Over Voltage
+ if (oData2[0] != Data2[0])
+ {
+ if (Data2[0] == true)
+ {
+ IDInsert("", csDbConstData.DB_ALARM.CELL_UNDER_VOLTAGE, csDbConstData.DB_ALARM.FLAG_TRIP);
+ }
+ else
+ {
+ if (oData1[0] != Data1[0])
+ {
+ if (Data1[0] == true)
+ IDInsert("", csDbConstData.DB_ALARM.CELL_UNDER_VOLTAGE, csDbConstData.DB_ALARM.FLAG_WARNING);
+ else
+ IDInsert("", csDbConstData.DB_ALARM.CELL_UNDER_VOLTAGE, csDbConstData.DB_ALARM.FLAG_RELEASE);
+ }
+ else
+ {
+ if (Data1[0] == false)
+ IDInsert("", csDbConstData.DB_ALARM.CELL_UNDER_VOLTAGE, csDbConstData.DB_ALARM.FLAG_RELEASE);
+ }
+ }
+ }
+ else
+ {
+ if (oData1[0] != Data1[0])
+ {
+ if (Data1[0] == true)
+ IDInsert("", csDbConstData.DB_ALARM.CELL_UNDER_VOLTAGE, csDbConstData.DB_ALARM.FLAG_WARNING);
+ else
+ IDInsert("", csDbConstData.DB_ALARM.CELL_UNDER_VOLTAGE, csDbConstData.DB_ALARM.FLAG_RELEASE);
+ }
+ }
+ oldStatus = Status;
+ }
+
+ #endregion
+
+ #region DB INSERT DATA
+ private void IDInsert(string mPath, int aCode, int fCode)
+ {
+ //string dbFilename = mPath + csDbConstData.DataBase.FileName;
+ string dbFilename = System.IO.Path.GetDirectoryName(Application.ExecutablePath) + csDbConstData.DataBase.FileName;
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilename;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ command.CommandText = "BEGIN;"; //명시적 트렌젝션 시작
+ command.ExecuteNonQuery();
+
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = "INSERT INTO " + csDbConstData.DataBase.TableName + "(HTime, model, sno, alarm_name, alarm_code, flag_name, flag, param1, param2) "
+ + " Values (@HTime, @model, @sno, @alarm_name, @alarm_code, @flag_name, @flag, @param1, @param2);";
+ SQLiteParameter[] p = new SQLiteParameter[]
+ {
+ new SQLiteParameter("@HTime", DbType.DateTime),
+ new SQLiteParameter("@model", DbType.String),
+ new SQLiteParameter("@sno", DbType.Int16),
+ new SQLiteParameter("@alarm_name", DbType.String),
+ new SQLiteParameter("@alarm_code", DbType.Int16),
+ new SQLiteParameter("@flag_name", DbType.String),
+ new SQLiteParameter("@flag", DbType.Int16),
+ new SQLiteParameter("@param1", DbType.Decimal),
+ new SQLiteParameter("@param2", DbType.Decimal),
+ }; // end SQLiteParameter
+
+ command.Parameters.AddRange(p);
+
+ int result = 0;
+
+ p[0].Value = DateTime.Now; // DateTime
+ p[1].Value = "AAA"; // Model Name
+ p[2].Value = 1; // System No
+ p[3].Value = csDbConstData.DB_ALARM.ALARM_NAME[aCode]; // alarm_name
+ p[4].Value = aCode; // alarm_code
+ p[5].Value = csDbConstData.DB_ALARM.FLAG_NAME[fCode]; // flag_name
+ p[6].Value = fCode; // flag_code
+ p[7].Value = 0.0; // param1
+ p[8].Value = 0.0; // param2
+
+ try
+ {
+ result = command.ExecuteNonQuery();
+ }
+ catch (Exception)
+ {
+ }
+ command.CommandText = "COMMIT;"; //명시적 트렌젝션 시작
+ }
+ }
+ catch (Exception)
+ {
+ //MessageBox.Show(e.ToString());
+ }
+ finally
+ {
+ connection.Close();
+ }
+ }
+ }
+
+ #endregion
+
+ #region DB THREAD
+
+ unsafe private void dbThreadProcess()
+ {
+ DateTime bakDateTime = DateTime.Now;
+ int ss = Config.DbLogPeriod;
+
+ while (DbThreadEnd == false)
+ {
+ if (Active)
+ {
+ DateTime cDate = DateTime.Now;
+
+ if (
+ ((bakDateTime.Minute != cDate.Minute)
+ || (bakDateTime.Second != cDate.Second))
+ && ((cDate.Second % ss) == 0)
+ )
+ {
+ // Database Log Process
+ try
+ {
+ string ModelName;
+
+ ModelName = csConstData.MODEL_STR[Config.UartModelIndex];
+ csDbUtils.LogDbCreate(ModelName);
+
+ switch (Config.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ SystemData[ModuleID - 1].mNo = ModuleID;
+ csDbProcess.BmsLogDataInsert(ModelName, ref SystemData[ModuleID - 1], cDate, 1000);
+ break;
+ case csConstData.CommType.COMM_RS485:
+ if (mQty > 1)
+ {
+ for (int i = 0; i < mQty; i++)
+ {
+ SystemData[i].mNo = i + 1;
+ csDbProcess.BmsLogDataInsert(ModelName, ref SystemData[i], cDate, 1000);
+ }
+ }
+ else
+ {
+ SystemData[ModuleID - 1].mNo = ModuleID;
+ csDbProcess.BmsLogDataInsert(ModelName, ref SystemData[ModuleID - 1], cDate, 1000);
+ }
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ SystemData[ModuleID - 1].mNo = ModuleID;
+ csDbProcess.BmsLogDataInsert(ModelName, ref SystemData[ModuleID - 1], cDate, 1000);
+ break;
+ default:
+ break;
+ }
+ }
+ catch (Exception)
+ {
+ }
+ bakDateTime = cDate;
+ }
+ }
+ Thread.Sleep(100);
+ }
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Threads/csUartThread.cs b/LFP_Manager/Threads/csUartThread.cs
new file mode 100644
index 0000000..b236a65
--- /dev/null
+++ b/LFP_Manager/Threads/csUartThread.cs
@@ -0,0 +1,776 @@
+using System;
+
+using System.Threading;
+using System.IO.Ports;
+using System.Windows.Forms;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Function;
+using LFP_Manager.Utils;
+using DevExpress.XtraGauges.Core.Model;
+
+namespace LFP_Manager.Threads
+{
+ #region DELEGATE
+ public delegate void UartDataUpdate(object sender, ref DeviceSystemData aSystemData);
+ public delegate void UartDataRecv(byte[] data);
+ public delegate void UartDataPrint(object sender, string msg);
+ #endregion
+
+ class csUartThread
+ {
+ #region VARIABLES
+
+ private readonly CommConfig Config;
+ private DeviceSystemData SystemData;
+ private Thread serialComm = null;
+ private SerialPort sPort = null;
+ private bool SerialPortThreadEnd = true;
+
+ public int SystemId = 0;
+ private bool UartPolling = false;
+ private bool AutoUartTx = true;
+
+ private int addr_ch = 0;
+ private ushort RequestRegAddr = 0x0000; //Byul Init 0x0000
+ private ushort RequestRegLen = 50;
+ private bool rFlag = false;
+ private int rFlag2 = 0;
+ private int wFlag = 0;
+
+ private ushort ReadRegAddr = 0x0000; //Byul Init 0x0000
+ private ushort ReadRegLen = 0x0000; //Byul Init 0x0000
+
+ private ushort WriteRegAddr = 0x0000; //Byul Init 0x0000
+ private short WriteCoilRegData = 0;
+ private byte[] WriteRegData;
+
+ private TUartTxBuff uartTxBuff = null;
+
+ public event UartDataUpdate OnUpdate = null;
+ public event UartDataRecv OnDataRecv = null;
+ public event UartDataPrint OnPrint = null;
+
+ #endregion
+
+ #region CONSTRUCTORS
+
+ public csUartThread(int sId, CommConfig aConfig, ref DeviceSystemData aSystemData)
+ {
+ SystemId = sId;
+ Config = aConfig;
+ SystemData = aSystemData;
+
+ uartTxBuff = new TUartTxBuff();
+
+ serialComm = new Thread(uartCommThread);
+ }
+
+ public void disposeThread()
+ {
+ if (sPort != null)
+ {
+ if (sPort.IsOpen)
+ {
+ sPort.Close();
+ }
+ sPort = null;
+ }
+ SerialPortThreadEnd = true;
+ if (serialComm != null)
+ {
+ if (serialComm.IsAlive)
+ {
+ serialComm.Abort();
+ }
+ serialComm = null;
+ }
+ }
+
+ public bool Start(ref CommConfig aConfig, int sId, bool aPolling)
+ {
+ bool result = false;
+
+ SystemId = sId;
+ UartPolling = aPolling;
+
+ if (Open(aConfig.UartPort, 115200)) //Byul Init 9600
+ {
+ SerialPortThreadEnd = false;
+ serialComm.Start();
+ result = true;
+ }
+ return result;
+ }
+
+ public void Stop()
+ {
+ SerialPortThreadEnd = true;
+ Close();
+ }
+
+ #endregion
+
+ #region COMMPORT CONTROLS
+
+ private void sDataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
+ {
+ byte[] sRead = new byte[1024];
+ int rLen = 0;
+
+ try
+ {
+ rLen = ((SerialPort)sender).Read(sRead, 0, 1024);
+
+ for (int i = 0; i < rLen; i++)
+ {
+ PutBuff(sRead[i]);
+ }
+ }
+ catch (Exception)
+ {
+
+ }
+ }
+
+ private void sErrorReceived(object sender, System.IO.Ports.SerialErrorReceivedEventArgs e)
+ {
+ //
+ //csMakeDataFunction.SetData()
+ }
+
+ private void sPinChanged(object sender, System.IO.Ports.SerialPinChangedEventArgs e)
+ {
+ //
+ }
+
+ private bool Open(string cPort, int cBaudrate)
+ {
+ sPort = new SerialPort();
+ sPort.PortName = cPort;
+ sPort.BaudRate = cBaudrate;
+ sPort.DataReceived += sDataReceived;
+ sPort.ErrorReceived += sErrorReceived;
+ sPort.PinChanged += sPinChanged;
+
+ try
+ {
+ sPort.Open();
+ }
+ catch (Exception ex)
+ {
+ throw new Exception("Error Open - " + ex.Message);
+ }
+
+ return sPort.IsOpen;
+ }
+
+ private void Close()
+ {
+ if (sPort != null)
+ {
+ if (sPort.IsOpen)
+ {
+ sPort.Close();
+ }
+ sPort = null;
+ }
+ }
+
+ #endregion
+
+ #region PUBLIC FUNCTION
+
+ public void SetPolling(bool flag, int sId, ref DeviceSystemData aSystemData)
+ {
+ SystemId = sId;
+ UartPolling = flag;
+ SystemData = aSystemData;
+ SystemData.mNo = SystemId;
+ }
+
+ public void SetAutoTx(bool autoTx)
+ {
+ AutoUartTx = autoTx;
+ }
+
+ public void SetWriteCoilReg(ushort WriteAddr, short WriteData)
+ {
+ wFlag = 2;
+ WriteRegAddr = WriteAddr;
+ WriteCoilRegData = WriteData;
+
+ for (int i = 0; i < 500; i += 10)
+ {
+ Thread.Sleep(10);
+ Application.DoEvents();
+ }
+ }
+
+ public void SetWriteReg(ushort WriteAddr, byte[] WriteData, bool ReplyFlag, int type)
+ {
+ WriteRegAddr = WriteAddr;
+
+ TUartTRxData uartTRxData = new TUartTRxData();
+ uartTRxData.type = type;
+ //uartTRxData.data = csSerialCommFunction.MakeWriteRegisterData((ushort)SystemId, WriteRegAddr, WriteData);
+ uartTRxData.data = WriteData;
+ uartTRxData.length = uartTRxData.data.Length;
+
+ uartTxBuff?.PutBuff(uartTRxData);
+ }
+ public void SetReadReg(ushort ReadAddr, ushort ReadLen, bool ReplyFlag)
+ {
+ wFlag = 4;
+ ReadRegAddr = ReadAddr;
+ ReadRegLen = ReadLen;
+ }
+
+ public void SetParam(ushort WriteAddr, short[] WriteData)
+ {
+ wFlag = 1;
+
+ WriteRegAddr = WriteAddr;
+
+ TUartTRxData uartTRxData = new TUartTRxData();
+ uartTRxData.type = wFlag;
+ uartTRxData.data = csSerialCommFunction.MakeWriteRegisterData((ushort)SystemId, WriteRegAddr, WriteData);
+ uartTRxData.length = uartTRxData.data.Length;
+
+ uartTxBuff?.PutBuff(uartTRxData);
+ }
+
+ public void SendProcessFromApp(int sId, int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib)
+ {
+ short[] data = null;
+
+ switch (mode)
+ {
+ case csConstData.UART_PARAM_LIST.CELL_UNDER_VOLTAGE: // Cell Under Volatge Parameter
+ data = new short[1];
+ data[0] = aParam.CellUnderVoltageWarning; SetParam((ushort)(mode + 0), data);
+ data[0] = aParam.CellUnderVoltageTrip; SetParam((ushort)(mode + 1), data);
+ data[0] = aParam.CellUnderVoltageRelease; SetParam((ushort)(mode + 2), data);
+ break;
+ case csConstData.UART_PARAM_LIST.CELL_OVER_VOLTAGE: // Cell Over Volatge Parameter
+ data = new short[1];
+ data[0] = aParam.CellOverVoltageWarning; SetParam((ushort)(mode + 0), data);
+ data[0] = aParam.CellOverVoltageTrip; SetParam((ushort)(mode + 1), data);
+ data[0] = aParam.CellOverVoltageRelease; SetParam((ushort)(mode + 2), data);
+ break;
+ case csConstData.UART_PARAM_LIST.PACK_UNDER_VOLTAGE: // Pack Under Volatge Parameter
+ data = new short[1];
+ data[0] = (short)(aParam.SysUnderVoltageWarning * 10); SetParam((ushort)(mode + 0), data);
+ data[0] = (short)(aParam.SysUnderVoltageTrip * 10); SetParam((ushort)(mode + 1), data);
+ data[0] = (short)(aParam.SysUnderVoltageRelease * 10); SetParam((ushort)(mode + 2), data);
+ break;
+ case csConstData.UART_PARAM_LIST.PACK_OVER_VOLTAGE: // Pack Over Volatge Parameter
+ data = new short[1];
+ data[0] = (short)(aParam.SysOverVoltageWarning * 10); SetParam((ushort)(mode + 0), data);
+ data[0] = (short)(aParam.SysOverVoltageTrip * 10); SetParam((ushort)(mode + 1), data);
+ data[0] = (short)(aParam.SysOverVoltageRelease * 10); SetParam((ushort)(mode + 2), data);
+ break;
+ case csConstData.UART_PARAM_LIST.CHG_LOW_TEMPERATURE: // Charge Low Temperature Parameter
+ data = new short[1];
+ data[0] = (short)(aParam.ChaLowTempWarning + 50); SetParam((ushort)(mode + 0), data);
+ data[0] = (short)(aParam.ChaLowTempTrip + 50); SetParam((ushort)(mode + 1), data);
+ data[0] = (short)(aParam.ChaLowTempRelease + 50); SetParam((ushort)(mode + 2), data);
+ break;
+ case csConstData.UART_PARAM_LIST.CHG_HIGH_TEMPERATURE: // Pack High Temperature Parameter
+ data = new short[1];
+ data[0] = (short)(aParam.ChaHighTempWarning + 50); SetParam((ushort)(mode + 0), data);
+ data[0] = (short)(aParam.ChaHighTempTrip + 50); SetParam((ushort)(mode + 1), data);
+ data[0] = (short)(aParam.ChaHighTempRelease + 50); SetParam((ushort)(mode + 2), data);
+ break;
+ case csConstData.UART_PARAM_LIST.DCH_LOW_TEMPERATURE: // Charge Low Temperature Parameter
+ data = new short[1];
+ data[0] = (short)(aParam.DchLowTempWarning + 50); SetParam((ushort)(mode + 0), data);
+ data[0] = (short)(aParam.DchLowTempTrip + 50); SetParam((ushort)(mode + 1), data);
+ data[0] = (short)(aParam.DchLowTempRelease + 50); SetParam((ushort)(mode + 2), data);
+ break;
+ case csConstData.UART_PARAM_LIST.DCH_HIGH_TEMPERATURE: // Pack High Temperature Parameter
+ data = new short[1];
+ data[0] = (short)(aParam.DchHighTempWarning + 50); SetParam((ushort)(mode + 0), data);
+ data[0] = (short)(aParam.DchHighTempTrip + 50); SetParam((ushort)(mode + 1), data);
+ data[0] = (short)(aParam.DchHighTempRelease + 50); SetParam((ushort)(mode + 2), data);
+ break;
+ case csConstData.UART_PARAM_LIST.CHG_OVER_CURRENT: // Charge Over Current Parameter
+ data = new short[1];
+ data[0] = (short)(aParam.ChaOverCurrentReleaseTime * 1); SetParam((ushort)(mode + 0), data);
+ data[0] = (short)(aParam.ChaOverCurrentTrip1 * 10); SetParam((ushort)(mode + 2), data);
+ data[0] = (short)(aParam.ChaOverCurrentTrip2 * 10); SetParam((ushort)(mode + 5), data);
+ break;
+ case csConstData.UART_PARAM_LIST.DCH_OVER_CURRENT: // Discharge Over Current Parameter
+ data = new short[1];
+ data[0] = (short)(aParam.DchOverCurrentReleaseTime * 1); SetParam((ushort)(mode + 0), data);
+ data[0] = (short)(aParam.DchOverCurrentTrip1 * 10); SetParam((ushort)(mode + 2), data);
+ data[0] = (short)(aParam.DchOverCurrentTrip2 * 10); SetParam((ushort)(mode + 5), data);
+ break;
+ case csConstData.UART_PARAM_LIST.LOW_CAPACITY:
+ data = new short[1];
+ data[0] = aParam.LowSocWarning; SetParam((ushort)(mode + 0), data);
+ break;
+ case csConstData.UART_PARAM_LIST.DEFAULT_PARAM: // Default Parameter
+ int i = 0;
+
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+
+ try
+ {
+ //WaitForm.Show();
+ data = new short[1];
+
+ i = csConstData.UART_PARAM_LIST.CELL_UNDER_VOLTAGE;
+ data[0] = csConstData.UART_PARAM_DEFAULT.Warn_Cell_UV; SetParam((ushort)(i + 0), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Protect_Cell_UV; SetParam((ushort)(i + 1), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Release_Cell_UV; SetParam((ushort)(i + 2), data);
+ i = csConstData.UART_PARAM_LIST.PACK_UNDER_VOLTAGE;
+ data[0] = csConstData.UART_PARAM_DEFAULT.Warn_Pack_UV; SetParam((ushort)(i + 0), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Protect_Pack_UV; SetParam((ushort)(i + 1), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Release_Pack_UV; SetParam((ushort)(i + 2), data);
+ i = csConstData.UART_PARAM_LIST.CELL_OVER_VOLTAGE;
+ data[0] = csConstData.UART_PARAM_DEFAULT.Warn_Cell_OV; SetParam((ushort)(i + 0), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Protect_Cell_OV; SetParam((ushort)(i + 1), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Release_Cell_OV; SetParam((ushort)(i + 2), data);
+ i = csConstData.UART_PARAM_LIST.PACK_OVER_VOLTAGE;
+ data[0] = csConstData.UART_PARAM_DEFAULT.Warn_Pack_OV; SetParam((ushort)(i + 0), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Protect_Pack_OV; SetParam((ushort)(i + 1), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Release_Pack_OV; SetParam((ushort)(i + 2), data);
+
+ i = csConstData.UART_PARAM_LIST.CHG_OVER_CURRENT;
+ data[0] = csConstData.UART_PARAM_DEFAULT.Times_Charge_OC; SetParam((ushort)(i - 2), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.ReleaseTime_Charge_OC; SetParam((ushort)(i + 0), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Protect_Charge_OC1; SetParam((ushort)(i + 2), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Protect_Charge_OC2; SetParam((ushort)(i + 5), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Delay_Charge_OC1; SetParam((ushort)(i + 8), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Delay_Charge_OC2; SetParam((ushort)(i + 9), data);
+
+ i = csConstData.UART_PARAM_LIST.DCH_OVER_CURRENT;
+ data[0] = csConstData.UART_PARAM_DEFAULT.Times_Discharge_OC; SetParam((ushort)(i - 2), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.ReleaseTime_Discharge_OC; SetParam((ushort)(i + 0), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Protect_Discharge_OC1; SetParam((ushort)(i + 2), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Protect_Discharge_OC2; SetParam((ushort)(i + 5), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Delay_Discharge_OC1; SetParam((ushort)(i + 8), data);
+ data[0] = csConstData.UART_PARAM_DEFAULT.Delay_Discharge_OC2; SetParam((ushort)(i + 9), data);
+
+ i = csConstData.UART_PARAM_LIST.CHG_LOW_TEMPERATURE;
+ data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Warn_Charge_UT + 50); SetParam((ushort)(i + 0), data);
+ data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Protect_Charge_UT + 50); SetParam((ushort)(i + 1), data);
+ data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Release_Charge_UT + 50); SetParam((ushort)(i + 2), data);
+ i = csConstData.UART_PARAM_LIST.CHG_HIGH_TEMPERATURE;
+ data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Warn_Charge_OT + 50); SetParam((ushort)(i + 0), data);
+ data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Protect_Charge_OT + 50); SetParam((ushort)(i + 1), data);
+ data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Release_Charge_OT + 50); SetParam((ushort)(i + 2), data);
+ i = csConstData.UART_PARAM_LIST.DCH_LOW_TEMPERATURE;
+ data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Warn_Discharge_UT + 50); SetParam((ushort)(i + 0), data);
+ data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Protect_Discharge_UT + 50); SetParam((ushort)(i + 1), data);
+ data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Release_Discharge_UT + 50); SetParam((ushort)(i + 2), data);
+ i = csConstData.UART_PARAM_LIST.DCH_HIGH_TEMPERATURE;
+ data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Warn_Discharge_OT + 50); SetParam((ushort)(i + 0), data);
+ data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Protect_Discharge_OT + 50); SetParam((ushort)(i + 1), data);
+ data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Release_Discharge_OT + 50); SetParam((ushort)(i + 2), data);
+
+ i = csConstData.UART_PARAM_LIST.LOW_CAPACITY;
+ data[0] = csConstData.UART_PARAM_DEFAULT.Warn_Low_Capacity + 0; SetParam((ushort)(i + 0), data);
+
+ i = csConstData.UART_PARAM_LIST.ENV_LOW_TEMPERATURE;
+ data[0] = 0; SetParam((ushort)(i + 0), data);
+ data[0] = 0; SetParam((ushort)(i + 1), data);
+ data[0] = 0; SetParam((ushort)(i + 2), data);
+ i = csConstData.UART_PARAM_LIST.ENV_HIGH_TEMPERATURE;
+ data[0] = 0; SetParam((ushort)(i + 0), data);
+ data[0] = 0; SetParam((ushort)(i + 1), data);
+ data[0] = 0; SetParam((ushort)(i + 2), data);
+ }
+ catch (Exception)
+ {
+
+ }
+ finally
+ {
+ //WaitForm?.Close();
+ }
+ break;
+ case 15: // Capcity change
+ data = new short[1];
+ i = csConstData.UART_PARAM_LIST.DESIGN_CAPACITY;
+ data[0] = (short)aCalib.CapCalib.DesignCapacity; SetParam((ushort)(i + 0), data);
+ i = csConstData.UART_PARAM_LIST.SOC_VALUE;
+ data[0] = (short)aCalib.CapCalib.SocValue; SetParam((ushort)(i + 0), data);
+ break;
+ case 16: // Charge Mode
+ data = new short[1];
+ i = csConstData.UART_CALIB_ADDR_LIST.CHAGE_MODE;
+ data[0] = (short)aCalib.ChaMode.Mode; SetParam((ushort)(i + 0), data);
+ data[0] = (short)aCalib.ChaMode.Value; SetParam((ushort)(i + 1), data);
+ break;
+ case 17: // BMS DateTime Set
+ data = new short[2];
+ i = csConstData.UART_CALIB_ADDR_LIST.BMS_DATETIME;
+ data[0] = (short)aCalib.BmsDateTime.sValue[0];
+ data[1] = (short)aCalib.BmsDateTime.sValue[1]; SetParam((ushort)(i + 0), data);
+ break;
+ case 18:
+ data = new short[1];
+ i = csConstData.UART_CALIB_ADDR_LIST.ANTI_THEFT_GYRO;
+ data[0] = (short)aCalib.AntiTheft.GyroScope; SetParam((ushort)(i + 0), data);
+ break;
+ case 19: // Clear Protect
+ data = new short[1];
+ i = csConstData.UART_CALIB_ADDR_LIST.ANTI_THEFT_GYRO;
+ data[0] = (short)0; SetParam((ushort)(i + 0), data);
+ data[0] = (short)aCalib.AntiTheft.GyroScope; SetParam((ushort)(i + 0), data);
+ break;
+ case 20:
+ data = new short[1];
+ i = csConstData.UART_CALIB_ADDR_LIST.ANTI_THEFT_COMM;
+ data[0] = (short)aCalib.AntiTheft.Comm; SetParam((ushort)(i + 0), data);
+ break;
+ case 21: // Cell Balancing Voltage
+ data = new short[1];
+ i = csConstData.UART_CALIB_ADDR_LIST.BAL_VOLT;
+ data[0] = (short)aCalib.BalCalib.Volt; SetParam((ushort)(i + 0), data);
+ break;
+ case 22: // Cell Balancing Diff
+ data = new short[1];
+ i = csConstData.UART_CALIB_ADDR_LIST.BAL_DIFF;
+ data[0] = (short)aCalib.BalCalib.Volt; SetParam((ushort)(i + 0), data);
+ break;
+ default:
+ break;
+ }
+ }
+
+ #endregion
+
+ #region RX BUFFERING
+
+ private const int BUFFER_SIZE = 512;
+
+ private readonly byte[] rBuffer = new byte[BUFFER_SIZE];
+ private int rBufStart = 0;
+ private int rBufEnd = 0;
+
+ private void PutBuff(byte c)
+ {
+ rBuffer[rBufStart++] = c;
+ rBufStart %= BUFFER_SIZE;
+
+ if (rBufStart == rBufEnd)
+ {
+ rBufEnd++;
+ rBufEnd %= BUFFER_SIZE;
+ }
+ }
+
+ private int GetBuff()
+ {
+ int result = 0;
+
+ if (rBufStart != rBufEnd)
+ {
+ result = 0x0100 + rBuffer[rBufEnd++];
+ rBufEnd %= BUFFER_SIZE;
+ }
+ return result;
+ }
+
+ private void FlushBuff()
+ {
+ rBufStart = rBufEnd = 0;
+ }
+
+ #endregion
+
+ #region TX BUFFERING
+
+ private byte[] MakeWriteRegData(ushort DevID, ushort WriteAddr, ushort WriteLen, ref ushort[] WriteData)
+ {
+ byte[] wData = null;
+
+ if (WriteLen > 0)
+ {
+
+ }
+
+ return wData;
+ }
+
+ private string MakeCheckSum(byte[] sData, int len)
+ {
+ string result = "";
+ int checksum = 0;
+
+ for (int i = 0; i < len; i++)
+ {
+ checksum += sData[i + 1];
+ }
+
+ checksum = ~checksum + 1;
+
+ result = String.Format("{0:X2}{1:X2}", (byte)(checksum >> 8), (byte)checksum);
+
+ return result;
+ }
+
+ private byte[] MakeTxDataVision(ref bool wData)
+ {
+ byte[] sData = null;
+
+ rFlag2 = 0;
+
+ if ((uartTxBuff != null) && (uartTxBuff.CheckBuff()))
+ {
+ TUartTRxData sBuff = uartTxBuff.GetBuff();
+ if (sBuff != null)
+ {
+ sData = sBuff.data;
+ wData = true;
+ rFlag = true;
+ rFlag2 = sBuff.type;
+ }
+ }
+ else if (wFlag == 2)
+ {
+ sData = csSerialCommFunction.MakeWriteCoilData((ushort)SystemId, WriteRegAddr, WriteCoilRegData);
+ if (wFlag != 0) wFlag = 0;
+ rFlag = true;
+ }
+ else if (wFlag == 3)
+ {
+ sData = WriteRegData;
+ if (wFlag != 0) wFlag = 0;
+ rFlag = true;
+ }
+ else if (wFlag == 4)
+ {
+ sData = csSerialCommFunction.MakeReadRegisterData((ushort)SystemId, csSerialCommFunction.READ_HOLDING_REG, ReadRegAddr, ReadRegLen);
+ if (wFlag != 0) wFlag = 0;
+ rFlag = true;
+ }
+ else
+ {
+ if (UartPolling && AutoUartTx)
+ {
+ ushort sCmd;
+ switch (addr_ch)
+ {
+ case 0:
+ addr_ch = 1;
+ RequestRegAddr = 0x0000; //Byul Init 0x0000
+ RequestRegLen = 0x0040;
+ sCmd = csSerialCommFunction.READ_HOLDING_REG;
+ rFlag = true;
+ break;
+ case 1:
+ addr_ch = 2;
+ RequestRegAddr = 0x0040;
+ RequestRegLen = 0x0040;
+ sCmd = csSerialCommFunction.READ_HOLDING_REG;
+ rFlag = true;
+ break;
+ case 2:
+ addr_ch = 3;
+ RequestRegAddr = 0x0080;
+ RequestRegLen = 0x0020 + 7;
+ sCmd = csSerialCommFunction.READ_HOLDING_REG;
+ rFlag = true;
+ break;
+ case 3:
+ if (Config.ModuleQty > 1)
+ {
+ SystemId++;
+ if (SystemId > Config.ModuleQty)
+ {
+ SystemId = 1;
+ }
+ }
+ addr_ch = 0;
+ sCmd = csSerialCommFunction.NO_CMD;
+ rFlag = false;
+ break;
+ default:
+ addr_ch = 0;
+ RequestRegAddr = 0x0000; //Byul Init 0x0000
+ RequestRegLen = 100;
+ sCmd = csSerialCommFunction.READ_HOLDING_REG;
+ break;
+ }
+ if (sCmd == csSerialCommFunction.NO_CMD)
+ {
+ sData = null;
+ }
+ else
+ {
+ sData = csSerialCommFunction.MakeReadRegisterData((ushort)SystemId, sCmd, RequestRegAddr, RequestRegLen);
+ }
+ }
+ }
+ return sData;
+ }
+
+ #endregion
+
+ #region COMM THREAD
+
+ private readonly byte[] ReadBuf = new byte[BUFFER_SIZE];
+ ushort rPosition = 0;
+ bool BuffStart = false;
+
+ private void RecvPacketInit()
+ {
+ BuffStart = false;
+ rPosition = 0;
+ }
+
+ private void uartCommThread()
+ {
+ int RecvTimeout = Config.RecvWaitTime;
+ int getData = 0;
+ byte cData = 0;
+ int TimeOutCount = 0;
+
+ StartSend:
+ while (SerialPortThreadEnd == false)
+ {
+ if ((sPort == null) || (sPort.IsOpen == false)) continue;
+
+ bool wMode = false;
+ byte[] txData = MakeTxDataVision(ref wMode);
+ if (txData != null)
+ {
+ FlushBuff();
+ sPort.Write(txData, 0, txData.Length);
+ OnPrint?.Invoke(this, csLog.trx_data_print(txData, txData.Length, 0));
+ }
+
+ if (rFlag == true)
+ {
+ RecvPacketInit();
+ DateTime rDateTime = DateTime.Now;
+
+ while (true)
+ {
+ DateTime nDateTime = rDateTime.AddMilliseconds(RecvTimeout);
+ if (nDateTime < DateTime.Now) break;
+
+ if (((getData = GetBuff()) & 0x0100) != 0x0000)
+ {
+ rDateTime = DateTime.Now;
+ cData = (byte)(getData & 0x00FF);
+ if (rPosition >= BUFFER_SIZE) RecvPacketInit();
+
+ if (BuffStart == false)
+ {
+ if ((cData == (byte)SystemId) || (cData == (byte)0x7F))
+ {
+ rPosition = 0;
+ ReadBuf[rPosition++] = cData;
+ BuffStart = true;
+ }
+ }
+ else
+ {
+ ReadBuf[rPosition++] = cData;
+
+ switch (csSerialCommFunction.ModbusPacketFromSlaveCheck(ReadBuf, rPosition))
+ {
+ case 0: // Need more data
+ break;
+ case 1: // Packet OK, no error
+ OnPrint?.Invoke(this, csLog.trx_data_print(ReadBuf, rPosition, 1));
+
+ TimeOutCount = 0;
+
+ int mID = ReadBuf[0];
+ if (mID > 0) mID--;
+
+ SystemData.CommFail = false;
+ SystemData.ShelfCommFail = false;
+
+ if (rFlag2 == 0)
+ {
+ short[] result_code = csSerialCommFunction.SerialRxProcess(ReadBuf, RequestRegAddr, rPosition, ref SystemData);
+
+ OnUpdate?.Invoke(this, ref SystemData);
+ }
+ else
+ {
+ rFlag2 = 0;
+ wMode = false;
+ WriteRegAddr = 0;
+ if (OnDataRecv != null)
+ {
+ byte[] adata = new byte[rPosition + 1];
+ for (int j = 0; j < adata.Length; j++) { adata[j] = ReadBuf[j]; }
+ OnDataRecv(adata);
+ }
+ }
+ rFlag = false;
+ Thread.Sleep(100);
+ goto StartSend;
+ case 2: // Fw Update Packet OK
+ OnPrint?.Invoke(this, csLog.trx_data_print(ReadBuf, rPosition, 1));
+
+ TimeOutCount = 0;
+ rFlag = false;
+ if (OnDataRecv != null)
+ {
+ byte[] adata = new byte[rPosition + 1];
+ for (int j = 0; j < adata.Length; j++)
+ {
+ adata[j] = ReadBuf[j];
+ }
+ OnDataRecv(adata);
+ }
+ goto StartSend;
+ case -1: // Packet error
+ RecvPacketInit();
+ Thread.Sleep(100);
+ goto StartSend;
+ default:
+ break;
+ }
+ }
+ }
+ else
+ {
+ Thread.Sleep(1);
+ }
+ }
+
+ if (rPosition > 0)
+ {
+ Thread.Sleep(1);
+ }
+ else
+ {
+ WriteRegAddr = 0;
+ TimeOutCount++;
+ if (TimeOutCount >= 5)
+ {
+ TimeOutCount = 5;
+ //SystemData[0].CommFail = true;
+ if (SystemData.ShelfCommFail == false)
+ {
+ SystemData.ShelfCommFail = true;
+ csUtils.DataInit(Config, ref SystemData);
+ }
+ }
+ Thread.Sleep(100);
+ }
+ OnUpdate?.Invoke(this, ref SystemData);
+ Thread.Sleep(1);
+ }
+ else
+ {
+ Thread.Sleep(100);
+ } /* if (rFlag == true) */
+ rPosition = 0;
+ }
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Utils/CsDbProcess.cs b/LFP_Manager/Utils/CsDbProcess.cs
new file mode 100644
index 0000000..770988b
--- /dev/null
+++ b/LFP_Manager/Utils/CsDbProcess.cs
@@ -0,0 +1,1400 @@
+using LFP_Manager.DataStructure;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SQLite;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Utils
+{
+ class csDbProcess
+ {
+ // Query - SELECT * FROM TABLE_NAME like('%neon%',field_name) - 문자를 포함하는 데이터 검색
+ public static string DbFileName = @"LFPS-48100S-J_INV.db";
+ public static string DbFilePathFormat = @"\db\";
+ public static string DbFileNameFormat = @"\db\{0}_{1}.db";
+ public static string DbSchemaTableFileName = @"\sql\DB_SCHEMA_TABLE.sql";
+ public static string ModuleTableName = @"TModule";
+
+ public static string LogDbFilePath = @"\db";
+ public static string LogDbFileNameFormat = @"\{0}\{1}_{2}_LOG.DB";
+ public static string LogDbSchemaTableFileName = @"\sql\LOG_DB_SCHEMA_TABLE.sql";
+
+ public static DateTime Delay(int ms)
+ {
+ DateTime thisMoment = DateTime.Now;
+ TimeSpan duration = new TimeSpan(0, 0, 0, 0, ms);
+ DateTime afterMoment = thisMoment.Add(duration);
+
+ while (afterMoment >= thisMoment)
+ {
+ System.Windows.Forms.Application.DoEvents();
+
+ thisMoment = DateTime.Now;
+ }
+
+ return DateTime.Now;
+ }
+
+ //트랜잭션 시작
+ public static void BeginTran(SQLiteConnection conn)
+ {
+ SQLiteCommand command = new SQLiteCommand("Begin", conn);
+ command.ExecuteNonQuery();
+ command.Dispose();
+ }
+
+ //트랜잭션 완료
+ public static void CommitTran(SQLiteConnection conn)
+ {
+ SQLiteCommand command = new SQLiteCommand("Commit", conn);
+ command.ExecuteNonQuery();
+ command.Dispose();
+ }
+
+ #region CREATE DATABASE
+
+ public static void DbCreate(string mSN, string bName)
+ {
+ string result = "";
+ string dbFilename = String.Format(DbFileNameFormat, MakeLotNumber(mSN, bName), bName);
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + dbFilename;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilePath));
+
+ if (File.Exists(dbFilePath) == true)
+ {
+ //throw new Exception("Already have db file - Failed to create db file");
+ return;
+ }
+ else
+ {
+ // Create database
+ SQLiteConnection.CreateFile(dbFilePath);
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Create table
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ string schemaFile = Path.GetDirectoryName(Application.ExecutablePath) + DbSchemaTableFileName;
+ string query = File.ReadAllText(schemaFile);
+
+ command.CommandText = query;
+ SQLiteDataReader reader = null;
+ reader = command.ExecuteReader();
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return;
+ }
+
+ public static void LogDbCreate(string aModel)
+ {
+ string result = "";
+ string ModelName = aModel;
+ //public static string LogDbFileNameFormat = @"\{0}\{1}_{2}_LOG.DB";
+ string dbFilename = String.Format(LogDbFileNameFormat
+ , String.Format("{0:yyMM}", DateTime.Now)
+ , String.Format("{0:yyMMdd}", DateTime.Now)
+ , ModelName
+ );
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + LogDbFilePath + dbFilename;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilePath));
+
+ if (File.Exists(dbFilePath) == true)
+ {
+ //throw new Exception("Already have db file - Failed to create db file");
+ return;
+ }
+ else
+ {
+ // Create database
+ SQLiteConnection.CreateFile(dbFilePath);
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Create table
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ string schemaFile = Path.GetDirectoryName(Application.ExecutablePath) + LogDbSchemaTableFileName;
+ string query = File.ReadAllText(schemaFile);
+
+ command.CommandText = query;
+ SQLiteDataReader reader = null;
+ reader = command.ExecuteReader();
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return;
+ }
+
+ public static void LogDbCreateNew(string aModel)
+ {
+ string result = "";
+ string ModelName = aModel;
+ //public static string LogDbFileNameFormat = @"\{0}\{1}_{2}_LOG.DB";
+ string dbFilename = String.Format(LogDbFileNameFormat
+ , String.Format("{0:yyMM}", DateTime.Now)
+ , String.Format("{0:yyMMdd}", DateTime.Now)
+ , ModelName
+ );
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + LogDbFilePath + dbFilename;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilePath));
+
+ // Create database
+ SQLiteConnection.CreateFile(dbFilePath);
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Create table
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ string schemaFile = Path.GetDirectoryName(Application.ExecutablePath) + LogDbSchemaTableFileName;
+ string query = File.ReadAllText(schemaFile);
+
+ command.CommandText = query;
+ SQLiteDataReader reader = null;
+ reader = command.ExecuteReader();
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return;
+ }
+
+ #endregion
+
+ #region MAKE LOT NUMBER
+ public static string MakeLotNumber(string mSN)
+ {
+ string LotNo = mSN.Substring(1, 11) + "000";
+ return LotNo;
+ }
+
+ public static string MakeLotNumber(string mSN, string bName)
+ {
+ string LotNo;
+
+ if (bName == "BMCB_J")
+ LotNo = mSN.Substring(0, 10) + "0000";
+ else
+ LotNo = mSN.Substring(1, 11) + "000";
+ return LotNo;
+ }
+
+ #endregion
+
+ #region Excute Database
+ public static DataTable DbSqlExcute(string path, string query, bool create_db_flag = false)
+ {
+ string result = "";
+ DataTable dtResult = null;
+ string dbFilename = Path.GetDirectoryName(path) + DbFileName;
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFilename)) == false)
+ Directory.CreateDirectory(Path.GetDirectoryName(dbFilename));
+
+ // Create database
+ if (File.Exists(dbFilename) == false)
+ {
+ if (create_db_flag == true)
+ SQLiteConnection.CreateFile(dbFilename);
+ else
+ throw new Exception("No database file - " + DbFileName);
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilename;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Create table
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //command.CommandText = "CREATE TABLE File (Name text, Size bigint, Modified datetime);";
+ command.CommandText = query;
+ SQLiteDataReader reader = null;
+ //command.ExecuteNonQuery();
+ reader = command.ExecuteReader();
+ dtResult = new DataTable();
+ dtResult.Load(reader);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable DbSqlExcuteA1(string path, string query)
+ {
+ DataTable dtResult = null;
+ string dbFilename = System.IO.Path.GetDirectoryName(path) + DbFileName;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilename)) == false)
+ Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilename));
+
+ if (File.Exists(dbFilename) == false)
+ // Create database
+ SQLiteConnection.CreateFile(dbFilename);
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilename;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Excute Query
+ var adpt = new SQLiteDataAdapter(query, connection);
+ DataSet ds = new DataSet();
+ adpt.Fill(ds);
+
+ dtResult = ds.Tables[0];
+ }
+ catch (Exception e)
+ {
+ throw e;
+ }
+ finally
+ {
+ connection.Close();
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable DbSqlExcuteA(string lot, string query, string bName, bool create_db_flag = false)
+ {
+ string result = "";
+ DataTable dtResult = new DataTable();
+ string lotNo = lot;
+ string dbFilename = String.Format(DbFileNameFormat, lotNo, bName);
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + dbFilename;
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false)
+ {
+ if (create_db_flag)
+ Directory.CreateDirectory(Path.GetDirectoryName(dbFilePath));
+ else
+ throw new Exception("No DB file path - " + Path.GetDirectoryName(dbFilePath));
+ }
+ if (File.Exists(dbFilePath) == false)
+ {
+ if (create_db_flag)
+ SQLiteConnection.CreateFile(dbFilePath);
+ else
+ throw new Exception(String.Format("No DB file - DbSqlExcuteA ({0})", dbFilename));
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Excute Query
+ var adpt = new SQLiteDataAdapter(query, connection);
+ DataSet ds = new DataSet();
+ adpt.Fill(ds);
+ if (ds.Tables.Count > 0)
+ dtResult = ds.Tables[0];
+ }
+ catch (Exception ex)
+ {
+ result = ex.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable DbSqlExcuteA2(string dbFileName, string query, bool create_db_flag = false)
+ {
+ string result = "";
+ DataTable dtResult = new DataTable();
+ string lotNo = dbFileName.Substring(0, 9);
+ string dbFilename = String.Format(DbFilePathFormat, lotNo) + dbFileName;
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + dbFilename;
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false)
+ {
+ if (create_db_flag)
+ Directory.CreateDirectory(Path.GetDirectoryName(dbFilePath));
+ else
+ throw new Exception("No DB file path - " + Path.GetDirectoryName(dbFilePath));
+ }
+ if (File.Exists(dbFilePath) == false)
+ {
+ if (create_db_flag)
+ SQLiteConnection.CreateFile(dbFilePath);
+ else
+ throw new Exception(String.Format("No DB file - DbSqlExcuteA ({0})", dbFilename));
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Excute Query
+ var adpt = new SQLiteDataAdapter(query, connection);
+ DataSet ds = new DataSet();
+ adpt.Fill(ds);
+ if (ds.Tables.Count > 0)
+ dtResult = ds.Tables[0];
+ }
+ catch (Exception ex)
+ {
+ result = ex.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+ public static DataTable DbSqlExcuteA3(string dbFileName, string query, bool create_db_flag = false)
+ {
+ string result = "";
+ DataTable dtResult = new DataTable();
+ string dbFilePath = dbFileName;
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false)
+ {
+ if (create_db_flag)
+ Directory.CreateDirectory(Path.GetDirectoryName(dbFilePath));
+ else
+ throw new Exception("No DB file path - " + Path.GetDirectoryName(dbFilePath));
+ }
+ if (File.Exists(dbFilePath) == false)
+ {
+ if (create_db_flag)
+ SQLiteConnection.CreateFile(dbFilePath);
+ else
+ throw new Exception(String.Format("No DB file - DbSqlExcuteA ({0})", dbFileName));
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Excute Query
+ var adpt = new SQLiteDataAdapter(query, connection);
+ DataSet ds = new DataSet();
+ adpt.Fill(ds);
+ if (ds.Tables.Count > 0)
+ dtResult = ds.Tables[0];
+ }
+ catch (Exception ex)
+ {
+ result = ex.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ #endregion
+
+ #region BMS DATA INSERT AND UPDATE
+
+ public static void BmsLogDataInsert(string modelName, ref DeviceSystemData systemData, DateTime dateTime, int cvUnit)
+ {
+ if (string.IsNullOrEmpty(modelName))
+ throw new ArgumentNullException(nameof(modelName));
+ if (systemData == null)
+ throw new ArgumentNullException(nameof(systemData));
+ if (cvUnit <= 0)
+ throw new ArgumentException("cvUnit must be greater than 0", nameof(cvUnit));
+
+ string dbFilename = GetLogDbFileName(modelName);
+ string dbFilePath = GetLogDbFilePath(dbFilename);
+ ValidateDbPath(dbFilePath);
+
+ using (var connection = new SQLiteConnection(string.Format("Data Source={0}", dbFilePath)))
+ {
+ try
+ {
+ connection.Open();
+ using (var transaction = connection.BeginTransaction())
+ {
+ try
+ {
+ InsertModuleData(connection, modelName, systemData, dateTime, cvUnit);
+ transaction.Commit();
+ }
+ catch
+ {
+ transaction.Rollback();
+ throw;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(string.Format("Failed to insert BMS log data: {0}", ex.Message), ex);
+ }
+ }
+ }
+
+ private static string GetLogDbFileName(string modelName)
+ {
+ return string.Format(LogDbFileNameFormat,
+ DateTime.Now.ToString("yyMM"),
+ DateTime.Now.ToString("yyMMdd"),
+ modelName);
+ }
+
+ private static string GetLogDbFilePath(string dbFilename)
+ {
+ string exePath = Path.GetDirectoryName(Application.ExecutablePath);
+ // LogDbFilePath가 이미 '\'로 시작한다면 제거
+ string cleanLogPath = LogDbFilePath.TrimStart('\\');
+ string cleanDbFilename = dbFilename.TrimStart('\\');
+ string fullPath = Path.Combine(exePath, cleanLogPath);
+ return Path.Combine(fullPath, cleanDbFilename);
+ }
+
+ private static void ValidateDbPath(string dbFilePath)
+ {
+ string directory = Path.GetDirectoryName(dbFilePath);
+ if (!Directory.Exists(directory))
+ throw new DirectoryNotFoundException(string.Format("Log DB directory not found: {0}", directory));
+ if (!File.Exists(dbFilePath))
+ throw new FileNotFoundException(string.Format("Log DB file not found: {0}", dbFilePath));
+ }
+
+ private static void InsertModuleData(SQLiteConnection connection, string modelName, DeviceSystemData systemData, DateTime dateTime, int cvUnit)
+ {
+ var columnNames = GetColumnNames(systemData);
+ var parameters = CreateParameters(systemData, dateTime, cvUnit);
+
+ using (var command = connection.CreateCommand())
+ {
+ var paramNames = new List();
+ foreach (var param in parameters)
+ {
+ paramNames.Add("@" + param.ParameterName);
+ }
+
+ command.CommandText = string.Format(
+ "INSERT INTO TModuleValue ({0}) VALUES ({1})",
+ string.Join(", ", columnNames),
+ string.Join(", ", paramNames));
+
+ command.Parameters.AddRange(parameters);
+ command.ExecuteNonQuery();
+ }
+ }
+
+ private static List GetColumnNames(DeviceSystemData systemData)
+ {
+ var columns = new List
+ {
+ "create_date",
+ "module_no",
+ "model_name",
+ "module_sn",
+ "fw_ver",
+ "comm_fail",
+ "op_status",
+ "alarm_status",
+ "warning",
+ "fault",
+ "module_voltage",
+ "module_current",
+ "module_soc",
+ "module_soh",
+ "module_cyclecount"
+ };
+
+ // Add cell voltage columns
+ for (int i = 1; i <= systemData.cellQty; i++)
+ {
+ columns.Add(string.Format("cell_voltage_{0:00}", i));
+ }
+
+ // Add temperature columns
+ for (int i = 1; i <= systemData.tempQty; i++)
+ {
+ columns.Add(string.Format("temperature_{0:00}", i));
+ }
+
+ columns.Add("ext1_temp");
+ columns.Add("ext2_temp");
+ columns.Add("chg_option");
+
+ return columns;
+ }
+
+ private static SQLiteParameter[] CreateParameters(DeviceSystemData systemData, DateTime dateTime, int cvUnit)
+ {
+ var parameters = new List
+ {
+ new SQLiteParameter("create_date", dateTime),
+ new SQLiteParameter("module_no", systemData.mNo),
+ new SQLiteParameter("model_name", systemData.Information.ModelName),
+ new SQLiteParameter("module_sn", systemData.Information.HwSerialNumber),
+ new SQLiteParameter("fw_ver", systemData.Information.SwProductRev),
+ new SQLiteParameter("comm_fail", systemData.ShelfCommFail),
+ new SQLiteParameter("op_status", systemData.StatusData.status),
+ new SQLiteParameter("alarm_status", systemData.StatusData.batteryStatus),
+ new SQLiteParameter("warning", systemData.StatusData.warning),
+ new SQLiteParameter("fault", systemData.StatusData.protection),
+ new SQLiteParameter("module_voltage", (systemData.ValueData.voltageOfPack / 10.0).ToString()),
+ new SQLiteParameter("module_current", (systemData.ValueData.current / 10.0).ToString()),
+ new SQLiteParameter("module_soc", (systemData.ValueData.rSOC / 10.0).ToString()),
+ new SQLiteParameter("module_soh", (systemData.ValueData.stateOfHealth / 10.0).ToString()),
+ new SQLiteParameter("module_cyclecount", systemData.ValueData.cycleCount.ToString())
+ };
+
+ // Add cell voltage parameters
+ for (int i = 0; i < systemData.cellQty; i++)
+ {
+ parameters.Add(new SQLiteParameter(
+ string.Format("cell_voltage_{0:00}", i + 1),
+ (systemData.ValueData.CellVoltage[i] / (float)cvUnit).ToString()));
+ }
+
+ // Add temperature parameters
+ for (int i = 0; i < systemData.tempQty; i++)
+ {
+ parameters.Add(new SQLiteParameter(
+ string.Format("temperature_{0:00}", i + 1),
+ (systemData.ValueData.CellTemperature[i] / 10.0).ToString()));
+ }
+
+ parameters.Add(new SQLiteParameter("ext1_temp", (systemData.ValueData.Ext1Temperature / 10.0).ToString()));
+ parameters.Add(new SQLiteParameter("ext2_temp", (systemData.ValueData.Ext2Temperature / 10.0).ToString()));
+ parameters.Add(new SQLiteParameter("chg_option", systemData.CalibrationData.Current.ChargeOption.ToString()));
+
+ return parameters.ToArray();
+ }
+
+ public static DataTable GetDataTable(string bSN, string aTableName, string bName)
+ {
+ string result = "";
+ DataTable dtResult = null;
+ string dbFilename = String.Format(DbFileNameFormat, MakeLotNumber(bSN, bName), bName);
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + dbFilename;
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFilePath) == false)
+ throw new Exception("No DB file");
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ WaitForm.Show();
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = String.Format("SELECT * FROM {0}", aTableName);
+ SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
+ adapter.AcceptChangesDuringFill = false;
+ dtResult = new DataTable();
+ adapter.Fill(dtResult);
+ dtResult.TableName = aTableName;
+
+ CommitTran(connection);
+
+ System.Windows.Forms.Application.DoEvents();
+ WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1));
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (WaitForm != null)
+ WaitForm.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable GetDataTableBySelect(string bSN, string sql, string aTableName, string bName)
+ {
+ string result = "";
+ DataTable dtResult = null;
+ string dbFilename = String.Format(DbFileNameFormat, MakeLotNumber(bSN, bName), bName);
+ string dbFilePath = System.IO.Path.GetDirectoryName(Application.ExecutablePath) + dbFilename;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFilePath) == false)
+ throw new Exception(String.Format("No DB file - {0}", dbFilePath));
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ WaitForm.Show();
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = sql;
+ SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
+ adapter.AcceptChangesDuringFill = false;
+ dtResult = new DataTable();
+ adapter.Fill(dtResult);
+ dtResult.TableName = aTableName;
+
+ System.Windows.Forms.Application.DoEvents();
+ WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1));
+
+ CommitTran(connection);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (WaitForm != null)
+ WaitForm.Close();
+ if (result != "")
+ throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable GetDataTableBySelectFromDbName(string dbFileName, string sql, string aTableName, string bName)
+ {
+ string result = "";
+ DataTable dtResult = null;
+
+ string lotNo = csDbUtils.MakeLotNumber(dbFileName.Substring(0, 8), bName);
+ string dbFilename = String.Format(@"\db\{0}\{1}", lotNo, dbFileName);
+ string dbFilePath = System.IO.Path.GetDirectoryName(Application.ExecutablePath) + dbFilename;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFilePath) == false)
+ throw new Exception(String.Format("No DB file - {0}", dbFilePath));
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ WaitForm.Show();
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = sql;
+ SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
+ adapter.AcceptChangesDuringFill = false;
+ dtResult = new DataTable();
+ adapter.Fill(dtResult);
+ dtResult.TableName = aTableName;
+
+ System.Windows.Forms.Application.DoEvents();
+ WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1));
+
+ CommitTran(connection);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (WaitForm != null)
+ WaitForm.Close();
+ if (result != "")
+ throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable GetDataTableByFileName(string fileName, string sql, string aTableName)
+ {
+ string result = "";
+ DataTable dtResult = null;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(fileName)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(fileName) == false)
+ throw new Exception("No DB file");
+ // Open database
+ string strConn = @"Data Source=" + fileName;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ WaitForm.Show();
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = sql;
+ SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
+ adapter.AcceptChangesDuringFill = false;
+ dtResult = new DataTable();
+ adapter.Fill(dtResult);
+ dtResult.TableName = aTableName;
+
+ System.Windows.Forms.Application.DoEvents();
+ WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1));
+
+ CommitTran(connection);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (WaitForm != null)
+ WaitForm.Close();
+ if (result != "")
+ throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable GetModuleMatchTableByFgNo(string fg_no, string bName)
+ {
+ DataTable dtResult = null;
+
+ int a, b, c;
+ a = Convert.ToInt32(fg_no);
+ b = a / 300 + 1;
+ c = a % 300;
+ if ((c == 0) && (b > 0)) b--;
+ string mSN = String.Format("1{0:yy}{1:00}{2:000}", DateTime.Now, b, c);
+ string lotNo = csDbUtils.MakeLotNumber(mSN, bName);
+ string dbfilePath = Path.GetDirectoryName(Application.ExecutablePath) + String.Format(DbFilePathFormat, lotNo);
+ string[] filePaths = Directory.GetFiles(dbfilePath, "*.db");
+
+ if (filePaths.Length > 0)
+ {
+ for (int i = 0; i < filePaths.Length; i++)
+ {
+ string fileName = Path.GetFileName(filePaths[i]);
+ byte[] bfilName = Encoding.ASCII.GetBytes(fileName);
+
+ dtResult = GetDataTableByFileName(filePaths[i], String.Format("SELECT * FROM TModuleMatch where fg_no={0}", fg_no), "TModuleMatch");
+ if ((dtResult != null) && (dtResult.Rows.Count == 1)) break;
+ }
+ }
+ if ((dtResult == null) || (dtResult.Rows.Count == 0))
+ throw new Exception(String.Format("No match data - {0}", fg_no));
+
+ return dtResult;
+ }
+
+ public static void BmsPcbMatchDataInsert(string dbFileName, DataRow sRow)
+ {
+ string result = "";
+ int resultCode = (int)SQLiteErrorCode.Unknown;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFileName)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFileName) == false)
+ throw new Exception(String.Format("No DB file - BmsDataInsert ({0})", dbFileName));
+
+ // Open database
+ string strConn = @"Data Source=" + dbFileName;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait
+ {
+ StartPosition = FormStartPosition.CenterScreen
+ };
+
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ WaitForm.Show();
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = "INSERT INTO"
+ + " TBmsPcbMatchTable"
+ + " (PCB1_SERIAL_NUMBER, MODULE_SERIAL_NUMBER, create_date, modify_date)" // 2
+ + " Values (?,?,?,?);";
+ SQLiteParameter[] p = new SQLiteParameter[4];
+
+ for (int i = 0; i < 4; i++)
+ {
+ p[i] = new SQLiteParameter();
+ command.Parameters.Add(p[i]);
+ }
+
+ int j = 0;
+ p[j++].Value = sRow["PCB1_SERIAL_NUMBER"]; // pcb_sn
+ p[j++].Value = sRow["MODULE_SERIAL_NUMBER"]; // module_sn
+ p[j++].Value = DateTime.Now; // create_date
+ p[j++].Value = DateTime.Now; // modify_date
+
+ command.ExecuteNonQuery();
+
+ WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1));
+ System.Windows.Forms.Application.DoEvents();
+
+ CommitTran(connection);
+ }
+ }
+ catch (SQLiteException sqle)
+ {
+ // Handle DB exception
+ result = sqle.Message;
+ resultCode = sqle.ErrorCode;
+ }
+ catch (IndexOutOfRangeException ie)
+ {
+ // If you think there might be a problem with index range in the loop, for example
+ result = ie.Message;
+ resultCode = 9999;
+ }
+ catch (Exception ex)
+ {
+ result = ex.Message;
+ resultCode = 9998;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (WaitForm != null)
+ WaitForm.Close();
+ if (result != "")
+ {
+ if (resultCode == 9998) throw new Exception(result);
+ else if (resultCode == 9999) throw new IndexOutOfRangeException(result);
+ else throw new SQLiteException((SQLiteErrorCode)resultCode, result);
+ }
+ }
+ }
+ }
+
+ public static void ErrorLogInsert(string dbFileName, DataRow sRow, string Process, string ErrType, string ErrMsg)
+ {
+ string result = "";
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFileName)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFileName) == false)
+ throw new Exception(String.Format("No DB file - ErrorLogInsert ({0})", dbFileName));
+
+ // Open database
+ string strConn = @"Data Source=" + dbFileName;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = "INSERT INTO"
+ + " TErrorLogTable"
+ + " (create_date, MODULE_SERIAL_NUMBER, PCB1_SERIAL_NUMBER, PROCESS, ERROR_TYPE, ERROR_MSG)" // 2
+ + " Values (?,?,?,?,?,?);";
+ SQLiteParameter[] p = new SQLiteParameter[6];
+
+ for (int i = 0; i < 6; i++)
+ {
+ p[i] = new SQLiteParameter();
+ command.Parameters.Add(p[i]);
+ }
+
+ int j = 0;
+ p[j++].Value = DateTime.Now; // create_date
+ p[j++].Value = sRow["MODULE_SERIAL_NUMBER"]; // module_sn
+ p[j++].Value = sRow["PCB1_SERIAL_NUMBER"]; // pcb_sn
+ p[j++].Value = Process; // process
+ p[j++].Value = ErrType; // error type
+ p[j++].Value = ErrMsg; // error message
+
+ command.ExecuteNonQuery();
+
+ CommitTran(connection);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ }
+
+ #endregion
+
+ #region SELECT QUARY
+
+ public static int DbQuaryExcuteToDataTable(string dbFileName, string Quary, ref DataTable rDT)
+ {
+ int result = 0;
+ string resultStr = String.Empty;
+
+ string strConn = @"Data Source=" + dbFileName;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = Quary;
+ SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
+ adapter.AcceptChangesDuringFill = false;
+ rDT = new DataTable();
+ adapter.Fill(rDT);
+ //rDT.TableName = "TModuleValue";
+
+ CommitTran(connection);
+
+ result = rDT.Rows.Count;
+
+ System.Windows.Forms.Application.DoEvents();
+ }
+ }
+ catch (Exception e)
+ {
+ resultStr = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (resultStr != "") throw new Exception(resultStr);
+ }
+ }
+ return result;
+ }
+
+ public static void CreateLogDbFile(string dbFileName)
+ {
+ string result = "";
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFileName)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFileName) == true)
+ throw new Exception(String.Format("Already have DB file - DbQuaryExcuteToDbFile({0})", dbFileName));
+
+ // Create database
+ SQLiteConnection.CreateFile(dbFileName);
+
+ // Open database
+ string strConn = @"Data Source=" + dbFileName;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ WaitForm.Show();
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ string schemaFile = Path.GetDirectoryName(Application.ExecutablePath) + LogDbSchemaTableFileName;
+ string query = File.ReadAllText(schemaFile);
+
+ command.CommandText = query;
+ SQLiteDataReader reader = null;
+ reader = command.ExecuteReader();
+
+ WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1));
+ System.Windows.Forms.Application.DoEvents();
+
+ CommitTran(connection);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (WaitForm != null)
+ WaitForm.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ }
+
+ public static void DbInsertDataToDbFile(string dbFileName, DataRow dtRow)
+ {
+ string result = "";
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFileName)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFileName) == false)
+ throw new Exception(String.Format("No DB file - DbInsertDataToDbFile({0})", dbFileName));
+
+ // Open database
+ string strConn = @"Data Source=" + dbFileName;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ command.CommandText = String.Format("INSERT INTO TModuleValue (");
+ command.CommandText += "create_date" // 0
+ + ", module_no" // 1
+ + ", pcb_sn" // 2
+ + ", module_sn" // 3
+ + ", fw_ver" // 4
+ + ", comm_fail" // 5
+ + ", op_status" // 6
+ + ", alarm_status" // 7
+ + ", warning" // 8
+ + ", fault" // 9
+ + ", module_voltage" // 10
+ + ", module_current" // 11
+ + ", module_soc" // 12
+ + ", module_soh" // 13
+ ;
+ for (int i = 0; i < 15; i++)
+ {
+ command.CommandText += String.Format(", cell_voltage_{0:00}", i + 1); // 14 ~ 28; 15 cells
+ }
+ for (int i = 0; i < 6; i++)
+ {
+ command.CommandText += String.Format(", temperature_{0:00}", i + 1); // 29 ~ 34; 6 temps
+ }
+ command.CommandText += ""
+ + ", chg_option" // 35
+ + ", chg_cal" // 36
+ + ", dch_cal" // 37
+ + ")"
+ + " Values (";
+
+ int total = dtRow.Table.Columns.Count;
+
+ for (int i = 0; i < (total - 1); i++) command.CommandText += "?,";
+ command.CommandText += "?);";
+
+ SQLiteParameter[] p = new SQLiteParameter[total];
+
+ for (int i = 0; i < total; i++)
+ {
+ if (i == 0)
+ p[i] = new SQLiteParameter(DbType.DateTime);
+ else
+ p[i] = new SQLiteParameter();
+ command.Parameters.Add(p[i]);
+ }
+
+ int j = 0;
+ p[j++].Value = String.Format("{0:yyyy/MM/dd HH:mm:ss}", dtRow["create_date"]); // 0 create_date
+ p[j++].Value = dtRow["module_no"]; // 1 module_no
+ p[j++].Value = dtRow["pcb_sn"]; // 2 pcb_sn
+ p[j++].Value = dtRow["module_sn"]; // 3 module_sn
+ p[j++].Value = dtRow["fw_ver"]; // 4 fw_ver
+ p[j++].Value = dtRow["comm_fail"]; // 5 comm_fail
+ p[j++].Value = dtRow["op_status"]; // 6 op_status
+ p[j++].Value = dtRow["alarm_status"]; // 7 alarm_status
+ p[j++].Value = dtRow["warning"]; // 8 warning
+ p[j++].Value = dtRow["fault"]; // 9 fault
+ p[j++].Value = dtRow["module_voltage"]; // 10 module_voltage
+ p[j++].Value = dtRow["module_current"]; // 11 module_current
+ p[j++].Value = dtRow["module_soc"]; // 12 module_soc
+ p[j++].Value = dtRow["module_soh"]; // 13 module_soh
+
+ for (int i = 0; i < 15; i++)
+ {
+ p[j++].Value = dtRow[String.Format("cell_voltage_{0:00}", i + 1)]; // 14 cell_voltage_01 28
+ }
+ for (int i = 0; i < 6; i++)
+ {
+ p[j++].Value = dtRow[String.Format("temperature_{0:00}", i + 1)]; // 29 cell_voltage_01 36
+ }
+
+ p[j++].Value = dtRow["chg_option"]; // 37 chg_option
+ p[j++].Value = dtRow["chg_cal"]; // 38 chg_cal
+ p[j++].Value = dtRow["dch_cal"]; // 39 dch_cal
+
+ command.ExecuteNonQuery();
+
+ CommitTran(connection);
+ }
+ }
+ catch (SQLiteException se)
+ {
+ if (se.ResultCode != SQLiteErrorCode.Constraint)
+ result = se.Message;
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ }
+
+ public static DataTable BmsDataSelectToDataTable(CommConfig aConfig, DateTime aDate, string qry)
+ {
+ string result = "";
+ DataTable dtResult = null;
+ string ModelName = csConstData.MODEL_STR[aConfig.UartModelIndex];
+ string dbFilename = String.Format(LogDbFileNameFormat
+ , String.Format("{0:yyMM}", aDate)
+ , String.Format("{0:yyMMdd}", aDate)
+ , ModelName
+ );
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + LogDbFilePath + dbFilename;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ return dtResult;
+ if (File.Exists(dbFilePath) == false)
+ return dtResult;
+
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = String.Format("SELECT * FROM TModuleValue {0}", qry);
+ SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
+ adapter.AcceptChangesDuringFill = false;
+ dtResult = new DataTable();
+ adapter.Fill(dtResult);
+ dtResult.TableName = "TModuleValue";
+
+ CommitTran(connection);
+
+ System.Windows.Forms.Application.DoEvents();
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+ #endregion
+
+ public class SQLITE
+ {
+ private SQLiteConnection con;
+ private SQLiteCommand cmd;
+ private SQLiteDataAdapter adapter;
+
+ public SQLITE(string databasename)
+ {
+ con = new SQLiteConnection(string.Format("Data Source={0};Compress=True;", databasename));
+ }
+
+ public int Execute(string sql_statement)
+ {
+ con.Open();
+ cmd = con.CreateCommand();
+ cmd.CommandText = sql_statement;
+ int row_updated;
+ try
+ {
+ row_updated = cmd.ExecuteNonQuery();
+ }
+ catch
+ {
+ con.Close();
+ return 0;
+ }
+ con.Close();
+ return row_updated;
+ }
+ public DataTable GetDataTable(string tablename)
+ {
+ DataTable DT = new DataTable();
+ con.Open();
+ cmd = con.CreateCommand();
+ cmd.CommandText = string.Format("SELECT * FROM {0}", tablename);
+ adapter = new SQLiteDataAdapter(cmd);
+ adapter.AcceptChangesDuringFill = false;
+ adapter.Fill(DT);
+ con.Close();
+ DT.TableName = tablename;
+ return DT;
+ }
+ public void SaveDataTable(DataTable DT)
+ {
+ try
+ {
+ Execute(string.Format("DELETE FROM {0}", DT.TableName));
+ con.Open();
+ cmd = con.CreateCommand();
+ cmd.CommandText = string.Format("SELECT * FROM {0}", DT.TableName);
+ adapter = new SQLiteDataAdapter(cmd);
+ SQLiteCommandBuilder builder = new SQLiteCommandBuilder(adapter);
+ adapter.Update(DT);
+ con.Close();
+ }
+ catch (Exception Ex)
+ {
+ MessageBox.Show(Ex.Message);
+ }
+ }
+ }
+ }
+}
diff --git a/LFP_Manager/Utils/csDBUtils.cs b/LFP_Manager/Utils/csDBUtils.cs
new file mode 100644
index 0000000..2382116
--- /dev/null
+++ b/LFP_Manager/Utils/csDBUtils.cs
@@ -0,0 +1,1352 @@
+using LFP_Manager.DataStructure;
+using System;
+using System.Data;
+using System.Data.SQLite;
+using System.IO;
+using System.Text;
+using System.Windows.Forms;
+
+namespace LFP_Manager.Utils
+{
+ class csDbUtils
+ {
+ // Query - SELECT * FROM TABLE_NAME like('%neon%',field_name) - 문자를 포함하는 데이터 검색
+ public static string DbFileName = @"LFPS-48100S-J_INV.db";
+ public static string DbFilePathFormat = @"\db\";
+ public static string DbFileNameFormat = @"\db\{0}_{1}.db";
+ public static string DbSchemaTableFileName = @"\sql\DB_SCHEMA_TABLE.sql";
+ public static string ModuleTableName = @"TModule";
+
+ public static string LogDbFilePath = @"\db";
+ public static string LogDbFileNameFormat = @"\{0}\{1}_{2}_LOG.DB";
+ public static string LogDbSchemaTableFileName = @"\sql\LOG_DB_SCHEMA_TABLE.sql";
+
+ public static DateTime Delay(int ms)
+ {
+ DateTime thisMoment = DateTime.Now;
+ TimeSpan duration = new TimeSpan(0, 0, 0, 0, ms);
+ DateTime afterMoment = thisMoment.Add(duration);
+
+ while (afterMoment >= thisMoment)
+ {
+ System.Windows.Forms.Application.DoEvents();
+
+ thisMoment = DateTime.Now;
+ }
+
+ return DateTime.Now;
+ }
+
+ //트랜잭션 시작
+ public static void BeginTran(SQLiteConnection conn)
+ {
+ SQLiteCommand command = new SQLiteCommand("Begin", conn);
+ command.ExecuteNonQuery();
+ command.Dispose();
+ }
+
+ //트랜잭션 완료
+ public static void CommitTran(SQLiteConnection conn)
+ {
+ SQLiteCommand command = new SQLiteCommand("Commit", conn);
+ command.ExecuteNonQuery();
+ command.Dispose();
+ }
+
+ #region CREATE DATABASE
+
+ public static void DbCreate(string mSN, string bName)
+ {
+ string result = "";
+ string dbFilename = String.Format(DbFileNameFormat, MakeLotNumber(mSN, bName), bName);
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + dbFilename;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilePath));
+
+ if (File.Exists(dbFilePath) == true)
+ {
+ //throw new Exception("Already have db file - Failed to create db file");
+ return;
+ }
+ else
+ {
+ // Create database
+ SQLiteConnection.CreateFile(dbFilePath);
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Create table
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ string schemaFile = Path.GetDirectoryName(Application.ExecutablePath) + DbSchemaTableFileName;
+ string query = File.ReadAllText(schemaFile);
+
+ command.CommandText = query;
+ SQLiteDataReader reader = null;
+ reader = command.ExecuteReader();
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return;
+ }
+
+ public static void LogDbCreate(string aModel)
+ {
+ string result = "";
+ string ModelName = aModel;
+ //public static string LogDbFileNameFormat = @"\{0}\{1}_{2}_LOG.DB";
+ string dbFilename = String.Format(LogDbFileNameFormat
+ , String.Format("{0:yyMM}", DateTime.Now)
+ , String.Format("{0:yyMMdd}", DateTime.Now)
+ , ModelName
+ );
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + LogDbFilePath + dbFilename;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilePath));
+
+ if (File.Exists(dbFilePath) == true)
+ {
+ //throw new Exception("Already have db file - Failed to create db file");
+ return;
+ }
+ else
+ {
+ // Create database
+ SQLiteConnection.CreateFile(dbFilePath);
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Create table
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ string schemaFile = Path.GetDirectoryName(Application.ExecutablePath) + LogDbSchemaTableFileName;
+ string query = File.ReadAllText(schemaFile);
+
+ command.CommandText = query;
+ SQLiteDataReader reader = null;
+ reader = command.ExecuteReader();
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return;
+ }
+
+ public static void LogDbCreateNew(string aModel)
+ {
+ string result = "";
+ string ModelName = aModel;
+ //public static string LogDbFileNameFormat = @"\{0}\{1}_{2}_LOG.DB";
+ string dbFilename = String.Format(LogDbFileNameFormat
+ , String.Format("{0:yyMM}", DateTime.Now)
+ , String.Format("{0:yyMMdd}", DateTime.Now)
+ , ModelName
+ );
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + LogDbFilePath + dbFilename;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilePath));
+
+ // Create database
+ SQLiteConnection.CreateFile(dbFilePath);
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Create table
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ string schemaFile = Path.GetDirectoryName(Application.ExecutablePath) + LogDbSchemaTableFileName;
+ string query = File.ReadAllText(schemaFile);
+
+ command.CommandText = query;
+ SQLiteDataReader reader = null;
+ reader = command.ExecuteReader();
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return;
+ }
+
+ #endregion
+
+ #region MAKE LOT NUMBER
+ public static string MakeLotNumber(string mSN)
+ {
+ string LotNo = mSN.Substring(1, 11) + "000";
+ return LotNo;
+ }
+
+ public static string MakeLotNumber(string mSN, string bName)
+ {
+ string LotNo;
+
+ if (bName == "BMCB_J")
+ LotNo = mSN.Substring(0, 10) + "0000";
+ else
+ LotNo = mSN.Substring(1, 11) + "000";
+ return LotNo;
+ }
+
+ #endregion
+
+ #region Excute Database
+ public static DataTable DbSqlExcute(string path, string query, bool create_db_flag = false)
+ {
+ string result = "";
+ DataTable dtResult = null;
+ string dbFilename = Path.GetDirectoryName(path) + DbFileName;
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFilename)) == false)
+ Directory.CreateDirectory(Path.GetDirectoryName(dbFilename));
+
+ // Create database
+ if (File.Exists(dbFilename) == false)
+ {
+ if (create_db_flag == true)
+ SQLiteConnection.CreateFile(dbFilename);
+ else
+ throw new Exception("No database file - " + DbFileName);
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilename;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Create table
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //command.CommandText = "CREATE TABLE File (Name text, Size bigint, Modified datetime);";
+ command.CommandText = query;
+ SQLiteDataReader reader = null;
+ //command.ExecuteNonQuery();
+ reader = command.ExecuteReader();
+ dtResult = new DataTable();
+ dtResult.Load(reader);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable DbSqlExcuteA1(string path, string query)
+ {
+ DataTable dtResult = null;
+ string dbFilename = System.IO.Path.GetDirectoryName(path) + DbFileName;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilename)) == false)
+ Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilename));
+
+ if (File.Exists(dbFilename) == false)
+ // Create database
+ SQLiteConnection.CreateFile(dbFilename);
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilename;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Excute Query
+ var adpt = new SQLiteDataAdapter(query, connection);
+ DataSet ds = new DataSet();
+ adpt.Fill(ds);
+
+ dtResult = ds.Tables[0];
+ }
+ catch (Exception e)
+ {
+ throw e;
+ }
+ finally
+ {
+ connection.Close();
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable DbSqlExcuteA(string lot, string query, string bName, bool create_db_flag = false)
+ {
+ string result = "";
+ DataTable dtResult = new DataTable();
+ string lotNo = lot;
+ string dbFilename = String.Format(DbFileNameFormat, lotNo, bName);
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + dbFilename;
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false)
+ {
+ if (create_db_flag)
+ Directory.CreateDirectory(Path.GetDirectoryName(dbFilePath));
+ else
+ throw new Exception("No DB file path - " + Path.GetDirectoryName(dbFilePath));
+ }
+ if (File.Exists(dbFilePath) == false)
+ {
+ if (create_db_flag)
+ SQLiteConnection.CreateFile(dbFilePath);
+ else
+ throw new Exception(String.Format("No DB file - DbSqlExcuteA ({0})", dbFilename));
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Excute Query
+ var adpt = new SQLiteDataAdapter(query, connection);
+ DataSet ds = new DataSet();
+ adpt.Fill(ds);
+ if (ds.Tables.Count > 0)
+ dtResult = ds.Tables[0];
+ }
+ catch (Exception ex)
+ {
+ result = ex.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable DbSqlExcuteA2(string dbFileName, string query, bool create_db_flag = false)
+ {
+ string result = "";
+ DataTable dtResult = new DataTable();
+ string lotNo = dbFileName.Substring(0, 9);
+ string dbFilename = String.Format(DbFilePathFormat, lotNo) + dbFileName;
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + dbFilename;
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false)
+ {
+ if (create_db_flag)
+ Directory.CreateDirectory(Path.GetDirectoryName(dbFilePath));
+ else
+ throw new Exception("No DB file path - " + Path.GetDirectoryName(dbFilePath));
+ }
+ if (File.Exists(dbFilePath) == false)
+ {
+ if (create_db_flag)
+ SQLiteConnection.CreateFile(dbFilePath);
+ else
+ throw new Exception(String.Format("No DB file - DbSqlExcuteA ({0})", dbFilename));
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Excute Query
+ var adpt = new SQLiteDataAdapter(query, connection);
+ DataSet ds = new DataSet();
+ adpt.Fill(ds);
+ if (ds.Tables.Count > 0)
+ dtResult = ds.Tables[0];
+ }
+ catch (Exception ex)
+ {
+ result = ex.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+ public static DataTable DbSqlExcuteA3(string dbFileName, string query, bool create_db_flag = false)
+ {
+ string result = "";
+ DataTable dtResult = new DataTable();
+ string dbFilePath = dbFileName;
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false)
+ {
+ if (create_db_flag)
+ Directory.CreateDirectory(Path.GetDirectoryName(dbFilePath));
+ else
+ throw new Exception("No DB file path - " + Path.GetDirectoryName(dbFilePath));
+ }
+ if (File.Exists(dbFilePath) == false)
+ {
+ if (create_db_flag)
+ SQLiteConnection.CreateFile(dbFilePath);
+ else
+ throw new Exception(String.Format("No DB file - DbSqlExcuteA ({0})", dbFileName));
+ }
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ connection.Open();
+ try
+ {
+ // Excute Query
+ var adpt = new SQLiteDataAdapter(query, connection);
+ DataSet ds = new DataSet();
+ adpt.Fill(ds);
+ if (ds.Tables.Count > 0)
+ dtResult = ds.Tables[0];
+ }
+ catch (Exception ex)
+ {
+ result = ex.Message;
+ }
+ finally
+ {
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ #endregion
+
+ #region BMS DATA INSERT AND UPDATE
+
+ public static void BmsLogDataInsert(string ModelName, ref DeviceSystemData aSystemData, DateTime dateTime, int cvUnit)
+ {
+ string result = "";
+ //string ModelName = csConstData.CAN_MODEL[aConfig.CanModelIndex];
+ //public static string LogDbFileNameFormat = @"\{0}\{1}_{2}_LOG.DB";
+ string dbFilename = String.Format(LogDbFileNameFormat
+ , String.Format("{0:yyMM}", DateTime.Now)
+ , String.Format("{0:yyMMdd}", DateTime.Now)
+ , ModelName
+ );
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + LogDbFilePath + dbFilename;
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false)
+ throw new Exception("No Log DB file path");
+ if (File.Exists(dbFilePath) == false)
+ throw new Exception(String.Format("No Log DB file - BmsLogDataInsert ({0})", dbFilename));
+
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = String.Format("INSERT INTO TModuleValue (");
+ command.CommandText += "create_date" // 0
+ + ", module_no" // 1
+ + ", model_name" // 2
+ + ", module_sn" // 3
+ + ", fw_ver" // 4
+ + ", comm_fail" // 5
+ + ", op_status" // 6
+ + ", alarm_status" // 7
+ + ", warning" // 8
+ + ", fault" // 9
+ + ", module_voltage" // 10
+ + ", module_current" // 11
+ + ", module_soc" // 12
+ + ", module_soh" // 13
+ + ", module_cyclecount" // 14
+ ;
+ for (int i = 0; i < aSystemData.cellQty; i++)
+ {
+ command.CommandText += String.Format(", cell_voltage_{0:00}", i + 1); // 14 ~ 28; 15 cells
+ }
+ for (int i = 0; i < aSystemData.tempQty; i++)
+ {
+ command.CommandText += String.Format(", temperature_{0:00}", i + 1); // 29 ~ 32; 6 temps
+ }
+ command.CommandText += ""
+ + ", ext1_temp" // 35
+ + ", ext2_temp" // 35
+ + ", chg_option" // 35
+ + ")"
+ + " Values (";
+
+ int total = 15 + aSystemData.cellQty + aSystemData.tempQty + 3;
+
+ for (int i = 0; i < (total - 1); i++) command.CommandText += "?,";
+ command.CommandText += "?);";
+
+ SQLiteParameter[] p = new SQLiteParameter[total];
+
+ for (int i = 0; i < total; i++)
+ {
+ if (i == 0)
+ p[i] = new SQLiteParameter(DbType.DateTime);
+ else
+ p[i] = new SQLiteParameter();
+ command.Parameters.Add(p[i]);
+ }
+
+ int j = 0;
+ p[j++].Value = dateTime; // 0 create_date
+ p[j++].Value = aSystemData.mNo; // 1 Module No
+ p[j++].Value = aSystemData.Information.ModelName; // 2 model_name
+ p[j++].Value = aSystemData.Information.HwSerialNumber; // 3 module_sn
+ p[j++].Value = aSystemData.Information.SwProductRev; // 4 fw_ver
+
+ p[j++].Value = aSystemData.ShelfCommFail; // 5 comm_fail
+ p[j++].Value = aSystemData.StatusData.status; // 6 op_status
+ p[j++].Value = aSystemData.StatusData.batteryStatus; // 7 alarm_status
+ p[j++].Value = aSystemData.StatusData.warning; // 8 warning
+ p[j++].Value = aSystemData.StatusData.protection; // 9 fault
+ p[j++].Value = ((float)aSystemData.ValueData.voltageOfPack / 10).ToString(); // 10 module_voltage
+ p[j++].Value = ((float)aSystemData.ValueData.current / 10).ToString(); // 11 module_current
+ p[j++].Value = ((float)aSystemData.ValueData.rSOC / 10).ToString(); // 12 module_soc
+ p[j++].Value = ((float)aSystemData.ValueData.stateOfHealth / 10).ToString(); // 13 module_soh
+ p[j++].Value = ((float)aSystemData.ValueData.cycleCount / 1).ToString(); // 14 module_soh
+
+ for (int i = 0; i < aSystemData.cellQty; i++)
+ {
+ p[j++].Value = ((float)aSystemData.ValueData.CellVoltage[i] / cvUnit).ToString(); // 15 cell_voltage_01
+ }
+ for (int i = 0; i < aSystemData.tempQty; i++)
+ {
+ p[j++].Value = ((float)aSystemData.ValueData.CellTemperature[i] / 10).ToString(); // 30 temperature_01
+ }
+ p[j++].Value = ((float)aSystemData.ValueData.Ext1Temperature / 10).ToString(); // 34 temperature_ext1 - FET Temp
+ p[j++].Value = ((float)aSystemData.ValueData.Ext2Temperature / 10).ToString(); // 35 temperature_ext2 - Lmt Temp
+
+ p[j++].Value = aSystemData.CalibrationData.Current.ChargeOption.ToString(); // 36 chg_option
+
+ command.ExecuteNonQuery();
+
+ CommitTran(connection);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ }
+
+ public static DataTable GetDataTable(string bSN, string aTableName, string bName)
+ {
+ string result = "";
+ DataTable dtResult = null;
+ string dbFilename = String.Format(DbFileNameFormat, MakeLotNumber(bSN, bName), bName);
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + dbFilename;
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFilePath) == false)
+ throw new Exception("No DB file");
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ WaitForm.Show();
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = String.Format("SELECT * FROM {0}", aTableName);
+ SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
+ adapter.AcceptChangesDuringFill = false;
+ dtResult = new DataTable();
+ adapter.Fill(dtResult);
+ dtResult.TableName = aTableName;
+
+ CommitTran(connection);
+
+ System.Windows.Forms.Application.DoEvents();
+ WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1));
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (WaitForm != null)
+ WaitForm.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable GetDataTableBySelect(string bSN, string sql, string aTableName, string bName)
+ {
+ string result = "";
+ DataTable dtResult = null;
+ string dbFilename = String.Format(DbFileNameFormat, MakeLotNumber(bSN, bName), bName);
+ string dbFilePath = System.IO.Path.GetDirectoryName(Application.ExecutablePath) + dbFilename;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFilePath) == false)
+ throw new Exception(String.Format("No DB file - {0}", dbFilePath));
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ WaitForm.Show();
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = sql;
+ SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
+ adapter.AcceptChangesDuringFill = false;
+ dtResult = new DataTable();
+ adapter.Fill(dtResult);
+ dtResult.TableName = aTableName;
+
+ System.Windows.Forms.Application.DoEvents();
+ WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1));
+
+ CommitTran(connection);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (WaitForm != null)
+ WaitForm.Close();
+ if (result != "")
+ throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable GetDataTableBySelectFromDbName(string dbFileName, string sql, string aTableName, string bName)
+ {
+ string result = "";
+ DataTable dtResult = null;
+
+ string lotNo = csDbUtils.MakeLotNumber(dbFileName.Substring(0, 8), bName);
+ string dbFilename = String.Format(@"\db\{0}\{1}", lotNo, dbFileName);
+ string dbFilePath = System.IO.Path.GetDirectoryName(Application.ExecutablePath) + dbFilename;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFilePath) == false)
+ throw new Exception(String.Format("No DB file - {0}", dbFilePath));
+ // Open database
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ WaitForm.Show();
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = sql;
+ SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
+ adapter.AcceptChangesDuringFill = false;
+ dtResult = new DataTable();
+ adapter.Fill(dtResult);
+ dtResult.TableName = aTableName;
+
+ System.Windows.Forms.Application.DoEvents();
+ WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1));
+
+ CommitTran(connection);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (WaitForm != null)
+ WaitForm.Close();
+ if (result != "")
+ throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable GetDataTableByFileName(string fileName, string sql, string aTableName)
+ {
+ string result = "";
+ DataTable dtResult = null;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(fileName)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(fileName) == false)
+ throw new Exception("No DB file");
+ // Open database
+ string strConn = @"Data Source=" + fileName;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ WaitForm.Show();
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = sql;
+ SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
+ adapter.AcceptChangesDuringFill = false;
+ dtResult = new DataTable();
+ adapter.Fill(dtResult);
+ dtResult.TableName = aTableName;
+
+ System.Windows.Forms.Application.DoEvents();
+ WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1));
+
+ CommitTran(connection);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (WaitForm != null)
+ WaitForm.Close();
+ if (result != "")
+ throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+
+ public static DataTable GetModuleMatchTableByFgNo(string fg_no, string bName)
+ {
+ DataTable dtResult = null;
+
+ int a, b, c;
+ a = Convert.ToInt32(fg_no);
+ b = a / 300 + 1;
+ c = a % 300;
+ if ((c == 0) && (b > 0)) b--;
+ string mSN = String.Format("1{0:yy}{1:00}{2:000}", DateTime.Now, b, c);
+ string lotNo = csDbUtils.MakeLotNumber(mSN, bName);
+ string dbfilePath = Path.GetDirectoryName(Application.ExecutablePath) + String.Format(DbFilePathFormat, lotNo);
+ string[] filePaths = Directory.GetFiles(dbfilePath, "*.db");
+
+ if (filePaths.Length > 0)
+ {
+ for (int i = 0; i < filePaths.Length; i++)
+ {
+ string fileName = Path.GetFileName(filePaths[i]);
+ byte[] bfilName = Encoding.ASCII.GetBytes(fileName);
+
+ dtResult = GetDataTableByFileName(filePaths[i], String.Format("SELECT * FROM TModuleMatch where fg_no={0}", fg_no), "TModuleMatch");
+ if ((dtResult != null) && (dtResult.Rows.Count == 1)) break;
+ }
+ }
+ if ((dtResult == null) || (dtResult.Rows.Count == 0))
+ throw new Exception(String.Format("No match data - {0}", fg_no));
+
+ return dtResult;
+ }
+
+ public static void BmsPcbMatchDataInsert(string dbFileName, DataRow sRow)
+ {
+ string result = "";
+ int resultCode = (int)SQLiteErrorCode.Unknown;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFileName)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFileName) == false)
+ throw new Exception(String.Format("No DB file - BmsDataInsert ({0})", dbFileName));
+
+ // Open database
+ string strConn = @"Data Source=" + dbFileName;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait
+ {
+ StartPosition = FormStartPosition.CenterScreen
+ };
+
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ WaitForm.Show();
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = "INSERT INTO"
+ + " TBmsPcbMatchTable"
+ + " (PCB1_SERIAL_NUMBER, MODULE_SERIAL_NUMBER, create_date, modify_date)" // 2
+ + " Values (?,?,?,?);";
+ SQLiteParameter[] p = new SQLiteParameter[4];
+
+ for (int i = 0; i < 4; i++)
+ {
+ p[i] = new SQLiteParameter();
+ command.Parameters.Add(p[i]);
+ }
+
+ int j = 0;
+ p[j++].Value = sRow["PCB1_SERIAL_NUMBER"]; // pcb_sn
+ p[j++].Value = sRow["MODULE_SERIAL_NUMBER"]; // module_sn
+ p[j++].Value = DateTime.Now; // create_date
+ p[j++].Value = DateTime.Now; // modify_date
+
+ command.ExecuteNonQuery();
+
+ WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1));
+ System.Windows.Forms.Application.DoEvents();
+
+ CommitTran(connection);
+ }
+ }
+ catch (SQLiteException sqle)
+ {
+ // Handle DB exception
+ result = sqle.Message;
+ resultCode = sqle.ErrorCode;
+ }
+ catch (IndexOutOfRangeException ie)
+ {
+ // If you think there might be a problem with index range in the loop, for example
+ result = ie.Message;
+ resultCode = 9999;
+ }
+ catch (Exception ex)
+ {
+ result = ex.Message;
+ resultCode = 9998;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (WaitForm != null)
+ WaitForm.Close();
+ if (result != "")
+ {
+ if (resultCode == 9998) throw new Exception(result);
+ else if (resultCode == 9999) throw new IndexOutOfRangeException(result);
+ else throw new SQLiteException((SQLiteErrorCode)resultCode, result);
+ }
+ }
+ }
+ }
+
+ public static void ErrorLogInsert(string dbFileName, DataRow sRow, string Process, string ErrType, string ErrMsg)
+ {
+ string result = "";
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFileName)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFileName) == false)
+ throw new Exception(String.Format("No DB file - ErrorLogInsert ({0})", dbFileName));
+
+ // Open database
+ string strConn = @"Data Source=" + dbFileName;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = "INSERT INTO"
+ + " TErrorLogTable"
+ + " (create_date, MODULE_SERIAL_NUMBER, PCB1_SERIAL_NUMBER, PROCESS, ERROR_TYPE, ERROR_MSG)" // 2
+ + " Values (?,?,?,?,?,?);";
+ SQLiteParameter[] p = new SQLiteParameter[6];
+
+ for (int i = 0; i < 6; i++)
+ {
+ p[i] = new SQLiteParameter();
+ command.Parameters.Add(p[i]);
+ }
+
+ int j = 0;
+ p[j++].Value = DateTime.Now; // create_date
+ p[j++].Value = sRow["MODULE_SERIAL_NUMBER"]; // module_sn
+ p[j++].Value = sRow["PCB1_SERIAL_NUMBER"]; // pcb_sn
+ p[j++].Value = Process; // process
+ p[j++].Value = ErrType; // error type
+ p[j++].Value = ErrMsg; // error message
+
+ command.ExecuteNonQuery();
+
+ CommitTran(connection);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ }
+
+ #endregion
+
+ #region SELECT QUARY
+
+ public static int DbQuaryExcuteToDataTable(string dbFileName, string Quary, ref DataTable rDT)
+ {
+ int result = 0;
+ string resultStr = String.Empty;
+
+ string strConn = @"Data Source=" + dbFileName;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = Quary;
+ SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
+ adapter.AcceptChangesDuringFill = false;
+ rDT = new DataTable();
+ adapter.Fill(rDT);
+ //rDT.TableName = "TModuleValue";
+
+ CommitTran(connection);
+
+ result = rDT.Rows.Count;
+
+ System.Windows.Forms.Application.DoEvents();
+ }
+ }
+ catch (Exception e)
+ {
+ resultStr = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (resultStr != "") throw new Exception(resultStr);
+ }
+ }
+ return result;
+ }
+
+ public static void CreateLogDbFile(string dbFileName)
+ {
+ string result = "";
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFileName)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFileName) == true)
+ throw new Exception(String.Format("Already have DB file - DbQuaryExcuteToDbFile({0})", dbFileName));
+
+ // Create database
+ SQLiteConnection.CreateFile(dbFileName);
+
+ // Open database
+ string strConn = @"Data Source=" + dbFileName;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ Forms.fmxWait WaitForm = new Forms.fmxWait();
+ WaitForm.StartPosition = FormStartPosition.CenterScreen;
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ WaitForm.Show();
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ string schemaFile = Path.GetDirectoryName(Application.ExecutablePath) + LogDbSchemaTableFileName;
+ string query = File.ReadAllText(schemaFile);
+
+ command.CommandText = query;
+ SQLiteDataReader reader = null;
+ reader = command.ExecuteReader();
+
+ WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1));
+ System.Windows.Forms.Application.DoEvents();
+
+ CommitTran(connection);
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (WaitForm != null)
+ WaitForm.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ }
+
+ public static void DbInsertDataToDbFile(string dbFileName, DataRow dtRow)
+ {
+ string result = "";
+
+ if (Directory.Exists(Path.GetDirectoryName(dbFileName)) == false)
+ throw new Exception("No DB file path");
+ if (File.Exists(dbFileName) == false)
+ throw new Exception(String.Format("No DB file - DbInsertDataToDbFile({0})", dbFileName));
+
+ // Open database
+ string strConn = @"Data Source=" + dbFileName;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ command.CommandText = String.Format("INSERT INTO TModuleValue (");
+ command.CommandText += "create_date" // 0
+ + ", module_no" // 1
+ + ", pcb_sn" // 2
+ + ", module_sn" // 3
+ + ", fw_ver" // 4
+ + ", comm_fail" // 5
+ + ", op_status" // 6
+ + ", alarm_status" // 7
+ + ", warning" // 8
+ + ", fault" // 9
+ + ", module_voltage" // 10
+ + ", module_current" // 11
+ + ", module_soc" // 12
+ + ", module_soh" // 13
+ ;
+ for (int i = 0; i < 15; i++)
+ {
+ command.CommandText += String.Format(", cell_voltage_{0:00}", i + 1); // 14 ~ 28; 15 cells
+ }
+ for (int i = 0; i < 6; i++)
+ {
+ command.CommandText += String.Format(", temperature_{0:00}", i + 1); // 29 ~ 34; 6 temps
+ }
+ command.CommandText += ""
+ + ", chg_option" // 35
+ + ", chg_cal" // 36
+ + ", dch_cal" // 37
+ + ")"
+ + " Values (";
+
+ int total = dtRow.Table.Columns.Count;
+
+ for (int i = 0; i < (total - 1); i++) command.CommandText += "?,";
+ command.CommandText += "?);";
+
+ SQLiteParameter[] p = new SQLiteParameter[total];
+
+ for (int i = 0; i < total; i++)
+ {
+ if (i == 0)
+ p[i] = new SQLiteParameter(DbType.DateTime);
+ else
+ p[i] = new SQLiteParameter();
+ command.Parameters.Add(p[i]);
+ }
+
+ int j = 0;
+ p[j++].Value = String.Format("{0:yyyy/MM/dd HH:mm:ss}", dtRow["create_date"]); // 0 create_date
+ p[j++].Value = dtRow["module_no"]; // 1 module_no
+ p[j++].Value = dtRow["pcb_sn"]; // 2 pcb_sn
+ p[j++].Value = dtRow["module_sn"]; // 3 module_sn
+ p[j++].Value = dtRow["fw_ver"]; // 4 fw_ver
+ p[j++].Value = dtRow["comm_fail"]; // 5 comm_fail
+ p[j++].Value = dtRow["op_status"]; // 6 op_status
+ p[j++].Value = dtRow["alarm_status"]; // 7 alarm_status
+ p[j++].Value = dtRow["warning"]; // 8 warning
+ p[j++].Value = dtRow["fault"]; // 9 fault
+ p[j++].Value = dtRow["module_voltage"]; // 10 module_voltage
+ p[j++].Value = dtRow["module_current"]; // 11 module_current
+ p[j++].Value = dtRow["module_soc"]; // 12 module_soc
+ p[j++].Value = dtRow["module_soh"]; // 13 module_soh
+
+ for (int i = 0; i < 15; i++)
+ {
+ p[j++].Value = dtRow[String.Format("cell_voltage_{0:00}", i + 1)]; // 14 cell_voltage_01 28
+ }
+ for (int i = 0; i < 6; i++)
+ {
+ p[j++].Value = dtRow[String.Format("temperature_{0:00}", i + 1)]; // 29 cell_voltage_01 36
+ }
+
+ p[j++].Value = dtRow["chg_option"]; // 37 chg_option
+ p[j++].Value = dtRow["chg_cal"]; // 38 chg_cal
+ p[j++].Value = dtRow["dch_cal"]; // 39 dch_cal
+
+ command.ExecuteNonQuery();
+
+ CommitTran(connection);
+ }
+ }
+ catch (SQLiteException se)
+ {
+ if (se.ResultCode != SQLiteErrorCode.Constraint)
+ result = se.Message;
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ }
+
+ public static DataTable BmsDataSelectToDataTable(CommConfig aConfig, DateTime aDate, string qry)
+ {
+ string result = "";
+ DataTable dtResult = null;
+ string ModelName = csConstData.MODEL_STR[aConfig.UartModelIndex];
+ string dbFilename = String.Format(LogDbFileNameFormat
+ , String.Format("{0:yyMM}", aDate)
+ , String.Format("{0:yyMMdd}", aDate)
+ , ModelName
+ );
+ string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + LogDbFilePath + dbFilename;
+
+ if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false)
+ return dtResult;
+ if (File.Exists(dbFilePath) == false)
+ return dtResult;
+
+ string strConn = @"Data Source=" + dbFilePath;
+ using (var connection = new SQLiteConnection(strConn))
+ {
+ try
+ {
+ connection.Open();
+ BeginTran(connection);
+
+ // Insert data
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
+ command.CommandText = String.Format("SELECT * FROM TModuleValue {0}", qry);
+ SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
+ adapter.AcceptChangesDuringFill = false;
+ dtResult = new DataTable();
+ adapter.Fill(dtResult);
+ dtResult.TableName = "TModuleValue";
+
+ CommitTran(connection);
+
+ System.Windows.Forms.Application.DoEvents();
+ }
+ }
+ catch (Exception e)
+ {
+ result = e.Message;
+ }
+ finally
+ {
+ if (connection.State == ConnectionState.Open)
+ connection.Close();
+ if (result != "") throw new Exception(result);
+ }
+ }
+ return dtResult;
+ }
+ #endregion
+
+ public class SQLITE
+ {
+ private SQLiteConnection con;
+ private SQLiteCommand cmd;
+ private SQLiteDataAdapter adapter;
+
+ public SQLITE(string databasename)
+ {
+ con = new SQLiteConnection(string.Format("Data Source={0};Compress=True;", databasename));
+ }
+
+ public int Execute(string sql_statement)
+ {
+ con.Open();
+ cmd = con.CreateCommand();
+ cmd.CommandText = sql_statement;
+ int row_updated;
+ try
+ {
+ row_updated = cmd.ExecuteNonQuery();
+ }
+ catch
+ {
+ con.Close();
+ return 0;
+ }
+ con.Close();
+ return row_updated;
+ }
+ public DataTable GetDataTable(string tablename)
+ {
+ DataTable DT = new DataTable();
+ con.Open();
+ cmd = con.CreateCommand();
+ cmd.CommandText = string.Format("SELECT * FROM {0}", tablename);
+ adapter = new SQLiteDataAdapter(cmd);
+ adapter.AcceptChangesDuringFill = false;
+ adapter.Fill(DT);
+ con.Close();
+ DT.TableName = tablename;
+ return DT;
+ }
+ public void SaveDataTable(DataTable DT)
+ {
+ try
+ {
+ Execute(string.Format("DELETE FROM {0}", DT.TableName));
+ con.Open();
+ cmd = con.CreateCommand();
+ cmd.CommandText = string.Format("SELECT * FROM {0}", DT.TableName);
+ adapter = new SQLiteDataAdapter(cmd);
+ SQLiteCommandBuilder builder = new SQLiteCommandBuilder(adapter);
+ adapter.Update(DT);
+ con.Close();
+ }
+ catch (Exception Ex)
+ {
+ MessageBox.Show(Ex.Message);
+ }
+ }
+ }
+ }
+}
diff --git a/LFP_Manager/Utils/csExcelControl.cs b/LFP_Manager/Utils/csExcelControl.cs
new file mode 100644
index 0000000..bd9d7ee
--- /dev/null
+++ b/LFP_Manager/Utils/csExcelControl.cs
@@ -0,0 +1,299 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.IO;
+using System.Data;
+using System.Data.OleDb;
+
+namespace LFP_Manager.Utils
+{
+ class csExcelControl
+ {
+ ///
+ /// Excel Database Control Class
+ /// version 0.1.5
+ ///
+ ///
+ /// 자유배포
+ /// 황현우 [ LiA's Blog ]
+ /// http://blog.naver.com/exila
+ /// CoreBank Co.,Ltd.
+ /// 불펌금지효.. 만든 사람의 성의좀 생각을..-_-;;
+ ///
+ /*---------------------------------------------------------------------
+ * Connection String 에는 어마어마한 옵션들이.. 주로 영문 사이트이긴
+ * 하지만 좀더 상세한 제어를 원한다면 OleDB Connection String 옵션과
+ * Extended Properties 에 들어가는 Excel Option 들을 살펴보는 것이 좋을
+ * 듯.. HDR = 첫줄을 헤더로 사용할 것인지,IMEX = 데이터유형적용여부 등등
+ *-------------------------------------------------------------------*/
+
+ // 확장명 XLS (Excel 97~2003 용)
+ private const string ConnectStrFrm_Excel97_2003 =
+ "Provider=Microsoft.Jet.OLEDB.4.0;" +
+ "Data Source=\"{0}\";" +
+ "Mode=ReadWrite|Share Deny None;" +
+ "Extended Properties='Excel 8.0; HDR={1}; IMEX={2}';" +
+ "Persist Security Info=False";
+
+ // 확장명 XLSX (Excel 2007 이상용)
+ private const string ConnectStrFrm_Excel =
+ "Provider=Microsoft.ACE.OLEDB.12.0;" +
+ "Data Source=\"{0}\";" +
+ "Mode=ReadWrite|Share Deny None;" +
+ "Extended Properties='Excel 12.0; HDR={1}; IMEX={2}';" +
+ "Persist Security Info=False";
+
+
+ ///
+ /// Excel 파일의 형태를 반환한다.
+ /// -2 : Error
+ /// -1 : 엑셀파일아님
+ /// 0 : 97-2003 엑셀 파일 (xls)0
+ /// 1 : 2007 이상 파일 (xlsx)
+ ///
+ ///
+ /// Excel File 명 전체 경로입니다.
+ ///
+ public static int ExcelFileType(string XlsFile)
+ {
+ byte[,] ExcelHeader = {
+ { 0xD0, 0xCF, 0x11, 0xE0, 0xA1 }, // XLS File Header
+ { 0x50, 0x4B, 0x03, 0x04, 0x14 } // XLSX File Header
+ };
+
+ // result -2 = error, -1 = not excel , 0 = xls , 1 = xlsx
+ int result = -1;
+ FileInfo FI = new FileInfo(XlsFile);
+ FileStream FS = FI.Open(FileMode.Open);
+
+ try
+ {
+ byte[] FH = new byte[5];
+ FS.Read(FH, 0, 5);
+ for (int i = 0; i < 2; i++)
+ {
+ for (int j = 0; j < 5; j++)
+ {
+ if (FH[j] != ExcelHeader[i, j]) break;
+ else if (j == 4) result = i;
+ }
+ if (result >= 0) break;
+ }
+ }
+ catch
+ {
+ result = (-2);
+ //throw e;
+ }
+ finally
+ {
+ FS.Close();
+ }
+ return result;
+ }
+
+ ///
+ /// Excel 파일을 DataSet 으로 변환하여 반환한다.
+ ///
+ ///
+ /// Excel File 명 PullPath
+ ///
+ ///
+ /// 첫번째 줄을 Field 명으로 사용할 것이지 여부
+ ///
+ private static DataSet OpenExcel(string FileName, bool UseHeader)
+ {
+ DataSet DS = null;
+
+ string[] HDROpt = { "NO", "YES" };
+ string HDR = "";
+ string ConnStr = "";
+
+ if (UseHeader)
+ HDR = HDROpt[1];
+ else
+ HDR = HDROpt[0];
+
+ int ExcelType = ExcelFileType(FileName);
+ switch (ExcelType)
+ {
+ case (-2): throw new Exception(FileName + "의 형식검사중 오류가 발생하였습니다."); // An error occurred during type inspection
+ case (-1): throw new Exception(FileName + "은 엑셀 파일형식이 아닙니다."); // Is not an Excel file format.
+ case ( 0): ConnStr = string.Format(ConnectStrFrm_Excel97_2003, FileName, HDR, "1"); break;
+ case ( 1): ConnStr = string.Format(ConnectStrFrm_Excel, FileName, HDR, "1"); break;
+ }
+
+ OleDbConnection OleDBConn = null;
+ OleDbDataAdapter OleDBAdap = null;
+ DataTable Schema;
+
+ try
+ {
+ OleDBConn = new OleDbConnection(ConnStr);
+ OleDBConn.Open();
+
+ Schema = OleDBConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
+
+ DS = new DataSet();
+
+ foreach (DataRow DR in Schema.Rows)
+ {
+ OleDBAdap = new OleDbDataAdapter(DR["TABLE_NAME"].ToString(), OleDBConn);
+
+ OleDBAdap.SelectCommand.CommandType = CommandType.TableDirect;
+ OleDBAdap.AcceptChangesDuringFill = false;
+
+ string TableName = DR["TABLE_NAME"].ToString().Replace("$", String.Empty).Replace("'", String.Empty);
+
+ if (DR["TABLE_NAME"].ToString().Contains("$")) OleDBAdap.Fill(DS, TableName);
+ }
+ }
+ catch (Exception e)
+ {
+ throw e;
+ }
+ finally
+ {
+ if (OleDBConn != null) OleDBConn.Close();
+ }
+ return DS;
+ }
+
+ ///
+ /// DataSet 을 Excel 파일로 저장한다.
+ ///
+ ///
+ /// Excel File 명 PullPath
+ ///
+ ///
+ /// Excel 로 저장할 대상 DataSet 객체.
+ ///
+ ///
+ /// 동일한 파일명이 있을 때 삭제 할 것인지 여부, 파일이 있고 false 면 저장안하고 그냥 false 를 리턴.
+ ///
+ ///
+ /// xls 형태로 저장할 것인지 여부, false 이면 xlsx 형태로 저장함.
+ ///
+ private static bool SaveExcel(string FileName, DataSet DS, bool ExistDel, bool OldExcel)
+ {
+ bool result = true;
+
+ if (File.Exists(FileName))
+ if (ExistDel) File.Delete(FileName);
+ else return result;
+
+ string TempFile = FileName;
+ // 파일 확장자가 xls 이나 xlsx 가 아니면 아예 파일을 안만들어서
+ // 템프파일로 생성후 지정한 파일명으로 변경..
+
+ OleDbConnection OleDBConn = null;
+
+ try
+ {
+ OleDbCommand Cmd = null;
+ string ConnStr = "";
+
+ if (OldExcel)
+ {
+ TempFile = TempFile + ".xls";
+ ConnStr = string.Format(ConnectStrFrm_Excel97_2003, TempFile, "YES", "0");
+ }
+ else
+ {
+ TempFile = TempFile + ".xlsx";
+ ConnStr = string.Format(ConnectStrFrm_Excel, TempFile, "YES", "0");
+ }
+
+ OleDBConn = new OleDbConnection(ConnStr);
+ OleDBConn.Open();
+
+ // Create Table(s).. : 테이블 단위 처리
+ foreach (DataTable DT in DS.Tables)
+ {
+ String TableName = DT.TableName;
+
+ StringBuilder FldsInfo = new StringBuilder();
+ StringBuilder Flds = new StringBuilder();
+
+ // Create Field(s) String : 현재 테이블의 Field 명 생성
+ foreach (DataColumn Column in DT.Columns)
+ {
+ if (FldsInfo.Length > 0)
+ {
+ FldsInfo.Append(",");
+ Flds.Append(",");
+ }
+
+ FldsInfo.Append("[" + Column.ColumnName.Replace("'", "''") + "] CHAR(255)");
+ Flds.Append(Column.ColumnName.Replace("'", "''"));
+ }
+
+ // Table Create
+ Cmd = new OleDbCommand("CREATE TABLE " + TableName + "(" + FldsInfo.ToString() + ")", OleDBConn);
+ Cmd.ExecuteNonQuery();
+
+ // Insert Data
+ foreach (DataRow DR in DT.Rows)
+ {
+ StringBuilder Values = new StringBuilder();
+ foreach (DataColumn Column in DT.Columns)
+ {
+ if (Values.Length > 0) Values.Append(",");
+ Values.Append("'" + DR[Column.ColumnName].ToString().Replace("'", "''") + "'");
+ }
+
+ Cmd = new OleDbCommand(
+ "INSERT INTO [" + TableName + "$]" +
+ "(" + Flds.ToString() + ") " +
+ "VALUES (" + Values.ToString() + ")",
+ OleDBConn);
+ Cmd.ExecuteNonQuery();
+ }
+ }
+ }
+ catch (Exception)
+ {
+ result = false;
+ }
+ finally
+ {
+ if (OleDBConn != null) OleDBConn.Close();
+ try
+ {
+ if (File.Exists(TempFile))
+ {
+ File.Move(TempFile, FileName);
+ }
+ }
+ catch { }
+ }
+ return result;
+ }
+
+ ///
+ /// Excel 파일을 DataSet 으로 변환하여 반환한다.
+ ///
+ ///
+ /// 읽어올 Excel File 명(전체경로)입니다.
+ ///
+ public static DataSet OpenExcelDB(string ExcelFile)
+ {
+ return OpenExcel(ExcelFile, true);
+ }
+
+ ///
+ /// DataSet 을 Excel 파일로 저장한다. 동일 파일명이 있으면 Overwrite 됩니다.
+ ///
+ ///
+ /// 저장할 Excel File 명(전체경로)입니다.
+ ///
+ ///
+ /// 저장할 대상 DataSet 입니다.
+ ///
+ public static bool SaveExcelDB(string ExcelFile, DataSet DS)
+ {
+ return SaveExcel(ExcelFile, DS, true, false);
+ }
+ }
+}
diff --git a/LFP_Manager/Utils/csLog.cs b/LFP_Manager/Utils/csLog.cs
new file mode 100644
index 0000000..dc5e487
--- /dev/null
+++ b/LFP_Manager/Utils/csLog.cs
@@ -0,0 +1,567 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.IO;
+using System.Runtime.InteropServices;
+
+using LFP_Manager.DataStructure;
+
+using log4net;
+using log4net.Appender;
+using log4net.Layout;
+using log4net.Repository.Hierarchy;
+
+namespace LFP_Manager.Utils
+{
+ public class csL4Logger
+ {
+ private static csL4Logger LoggerInstance;
+
+ public ILog log;
+ public RollingFileAppender rollingAppender;
+ public PatternLayout layout;
+ public log4net.Filter.LoggerMatchFilter lmf;
+
+ public static csL4Logger GetInstance()
+ {
+ if (LoggerInstance == null)
+ {
+ LoggerInstance = new csL4Logger();
+ }
+ return LoggerInstance;
+ }
+
+ public csL4Logger()
+ {
+ string FilePath = AppDomain.CurrentDomain.BaseDirectory + "\\Log\\App.log"; // 실행폴더 아래에 Log폴더
+
+ Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository();
+ hierarchy.Configured = true;
+
+ RollingFileAppender rollingAppender = new RollingFileAppender();
+ rollingAppender.Name = "logger";
+ rollingAppender.File = FilePath; // 로그파일 이름
+ rollingAppender.AppendToFile = true;
+
+ rollingAppender.StaticLogFileName = true;
+ rollingAppender.CountDirection = 1;
+ rollingAppender.RollingStyle = RollingFileAppender.RollingMode.Date;
+ rollingAppender.DatePattern = "_yyyyMMdd\".log\""; // 날짜가 변경되면 이전 로그에 붙은 이름
+
+ PatternLayout layout = new PatternLayout("%date [%-5level] %message%newline"); // 로그출력 포맷
+
+ rollingAppender.Layout = layout;
+
+ hierarchy.Root.AddAppender(rollingAppender);
+ rollingAppender.ActivateOptions();
+ hierarchy.Root.Level = log4net.Core.Level.All;
+
+ log = LogManager.GetLogger("logger");
+ Logger l = (Logger)log.Logger;
+ }
+
+ public void AddDebug(string LogMsg)
+ {
+ log.Debug(LogMsg);
+ }
+
+ public void AddError(string LogMsg)
+ {
+ log.Error(LogMsg);
+ }
+
+ public void Close()
+ {
+ LogManager.Shutdown();
+ }
+ }
+
+ class csLog
+ {
+ private static string SYSTEMLOG_FILE_DIR_M = "\\log\\systemlog";
+ private static string SYSTEMLOG_FILE_DIR = "\\log\\systemlog";
+
+ private static string DB_FILE_DIR = @"\db";
+
+ public static string GetLogFolder(string AppPath)
+ {
+ string path = System.IO.Path.GetDirectoryName(AppPath);
+
+ if (Directory.Exists(path + SYSTEMLOG_FILE_DIR_M) == false)
+ Directory.CreateDirectory(path + SYSTEMLOG_FILE_DIR_M);
+
+ return path + SYSTEMLOG_FILE_DIR_M;
+ }
+
+ public static string GetDbFolder(string AppPath)
+ {
+ string path = System.IO.Path.GetDirectoryName(AppPath);
+
+ if (Directory.Exists(path + DB_FILE_DIR) == false)
+ Directory.CreateDirectory(path + DB_FILE_DIR);
+
+ return path + DB_FILE_DIR;
+ }
+
+ public static void SystemDataLog(int RackID, CommConfig sConfig, DeviceSystemData sData, DateTime aTime, string AppPath)
+ {
+ SYSTEMLOG_FILE_DIR = String.Format("{0}\\SHELF{1}\\{2}", "\\log\\systemlog", RackID, String.Format("{0:yyyyMM}", aTime));
+
+ FileStream logFile = null;
+ string path = System.IO.Path.GetDirectoryName(AppPath);
+ string FileName = String.Format(path + SYSTEMLOG_FILE_DIR + "\\SHELF{0}_LOG_{1}.csv", RackID, String.Format("{0:yyMMdd}", aTime));
+ byte[] logData;
+
+ if (Directory.Exists(path + SYSTEMLOG_FILE_DIR) == false)
+ Directory.CreateDirectory(path + SYSTEMLOG_FILE_DIR);
+
+ if (File.Exists(FileName) == false)
+ {
+ logFile = new FileStream(FileName, FileMode.CreateNew, FileAccess.ReadWrite);
+ logData = WriteDataHeader(aTime, sData);
+ logFile.Write(logData, 0, logData.Length);
+ logFile.Close();
+ }
+
+ logFile = null;
+ //logFile = new FileStream(FileName, FileMode.Open, FileAccess.ReadWrite);
+ logFile = new FileStream(FileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
+
+ if (logFile != null)
+ {
+ logFile.Seek(0, SeekOrigin.End);
+ logData = WriteData(aTime, sConfig, sData);
+ logFile.Write(logData, 0, logData.Length);
+ logFile.Close();
+ }
+ }
+
+ public static void SystemTotalDataLog(CommConfig sConfig, DeviceSystemTotalData tData, DateTime aTime, string AppPath, string LogFileName)
+ {
+ SYSTEMLOG_FILE_DIR = String.Format("{0}\\MAIN\\{1}", "\\log\\systemlog", String.Format("{0:yyyyMM}", aTime));
+
+ FileStream logFile = null;
+ string path = System.IO.Path.GetDirectoryName(AppPath);
+ //string FileName = String.Format(path + SYSTEMLOG_FILE_DIR + "\\SHELF{0}_LOG_{1}.csv", RackID, String.Format("{0:yyMMdd}", aTime));
+ string FileName = String.Format(path + SYSTEMLOG_FILE_DIR + "\\MAIN_LOG_{0}.csv", LogFileName);
+ byte[] logData;
+
+ if (Directory.Exists(path + SYSTEMLOG_FILE_DIR) == false)
+ Directory.CreateDirectory(path + SYSTEMLOG_FILE_DIR);
+
+ if (File.Exists(FileName) == false)
+ {
+ logFile = new FileStream(FileName, FileMode.CreateNew, FileAccess.ReadWrite);
+ logData = WriteTotalDataHeader(aTime);
+ logFile.Write(logData, 0, logData.Length);
+ logFile.Close();
+ }
+
+ logFile = null;
+ //logFile = new FileStream(FileName, FileMode.Open, FileAccess.ReadWrite);
+ logFile = new FileStream(FileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
+
+ if (logFile != null)
+ {
+ logFile.Seek(0, SeekOrigin.End);
+ logData = WriteTotalData(aTime, sConfig, tData);
+ logFile.Write(logData, 0, logData.Length);
+ logFile.Close();
+ }
+ }
+
+ public static void SystemDataLog(int mID, CommConfig sConfig, DeviceSystemData sData, DateTime aTime, string AppPath, string LogFileName)
+ {
+ SYSTEMLOG_FILE_DIR = String.Format("{0}\\SHELF{1}\\{2}", "\\log\\systemlog", mID, String.Format("{0:yyyyMM}", aTime));
+
+ FileStream logFile = null;
+ string path = Path.GetDirectoryName(AppPath);
+ //string FileName = String.Format(path + SYSTEMLOG_FILE_DIR + "\\SHELF{0}_LOG_{1}.csv", RackID, String.Format("{0:yyMMdd}", aTime));
+ string FileName = String.Format(path + SYSTEMLOG_FILE_DIR + "\\SHELF{0}_LOG_{1}.csv", mID, LogFileName);
+ byte[] logData;
+
+ if (Directory.Exists(path + SYSTEMLOG_FILE_DIR) == false)
+ Directory.CreateDirectory(path + SYSTEMLOG_FILE_DIR);
+
+ if (File.Exists(FileName) == false)
+ {
+ logFile = new FileStream(FileName, FileMode.CreateNew, FileAccess.ReadWrite);
+ logData = WriteDataHeader(aTime, sData);
+ logFile.Write(logData, 0, logData.Length);
+ logFile.Close();
+ }
+
+ logFile = null;
+ //logFile = new FileStream(FileName, FileMode.Open, FileAccess.ReadWrite);
+ logFile = new FileStream(FileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
+
+ if (logFile != null)
+ {
+ logFile.Seek(0, SeekOrigin.End);
+ logData = WriteData(aTime, sConfig, sData);
+ logFile.Write(logData, 0, logData.Length);
+ logFile.Close();
+ }
+ }
+
+ #region SYSTEM DATE LOGGING
+
+ private static byte[] WriteTotalDataHeader(DateTime aDateTime)
+ {
+ string tt;
+ string sdata;
+
+ tt = aDateTime.ToString("yyyy-MM-dd HH:mm:ss");
+ sdata = String.Format(
+ "{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},"
+ , "DATETIME" // 0
+ , "INTERFACE" // 1
+ , "MODEL" // 2
+ , "COMM STATUS" // 3
+ , "STATUS" // 4
+ , "ALARM" // 5
+ , "VOLTAGE" // 6
+ , "CURRENT" // 7
+ , "SOC" // 8
+ , "MAX. TEMP" // 9
+ );
+ sdata += "\r\n";
+
+ Byte[] info =
+ new UTF8Encoding(true).GetBytes(sdata);
+
+ return info;
+ }
+
+ private static byte[] WriteDataHeader(DateTime aDateTime, DeviceSystemData aSystemData)
+ {
+ string tt;
+ string sdata;
+
+ tt = aDateTime.ToString("yyyy-MM-dd HH:mm:ss");
+ sdata = String.Format(
+ "{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},"
+ , "DATETIME" // 0
+ , "INTERFACE" // 1
+ , "MODEL" // 2
+ , "FW_VER" // 3
+ , "MODULE_SN" // 4
+ , "COMM STATUS" // 5
+ , "STATUS" // 6
+ , "ALARM" // 7
+ , "VOLTAGE" // 8
+ , "CURRENT" // 9
+ , "SOC" // 10
+ , "SOH" // 11
+ , "CYCLES" // 12
+ );
+ sdata += "CV_DIFF,";
+ for (int i = 0; i < aSystemData.cellQty; i++)
+ {
+ sdata += String.Format("{0},", String.Format("Cell_{0}", i + 1));
+ }
+
+ sdata += "TP_DIFF,";
+ for (int i = 0; i < aSystemData.tempQty; i++)
+ {
+ sdata += String.Format("{0},", String.Format("Temp_{0}", i + 1));
+ }
+
+ sdata += String.Format("{0},", String.Format("EXT1_Temp"));
+ sdata += String.Format("{0},", String.Format("EXT2_Temp"));
+
+ sdata += String.Format(
+ "{0},{1},{2},"
+ , "Warning" // 0
+ , "Fault" // 1
+ , "CB" // 2
+ );
+ sdata += "\r\n";
+
+ Byte[] info =
+ new UTF8Encoding(true).GetBytes(sdata);
+
+ return info;
+ }
+
+ private static string GetStatusString(short aStatus)
+ {
+ string result = "";
+
+ if (aStatus == 0)
+ {
+ result = "STANDBY";
+ }
+ else if (aStatus == 1)
+ {
+ result = "CHARGING";
+ }
+ else if (aStatus == 2)
+ {
+ result = "DISCHARGING";
+ }
+ else if (aStatus == 3)
+ {
+ result = "FLOATING";
+ }
+ else
+ {
+ result = "UNKNOWN";
+ }
+ return result;
+ }
+
+ private static string GetAlarmString(short aAlarm)
+ {
+ string result = "";
+ bool[] rackStatus = csUtils.Int16ToBitArray(aAlarm);
+
+ if (aAlarm == 0) result = "NORMAL";
+ else if (aAlarm == 1) result = "WARNING";
+ else if (aAlarm == 2) result = "FAULT";
+ else if (aAlarm == 3) result = "WARMING UP";
+ else result = "UNKNOWN";
+
+ return result;
+ }
+
+ private static string GetInterface(int sCommType)
+ {
+ string result = "";
+
+ result = "UART";
+
+ return result;
+ }
+
+ private static string GetModelName(CommConfig sConfig)
+ {
+ string result = "";
+
+ result = csConstData.MODEL_STR[sConfig.UartModelIndex];
+
+ return result;
+ }
+
+ private static string GetCommStatus(CommConfig sConfig, DeviceSystemData sData)
+ {
+ string result = "";
+
+ switch (sConfig.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ result = sData.CommFail == false ? "NORM" : "FAIL";
+ break;
+ case csConstData.CommType.COMM_RS485:
+ result = sData.CommFail == false ? "NORM" : "FAIL";
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ if (sData.CommFail == false)
+ {
+ if (sData.ShelfCommFail == false) result = "NORM";
+ else result = "FAIL";
+ }
+ else
+ {
+ result = "OFF-LINE";
+ }
+ break;
+ default:
+ break;
+ }
+ return result;
+ }
+
+ private static string GetCommStatus(DeviceSystemTotalData tData)
+ {
+ string result = "";
+
+ if (tData.CommFail)
+ result = "OFF-LINE";
+ else
+ result = "NORM";
+
+ return result;
+ }
+
+ private static byte[] WriteTotalData(DateTime aLog, CommConfig sConfig, DeviceSystemTotalData tData)
+ {
+ string tt;
+ string sdata;
+
+ tt = aLog.ToString("yyyy-MM-dd HH:mm:ss");
+ sdata = String.Format(
+ "{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},"
+ , tt // 0 DATETIME
+ , GetInterface(sConfig.CommType) // 1 INTERFACE
+ , GetModelName(sConfig) // 2 MODEL
+ , GetCommStatus(tData) // 3 COMM STATUS
+ , GetStatusString(tData.StatusData.status) // 4 STATUS
+ , GetAlarmString(tData.StatusData.batteryStatus) // 5 ALARM
+ , String.Format("{0:#0.0}", Convert.ToDouble(tData.ValueData.TotalVoltage) / 10) // 6 voltageOfPack
+ , String.Format("{0:#0.0}", Convert.ToDouble(tData.ValueData.TotalCurrent) / 10) // 7 current
+ , String.Format("{0:#0.0}", Convert.ToDouble(tData.ValueData.TotalSOC) / 10) // 8 SOC
+ , String.Format("{0:#0.0}", Convert.ToDouble(tData.ValueData.TotalTemp) / 10) // 9 Max Temperature
+ );
+ sdata += "\r\n";
+
+ Byte[] info =
+ new UTF8Encoding(true).GetBytes(sdata);
+
+ return info;
+ }
+
+ private static byte[] WriteData(DateTime aLog, CommConfig sConfig, DeviceSystemData sData)
+ {
+ string tt;
+ string sdata;
+
+ tt = string.Format("{0:yyyy-MM-dd HH:mm:ss}", aLog);
+ sdata = String.Format(
+ "{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},"
+ , tt // 0 DATETIME
+ , GetInterface(sConfig.CommType) // 1 INTERFACE
+ , sData.Information.ModelName // 2 MODEL
+ , sData.Information.SwProductRev // 3 FW Ver
+ , sData.Information.HwSerialNumber // 4 SN
+ , GetCommStatus(sConfig, sData) // 5 COMM STATUS
+ , GetStatusString(sData.StatusData.status) // 6 STATUS
+ , GetAlarmString(sData.StatusData.batteryStatus) // 7 ALARM
+ , String.Format("{0:#0.0}", Convert.ToDouble(sData.ValueData.voltageOfPack) / 10) // 8 voltageOfPack
+ , String.Format("{0:#0.0}", Convert.ToDouble(sData.ValueData.current) / 10) // 9 current
+ , String.Format("{0:#0.0}", Convert.ToDouble(sData.ValueData.rSOC) / 10) // 10 SOC
+ , String.Format("{0:#0.0}", Convert.ToDouble(sData.ValueData.stateOfHealth) / 10) // 11 SOH
+ , String.Format("{0}", Convert.ToDouble(sData.ValueData.cycleCount) / 1) // 12 Cycle Count
+ );
+
+ sdata += String.Format("{0:#0.000},", Convert.ToDouble(sData.AvgData.diffCellVoltage) / 1000); // 13 Cell Voltage Diff
+ for (int i = 0; i < sData.cellQty; i++)
+ {
+ sdata += String.Format("{0:#0.000},", Convert.ToDouble(sData.ValueData.CellVoltage[i]) / 1000); // 14 - 28 Cell Voltage n
+ }
+
+ sdata += String.Format("{0:#0.0},", Convert.ToDouble(sData.AvgData.diffTemp) / 10); // 29 Temperature Diff
+ for (int i = 0; i < sData.tempQty; i++)
+ {
+ sdata += String.Format("{0:#0.0},", Convert.ToDouble(sData.ValueData.CellTemperature[i]) / 10); // 30 - 33 Cell Temperature n
+ }
+
+ sdata += String.Format("{0:#0.0},", Convert.ToDouble(sData.ValueData.Ext1Temperature) / 10); // 34 Ext1 Temperature n
+ sdata += String.Format("{0:#0.0},", Convert.ToDouble(sData.ValueData.Ext2Temperature) / 10); // 35 Ext2 Temperature n
+
+ sdata += String.Format(
+ "{0},{1},{2},"
+ , String.Format("0x{0}", sData.StatusData.warning.ToString("X4")) // 0 Warning
+ , String.Format("0x{0}", sData.StatusData.protection.ToString("X4")) // 1 Protection
+ , String.Format("0x{0}", sData.StatusData.cellBallanceStatus.ToString("X4")) // 2 cellBallanceStatus
+ );
+ sdata += "\r\n";
+
+ Byte[] info =
+ new UTF8Encoding(true).GetBytes(sdata);
+
+ return info;
+ }
+ #endregion
+
+ #region DATA PRINT
+
+ public static string data_print(byte[] data, int len)
+ {
+ byte[] ASC;
+ int i, j;
+ string result = "";
+
+ ASC = new byte[20];
+
+ if (len > 2)
+ {
+ if (ASC != null)
+ {
+ for (i = 0; i < (len / 16 + 1); i++)
+ {
+ result += String.Format("0x{0:X8} ", (int)(i * 16));
+ for (j = 0; j < 16; j++)
+ {
+ if ((i * 16 + j) >= data.Length)
+ {
+ result += " ";
+ ASC[j] = (byte)' ';
+ }
+ else
+ {
+ result += String.Format("{0:X2} ", data[(i * 16) + j]);
+ if (data[i * 16 + j] < ' ')
+ ASC[j] = (byte)'.';
+ else
+ {
+ if ((j == 15) && (data[i * 16 + j] > 128))
+ ASC[j] = (byte)'.';
+ else
+ ASC[j] = data[i * 16 + j];
+ }
+ }
+ }
+ ASC[16] = 0x00;
+ result += "\r\n";
+ //result += String.Format(" {0}\r\n", ASC.ToArray().ToString());
+ }
+ }
+ result += "\r\n";
+ //result += String.Format("ID: {0:X2}\r\n", data[6]);
+ //result += String.Format("CMD: {0:X2}\r\n", data[7]);
+ //result += String.Format("S-A: {0:X4}({0:d})\r\n", (data[8] << 8) | data[9]);
+ //result += String.Format("S-L: {0:X4}({0:d})\r\n", (data[10] << 8) | data[11]);
+ }
+
+ return result;
+ }
+ public static string trx_data_print(byte[] data, int len, int flag)
+ {
+ int i, j;
+ string result = "";
+
+ if (len > 2)
+ {
+ for (i = 0; i < (len / 16 + 1); i++)
+ {
+ if (flag == 0)
+ { result += string.Format("[{0:yyyy-MM-dd HH:mm:ss.fff}] TX({1:0000}): ", DateTime.Now, len); }
+ else
+ { result += string.Format("[{0:yyyy-MM-dd HH:mm:ss.fff}] RX({1:0000}): ", DateTime.Now, len); }
+
+ for (j = 0; j < 16; j++)
+ {
+ if ((i * 16 + j) >= len)
+ {
+ result += " ";
+ }
+ else
+ {
+ result += string.Format("{0:X2} ", data[(i * 16) + j]);
+ }
+ }
+ result += "\r\n";
+ }
+ }
+ return result;
+ }
+ public static string trx_msg_print(string msg, int flag)
+ {
+ string result = "";
+
+ if (flag == 0)
+ {
+ result += string.Format("[{0:yyyy-MM-dd HH:mm:ss.fff}] TX({1}) ", DateTime.Now, msg);
+ }
+ else
+ {
+ result += string.Format("[{0:yyyy-MM-dd HH:mm:ss.fff}] RX({1}) ", DateTime.Now, msg);
+ }
+ return result;
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/Utils/csUtils.cs b/LFP_Manager/Utils/csUtils.cs
new file mode 100644
index 0000000..00b836a
--- /dev/null
+++ b/LFP_Manager/Utils/csUtils.cs
@@ -0,0 +1,442 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+using LFP_Manager.DataStructure;
+
+namespace LFP_Manager.Utils
+{
+ static class csUtils
+ {
+ public static readonly byte[] auchCRCHi = {
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
+ 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
+ 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
+ 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,
+ 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
+ 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
+ 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
+ 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
+ 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
+ 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
+ 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
+ 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
+ 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40
+ };
+
+ public static readonly byte[] auchCRCLo = {
+ 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4,
+ 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,
+ 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD,
+ 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,
+ 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7,
+ 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A,
+ 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE,
+ 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,
+ 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2,
+ 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,
+ 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB,
+ 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,
+ 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91,
+ 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,
+ 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88,
+ 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
+ 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80,0x40
+ };
+
+ #region CRC Calculation
+ ///
+ /// Modbus CRC-16 계산
+ ///
+ public static byte[] CalculateCRC(byte[] data, int length)
+ {
+ if (data == null || length <= 0 || length > data.Length)
+ throw new ArgumentException("Invalid data or length");
+
+ ushort crc = 0xFFFF;
+
+ for (int i = 0; i < length; i++)
+ {
+ crc ^= data[i];
+ for (int j = 0; j < 8; j++)
+ {
+ if ((crc & 1) == 1)
+ crc = (ushort)((crc >> 1) ^ 0xA001);
+ else
+ crc >>= 1;
+ }
+ }
+
+ return new byte[] { (byte)(crc & 0xFF), (byte)(crc >> 8) };
+ }
+ #endregion
+
+ public static int GetModuleQty(CommConfig aConfig)
+ {
+ int mQty = 0;
+
+ switch (aConfig.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ mQty = 1;
+ break;
+ case csConstData.CommType.COMM_RS485:
+ mQty = aConfig.ModuleQty;
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ mQty = 1;
+ break;
+ default:
+ mQty = 0;
+ break;
+ }
+ return mQty;
+ }
+
+ public static void TypingOnlyNumber(object sender, KeyPressEventArgs e, bool includePoint, bool includeMinus)
+ {
+ bool isValidInput = false;
+ if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
+ {
+ if (includePoint == true) { if (e.KeyChar == '.') isValidInput = true; }
+ if (includeMinus == true) { if (e.KeyChar == '-') isValidInput = true; }
+
+ if (isValidInput == false) e.Handled = true;
+ }
+
+ if (includePoint == true)
+ {
+ if (e.KeyChar == '.' && (string.IsNullOrEmpty((sender as DevExpress.XtraEditors.TextEdit).Text.Trim()) || (sender as DevExpress.XtraEditors.TextEdit).Text.IndexOf('.') > -1)) e.Handled = true;
+ }
+ if (includeMinus == true)
+ {
+ if (e.KeyChar == '-' && (!string.IsNullOrEmpty((sender as DevExpress.XtraEditors.TextEdit).Text.Trim()) || (sender as DevExpress.XtraEditors.TextEdit).Text.IndexOf('-') > -1)) e.Handled = true;
+ }
+ }
+
+ public static bool[] Int16ToBitArray(Int16 data)
+ {
+ bool[] result = new bool[16];
+
+ for (int i = 0; i < 16; i++)
+ {
+ result[i] = (((data >> i) & 0x0001) == 0x0001) ? true : false;
+ }
+
+ return result;
+ }
+
+ public static byte[] GetCRC(byte[] pby, UInt16 nSize)
+ {
+ byte[] result = new byte[2];
+ UInt16 uIndex, i;
+ UInt16 crc;
+ byte uchCRCHi = 0xff;
+ byte uchCRCLo = 0xff;
+
+ for (i = 0; i < nSize; i++)
+ {
+ uIndex = (UInt16)(uchCRCHi ^ pby[i]);
+ uchCRCHi = (byte)(uchCRCLo ^ csConstData.CRC_Data.auchCRCHi[uIndex]);
+ uchCRCLo = csConstData.CRC_Data.auchCRCLo[uIndex];
+ }
+ crc = (UInt16)(((UInt16)uchCRCHi << 8) | uchCRCLo);
+
+ result[1] = (byte)(crc / 256);
+ result[0] = (byte)(crc % 256);
+
+ return result;
+ }
+
+ public static byte StrByte2toByte(byte a, byte b)
+ {
+ byte result = 0;
+ byte a1 = 0, b1 = 0;
+
+ if ((a >= (byte)'0')&&(a <= (byte)'9'))
+ {
+ a1 = (byte)(a - (byte)'0');
+ }
+ else if ((a >= (byte)'a')&&(a <= (byte)'f'))
+ {
+ a1 = (byte)(a - (byte)'a');
+ }
+ else if ((a >= (byte)'A')&&(a <= (byte)'F'))
+ {
+ a1 = (byte)((a - (byte)'A') + 0x0A);
+ }
+
+ if ((b >= (byte)'0') && (b <= (byte)'9'))
+ {
+ b1 = (byte)(b - (byte)'0');
+ }
+ else if ((b >= (byte)'a') && (b <= (byte)'f'))
+ {
+ b1 = (byte)(b - (byte)'a');
+ }
+ else if ((b >= (byte)'A') && (b <= (byte)'F'))
+ {
+ b1 = (byte)((b - (byte)'A') + 0x0A);
+ }
+
+ result = (byte)((b1 << 4) | a1);
+
+ return result;
+ }
+
+ public static byte[] StrToByteArray(byte[] rData, int offset, int rlen)
+ {
+ int len = (rlen - 2) / 2;
+ byte[] result = new byte[len];
+
+ for (int i = 0; i < len; i++)
+ {
+ result[i] = StrByte2toByte(rData[(i * 2) + offset + 2], rData[(i * 2) + offset + 1]);
+ }
+
+ return result;
+ }
+
+ public static byte[] StringToByte(string str)
+ {
+ byte[] StrByte = Encoding.UTF8.GetBytes(str); return StrByte;
+ }
+
+ #region OPERATING WARNING FUCTION
+
+ public static bool BitCheck(short rData, int pos)
+ {
+ if (((rData >> pos) & 0x0001) == 0x0001)
+ return true;
+ else
+ return false;
+ }
+
+ #endregion
+
+ #region TIMESTAMP FUNCTION
+ public static UInt32 CalcKKTimeStamp(DateTime tDate)
+ {
+ //Time of test and calibration. Local time in seconds since 2000.
+ //Ex:
+ //Epoch time offset (1 January 2000 00:00:00) = 946684800
+ //Current epoch time (1 October 2019 12:00:00) = 1569931200
+ //Timestamp = 1569931200 - 946684800 = 623246400
+ //(Used 'https://www.epochconverter.com/' for conversion)
+ DateTime baseDate = new DateTime(2000, 1, 1, 0, 0, 0);
+
+ int bDate = ConvertToUnixTimestamp(baseDate);
+ int nDate = ConvertToUnixTimestamp(tDate);
+
+ return (UInt32)(nDate - bDate);
+ }
+
+ public static DateTime ConvertTimeStampToDateTime(UInt32 tStamp)
+ {
+ DateTime result = new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Utc);
+
+ result = result.AddSeconds(tStamp);
+
+ // DateTimeOffset.Now.ToUnixTimeSeconds() // (.NET Framework 4.6 +/.NET Core),
+ // older versions:
+ //var epoch = (DateTime.UtcNow - new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds;
+
+ return result;
+ }
+
+ public static int ConvertToUnixTimestamp(DateTime date)
+ {
+ DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0);
+ TimeSpan diff = date - origin;
+ return (int)Math.Floor(diff.TotalSeconds);
+ }
+ #endregion
+
+ #region DateTime Format Methods
+ ///
+ /// DateTime을 기본 형식으로 변환합니다. (yyyy-MM-dd HH:mm:ss)
+ ///
+ public static string FormatDateTime(DateTime dateTime)
+ {
+ return dateTime.ToString("yyyy-MM-dd HH:mm:ss");
+ }
+ #endregion
+
+ #region DATA INIT
+
+ public static void DataInit(CommConfig aConfig, ref DeviceSystemData aSystemData)
+ {
+ aSystemData.ShelfCommFail = true;
+
+ switch (aConfig.CommType)
+ {
+ case csConstData.CommType.COMM_UART:
+ case csConstData.CommType.COMM_RS485:
+ switch (aConfig.UartModelIndex)
+ {
+ case csConstData.MODEL_INDEX.LFPM_48100D:
+ case csConstData.MODEL_INDEX.LFPM_48150D:
+ case csConstData.MODEL_INDEX.LFPM_48200D:
+ case csConstData.MODEL_INDEX.LFPM_48250D:
+ case csConstData.MODEL_INDEX.LFPM_48300D:
+ aSystemData.cellQty = 15;
+ aSystemData.tempQty = 4;
+ break;
+ case csConstData.MODEL_INDEX.LFPM_124050D:
+ aSystemData.cellQty = csConstData.SystemInfo.MAX_MODULE_CELL_SIZE;
+ aSystemData.tempQty = csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE;
+ break;
+ default:
+ aSystemData.cellQty = 15;
+ aSystemData.tempQty = 4;
+ break;
+ }
+ break;
+ case csConstData.CommType.COMM_SNMP:
+ switch (aConfig.SnmpModelIndex)
+ {
+ case csConstData.MODEL_INDEX.LFPM_48100D:
+ case csConstData.MODEL_INDEX.LFPM_48150D:
+ case csConstData.MODEL_INDEX.LFPM_48200D:
+ case csConstData.MODEL_INDEX.LFPM_48250D:
+ case csConstData.MODEL_INDEX.LFPM_48300D:
+ aSystemData.cellQty = 15;
+ aSystemData.tempQty = 4;
+ break;
+ case csConstData.MODEL_INDEX.LFPM_124050D:
+ aSystemData.cellQty = csConstData.SystemInfo.MAX_MODULE_CELL_SIZE;
+ aSystemData.tempQty = csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE;
+ break;
+ default:
+ aSystemData.cellQty = 15;
+ aSystemData.tempQty = 4;
+ break;
+ }
+ break;
+ default:
+ aSystemData.cellQty = 15;
+ aSystemData.tempQty = 4;
+ break;
+ }
+
+ for (int j = 0; j < aSystemData.ValueData.CellVoltage.Length; j++)
+ {
+ aSystemData.ValueData.CellVoltage[j] = 0;
+ }
+ for (int j = 0; j < aSystemData.ValueData.CellTemperature.Length; j++)
+ {
+ aSystemData.ValueData.CellTemperature[j] = 0;
+ }
+ aSystemData.ValueData.voltageOfPack = 0;
+ aSystemData.ValueData.current = 0;
+ aSystemData.ValueData.rSOC = 0;
+ aSystemData.AvgData.maxCellVoltage = 0;
+ aSystemData.AvgData.minCellVoltage = 0;
+ aSystemData.AvgData.avgCellVoltage = 0;
+ aSystemData.AvgData.maxTemp = 0;
+ aSystemData.AvgData.minTemp = 0;
+ aSystemData.AvgData.avgTemp = 0;
+ aSystemData.heatbeat = 0;
+ aSystemData.StatusData.warning = 0;
+ aSystemData.StatusData.protection = 0;
+
+ for (int j = 0; j < aSystemData.Information.BMS_SN.Length; j++)
+ {
+ aSystemData.Information.BMS_SN[j] = 0;
+ }
+ for (int j = 0; j < aSystemData.Information.Module_SN.Length; j++)
+ {
+ aSystemData.Information.Module_SN[j] = 0;
+ }
+
+ aSystemData.CalibrationData.Battery.Capacity = 0;
+ aSystemData.CalibrationData.Current.ChaAndDchSelect = 0;
+ aSystemData.CalibrationData.Current.ChgCalibration_K = 0;
+ aSystemData.CalibrationData.Current.DchCalibration_K = 0;
+ }
+
+ #endregion
+
+ #region MAKE AVERAGE VALUE
+ public static void MakeMaxAvgMinCellVoltage(ref DeviceSystemData rSystemData, int cellQty)
+ {
+ int Max, Avg, Min, Sum;
+ int MaxNo, MinNo;
+
+ Max = Avg = Min = Sum = 0;
+ MaxNo = MinNo = 0;
+ for (int i = 0; i < cellQty; i++)
+ {
+ if (i == 0)
+ {
+ Max = Min = rSystemData.ValueData.CellVoltage[i];
+ }
+ Sum += rSystemData.ValueData.CellVoltage[i];
+
+ if (Max < rSystemData.ValueData.CellVoltage[i])
+ {
+ Max = rSystemData.ValueData.CellVoltage[i];
+ MaxNo = i;
+ }
+ if (Min > rSystemData.ValueData.CellVoltage[i])
+ {
+ Min = rSystemData.ValueData.CellVoltage[i];
+ MinNo = i;
+ }
+ }
+ Avg = Sum / cellQty;
+
+ rSystemData.AvgData.avgCellVoltage = (short)Avg;
+ rSystemData.AvgData.maxCellVoltage = (short)Max;
+ rSystemData.AvgData.maxCellNum = (short)(MaxNo + 1);
+ rSystemData.AvgData.minCellVoltage = (short)Min;
+ rSystemData.AvgData.minCellNum = (short)(MinNo + 1);
+ rSystemData.AvgData.diffCellVoltage = (short)(Max - Min);
+ }
+
+ public static void MakeMaxAvgMinTemperature(ref DeviceSystemData rSystemData, int tempQty)
+ {
+ int Max, Avg, Min, Sum;
+ int MaxNo, MinNo;
+
+ Max = Avg = Min = Sum = 0;
+ MaxNo = MinNo = 0;
+
+ for (int i = 0; i < tempQty; i++)
+ {
+ if (i == 0)
+ {
+ Max = Min = rSystemData.ValueData.CellTemperature[i];
+ }
+ Sum += rSystemData.ValueData.CellTemperature[i];
+
+ if (Max < rSystemData.ValueData.CellTemperature[i])
+ {
+ Max = rSystemData.ValueData.CellTemperature[i];
+ MaxNo = i;
+ }
+ if (Min > rSystemData.ValueData.CellTemperature[i])
+ {
+ Min = rSystemData.ValueData.CellTemperature[i];
+ MinNo = i;
+ }
+ }
+ Avg = Sum / tempQty;
+
+ rSystemData.AvgData.avgTemp = (short)Avg;
+ rSystemData.AvgData.maxTemp = (short)Max;
+ rSystemData.AvgData.maxTempNum = (short)(MaxNo + 1);
+ rSystemData.AvgData.minTemp = (short)Min;
+ rSystemData.AvgData.minTempNum = (short)(MinNo + 1);
+ rSystemData.AvgData.diffTemp = (short)(Max - Min);
+ }
+
+ #endregion
+ }
+}
diff --git a/LFP_Manager/app.config b/LFP_Manager/app.config
new file mode 100644
index 0000000..5edc23b
--- /dev/null
+++ b/LFP_Manager/app.config
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/dll/ControlCAN.dll b/LFP_Manager/dll/ControlCAN.dll
new file mode 100644
index 0000000..5df15bc
Binary files /dev/null and b/LFP_Manager/dll/ControlCAN.dll differ
diff --git a/LFP_Manager/dll/IPAddressControlLib.dll b/LFP_Manager/dll/IPAddressControlLib.dll
new file mode 100644
index 0000000..642eb20
Binary files /dev/null and b/LFP_Manager/dll/IPAddressControlLib.dll differ
diff --git a/LFP_Manager/dll/SnmpSharpNet.dll b/LFP_Manager/dll/SnmpSharpNet.dll
new file mode 100644
index 0000000..a6104ee
Binary files /dev/null and b/LFP_Manager/dll/SnmpSharpNet.dll differ
diff --git a/LFP_Manager/dll/Tftp.Net.dll b/LFP_Manager/dll/Tftp.Net.dll
new file mode 100644
index 0000000..c1bcfed
Binary files /dev/null and b/LFP_Manager/dll/Tftp.Net.dll differ
diff --git a/LFP_Manager/dll/kerneldlls/CAN232.dll b/LFP_Manager/dll/kerneldlls/CAN232.dll
new file mode 100644
index 0000000..f0f4fb6
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/CAN232.dll differ
diff --git a/LFP_Manager/dll/kerneldlls/CANETE.dll b/LFP_Manager/dll/kerneldlls/CANETE.dll
new file mode 100644
index 0000000..2c1b041
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/CANETE.dll differ
diff --git a/LFP_Manager/dll/kerneldlls/CANET_TCP.dll b/LFP_Manager/dll/kerneldlls/CANET_TCP.dll
new file mode 100644
index 0000000..060ac4a
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/CANET_TCP.dll differ
diff --git a/LFP_Manager/dll/kerneldlls/CANWIFI_TCP.dll b/LFP_Manager/dll/kerneldlls/CANWIFI_TCP.dll
new file mode 100644
index 0000000..a1f566b
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/CANWIFI_TCP.dll differ
diff --git a/LFP_Manager/dll/kerneldlls/CANWIFI_UDP.dll b/LFP_Manager/dll/kerneldlls/CANWIFI_UDP.dll
new file mode 100644
index 0000000..e715e5f
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/CANWIFI_UDP.dll differ
diff --git a/LFP_Manager/dll/kerneldlls/PC104C2.dll b/LFP_Manager/dll/kerneldlls/PC104C2.dll
new file mode 100644
index 0000000..ca44ce8
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/PC104C2.dll differ
diff --git a/LFP_Manager/dll/kerneldlls/PC104CAN.dll b/LFP_Manager/dll/kerneldlls/PC104CAN.dll
new file mode 100644
index 0000000..e0ed7c5
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/PC104CAN.dll differ
diff --git a/LFP_Manager/dll/kerneldlls/PCI5121.dll b/LFP_Manager/dll/kerneldlls/PCI5121.dll
new file mode 100644
index 0000000..231017c
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/PCI5121.dll differ
diff --git a/LFP_Manager/dll/kerneldlls/PCI9820B.DLL b/LFP_Manager/dll/kerneldlls/PCI9820B.DLL
new file mode 100644
index 0000000..784296e
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/PCI9820B.DLL differ
diff --git a/LFP_Manager/dll/kerneldlls/gisadll.dll b/LFP_Manager/dll/kerneldlls/gisadll.dll
new file mode 100644
index 0000000..e657290
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/gisadll.dll differ
diff --git a/LFP_Manager/dll/kerneldlls/gpcidll.dll b/LFP_Manager/dll/kerneldlls/gpcidll.dll
new file mode 100644
index 0000000..1d3ae86
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/gpcidll.dll differ
diff --git a/LFP_Manager/dll/kerneldlls/isa5420.dll b/LFP_Manager/dll/kerneldlls/isa5420.dll
new file mode 100644
index 0000000..bace86a
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/isa5420.dll differ
diff --git a/LFP_Manager/dll/kerneldlls/kerneldll.ini b/LFP_Manager/dll/kerneldlls/kerneldll.ini
new file mode 100644
index 0000000..3899f0e
--- /dev/null
+++ b/LFP_Manager/dll/kerneldlls/kerneldll.ini
@@ -0,0 +1,31 @@
+[KERNELDLL]
+COUNT=29
+1=PCI51XXE.dll
+2=PCI9810B.dll
+3=USBCAN.dll
+4=USBCAN.dll
+5=PCI9820B.dll
+6=CAN232.dll
+7=PCI51XXE.dll
+8=CANLite.dll
+9=ISA9620B.dll
+10=ISA5420.dll
+11=PC104CAN.dll
+12=CANETE.dll
+13=DNP9810B.dll
+14=PCI9840B.dll
+15=PC104C2.dll
+16=PCI9820I.dll
+17=CANET_TCP.dll
+18=pec9920.dll
+19=pci50xx_u.dll
+20=USBCAN_E.dll
+21=USBCAN_E.dll
+22=pci50xx_u.dll
+23=topcliff_can.dll
+24=pcie9221.dll
+25=CANWIFI_TCP.dll
+26=CANWIFI_UDP.dll
+27=pcie9120.dll
+28=pcie9110.dll
+29=pcie9140.dll
diff --git a/LFP_Manager/dll/kerneldlls/usbcan.dll b/LFP_Manager/dll/kerneldlls/usbcan.dll
new file mode 100644
index 0000000..838e490
Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/usbcan.dll differ
diff --git a/LFP_Manager/dll/log4net.dll b/LFP_Manager/dll/log4net.dll
new file mode 100644
index 0000000..ffc57e1
Binary files /dev/null and b/LFP_Manager/dll/log4net.dll differ
diff --git a/LFP_Manager/fmMain.Designer.cs b/LFP_Manager/fmMain.Designer.cs
new file mode 100644
index 0000000..3be09af
--- /dev/null
+++ b/LFP_Manager/fmMain.Designer.cs
@@ -0,0 +1,971 @@
+namespace LFP_Manager
+{
+ partial class fmMain
+ {
+ ///
+ /// 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()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmMain));
+ this.tmrDisplay = new System.Windows.Forms.Timer(this.components);
+ this.lcMain = new DevExpress.XtraLayout.LayoutControl();
+ this.gbDataLog = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl6 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnOpenLogFolder = new DevExpress.XtraEditors.SimpleButton();
+ this.btnLogStart = new DevExpress.XtraEditors.SimpleButton();
+ this.cbLogTime = new DevExpress.XtraEditors.ComboBoxEdit();
+ this.layoutControlGroup6 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.lcitemLogTime = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.tabSystemStatus = new DevExpress.XtraTab.XtraTabControl();
+ this.pgSystem1 = new DevExpress.XtraTab.XtraTabPage();
+ this.layoutControl4 = new DevExpress.XtraLayout.LayoutControl();
+ this.ucShelfA = new LFP_Manager.Controls.ucShelfStatus();
+ this.layoutControlGroup4 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.pgSystem2 = new DevExpress.XtraTab.XtraTabPage();
+ this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl();
+ this.ucShelfB = new LFP_Manager.Controls.ucShelfStatus();
+ this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.pgSystem3 = new DevExpress.XtraTab.XtraTabPage();
+ this.layoutControl5 = new DevExpress.XtraLayout.LayoutControl();
+ this.ucShelfC = new LFP_Manager.Controls.ucShelfStatus();
+ this.layoutControlGroup5 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.gcLogging = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
+ this.btnLogClear = new DevExpress.XtraEditors.SimpleButton();
+ this.tabDataLog = new DevExpress.XtraTab.XtraTabControl();
+ this.tpDataLog = new DevExpress.XtraTab.XtraTabPage();
+ this.panelControl1 = new DevExpress.XtraEditors.PanelControl();
+ this.meDataLog = new DevExpress.XtraEditors.MemoEdit();
+ this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem14 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.gcTargetConfig = new DevExpress.XtraEditors.GroupControl();
+ this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+ this.cbType = new DevExpress.XtraEditors.ComboBoxEdit();
+ this.btnStart = new DevExpress.XtraEditors.SimpleButton();
+ this.teTargetIP = new IPAddressControlLib.IPAddressControl();
+ this.lbTargetIP = new DevExpress.XtraEditors.LabelControl();
+ this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+ this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcitemType = new DevExpress.XtraLayout.LayoutControlItem();
+ this.lcgMain = new DevExpress.XtraLayout.LayoutControlGroup();
+ this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem();
+ this.tmrLogging = new System.Windows.Forms.Timer(this.components);
+ this.menuStrip1 = new System.Windows.Forms.MenuStrip();
+ this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
+ this.serialPort1 = new System.IO.Ports.SerialPort(this.components);
+ ((System.ComponentModel.ISupportInitialize)(this.lcMain)).BeginInit();
+ this.lcMain.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.gbDataLog)).BeginInit();
+ this.gbDataLog.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl6)).BeginInit();
+ this.layoutControl6.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.cbLogTime.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemLogTime)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.tabSystemStatus)).BeginInit();
+ this.tabSystemStatus.SuspendLayout();
+ this.pgSystem1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl4)).BeginInit();
+ this.layoutControl4.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+ this.pgSystem2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit();
+ this.layoutControl3.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit();
+ this.pgSystem3.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl5)).BeginInit();
+ this.layoutControl5.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gcLogging)).BeginInit();
+ this.gcLogging.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit();
+ this.layoutControl2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.tabDataLog)).BeginInit();
+ this.tabDataLog.SuspendLayout();
+ this.tpDataLog.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.panelControl1)).BeginInit();
+ this.panelControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.meDataLog.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gcTargetConfig)).BeginInit();
+ this.gcTargetConfig.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+ this.layoutControl1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.cbType.Properties)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemType)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcgMain)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).BeginInit();
+ this.menuStrip1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // tmrDisplay
+ //
+ this.tmrDisplay.Interval = 50;
+ this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick);
+ //
+ // lcMain
+ //
+ this.lcMain.Controls.Add(this.gbDataLog);
+ this.lcMain.Controls.Add(this.tabSystemStatus);
+ this.lcMain.Controls.Add(this.gcLogging);
+ this.lcMain.Controls.Add(this.gcTargetConfig);
+ this.lcMain.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.lcMain.Location = new System.Drawing.Point(0, 0);
+ this.lcMain.Name = "lcMain";
+ this.lcMain.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(901, 311, 250, 350);
+ this.lcMain.Root = this.lcgMain;
+ this.lcMain.Size = new System.Drawing.Size(913, 729);
+ this.lcMain.TabIndex = 0;
+ this.lcMain.Text = "layoutControl1";
+ //
+ // gbDataLog
+ //
+ this.gbDataLog.Controls.Add(this.layoutControl6);
+ this.gbDataLog.Location = new System.Drawing.Point(711, 580);
+ this.gbDataLog.Name = "gbDataLog";
+ this.gbDataLog.Size = new System.Drawing.Size(199, 146);
+ this.gbDataLog.TabIndex = 8;
+ this.gbDataLog.Text = "Data Logging";
+ //
+ // layoutControl6
+ //
+ this.layoutControl6.Controls.Add(this.btnOpenLogFolder);
+ this.layoutControl6.Controls.Add(this.btnLogStart);
+ this.layoutControl6.Controls.Add(this.cbLogTime);
+ this.layoutControl6.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl6.Location = new System.Drawing.Point(2, 22);
+ this.layoutControl6.Name = "layoutControl6";
+ this.layoutControl6.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1209, 389, 250, 350);
+ this.layoutControl6.Root = this.layoutControlGroup6;
+ this.layoutControl6.Size = new System.Drawing.Size(195, 122);
+ this.layoutControl6.TabIndex = 0;
+ this.layoutControl6.Text = "layoutControl6";
+ //
+ // btnOpenLogFolder
+ //
+ this.btnOpenLogFolder.Location = new System.Drawing.Point(3, 77);
+ this.btnOpenLogFolder.Name = "btnOpenLogFolder";
+ this.btnOpenLogFolder.Size = new System.Drawing.Size(189, 42);
+ this.btnOpenLogFolder.StyleController = this.layoutControl6;
+ this.btnOpenLogFolder.TabIndex = 6;
+ this.btnOpenLogFolder.Text = "Open Log Folder";
+ this.btnOpenLogFolder.Click += new System.EventHandler(this.btnOpenLogFolder_Click);
+ //
+ // btnLogStart
+ //
+ this.btnLogStart.Location = new System.Drawing.Point(3, 27);
+ this.btnLogStart.Name = "btnLogStart";
+ this.btnLogStart.Size = new System.Drawing.Size(189, 46);
+ this.btnLogStart.StyleController = this.layoutControl6;
+ this.btnLogStart.TabIndex = 5;
+ this.btnLogStart.Text = "Log Start";
+ this.btnLogStart.Click += new System.EventHandler(this.btnLogStart_Click);
+ //
+ // cbLogTime
+ //
+ this.cbLogTime.EditValue = "5";
+ this.cbLogTime.Location = new System.Drawing.Point(68, 3);
+ this.cbLogTime.Name = "cbLogTime";
+ this.cbLogTime.Properties.Appearance.Options.UseTextOptions = true;
+ this.cbLogTime.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+ this.cbLogTime.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+ new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+ this.cbLogTime.Properties.Items.AddRange(new object[] {
+ "1",
+ "5",
+ "10",
+ "15",
+ "30",
+ "60"});
+ this.cbLogTime.Size = new System.Drawing.Size(124, 20);
+ this.cbLogTime.StyleController = this.layoutControl6;
+ this.cbLogTime.TabIndex = 4;
+ //
+ // layoutControlGroup6
+ //
+ this.layoutControlGroup6.CustomizationFormText = "layoutControlGroup6";
+ this.layoutControlGroup6.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup6.GroupBordersVisible = false;
+ this.layoutControlGroup6.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.lcitemLogTime,
+ this.layoutControlItem13,
+ this.layoutControlItem12});
+ this.layoutControlGroup6.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup6.Name = "layoutControlGroup6";
+ this.layoutControlGroup6.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup6.Size = new System.Drawing.Size(195, 122);
+ this.layoutControlGroup6.Text = "layoutControlGroup6";
+ this.layoutControlGroup6.TextVisible = false;
+ //
+ // lcitemLogTime
+ //
+ this.lcitemLogTime.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lcitemLogTime.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lcitemLogTime.Control = this.cbLogTime;
+ this.lcitemLogTime.CustomizationFormText = "Log Time";
+ this.lcitemLogTime.Location = new System.Drawing.Point(0, 0);
+ this.lcitemLogTime.MinSize = new System.Drawing.Size(119, 24);
+ this.lcitemLogTime.Name = "lcitemLogTime";
+ this.lcitemLogTime.Size = new System.Drawing.Size(193, 24);
+ this.lcitemLogTime.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemLogTime.Text = "Log Time";
+ this.lcitemLogTime.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemLogTime.TextSize = new System.Drawing.Size(60, 20);
+ this.lcitemLogTime.TextToControlDistance = 5;
+ //
+ // layoutControlItem13
+ //
+ this.layoutControlItem13.Control = this.btnLogStart;
+ this.layoutControlItem13.CustomizationFormText = "layoutControlItem13";
+ this.layoutControlItem13.Location = new System.Drawing.Point(0, 24);
+ this.layoutControlItem13.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem13.Name = "layoutControlItem13";
+ this.layoutControlItem13.Size = new System.Drawing.Size(193, 50);
+ this.layoutControlItem13.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem13.Text = "layoutControlItem13";
+ this.layoutControlItem13.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem13.TextToControlDistance = 0;
+ this.layoutControlItem13.TextVisible = false;
+ //
+ // layoutControlItem12
+ //
+ this.layoutControlItem12.Control = this.btnOpenLogFolder;
+ this.layoutControlItem12.CustomizationFormText = "layoutControlItem12";
+ this.layoutControlItem12.Location = new System.Drawing.Point(0, 74);
+ this.layoutControlItem12.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem12.Name = "layoutControlItem12";
+ this.layoutControlItem12.Size = new System.Drawing.Size(193, 46);
+ this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem12.Text = "layoutControlItem12";
+ this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem12.TextToControlDistance = 0;
+ this.layoutControlItem12.TextVisible = false;
+ //
+ // tabSystemStatus
+ //
+ this.tabSystemStatus.Location = new System.Drawing.Point(3, 65);
+ this.tabSystemStatus.Name = "tabSystemStatus";
+ this.tabSystemStatus.SelectedTabPage = this.pgSystem1;
+ this.tabSystemStatus.Size = new System.Drawing.Size(907, 511);
+ this.tabSystemStatus.TabIndex = 7;
+ this.tabSystemStatus.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] {
+ this.pgSystem1,
+ this.pgSystem2,
+ this.pgSystem3});
+ //
+ // pgSystem1
+ //
+ this.pgSystem1.Controls.Add(this.layoutControl4);
+ this.pgSystem1.Name = "pgSystem1";
+ this.pgSystem1.Size = new System.Drawing.Size(901, 482);
+ this.pgSystem1.Text = "SYSTEM #A";
+ //
+ // layoutControl4
+ //
+ this.layoutControl4.Controls.Add(this.ucShelfA);
+ this.layoutControl4.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl4.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl4.Name = "layoutControl4";
+ this.layoutControl4.Root = this.layoutControlGroup4;
+ this.layoutControl4.Size = new System.Drawing.Size(901, 482);
+ this.layoutControl4.TabIndex = 0;
+ this.layoutControl4.Text = "layoutControl4";
+ //
+ // ucShelfA
+ //
+ this.ucShelfA.Location = new System.Drawing.Point(3, 3);
+ this.ucShelfA.Name = "ucShelfA";
+ this.ucShelfA.Size = new System.Drawing.Size(895, 476);
+ this.ucShelfA.TabIndex = 4;
+ //
+ // layoutControlGroup4
+ //
+ this.layoutControlGroup4.CustomizationFormText = "layoutControlGroup4";
+ this.layoutControlGroup4.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup4.GroupBordersVisible = false;
+ this.layoutControlGroup4.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem7});
+ this.layoutControlGroup4.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup4.Name = "layoutControlGroup4";
+ this.layoutControlGroup4.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup4.Size = new System.Drawing.Size(901, 482);
+ this.layoutControlGroup4.Text = "layoutControlGroup4";
+ this.layoutControlGroup4.TextVisible = false;
+ //
+ // layoutControlItem7
+ //
+ this.layoutControlItem7.Control = this.ucShelfA;
+ this.layoutControlItem7.CustomizationFormText = "layoutControlItem7";
+ this.layoutControlItem7.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem7.Name = "layoutControlItem7";
+ this.layoutControlItem7.Size = new System.Drawing.Size(899, 480);
+ this.layoutControlItem7.Text = "layoutControlItem7";
+ this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem7.TextToControlDistance = 0;
+ this.layoutControlItem7.TextVisible = false;
+ //
+ // pgSystem2
+ //
+ this.pgSystem2.Controls.Add(this.layoutControl3);
+ this.pgSystem2.Name = "pgSystem2";
+ this.pgSystem2.Size = new System.Drawing.Size(901, 482);
+ this.pgSystem2.Text = "SYSTEM #B";
+ //
+ // layoutControl3
+ //
+ this.layoutControl3.Controls.Add(this.ucShelfB);
+ this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl3.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl3.Name = "layoutControl3";
+ this.layoutControl3.Root = this.layoutControlGroup3;
+ this.layoutControl3.Size = new System.Drawing.Size(901, 482);
+ this.layoutControl3.TabIndex = 0;
+ this.layoutControl3.Text = "layoutControl3";
+ //
+ // ucShelfB
+ //
+ this.ucShelfB.Location = new System.Drawing.Point(3, 3);
+ this.ucShelfB.Name = "ucShelfB";
+ this.ucShelfB.Size = new System.Drawing.Size(895, 476);
+ this.ucShelfB.TabIndex = 4;
+ //
+ // layoutControlGroup3
+ //
+ this.layoutControlGroup3.CustomizationFormText = "layoutControlGroup3";
+ this.layoutControlGroup3.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup3.GroupBordersVisible = false;
+ this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem9});
+ this.layoutControlGroup3.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup3.Name = "layoutControlGroup3";
+ this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup3.Size = new System.Drawing.Size(901, 482);
+ this.layoutControlGroup3.Text = "layoutControlGroup3";
+ this.layoutControlGroup3.TextVisible = false;
+ //
+ // layoutControlItem9
+ //
+ this.layoutControlItem9.Control = this.ucShelfB;
+ this.layoutControlItem9.CustomizationFormText = "layoutControlItem9";
+ this.layoutControlItem9.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem9.Name = "layoutControlItem9";
+ this.layoutControlItem9.Size = new System.Drawing.Size(899, 480);
+ this.layoutControlItem9.Text = "layoutControlItem9";
+ this.layoutControlItem9.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem9.TextToControlDistance = 0;
+ this.layoutControlItem9.TextVisible = false;
+ //
+ // pgSystem3
+ //
+ this.pgSystem3.Controls.Add(this.layoutControl5);
+ this.pgSystem3.Name = "pgSystem3";
+ this.pgSystem3.Size = new System.Drawing.Size(901, 482);
+ this.pgSystem3.Text = "SYSTEM #C";
+ //
+ // layoutControl5
+ //
+ this.layoutControl5.Controls.Add(this.ucShelfC);
+ this.layoutControl5.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl5.Location = new System.Drawing.Point(0, 0);
+ this.layoutControl5.Name = "layoutControl5";
+ this.layoutControl5.Root = this.layoutControlGroup5;
+ this.layoutControl5.Size = new System.Drawing.Size(901, 482);
+ this.layoutControl5.TabIndex = 0;
+ this.layoutControl5.Text = "layoutControl5";
+ //
+ // ucShelfC
+ //
+ this.ucShelfC.Location = new System.Drawing.Point(3, 3);
+ this.ucShelfC.Name = "ucShelfC";
+ this.ucShelfC.Size = new System.Drawing.Size(895, 476);
+ this.ucShelfC.TabIndex = 4;
+ //
+ // layoutControlGroup5
+ //
+ this.layoutControlGroup5.CustomizationFormText = "layoutControlGroup5";
+ this.layoutControlGroup5.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup5.GroupBordersVisible = false;
+ this.layoutControlGroup5.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem10});
+ this.layoutControlGroup5.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup5.Name = "layoutControlGroup5";
+ this.layoutControlGroup5.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.layoutControlGroup5.Size = new System.Drawing.Size(901, 482);
+ this.layoutControlGroup5.Text = "layoutControlGroup5";
+ this.layoutControlGroup5.TextVisible = false;
+ //
+ // layoutControlItem10
+ //
+ this.layoutControlItem10.Control = this.ucShelfC;
+ this.layoutControlItem10.CustomizationFormText = "layoutControlItem10";
+ this.layoutControlItem10.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem10.Name = "layoutControlItem10";
+ this.layoutControlItem10.Size = new System.Drawing.Size(899, 480);
+ this.layoutControlItem10.Text = "layoutControlItem10";
+ this.layoutControlItem10.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem10.TextToControlDistance = 0;
+ this.layoutControlItem10.TextVisible = false;
+ //
+ // gcLogging
+ //
+ this.gcLogging.Controls.Add(this.layoutControl2);
+ this.gcLogging.Location = new System.Drawing.Point(3, 580);
+ this.gcLogging.Name = "gcLogging";
+ this.gcLogging.Size = new System.Drawing.Size(704, 146);
+ this.gcLogging.TabIndex = 5;
+ this.gcLogging.Text = "Event";
+ //
+ // layoutControl2
+ //
+ this.layoutControl2.Controls.Add(this.btnLogClear);
+ this.layoutControl2.Controls.Add(this.tabDataLog);
+ this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl2.Location = new System.Drawing.Point(2, 22);
+ this.layoutControl2.Name = "layoutControl2";
+ this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1234, 235, 250, 350);
+ this.layoutControl2.Root = this.layoutControlGroup2;
+ this.layoutControl2.Size = new System.Drawing.Size(700, 122);
+ this.layoutControl2.TabIndex = 0;
+ this.layoutControl2.Text = "layoutControl2";
+ //
+ // btnLogClear
+ //
+ this.btnLogClear.Location = new System.Drawing.Point(640, 4);
+ this.btnLogClear.Name = "btnLogClear";
+ this.btnLogClear.Size = new System.Drawing.Size(56, 114);
+ this.btnLogClear.StyleController = this.layoutControl2;
+ this.btnLogClear.TabIndex = 5;
+ this.btnLogClear.Text = "Clear";
+ this.btnLogClear.Click += new System.EventHandler(this.btnLogClear_Click);
+ //
+ // tabDataLog
+ //
+ this.tabDataLog.Location = new System.Drawing.Point(4, 4);
+ this.tabDataLog.Name = "tabDataLog";
+ this.tabDataLog.SelectedTabPage = this.tpDataLog;
+ this.tabDataLog.Size = new System.Drawing.Size(632, 114);
+ this.tabDataLog.TabIndex = 4;
+ this.tabDataLog.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] {
+ this.tpDataLog});
+ //
+ // tpDataLog
+ //
+ this.tpDataLog.Controls.Add(this.panelControl1);
+ this.tpDataLog.Name = "tpDataLog";
+ this.tpDataLog.Size = new System.Drawing.Size(626, 85);
+ this.tpDataLog.Text = "Data Log";
+ //
+ // panelControl1
+ //
+ this.panelControl1.Controls.Add(this.meDataLog);
+ this.panelControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.panelControl1.Location = new System.Drawing.Point(0, 0);
+ this.panelControl1.Name = "panelControl1";
+ this.panelControl1.Size = new System.Drawing.Size(626, 85);
+ this.panelControl1.TabIndex = 0;
+ //
+ // meDataLog
+ //
+ this.meDataLog.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.meDataLog.Location = new System.Drawing.Point(2, 2);
+ this.meDataLog.Name = "meDataLog";
+ this.meDataLog.Size = new System.Drawing.Size(622, 81);
+ this.meDataLog.TabIndex = 0;
+ //
+ // layoutControlGroup2
+ //
+ this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup2";
+ this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup2.GroupBordersVisible = false;
+ this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem6,
+ this.layoutControlItem14});
+ this.layoutControlGroup2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup2.Name = "layoutControlGroup2";
+ this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
+ this.layoutControlGroup2.Size = new System.Drawing.Size(700, 122);
+ this.layoutControlGroup2.Text = "layoutControlGroup2";
+ this.layoutControlGroup2.TextVisible = false;
+ //
+ // layoutControlItem6
+ //
+ this.layoutControlItem6.Control = this.tabDataLog;
+ this.layoutControlItem6.CustomizationFormText = "layoutControlItem6";
+ this.layoutControlItem6.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem6.MinSize = new System.Drawing.Size(104, 24);
+ this.layoutControlItem6.Name = "layoutControlItem6";
+ this.layoutControlItem6.Size = new System.Drawing.Size(636, 118);
+ this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem6.Text = "layoutControlItem6";
+ this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem6.TextToControlDistance = 0;
+ this.layoutControlItem6.TextVisible = false;
+ //
+ // layoutControlItem14
+ //
+ this.layoutControlItem14.Control = this.btnLogClear;
+ this.layoutControlItem14.CustomizationFormText = "layoutControlItem14";
+ this.layoutControlItem14.Location = new System.Drawing.Point(636, 0);
+ this.layoutControlItem14.MinSize = new System.Drawing.Size(60, 26);
+ this.layoutControlItem14.Name = "layoutControlItem14";
+ this.layoutControlItem14.Size = new System.Drawing.Size(60, 118);
+ this.layoutControlItem14.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem14.Text = "layoutControlItem14";
+ this.layoutControlItem14.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem14.TextToControlDistance = 0;
+ this.layoutControlItem14.TextVisible = false;
+ //
+ // gcTargetConfig
+ //
+ this.gcTargetConfig.Controls.Add(this.layoutControl1);
+ this.gcTargetConfig.Location = new System.Drawing.Point(3, 3);
+ this.gcTargetConfig.Name = "gcTargetConfig";
+ this.gcTargetConfig.Size = new System.Drawing.Size(907, 58);
+ this.gcTargetConfig.TabIndex = 4;
+ this.gcTargetConfig.Text = "Target Config";
+ this.gcTargetConfig.Paint += new System.Windows.Forms.PaintEventHandler(this.gcTargetConfig_Paint);
+ //
+ // layoutControl1
+ //
+ this.layoutControl1.Controls.Add(this.cbType);
+ this.layoutControl1.Controls.Add(this.btnStart);
+ this.layoutControl1.Controls.Add(this.teTargetIP);
+ this.layoutControl1.Controls.Add(this.lbTargetIP);
+ this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.layoutControl1.Location = new System.Drawing.Point(2, 22);
+ this.layoutControl1.Name = "layoutControl1";
+ this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(318, 219, 250, 350);
+ this.layoutControl1.Root = this.layoutControlGroup1;
+ this.layoutControl1.Size = new System.Drawing.Size(903, 34);
+ this.layoutControl1.TabIndex = 0;
+ this.layoutControl1.Text = "layoutControl1";
+ //
+ // cbType
+ //
+ this.cbType.Location = new System.Drawing.Point(399, 4);
+ this.cbType.Name = "cbType";
+ this.cbType.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cbType.Properties.Appearance.Options.UseFont = true;
+ this.cbType.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+ new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
+ this.cbType.Properties.Items.AddRange(new object[] {
+ "LFPS-48100",
+ "LFPR-48300",
+ "LFPR-48600",
+ "LFPR-48900",
+ "LFPS-48150"});
+ this.cbType.Size = new System.Drawing.Size(178, 26);
+ this.cbType.StyleController = this.layoutControl1;
+ this.cbType.TabIndex = 7;
+ this.cbType.SelectedIndexChanged += new System.EventHandler(this.cbType_SelectedIndexChanged);
+ //
+ // btnStart
+ //
+ this.btnStart.Location = new System.Drawing.Point(725, 4);
+ this.btnStart.Name = "btnStart";
+ this.btnStart.Size = new System.Drawing.Size(174, 26);
+ this.btnStart.StyleController = this.layoutControl1;
+ this.btnStart.TabIndex = 6;
+ this.btnStart.Text = "START";
+ this.btnStart.Click += new System.EventHandler(this.btnStart_ClickA);
+ //
+ // teTargetIP
+ //
+ this.teTargetIP.AllowInternalTab = false;
+ this.teTargetIP.AutoHeight = true;
+ this.teTargetIP.BackColor = System.Drawing.SystemColors.Window;
+ this.teTargetIP.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.teTargetIP.Cursor = System.Windows.Forms.Cursors.IBeam;
+ this.teTargetIP.Font = new System.Drawing.Font("Tahoma", 11.25F);
+ this.teTargetIP.Location = new System.Drawing.Point(101, 4);
+ this.teTargetIP.MinimumSize = new System.Drawing.Size(117, 26);
+ this.teTargetIP.Name = "teTargetIP";
+ this.teTargetIP.ReadOnly = false;
+ this.teTargetIP.Size = new System.Drawing.Size(239, 26);
+ this.teTargetIP.TabIndex = 5;
+ this.teTargetIP.Text = "192.168.0.200";
+ //
+ // lbTargetIP
+ //
+ this.lbTargetIP.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lbTargetIP.Location = new System.Drawing.Point(4, 4);
+ this.lbTargetIP.Name = "lbTargetIP";
+ this.lbTargetIP.Size = new System.Drawing.Size(93, 26);
+ this.lbTargetIP.StyleController = this.layoutControl1;
+ this.lbTargetIP.TabIndex = 4;
+ this.lbTargetIP.Text = "IP Address";
+ //
+ // layoutControlGroup1
+ //
+ this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1";
+ this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.layoutControlGroup1.GroupBordersVisible = false;
+ this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.emptySpaceItem2,
+ this.layoutControlItem2,
+ this.layoutControlItem3,
+ this.layoutControlItem4,
+ this.lcitemType});
+ this.layoutControlGroup1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlGroup1.Name = "layoutControlGroup1";
+ this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
+ this.layoutControlGroup1.Size = new System.Drawing.Size(903, 34);
+ this.layoutControlGroup1.Text = "layoutControlGroup1";
+ this.layoutControlGroup1.TextVisible = false;
+ //
+ // emptySpaceItem2
+ //
+ this.emptySpaceItem2.AllowHotTrack = false;
+ this.emptySpaceItem2.CustomizationFormText = "emptySpaceItem2";
+ this.emptySpaceItem2.Location = new System.Drawing.Point(577, 0);
+ this.emptySpaceItem2.Name = "emptySpaceItem2";
+ this.emptySpaceItem2.Size = new System.Drawing.Size(144, 30);
+ this.emptySpaceItem2.Text = "emptySpaceItem2";
+ this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+ //
+ // layoutControlItem2
+ //
+ this.layoutControlItem2.Control = this.lbTargetIP;
+ this.layoutControlItem2.CustomizationFormText = "layoutControlItem2";
+ this.layoutControlItem2.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem2.MinSize = new System.Drawing.Size(74, 18);
+ this.layoutControlItem2.Name = "layoutControlItem2";
+ this.layoutControlItem2.Size = new System.Drawing.Size(97, 30);
+ this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem2.Text = "layoutControlItem2";
+ this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem2.TextToControlDistance = 0;
+ this.layoutControlItem2.TextVisible = false;
+ //
+ // layoutControlItem3
+ //
+ this.layoutControlItem3.Control = this.teTargetIP;
+ this.layoutControlItem3.CustomizationFormText = "layoutControlItem3";
+ this.layoutControlItem3.Location = new System.Drawing.Point(97, 0);
+ this.layoutControlItem3.MinSize = new System.Drawing.Size(121, 30);
+ this.layoutControlItem3.Name = "layoutControlItem3";
+ this.layoutControlItem3.Size = new System.Drawing.Size(243, 30);
+ this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem3.Text = "layoutControlItem3";
+ this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem3.TextToControlDistance = 0;
+ this.layoutControlItem3.TextVisible = false;
+ //
+ // layoutControlItem4
+ //
+ this.layoutControlItem4.Control = this.btnStart;
+ this.layoutControlItem4.CustomizationFormText = "layoutControlItem4";
+ this.layoutControlItem4.Location = new System.Drawing.Point(721, 0);
+ this.layoutControlItem4.MinSize = new System.Drawing.Size(93, 26);
+ this.layoutControlItem4.Name = "layoutControlItem4";
+ this.layoutControlItem4.Size = new System.Drawing.Size(178, 30);
+ this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem4.Text = "layoutControlItem4";
+ this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem4.TextToControlDistance = 0;
+ this.layoutControlItem4.TextVisible = false;
+ //
+ // lcitemType
+ //
+ this.lcitemType.AppearanceItemCaption.Options.UseTextOptions = true;
+ this.lcitemType.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+ this.lcitemType.Control = this.cbType;
+ this.lcitemType.CustomizationFormText = "Type";
+ this.lcitemType.Location = new System.Drawing.Point(340, 0);
+ this.lcitemType.MinSize = new System.Drawing.Size(109, 28);
+ this.lcitemType.Name = "lcitemType";
+ this.lcitemType.Size = new System.Drawing.Size(237, 30);
+ this.lcitemType.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.lcitemType.Text = "Type";
+ this.lcitemType.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize;
+ this.lcitemType.TextSize = new System.Drawing.Size(50, 20);
+ this.lcitemType.TextToControlDistance = 5;
+ //
+ // lcgMain
+ //
+ this.lcgMain.CustomizationFormText = "lcgMain";
+ this.lcgMain.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+ this.lcgMain.GroupBordersVisible = false;
+ this.lcgMain.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+ this.layoutControlItem1,
+ this.layoutControlItem5,
+ this.layoutControlItem8,
+ this.layoutControlItem11});
+ this.lcgMain.Location = new System.Drawing.Point(0, 0);
+ this.lcgMain.Name = "Root";
+ this.lcgMain.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
+ this.lcgMain.Size = new System.Drawing.Size(913, 729);
+ this.lcgMain.Text = "Root";
+ this.lcgMain.TextVisible = false;
+ //
+ // layoutControlItem1
+ //
+ this.layoutControlItem1.Control = this.gcTargetConfig;
+ this.layoutControlItem1.CustomizationFormText = "layoutControlItem1";
+ this.layoutControlItem1.Location = new System.Drawing.Point(0, 0);
+ this.layoutControlItem1.MaxSize = new System.Drawing.Size(0, 62);
+ this.layoutControlItem1.MinSize = new System.Drawing.Size(104, 62);
+ this.layoutControlItem1.Name = "layoutControlItem1";
+ this.layoutControlItem1.Size = new System.Drawing.Size(911, 62);
+ this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem1.Text = "layoutControlItem1";
+ this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem1.TextToControlDistance = 0;
+ this.layoutControlItem1.TextVisible = false;
+ //
+ // layoutControlItem5
+ //
+ this.layoutControlItem5.Control = this.gcLogging;
+ this.layoutControlItem5.CustomizationFormText = "layoutControlItem5";
+ this.layoutControlItem5.Location = new System.Drawing.Point(0, 577);
+ this.layoutControlItem5.MaxSize = new System.Drawing.Size(0, 150);
+ this.layoutControlItem5.MinSize = new System.Drawing.Size(104, 150);
+ this.layoutControlItem5.Name = "layoutControlItem5";
+ this.layoutControlItem5.Size = new System.Drawing.Size(708, 150);
+ this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem5.Text = "layoutControlItem5";
+ this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem5.TextToControlDistance = 0;
+ this.layoutControlItem5.TextVisible = false;
+ //
+ // layoutControlItem8
+ //
+ this.layoutControlItem8.Control = this.tabSystemStatus;
+ this.layoutControlItem8.CustomizationFormText = "layoutControlItem8";
+ this.layoutControlItem8.Location = new System.Drawing.Point(0, 62);
+ this.layoutControlItem8.Name = "layoutControlItem8";
+ this.layoutControlItem8.Size = new System.Drawing.Size(911, 515);
+ this.layoutControlItem8.Text = "layoutControlItem8";
+ this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem8.TextToControlDistance = 0;
+ this.layoutControlItem8.TextVisible = false;
+ //
+ // layoutControlItem11
+ //
+ this.layoutControlItem11.Control = this.gbDataLog;
+ this.layoutControlItem11.CustomizationFormText = "layoutControlItem11";
+ this.layoutControlItem11.Location = new System.Drawing.Point(708, 577);
+ this.layoutControlItem11.MaxSize = new System.Drawing.Size(203, 150);
+ this.layoutControlItem11.MinSize = new System.Drawing.Size(203, 150);
+ this.layoutControlItem11.Name = "layoutControlItem11";
+ this.layoutControlItem11.Size = new System.Drawing.Size(203, 150);
+ this.layoutControlItem11.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+ this.layoutControlItem11.Text = "layoutControlItem11";
+ this.layoutControlItem11.TextSize = new System.Drawing.Size(0, 0);
+ this.layoutControlItem11.TextToControlDistance = 0;
+ this.layoutControlItem11.TextVisible = false;
+ //
+ // tmrLogging
+ //
+ this.tmrLogging.Interval = 500;
+ this.tmrLogging.Tick += new System.EventHandler(this.tmrLogging_Tick);
+ //
+ // menuStrip1
+ //
+ this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.toolStripMenuItem1});
+ this.menuStrip1.Location = new System.Drawing.Point(1, 24);
+ this.menuStrip1.Name = "menuStrip1";
+ this.menuStrip1.Size = new System.Drawing.Size(686, 24);
+ this.menuStrip1.TabIndex = 2;
+ this.menuStrip1.Text = "menuStrip1";
+ //
+ // toolStripMenuItem1
+ //
+ this.toolStripMenuItem1.Name = "toolStripMenuItem1";
+ this.toolStripMenuItem1.Size = new System.Drawing.Size(127, 20);
+ this.toolStripMenuItem1.Text = "toolStripMenuItem1";
+ //
+ // serialPort1
+ //
+ this.serialPort1.ErrorReceived += new System.IO.Ports.SerialErrorReceivedEventHandler(this.serialPort1_ErrorReceived);
+ this.serialPort1.PinChanged += new System.IO.Ports.SerialPinChangedEventHandler(this.serialPort1_PinChanged);
+ this.serialPort1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this.serialPort1_DataReceived);
+ //
+ // fmMain
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(913, 729);
+ this.Controls.Add(this.lcMain);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "fmMain";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "AMO LFP Monitor";
+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.fmMain_FormClosing);
+ ((System.ComponentModel.ISupportInitialize)(this.lcMain)).EndInit();
+ this.lcMain.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.gbDataLog)).EndInit();
+ this.gbDataLog.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl6)).EndInit();
+ this.layoutControl6.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.cbLogTime.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemLogTime)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.tabSystemStatus)).EndInit();
+ this.tabSystemStatus.ResumeLayout(false);
+ this.pgSystem1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl4)).EndInit();
+ this.layoutControl4.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+ this.pgSystem2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit();
+ this.layoutControl3.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit();
+ this.pgSystem3.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl5)).EndInit();
+ this.layoutControl5.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gcLogging)).EndInit();
+ this.gcLogging.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit();
+ this.layoutControl2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.tabDataLog)).EndInit();
+ this.tabDataLog.ResumeLayout(false);
+ this.tpDataLog.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.panelControl1)).EndInit();
+ this.panelControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.meDataLog.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gcTargetConfig)).EndInit();
+ this.gcTargetConfig.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+ this.layoutControl1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.cbType.Properties)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcitemType)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.lcgMain)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).EndInit();
+ this.menuStrip1.ResumeLayout(false);
+ this.menuStrip1.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Timer tmrDisplay;
+ private DevExpress.XtraLayout.LayoutControl lcMain;
+ private DevExpress.XtraLayout.LayoutControlGroup lcgMain;
+ private DevExpress.XtraEditors.GroupControl gcTargetConfig;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+ private DevExpress.XtraLayout.LayoutControl layoutControl1;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+ private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2;
+ private DevExpress.XtraEditors.LabelControl lbTargetIP;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+ private IPAddressControlLib.IPAddressControl teTargetIP;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+ private DevExpress.XtraEditors.SimpleButton btnStart;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+ private DevExpress.XtraEditors.GroupControl gcLogging;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+ private DevExpress.XtraLayout.LayoutControl layoutControl2;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
+ private DevExpress.XtraTab.XtraTabControl tabDataLog;
+ private DevExpress.XtraTab.XtraTabPage tpDataLog;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+ private DevExpress.XtraEditors.PanelControl panelControl1;
+ private DevExpress.XtraEditors.MemoEdit meDataLog;
+ private DevExpress.XtraTab.XtraTabControl tabSystemStatus;
+ private DevExpress.XtraTab.XtraTabPage pgSystem1;
+ private DevExpress.XtraTab.XtraTabPage pgSystem2;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+ private DevExpress.XtraLayout.LayoutControl layoutControl4;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup4;
+ private Controls.ucShelfStatus ucShelfA;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+ private DevExpress.XtraEditors.ComboBoxEdit cbType;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemType;
+ private DevExpress.XtraLayout.LayoutControl layoutControl3;
+ private Controls.ucShelfStatus ucShelfB;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
+ private DevExpress.XtraTab.XtraTabPage pgSystem3;
+ private DevExpress.XtraLayout.LayoutControl layoutControl5;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup5;
+ private Controls.ucShelfStatus ucShelfC;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10;
+ private DevExpress.XtraEditors.GroupControl gbDataLog;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11;
+ private DevExpress.XtraLayout.LayoutControl layoutControl6;
+ private DevExpress.XtraEditors.SimpleButton btnLogStart;
+ private DevExpress.XtraEditors.ComboBoxEdit cbLogTime;
+ private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup6;
+ private DevExpress.XtraLayout.LayoutControlItem lcitemLogTime;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13;
+ private DevExpress.XtraEditors.SimpleButton btnOpenLogFolder;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12;
+ private System.Windows.Forms.Timer tmrLogging;
+ private System.Windows.Forms.MenuStrip menuStrip1;
+ private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1;
+ private DevExpress.XtraEditors.SimpleButton btnLogClear;
+ private DevExpress.XtraLayout.LayoutControlItem layoutControlItem14;
+ private System.IO.Ports.SerialPort serialPort1;
+ }
+}
+
diff --git a/LFP_Manager/fmMain.cs b/LFP_Manager/fmMain.cs
new file mode 100644
index 0000000..6a63421
--- /dev/null
+++ b/LFP_Manager/fmMain.cs
@@ -0,0 +1,278 @@
+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;
+using System.Net;
+using SnmpSharpNet;
+
+using System.Threading;
+
+using LFP_Manager.DataStructure;
+using LFP_Manager.Threads;
+using LFP_Manager.Utils;
+
+using System.Diagnostics;
+
+namespace LFP_Manager
+{
+ public partial class fmMain : Form
+ {
+ DeviceSystemData[] SystemData;
+ csSnmpThread snmpThread;
+
+ public fmMain()
+ {
+ InitializeComponent();
+
+ StructDataInit();
+
+ cbType.SelectedIndex = 0;
+
+ ucShelfA.Start(0, SystemData[0]);
+ ucShelfB.Start(1, SystemData[1]);
+ ucShelfC.Start(2, SystemData[2]);
+
+ tabSystemStatus.TabPages[1].PageVisible = false;
+ tabSystemStatus.TabPages[2].PageVisible = false;
+
+ pgSystem1.Text = "SYSTEM";
+
+ tmrDisplay.Start();
+ }
+
+ private void StructDataInit()
+ {
+ SystemData = new DeviceSystemData[csConstData.SystemInfo.MAX_SYSTEM_SIZE];
+
+ for (int i = 0; i < csConstData.SystemInfo.MAX_SYSTEM_SIZE; i++)
+ {
+ SystemData[i] = new DeviceSystemData();
+ SystemData[i].ValueData = new DeviceValueData();
+ SystemData[i].ValueData.CellVoltage = new short[csConstData.SystemInfo.MAX_MODULE_CELL_SIZE];
+ SystemData[i].ValueData.CellTemperature = new short[csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE];
+
+ SystemData[i].AvgData = new DeviceAvgData();
+ SystemData[i].StatusData = new DeviceStatusData();
+
+ SystemData[i].CalibriationData = new DeviceCalibration();
+ SystemData[i].CalibriationData.CellVoltge = new CellVoltageCalib();
+ SystemData[i].CalibriationData.SystemVoltage = new SystemVoltageCalib();
+ SystemData[i].CalibriationData.ForcedBalancing = new ForcedBalControl();
+ SystemData[i].CalibriationData.Battery = new BatteryParameter();
+ }
+ }
+
+ private void UpdateData(object sender, DeviceSystemData[] rData)
+ {
+ SystemData = rData;
+ ucShelfA.UpdateData(SystemData[0]);
+ ucShelfB.UpdateData(SystemData[1]);
+ ucShelfC.UpdateData(SystemData[2]);
+ }
+
+ #region EVENT FUNCTION
+
+ private void tmrDisplay_Tick(object sender, EventArgs e)
+ {
+ if (snmpThread != null)
+ {
+ string data = snmpThread.GetResult();
+
+ if (data != "")
+ {
+ meDataLog.Text = data + "\r\n" + meDataLog.Text;
+ }
+ }
+ }
+
+ private void fmMain_FormClosing(object sender, FormClosingEventArgs e)
+ {
+ tmrDisplay.Stop();
+ if (snmpThread != null)
+ snmpThread.disposeThread();
+ }
+
+ private void btnStart_Click(object sender, EventArgs e)
+ {
+ if (snmpThread.GetStatus())
+ {
+ snmpThread.Start(teTargetIP.Text);
+ teTargetIP.Enabled = false;
+ btnStart.Text = "Stop";
+ }
+ else
+ {
+ snmpThread.Stop();
+ teTargetIP.Enabled = true;
+ btnStart.Text = "Start";
+ }
+ }
+
+ private void btnStart_ClickA(object sender, EventArgs e)
+ {
+ //if (snmpThread == null)
+ //{
+ // snmpThread = new csSnmpThread(Config, SystemData);
+ // snmpThread.OnUpdate += UpdateData;
+
+ // snmpThread.Start(teTargetIP.Text);
+
+ // teTargetIP.Enabled = false;
+ // cbType.Enabled = false;
+ // btnStart.Text = "Stop";
+ //}
+ //else
+ //{
+ // snmpThread.Stop();
+ // snmpThread.disposeThread();
+ // snmpThread = null;
+
+ // teTargetIP.Enabled = true;
+ // cbType.Enabled = true;
+ // btnStart.Text = "Start";
+ //}
+ }
+
+ #endregion
+
+ #region SUB EVENT
+
+ private void cbType_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ switch (cbType.SelectedIndex)
+ {
+ case 0: // KT LFPS-48100
+ case 1: // KT LFPR-48300
+ case 4: // ESS LFPS-48150
+ tabSystemStatus.TabPages[0].PageVisible = true;
+ tabSystemStatus.TabPages[1].PageVisible = false;
+ tabSystemStatus.TabPages[2].PageVisible = false;
+
+ pgSystem1.Text = "SYSTEM";
+ break;
+ case 2: // KT LFPR-48600
+ tabSystemStatus.TabPages[0].PageVisible = true;
+ tabSystemStatus.TabPages[1].PageVisible = true;
+ tabSystemStatus.TabPages[2].PageVisible = false;
+
+ pgSystem1.Text = "SYSTEM #A";
+ pgSystem2.Text = "SYSTEM #B";
+ break;
+ case 3: // KT LFPR-48900
+ tabSystemStatus.TabPages[0].PageVisible = true;
+ tabSystemStatus.TabPages[1].PageVisible = true;
+ tabSystemStatus.TabPages[2].PageVisible = true;
+
+ pgSystem1.Text = "SYSTEM #A";
+ pgSystem2.Text = "SYSTEM #B";
+ pgSystem3.Text = "SYSTEM #C";
+ break;
+ }
+ }
+
+ #endregion
+
+ private void btnOpenLogFolder_Click(object sender, EventArgs e)
+ {
+ System.Diagnostics.Process ps = new System.Diagnostics.Process();
+ ps.StartInfo.FileName = "explorer.exe";
+ ps.StartInfo.Arguments = csLog.GetLogFolder(Application.ExecutablePath);
+ ps.StartInfo.WorkingDirectory = csLog.GetLogFolder(Application.ExecutablePath);
+ ps.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
+
+ ps.Start();
+ }
+
+ #region LOG TIMER TICK EVENT
+
+ DateTime bakDateTime;
+
+ private void tmrLogging_Tick(object sender, EventArgs e)
+ {
+ DateTime cDate = DateTime.Now;
+ int ss;
+
+ if (cbType.Enabled == false)
+ {
+ if (SystemData[0].CommFail == false)
+ {
+ ss = Convert.ToInt16(cbLogTime.Text);
+
+ if (
+ ((bakDateTime.Minute != cDate.Minute)
+ || (bakDateTime.Second != cDate.Second))
+ && ((cDate.Second % ss) == 0)
+ )
+ {
+ for (int i = 0; i < csConstData.SystemInfo.MAX_SYSTEM_SIZE; i++)
+ {
+ try
+ {
+ //csLog.SystemDataLog(i + 1, Config, SystemData[i], cDate, Application.ExecutablePath);
+ bakDateTime = cDate;
+ }
+ catch (Exception ex)
+ {
+ string snmpResult = "[" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "] " + String.Format("Exception : {0}", ex.Message);
+
+ meDataLog.Text = snmpResult + "\r\n" + meDataLog.Text;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ #endregion
+
+ bool logging = false;
+
+ private void btnLogStart_Click(object sender, EventArgs e)
+ {
+ if (logging == true)
+ {
+ tmrLogging.Stop();
+ cbLogTime.Enabled = true;
+ logging = false;
+ btnLogStart.Text = "Log Start";
+ }
+ else
+ {
+ tmrLogging.Start();
+ cbLogTime.Enabled = false;
+ logging = true;
+ btnLogStart.Text = "Log Stop";
+ }
+ }
+
+ private void btnLogClear_Click(object sender, EventArgs e)
+ {
+ meDataLog.Text = "";
+ }
+
+ private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
+ {
+
+ }
+
+ private void serialPort1_ErrorReceived(object sender, System.IO.Ports.SerialErrorReceivedEventArgs e)
+ {
+
+ }
+
+ private void serialPort1_PinChanged(object sender, System.IO.Ports.SerialPinChangedEventArgs e)
+ {
+
+ }
+
+ private void gcTargetConfig_Paint(object sender, PaintEventArgs e)
+ {
+
+ }
+
+ }
+}
diff --git a/LFP_Manager/fmMain.resx b/LFP_Manager/fmMain.resx
new file mode 100644
index 0000000..d9621e2
--- /dev/null
+++ b/LFP_Manager/fmMain.resx
@@ -0,0 +1,4586 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+ 128, 17
+
+
+ 260, 16
+
+
+ 376, 16
+
+
+ 59
+
+
+
+
+ AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA
+ GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/
+ ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7/////////////////////
+ ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff/////////
+ ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+
+ /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7/////
+ ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc
+ x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7/////////////////////////////
+ ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt
+ e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP
+ SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7/////////
+ ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z
+ WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS
+ Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8
+ +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+
+ /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+
+ /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO
+ SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz
+ 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o
+ 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9
+ /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE
+ oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG
+ PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7/////
+ ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH
+ PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t
+ 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/
+ ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/
+ ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7/////////////////////////////
+ ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+
+ /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ
+ TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7/////////////////
+ ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ
+ TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+
+ /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7/////
+ ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP
+ SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7/////////////////////////////////////////
+ ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/
+ ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7/////////////////////////////
+ ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/
+ ///+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////+/v7////////+/v3////////////////////////+/v3////////+/v7/////////////////
+ ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7////+/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD/////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7/////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ /////////v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v7////////+/v7/////////////////////////////////////
+ ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7/////////////////////
+ ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7
+ +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9
+ /Pz+/v7/////////////////////////////////////////////////////////////////////////
+ ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM
+ RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7/////////////////////////////////////
+ ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL
+ QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+
+ /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP
+ SgCOSQCPTAKFOwDVvaT////9/Pv+/v7/////////////////////////////////////////////////
+ ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8
+ +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7/////////
+ /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO
+ SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF
+ OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+
+ ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/
+ //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7/////////////////////////
+ ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/
+ mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79
+ /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN
+ RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ
+ TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7/////
+ ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7/////
+ ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+
+ /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ
+ TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP
+ SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH
+ PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/
+ ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5
+ 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+
+ /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ
+ QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE
+ oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/
+ ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7/////////////////////////
+ ///////////////////////////////////////////////////////+/v7+////////////////////
+ ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+
+ /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9
+ /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP
+ SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL
+ RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7/////////////////////////////////
+ ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/
+ ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7/////////
+ ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP
+ SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI
+ PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/
+ ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x
+ glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7/////////////////////////////
+ ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM
+ RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+
+ /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/
+ ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP
+ SgCOSgGLRQGTURDz7ef+/v39/f3+/v7/////////////////////////////////////////////////
+ ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+
+ /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7/////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN
+ RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9
+ /fz9/f3+/v7+/v7/////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO
+ SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7/////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO
+ SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7/////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS
+ UA/y6+X+/v39/fz+/v7+/v7/////////////////////////////////////////////////////////
+ ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP
+ SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7/////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+
+ /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+
+ /v7/////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO
+ SQCOSQGJQQDi0cD////9/Pv+/v7/////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J
+ QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7/////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39
+ /fz+/v7+/v7/////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz
+ hFazhFayhFazhVete1TWvqb////9/fz+/v7/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+
+ /f3+/f3/////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v7+////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////v7+
+ /f39////////////////////////////////////////////////////////////////////////////
+ ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew
+ 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39
+ /fz8/v79/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA
+ nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1////
+ x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV
+ i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC
+ jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC
+ hz8Ap3I//fz7/fz8/v79/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7
+ /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8
+ +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p
+ /v39/f38/v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+
+ ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb
+ 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+//7+/f39
+ /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7////
+ 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+
+ /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA
+ j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA
+ jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB
+ j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB
+ i0UAlVYZ8+3m/f79/f38/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+////////////////
+ /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39
+ /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+
+ sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+
+ /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+////////
+ /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+
+ /f39/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO
+ /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39
+ 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39
+ /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+////////////////////////////
+ /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+////
+ /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A
+ kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ jkoCikIC4tHA/////Pv7/v7+/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC
+ hz4A1r6m/////Pz7/v7+/v7+/////v7+////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+
+ /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+////////////////////
+ /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM
+ /////Pv6/v7+/v7+/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA
+ j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+
+ /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7
+ /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq////
+ /Pv6/v7+/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A
+ j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA
+ kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA
+ j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6
+ /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+////////
+ /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+
+ /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA
+ xaJ//////Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU
+ /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA
+ j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+////////////
+ 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+
+ /////v7+////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39
+ /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/
+ /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6
+ ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+
+ /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC
+ kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB
+ kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39////
+ /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA
+ hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA
+ iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A
+ j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU
+ z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co
+ 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+////////
+ /v7+/////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7//v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn
+ +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3
+ +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8
+ /fz8/v7+/////v7+/////v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v///v7+/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38
+ /v7+/v7+/////v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT
+ z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7
+ ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A
+ hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A
+ fS0AtIdb/f38/Pz8///+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+
+ /v7+/////////////////////////////////////////////////////////////////////v7+/v7+
+ /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D
+ kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL
+ jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA
+ jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3
+ iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA
+ jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA
+ jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK
+ 6t7S/v7+/fz8/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs////
+ /Pv7/////v7+/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7
+ /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38
+ /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fz8
+ /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+////////////////////////////////////
+ /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+
+ /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA
+ jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A
+ pnA8/Pv6/fz7/v7+/v7+/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq
+ iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+
+ /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+////////////
+ /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+
+ //7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A
+ 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES
+ jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+////////////////
+ /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6
+ /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7
+ /v79/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v39
+ /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8
+ +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+
+ /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ
+ hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA
+ jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ
+ 8+3m/f39/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+
+ /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA
+ jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA
+ u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA
+ j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA
+ jkkCikQE49PC/v7//fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8
+ /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+
+ /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7////
+ t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA
+ jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU
+ hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD
+ /////fz8//7//v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA
+ oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC
+ hj0Az7SX/////fz7//7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+//7+
+ /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH
+ jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA
+ jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB
+ jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT////
+ /Pz8/v7//v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA
+ t4tf/////fz7/v7+/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs
+ mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA
+ j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB
+ jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6
+ /v7+/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/v7+
+ /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx
+ +/n3/fz8/f39/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+
+ rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA
+ jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW
+ k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV
+ kU8TmVoj8ejg/v39/fz7/v7//f39/v//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off
+ 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v////7+/v7+/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v39/v7+
+ ///+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/v//////
+ /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v79/////////v7+/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
+ /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA
+ AAAAAAAA////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v79/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////9/Lt9/Pu
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt
+ 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2svnmMrzrGR/////fz7////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot
+ o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ
+ /v39/fz8/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA
+ i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC
+ kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h
+ /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0////
+ 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC
+ j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ jUgBlFIO7uTa/////f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB
+ jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+
+ /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38////////////////////
+ /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z
+ iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+
+ sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG////
+ /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ hz4Ar35J/v39/fz8/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+////////
+ /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38////////////////////////////////
+ /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+////////////////////////////////////////////
+ /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7/////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA
+ /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW
+ k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+
+ /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+////////////////////
+ /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iEAA176j/////fz7////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39////////////////////////////////////////////
+ ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38
+ /fz8/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEA1buf/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+////////////
+ /////////////////////////////////////////////////////////////////////fz7////yKaB
+ hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v///f38////sH9K
+ hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0oBi0QAnmIj9vHs/v39/v39////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA
+ nWAf9vHs/v7+/v79////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo////
+ /fz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v///f38////
+ 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f39/v79+/n3omor
+ ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm
+ +PTw/v39/f39////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sBjEUAmVwb9e/p/v7+/f38////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A
+ vpVq/////fz7/v/+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8AyKaB/////fz7/v///v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v79
+ /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39
+ //7/////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC
+ jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsCiD8Auo9h/////fz8/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE
+ iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB
+ 4tC+/////f38/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjUcBk1EN7+Xb/////f39/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA////
+ /fz7/v7+/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj
+ n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////f38////u5Jlhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkBjUgE4M66/////fz7/////v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR
+ 7+bd/v7+/f39////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv
+ +/n4/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0
+ rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6
+ ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC
+ hz4AtolZ/////fz8/v3+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA
+ j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA
+ j0sBikIApGww+vj1/v39/f39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ
+ j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M
+ /////Pz7/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjkkCjkkG4c+7/////fz7/v7+/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+///+/v39
+ /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d////
+ /fz7/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7+/f38/f38
+ 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A
+ jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0sBiD8AyKiE/////fz8/v7+/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0oBiUEApW4z+vj1/v39/v39////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ
+ /v7+/f38/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4
+ 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD
+ 49PB/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/Pz7////
+ 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6////
+ /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A
+ j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC
+ iUEAqHQ7+/j2/fz8/v39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jUgBkk8K7ODV/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL////
+ /f38/v7+///+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6////////
+ ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A
+ ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38
+ /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBiUEA1Lqd/////fv6////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38
+ sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////v7+/v39
+ /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq
+ 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38
+ /v39/v39/v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAjUgBkU4J6NrM/////fz8////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA
+ jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iUEArnxG/v7+/f38/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO
+ 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC
+ j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i////
+ /Pz7/////v7+////////////////////////////////////////////////////////////////////
+ /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA
+ hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA
+ iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr
+ vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq
+ vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g
+ 4M24/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY
+ llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+////////////////////////////
+ /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7
+ /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEsCiUEArXpD/v7//f39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB
+ ikMA1bqf/////fz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39
+ /f38/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39
+ /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39
+ /v39/v39/v39/v39/v39/v39/////////v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI
+ iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn
+ oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8////
+ /fz8////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA
+ mVsZ8+zl/v38/fz8////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA
+ ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7
+ /v7+//7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz7/v7+
+ 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB
+ j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+////
+ /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf
+ 9vHs/v79/fz8////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z
+ iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAi0YAl1gT8+3l/v7+/f39////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA
+ upFj/////fz8/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB
+ jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC
+ hz4AwZty/////fz8/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////f39
+ /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC
+ jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ
+ hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEsChz4At4ta/////fz8/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkoAjUgCkEwL6dzO/////fz7////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD
+ 38y3/////fz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39
+ /////v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v/+/f39/v79
+ +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/////fz8
+ /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A
+ kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK
+ 5tbG/////fz8/////v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAj0oBjUcB4M25/////f38/v7/////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos
+ +PTw/fz8/f39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v//////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA
+ kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB
+ iUAAq3dA/Pr4/fz7/f39/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v///fz7
+ ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA
+ j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ j0oBikMAomgq+vf0/f39/v7+////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////Pz7////4M24
+ i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB
+ /////Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiUEA0rea/////fz7/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7
+ /v38/v39/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////f38/v79
+ +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/f38
+ ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ kEwChz4AxaJ8/////fz7/v7+////////////////////////////////////////////////////////
+ ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA
+ 07mb/////Pz7/v7+/v7+////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU
+ /v7+/Pz7/v7+/v7+////////////////////////////////////////////////////////////////
+ /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+////
+ //////////////////////////////////////////////////////////////////////////////7/
+ /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7/////////////////
+ /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/////fz8////
+ 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+////////////////////////////
+ /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jEQAm10b9O/p/v7+/f38////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+////////////////////////////////////////
+ /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7
+ /v7//v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ jUgAklAK6dzO/////f38/v//////////////////////////////////////////////////////////
+ /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6
+ /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng
+ lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+
+ /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkAkEwBiD8Au5Jl/////fz8/v7+//7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+////////////////////
+ /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj
+ /v39/fz8/////v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v7+/fz8////
+ tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+////////////////////////////
+ /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8
+ ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB
+ iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb////
+ /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A
+ upFj/////fz8/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+
+ /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7////////////////////////
+ /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf
+ llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA
+ kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ jkkBjUcA49LA/////f38/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC
+ iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38
+ /v7+/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79
+ /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3
+ qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v7+/////fz8////0baX
+ iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD
+ /////fz8/v//////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA
+ nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA
+ qHI4/Pv5/v39/v7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v7+
+ /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38////
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+
+ iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA
+ kEsChz8Az7KS/////fz7/////v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7
+ /v39/v7+////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/v39
+ /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////fz8////59jIj0oD
+ jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ
+ /////fz8////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+/fz7
+ /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB
+ llYW7+Xb/v7+/f38/////v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A
+ kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+
+ /v7+////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA
+ j0wChz8AuIxc/v7+/fz7/v39/v7+////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+
+ /v39/v//////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v7+/fv6
+ ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA
+ j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkoAjkkBjEYA4M24/////fz8/v7+////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa
+ /////f38////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/v39/fz7
+ 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB
+ jUcE3sq2/////Pz7/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oBikMAomgq+fXy/v39/f39////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7+/fz7////
+ 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy////
+ /fz8/////v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC
+ jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq
+ +vf1/f38/f39//7+////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////v7+
+ /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA
+ j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39
+ tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD
+ kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A
+ iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ
+ zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS
+ yqqM38u2/////v79/v7+/v7+////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7+/v7+/v7+/v79////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v79/v7+
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8
+ /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
\ No newline at end of file
diff --git a/LFP_Manager/packages.config b/LFP_Manager/packages.config
new file mode 100644
index 0000000..510b29a
--- /dev/null
+++ b/LFP_Manager/packages.config
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file