From af2647ee794f83071c15fa8ecdc083f388635cac Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sun, 30 Aug 2020 09:32:35 -0500 Subject: [PATCH 001/101] Adding references to modern Windows APIs to get start with Windows login working --- Caffeinated.csproj | 7 ++++++ SettingsForm.Designer.cs | 3 ++- SettingsForm.cs | 50 ++++++++++++++++++++++++++++++---------- 3 files changed, 47 insertions(+), 13 deletions(-) diff --git a/Caffeinated.csproj b/Caffeinated.csproj index 60be4f7..6d6e916 100644 --- a/Caffeinated.csproj +++ b/Caffeinated.csproj @@ -63,9 +63,16 @@ + + False + ..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5\System.Runtime.WindowsRuntime.dll + + + ..\..\..\..\..\Program Files (x86)\Windows Kits\10\UnionMetadata\Windows.winmd + diff --git a/SettingsForm.Designer.cs b/SettingsForm.Designer.cs index e3dafd2..7a6966f 100644 --- a/SettingsForm.Designer.cs +++ b/SettingsForm.Designer.cs @@ -104,6 +104,7 @@ private void InitializeComponent() { this.ActivateChkBox.TabIndex = 3; this.ActivateChkBox.Text = "Activate upon launch"; this.ActivateChkBox.UseVisualStyleBackColor = true; + this.ActivateChkBox.CheckedChanged += new System.EventHandler(this.StartupChkBox_CheckedChanged); // // StartupChkBox // @@ -115,7 +116,7 @@ private void InitializeComponent() { this.StartupChkBox.TabIndex = 2; this.StartupChkBox.Text = "Automatically launch at Windows startup"; this.StartupChkBox.UseVisualStyleBackColor = true; - this.StartupChkBox.CheckedChanged += new System.EventHandler(this.StartupChkBox_CheckedChanged); + this.StartupChkBox.CheckedChanged += new System.EventHandler(this.LaunchWithWindowsLogin); // // okBtn // diff --git a/SettingsForm.cs b/SettingsForm.cs index 9f6f8d8..2c7dc85 100644 --- a/SettingsForm.cs +++ b/SettingsForm.cs @@ -1,10 +1,12 @@ using System; using System.ComponentModel; +using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Windows.Forms; using Caffeinated.Properties; +using Windows.ApplicationModel; namespace Caffeinated { public partial class SettingsForm : BaseForm { @@ -54,19 +56,43 @@ static string GetShortcutPath(ReflectedShell shell = null) { return Path.Combine(startup, "Caffeinated.lnk"); } - private void StartupChkBox_CheckedChanged(object sender, EventArgs e) { - var shell = new ReflectedShell(); - var shortcut = GetShortcutPath(shell); - var executable = Assembly.GetExecutingAssembly() - .GetName().CodeBase; - if (StartupChkBox.Checked) { - // create shortcut in startup items folder in start menu - shell.CreateShortcut(shortcut, executable); - } - else { - // remove shortcut if it exists - File.Delete(shortcut); + private async void LaunchWithWindowsLogin(object sender, EventArgs e) + { + StartupTask startupTask = await StartupTask.GetAsync("Caffeinated"); + Debug.WriteLine("Startup is " + startupTask.State.ToString()); + + switch (startupTask.State) + { + case StartupTaskState.Disabled: + // Task is disabled but can be enabled. + StartupTaskState newState = await startupTask.RequestEnableAsync(); + Debug.WriteLine("Request to enable startup, result = {0}", newState); + break; + case StartupTaskState.DisabledByUser: + // Task is disabled and user must enable it manually. + Debug.WriteLine("Startup is diabled by user."); + break; + case StartupTaskState.Enabled: + Debug.WriteLine("Startup is enabled."); + break; } } + + private void StartupChkBox_CheckedChanged(object sender, EventArgs e) { + //var shell = new ReflectedShell(); + //var shortcut = GetShortcutPath(shell); + //var executable = Assembly.GetExecutingAssembly() + // .GetName().CodeBase; + //if (StartupChkBox.Checked) { + // // create shortcut in startup items folder in start menu + // shell.CreateShortcut(shortcut, executable); + //} + //else { + // // remove shortcut if it exists + // File.Delete(shortcut); + //} + + + } } } From a169cbcb002a43619d3c1ec634e00d91f6d54597 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sun, 30 Aug 2020 10:29:15 -0500 Subject: [PATCH 002/101] Fixed startup behavior to set and check state of checkbox. Put settings in table --- SettingsForm.Designer.cs | 194 +++++++++++++++++++++++---------------- SettingsForm.cs | 72 +++++++-------- 2 files changed, 150 insertions(+), 116 deletions(-) diff --git a/SettingsForm.Designer.cs b/SettingsForm.Designer.cs index 7a6966f..7ed5c1d 100644 --- a/SettingsForm.Designer.cs +++ b/SettingsForm.Designer.cs @@ -26,15 +26,19 @@ private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SettingsForm)); this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); - this.DefaultDurationBox = new System.Windows.Forms.ComboBox(); - this.label3 = new System.Windows.Forms.Label(); - this.SettingsAtLaunchChkBox = new System.Windows.Forms.CheckBox(); - this.ActivateChkBox = new System.Windows.Forms.CheckBox(); - this.StartupChkBox = new System.Windows.Forms.CheckBox(); this.okBtn = new System.Windows.Forms.Button(); this.cancelBtn = new System.Windows.Forms.Button(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.StartupChkBox = new System.Windows.Forms.CheckBox(); + this.ActivateChkBox = new System.Windows.Forms.CheckBox(); + this.SettingsAtLaunchChkBox = new System.Windows.Forms.CheckBox(); + this.DefaultDurationBox = new System.Windows.Forms.ComboBox(); + this.label3 = new System.Windows.Forms.Label(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.tableLayoutPanel1.SuspendLayout(); + this.tableLayoutPanel2.SuspendLayout(); this.SuspendLayout(); // // label1 @@ -58,70 +62,10 @@ private void InitializeComponent() { this.label2.TabIndex = 1; this.label2.Text = "Right-click the notification area icon to show the Caffeinated menu."; // - // DefaultDurationBox - // - this.DefaultDurationBox.FormattingEnabled = true; - this.DefaultDurationBox.Location = new System.Drawing.Point(327, 323); - this.DefaultDurationBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.DefaultDurationBox.Name = "DefaultDurationBox"; - this.DefaultDurationBox.Size = new System.Drawing.Size(198, 33); - this.DefaultDurationBox.TabIndex = 5; - this.DefaultDurationBox.SelectedIndexChanged += new System.EventHandler(this.DefaultDurationBox_SelectedIndexChanged); - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(181, 328); - this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(145, 25); - this.label3.TabIndex = 6; - this.label3.Text = "Default duration:"; - // - // SettingsAtLaunchChkBox - // - this.SettingsAtLaunchChkBox.AutoSize = true; - this.SettingsAtLaunchChkBox.Checked = global::Caffeinated.Properties.Settings.Default.ShowSettingsAtLaunch; - this.SettingsAtLaunchChkBox.CheckState = System.Windows.Forms.CheckState.Checked; - this.SettingsAtLaunchChkBox.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::Caffeinated.Properties.Settings.Default, "ShowSettingsAtLaunch", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.SettingsAtLaunchChkBox.Location = new System.Drawing.Point(186, 282); - this.SettingsAtLaunchChkBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.SettingsAtLaunchChkBox.Name = "SettingsAtLaunchChkBox"; - this.SettingsAtLaunchChkBox.Size = new System.Drawing.Size(293, 29); - this.SettingsAtLaunchChkBox.TabIndex = 4; - this.SettingsAtLaunchChkBox.Text = "Show this message upon launch"; - this.SettingsAtLaunchChkBox.UseVisualStyleBackColor = true; - // - // ActivateChkBox - // - this.ActivateChkBox.AutoSize = true; - this.ActivateChkBox.Checked = global::Caffeinated.Properties.Settings.Default.ActivateAtLaunch; - this.ActivateChkBox.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::Caffeinated.Properties.Settings.Default, "ActivateAtLaunch", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.ActivateChkBox.Location = new System.Drawing.Point(186, 240); - this.ActivateChkBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.ActivateChkBox.Name = "ActivateChkBox"; - this.ActivateChkBox.Size = new System.Drawing.Size(204, 29); - this.ActivateChkBox.TabIndex = 3; - this.ActivateChkBox.Text = "Activate upon launch"; - this.ActivateChkBox.UseVisualStyleBackColor = true; - this.ActivateChkBox.CheckedChanged += new System.EventHandler(this.StartupChkBox_CheckedChanged); - // - // StartupChkBox - // - this.StartupChkBox.AutoSize = true; - this.StartupChkBox.Location = new System.Drawing.Point(186, 198); - this.StartupChkBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.StartupChkBox.Name = "StartupChkBox"; - this.StartupChkBox.Size = new System.Drawing.Size(362, 29); - this.StartupChkBox.TabIndex = 2; - this.StartupChkBox.Text = "Automatically launch at Windows startup"; - this.StartupChkBox.UseVisualStyleBackColor = true; - this.StartupChkBox.CheckedChanged += new System.EventHandler(this.LaunchWithWindowsLogin); - // // okBtn // this.okBtn.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.okBtn.Location = new System.Drawing.Point(376, 378); + this.okBtn.Location = new System.Drawing.Point(376, 435); this.okBtn.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.okBtn.Name = "okBtn"; this.okBtn.Size = new System.Drawing.Size(124, 45); @@ -134,7 +78,7 @@ private void InitializeComponent() { // this.cancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.cancelBtn.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.cancelBtn.Location = new System.Drawing.Point(510, 378); + this.cancelBtn.Location = new System.Drawing.Point(510, 435); this.cancelBtn.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.cancelBtn.Name = "cancelBtn"; this.cancelBtn.Size = new System.Drawing.Size(124, 45); @@ -153,21 +97,108 @@ private void InitializeComponent() { this.pictureBox1.TabIndex = 10; this.pictureBox1.TabStop = false; // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 1; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 0, 5); + this.tableLayoutPanel1.Controls.Add(this.SettingsAtLaunchChkBox, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.ActivateChkBox, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.StartupChkBox, 0, 0); + this.tableLayoutPanel1.Location = new System.Drawing.Point(186, 187); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 6; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.Size = new System.Drawing.Size(416, 240); + this.tableLayoutPanel1.TabIndex = 11; + // + // StartupChkBox + // + this.StartupChkBox.AutoSize = true; + this.StartupChkBox.Location = new System.Drawing.Point(4, 5); + this.StartupChkBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.StartupChkBox.Name = "StartupChkBox"; + this.StartupChkBox.Size = new System.Drawing.Size(362, 29); + this.StartupChkBox.TabIndex = 3; + this.StartupChkBox.Text = "Automatically launch at Windows startup"; + this.StartupChkBox.UseVisualStyleBackColor = true; + // + // ActivateChkBox + // + this.ActivateChkBox.AutoSize = true; + this.ActivateChkBox.Checked = global::Caffeinated.Properties.Settings.Default.ActivateAtLaunch; + this.ActivateChkBox.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::Caffeinated.Properties.Settings.Default, "ActivateAtLaunch", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.ActivateChkBox.Location = new System.Drawing.Point(4, 44); + this.ActivateChkBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.ActivateChkBox.Name = "ActivateChkBox"; + this.ActivateChkBox.Size = new System.Drawing.Size(204, 29); + this.ActivateChkBox.TabIndex = 4; + this.ActivateChkBox.Text = "Activate upon launch"; + this.ActivateChkBox.UseVisualStyleBackColor = true; + // + // SettingsAtLaunchChkBox + // + this.SettingsAtLaunchChkBox.AutoSize = true; + this.SettingsAtLaunchChkBox.Checked = global::Caffeinated.Properties.Settings.Default.ShowSettingsAtLaunch; + this.SettingsAtLaunchChkBox.CheckState = System.Windows.Forms.CheckState.Checked; + this.SettingsAtLaunchChkBox.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::Caffeinated.Properties.Settings.Default, "ShowSettingsAtLaunch", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.SettingsAtLaunchChkBox.Location = new System.Drawing.Point(4, 83); + this.SettingsAtLaunchChkBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.SettingsAtLaunchChkBox.Name = "SettingsAtLaunchChkBox"; + this.SettingsAtLaunchChkBox.Size = new System.Drawing.Size(293, 29); + this.SettingsAtLaunchChkBox.TabIndex = 5; + this.SettingsAtLaunchChkBox.Text = "Show this message upon launch"; + this.SettingsAtLaunchChkBox.UseVisualStyleBackColor = true; + // + // DefaultDurationBox + // + this.DefaultDurationBox.FormattingEnabled = true; + this.DefaultDurationBox.Location = new System.Drawing.Point(157, 5); + this.DefaultDurationBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.DefaultDurationBox.Name = "DefaultDurationBox"; + this.DefaultDurationBox.Size = new System.Drawing.Size(180, 33); + this.DefaultDurationBox.TabIndex = 8; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(4, 0); + this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(145, 25); + this.label3.TabIndex = 9; + this.label3.Text = "Default duration:"; + // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.ColumnCount = 2; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel2.Controls.Add(this.label3, 0, 0); + this.tableLayoutPanel2.Controls.Add(this.DefaultDurationBox, 1, 0); + this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 140); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 1; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(410, 56); + this.tableLayoutPanel2.TabIndex = 13; + // // SettingsForm // this.AcceptButton = this.okBtn; this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 25F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.cancelBtn; - this.ClientSize = new System.Drawing.Size(653, 444); + this.ClientSize = new System.Drawing.Size(653, 494); + this.Controls.Add(this.tableLayoutPanel1); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.cancelBtn); this.Controls.Add(this.okBtn); - this.Controls.Add(this.label3); - this.Controls.Add(this.DefaultDurationBox); - this.Controls.Add(this.SettingsAtLaunchChkBox); - this.Controls.Add(this.ActivateChkBox); - this.Controls.Add(this.StartupChkBox); this.Controls.Add(this.label2); this.Controls.Add(this.label1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; @@ -177,8 +208,11 @@ private void InitializeComponent() { this.Name = "SettingsForm"; this.Text = "Welcome to Caffeinated"; ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); + this.tableLayoutPanel2.ResumeLayout(false); + this.tableLayoutPanel2.PerformLayout(); this.ResumeLayout(false); - this.PerformLayout(); } @@ -186,13 +220,15 @@ private void InitializeComponent() { private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; - private System.Windows.Forms.CheckBox StartupChkBox; - private System.Windows.Forms.CheckBox ActivateChkBox; - private System.Windows.Forms.CheckBox SettingsAtLaunchChkBox; - private System.Windows.Forms.ComboBox DefaultDurationBox; - private System.Windows.Forms.Label label3; private System.Windows.Forms.Button okBtn; private System.Windows.Forms.Button cancelBtn; private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.ComboBox DefaultDurationBox; + private System.Windows.Forms.CheckBox SettingsAtLaunchChkBox; + private System.Windows.Forms.CheckBox ActivateChkBox; + private System.Windows.Forms.CheckBox StartupChkBox; } } \ No newline at end of file diff --git a/SettingsForm.cs b/SettingsForm.cs index 2c7dc85..54b8807 100644 --- a/SettingsForm.cs +++ b/SettingsForm.cs @@ -25,8 +25,33 @@ public SettingsForm() : base() { DefaultDurationBox.ValueMember = "Minutes"; DefaultDurationBox.SelectedItem = defaultItem; - var shortcut = GetShortcutPath(); - StartupChkBox.Checked = File.Exists(shortcut); + setStartupCheckBox(); + + + } + + private async void setStartupCheckBox() + { + StartupTask startupTask = await StartupTask.GetAsync("StartCaffeinated"); + Debug.WriteLine("Startup is " + startupTask.State.ToString()); + + switch (startupTask.State) + { + case StartupTaskState.Disabled: + // Task is disabled but can be enabled. + StartupChkBox.Checked = false; + break; + case StartupTaskState.DisabledByUser: + // Task is disabled and user must enable it manually. + StartupChkBox.Checked = false; + StartupChkBox.Enabled = false; + + StartupChkBox.Text += "\nDisabled in Task Manager"; + break; + case StartupTaskState.Enabled: + StartupChkBox.Checked = true; + break; + } } private void okBtn_Click(object sender, EventArgs e) { @@ -48,51 +73,24 @@ EventArgs e } } - static string GetShortcutPath(ReflectedShell shell = null) { - if (shell == null) { - shell = new ReflectedShell(); - } - var startup = shell.GetSpecialFolder("Startup"); - return Path.Combine(startup, "Caffeinated.lnk"); - } - private async void LaunchWithWindowsLogin(object sender, EventArgs e) { - StartupTask startupTask = await StartupTask.GetAsync("Caffeinated"); - Debug.WriteLine("Startup is " + startupTask.State.ToString()); + StartupTask startupTask = await StartupTask.GetAsync("StartCaffeinated"); - switch (startupTask.State) + + switch (StartupChkBox.Checked) { - case StartupTaskState.Disabled: - // Task is disabled but can be enabled. + case true: StartupTaskState newState = await startupTask.RequestEnableAsync(); Debug.WriteLine("Request to enable startup, result = {0}", newState); break; - case StartupTaskState.DisabledByUser: - // Task is disabled and user must enable it manually. - Debug.WriteLine("Startup is diabled by user."); + case false: + startupTask.Disable(); + Debug.WriteLine("Disabled startup task"); break; - case StartupTaskState.Enabled: - Debug.WriteLine("Startup is enabled."); + default: break; } } - - private void StartupChkBox_CheckedChanged(object sender, EventArgs e) { - //var shell = new ReflectedShell(); - //var shortcut = GetShortcutPath(shell); - //var executable = Assembly.GetExecutingAssembly() - // .GetName().CodeBase; - //if (StartupChkBox.Checked) { - // // create shortcut in startup items folder in start menu - // shell.CreateShortcut(shortcut, executable); - //} - //else { - // // remove shortcut if it exists - // File.Delete(shortcut); - //} - - - } } } From 876f8deb53406b4ab923ec7d12d1527f0cd5d4df Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sun, 30 Aug 2020 10:33:10 -0500 Subject: [PATCH 003/101] Updated package version to 1.1 --- Caffeinated.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Caffeinated.csproj b/Caffeinated.csproj index 6d6e916..5d3f757 100644 --- a/Caffeinated.csproj +++ b/Caffeinated.csproj @@ -26,7 +26,7 @@ false true 0 - 1.0.0.%2a + 1.1.0.%2a false true From 5d5195ca57fe1997e59e6f6636c2dedccf3f4dc9 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Fri, 13 Nov 2020 06:59:43 -0600 Subject: [PATCH 004/101] Add 2hrs and 8hrs options --- app.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app.config b/app.config index e5b36a7..f5e8dd6 100644 --- a/app.config +++ b/app.config @@ -17,7 +17,7 @@ 0 - 0,15,60 + 0,15,60,120,480 From aa56cb8dcaafcb3670ab0a491c6a040e4073141d Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Fri, 13 Nov 2020 07:03:42 -0600 Subject: [PATCH 005/101] Fix Typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 239a1d1..4ed5894 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ Caffeinated ----------- -A Windows app inspired by [Caffine][1]. A small eye icon will appear in the System Tray which when toggled will enable and disable sleep. This project was originally created by [Desmond Brand][2] but was forked and is being updated by [TheJoeFin][3]. Part of the updates involved new icons which are still in the process of being refined. +A Windows app inspired by [Caffeine][1]. A small eye icon will appear in the System Tray which when toggled will enable and disable sleep. This project was originally created by [Desmond Brand][2] but was forked and is being updated by [TheJoeFin][3]. Part of the updates involved new icons which are still in the process of being refined. ### How does it work When initally launched the settings page shows up and an icon is added to the System Tray From f59e5be8f8577078f91b2b763f2a550abeb98c58 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Mon, 16 Nov 2020 06:34:06 -0600 Subject: [PATCH 006/101] Clean up whitespace --- SettingsForm.cs | 3 --- 1 file changed, 3 deletions(-) diff --git a/SettingsForm.cs b/SettingsForm.cs index 54b8807..f3e973d 100644 --- a/SettingsForm.cs +++ b/SettingsForm.cs @@ -26,8 +26,6 @@ public SettingsForm() : base() { DefaultDurationBox.SelectedItem = defaultItem; setStartupCheckBox(); - - } private async void setStartupCheckBox() @@ -77,7 +75,6 @@ private async void LaunchWithWindowsLogin(object sender, EventArgs e) { StartupTask startupTask = await StartupTask.GetAsync("StartCaffeinated"); - switch (StartupChkBox.Checked) { case true: From 926ac98bfd8d082e0247d2d4153296fa0f952a58 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Mon, 16 Nov 2020 06:38:58 -0600 Subject: [PATCH 007/101] Align checkbox event name with other names --- SettingsForm.Designer.cs | 109 ++++++++++++++++++++------------------- SettingsForm.cs | 2 +- 2 files changed, 56 insertions(+), 55 deletions(-) diff --git a/SettingsForm.Designer.cs b/SettingsForm.Designer.cs index 7ed5c1d..8ec4e3a 100644 --- a/SettingsForm.Designer.cs +++ b/SettingsForm.Designer.cs @@ -30,12 +30,12 @@ private void InitializeComponent() { this.cancelBtn = new System.Windows.Forms.Button(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.StartupChkBox = new System.Windows.Forms.CheckBox(); - this.ActivateChkBox = new System.Windows.Forms.CheckBox(); - this.SettingsAtLaunchChkBox = new System.Windows.Forms.CheckBox(); - this.DefaultDurationBox = new System.Windows.Forms.ComboBox(); - this.label3 = new System.Windows.Forms.Label(); this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.label3 = new System.Windows.Forms.Label(); + this.DefaultDurationBox = new System.Windows.Forms.ComboBox(); + this.SettingsAtLaunchChkBox = new System.Windows.Forms.CheckBox(); + this.ActivateChkBox = new System.Windows.Forms.CheckBox(); + this.StartupChkBox = new System.Windows.Forms.CheckBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.tableLayoutPanel1.SuspendLayout(); this.tableLayoutPanel2.SuspendLayout(); @@ -117,29 +117,38 @@ private void InitializeComponent() { this.tableLayoutPanel1.Size = new System.Drawing.Size(416, 240); this.tableLayoutPanel1.TabIndex = 11; // - // StartupChkBox + // tableLayoutPanel2 // - this.StartupChkBox.AutoSize = true; - this.StartupChkBox.Location = new System.Drawing.Point(4, 5); - this.StartupChkBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.StartupChkBox.Name = "StartupChkBox"; - this.StartupChkBox.Size = new System.Drawing.Size(362, 29); - this.StartupChkBox.TabIndex = 3; - this.StartupChkBox.Text = "Automatically launch at Windows startup"; - this.StartupChkBox.UseVisualStyleBackColor = true; + this.tableLayoutPanel2.ColumnCount = 2; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel2.Controls.Add(this.label3, 0, 0); + this.tableLayoutPanel2.Controls.Add(this.DefaultDurationBox, 1, 0); + this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 140); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 1; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(410, 56); + this.tableLayoutPanel2.TabIndex = 13; // - // ActivateChkBox + // label3 // - this.ActivateChkBox.AutoSize = true; - this.ActivateChkBox.Checked = global::Caffeinated.Properties.Settings.Default.ActivateAtLaunch; - this.ActivateChkBox.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::Caffeinated.Properties.Settings.Default, "ActivateAtLaunch", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); - this.ActivateChkBox.Location = new System.Drawing.Point(4, 44); - this.ActivateChkBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.ActivateChkBox.Name = "ActivateChkBox"; - this.ActivateChkBox.Size = new System.Drawing.Size(204, 29); - this.ActivateChkBox.TabIndex = 4; - this.ActivateChkBox.Text = "Activate upon launch"; - this.ActivateChkBox.UseVisualStyleBackColor = true; + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(4, 0); + this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(145, 25); + this.label3.TabIndex = 9; + this.label3.Text = "Default duration:"; + // + // DefaultDurationBox + // + this.DefaultDurationBox.FormattingEnabled = true; + this.DefaultDurationBox.Location = new System.Drawing.Point(157, 5); + this.DefaultDurationBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.DefaultDurationBox.Name = "DefaultDurationBox"; + this.DefaultDurationBox.Size = new System.Drawing.Size(180, 33); + this.DefaultDurationBox.TabIndex = 8; // // SettingsAtLaunchChkBox // @@ -155,38 +164,30 @@ private void InitializeComponent() { this.SettingsAtLaunchChkBox.Text = "Show this message upon launch"; this.SettingsAtLaunchChkBox.UseVisualStyleBackColor = true; // - // DefaultDurationBox - // - this.DefaultDurationBox.FormattingEnabled = true; - this.DefaultDurationBox.Location = new System.Drawing.Point(157, 5); - this.DefaultDurationBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.DefaultDurationBox.Name = "DefaultDurationBox"; - this.DefaultDurationBox.Size = new System.Drawing.Size(180, 33); - this.DefaultDurationBox.TabIndex = 8; - // - // label3 + // ActivateChkBox // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(4, 0); - this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(145, 25); - this.label3.TabIndex = 9; - this.label3.Text = "Default duration:"; + this.ActivateChkBox.AutoSize = true; + this.ActivateChkBox.Checked = global::Caffeinated.Properties.Settings.Default.ActivateAtLaunch; + this.ActivateChkBox.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::Caffeinated.Properties.Settings.Default, "ActivateAtLaunch", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.ActivateChkBox.Location = new System.Drawing.Point(4, 44); + this.ActivateChkBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.ActivateChkBox.Name = "ActivateChkBox"; + this.ActivateChkBox.Size = new System.Drawing.Size(204, 29); + this.ActivateChkBox.TabIndex = 4; + this.ActivateChkBox.Text = "Activate upon launch"; + this.ActivateChkBox.UseVisualStyleBackColor = true; // - // tableLayoutPanel2 + // StartupChkBox // - this.tableLayoutPanel2.ColumnCount = 2; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); - this.tableLayoutPanel2.Controls.Add(this.label3, 0, 0); - this.tableLayoutPanel2.Controls.Add(this.DefaultDurationBox, 1, 0); - this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 140); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 1; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(410, 56); - this.tableLayoutPanel2.TabIndex = 13; + this.StartupChkBox.AutoSize = true; + this.StartupChkBox.Location = new System.Drawing.Point(4, 5); + this.StartupChkBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.StartupChkBox.Name = "StartupChkBox"; + this.StartupChkBox.Size = new System.Drawing.Size(362, 29); + this.StartupChkBox.TabIndex = 3; + this.StartupChkBox.Text = "Automatically launch at Windows startup"; + this.StartupChkBox.UseVisualStyleBackColor = true; + this.StartupChkBox.CheckedChanged += new System.EventHandler(this.StartupChkBox_CheckedChanged); // // SettingsForm // diff --git a/SettingsForm.cs b/SettingsForm.cs index f3e973d..4653900 100644 --- a/SettingsForm.cs +++ b/SettingsForm.cs @@ -71,7 +71,7 @@ EventArgs e } } - private async void LaunchWithWindowsLogin(object sender, EventArgs e) + private async void StartupChkBox_CheckedChanged(object sender, EventArgs e) { StartupTask startupTask = await StartupTask.GetAsync("StartCaffeinated"); From 9c55efd1599b69f2b3d70545f2d95c1d92b5e2a2 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Mon, 16 Nov 2020 07:14:28 -0600 Subject: [PATCH 008/101] Begin work on selectable Icon --- SettingsForm.Designer.cs | 58 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 53 insertions(+), 5 deletions(-) diff --git a/SettingsForm.Designer.cs b/SettingsForm.Designer.cs index 8ec4e3a..a380b40 100644 --- a/SettingsForm.Designer.cs +++ b/SettingsForm.Designer.cs @@ -36,6 +36,9 @@ private void InitializeComponent() { this.SettingsAtLaunchChkBox = new System.Windows.Forms.CheckBox(); this.ActivateChkBox = new System.Windows.Forms.CheckBox(); this.StartupChkBox = new System.Windows.Forms.CheckBox(); + this.radioButton1 = new System.Windows.Forms.RadioButton(); + this.radioButton2 = new System.Windows.Forms.RadioButton(); + this.radioButton3 = new System.Windows.Forms.RadioButton(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.tableLayoutPanel1.SuspendLayout(); this.tableLayoutPanel2.SuspendLayout(); @@ -64,8 +67,9 @@ private void InitializeComponent() { // // okBtn // + this.okBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.okBtn.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.okBtn.Location = new System.Drawing.Point(376, 435); + this.okBtn.Location = new System.Drawing.Point(376, 556); this.okBtn.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.okBtn.Name = "okBtn"; this.okBtn.Size = new System.Drawing.Size(124, 45); @@ -76,9 +80,10 @@ private void InitializeComponent() { // // cancelBtn // + this.cancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.cancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.cancelBtn.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.cancelBtn.Location = new System.Drawing.Point(510, 435); + this.cancelBtn.Location = new System.Drawing.Point(510, 556); this.cancelBtn.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.cancelBtn.Name = "cancelBtn"; this.cancelBtn.Size = new System.Drawing.Size(124, 45); @@ -105,16 +110,23 @@ private void InitializeComponent() { this.tableLayoutPanel1.Controls.Add(this.SettingsAtLaunchChkBox, 0, 2); this.tableLayoutPanel1.Controls.Add(this.ActivateChkBox, 0, 1); this.tableLayoutPanel1.Controls.Add(this.StartupChkBox, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.radioButton1, 0, 6); + this.tableLayoutPanel1.Controls.Add(this.radioButton2, 0, 7); + this.tableLayoutPanel1.Controls.Add(this.radioButton3, 0, 8); this.tableLayoutPanel1.Location = new System.Drawing.Point(186, 187); this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 6; + this.tableLayoutPanel1.RowCount = 10; this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel1.Size = new System.Drawing.Size(416, 240); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(416, 361); this.tableLayoutPanel1.TabIndex = 11; // // tableLayoutPanel2 @@ -189,13 +201,46 @@ private void InitializeComponent() { this.StartupChkBox.UseVisualStyleBackColor = true; this.StartupChkBox.CheckedChanged += new System.EventHandler(this.StartupChkBox_CheckedChanged); // + // radioButton1 + // + this.radioButton1.AutoSize = true; + this.radioButton1.Location = new System.Drawing.Point(3, 202); + this.radioButton1.Name = "radioButton1"; + this.radioButton1.Size = new System.Drawing.Size(141, 29); + this.radioButton1.TabIndex = 14; + this.radioButton1.TabStop = true; + this.radioButton1.Text = "radioButton1"; + this.radioButton1.UseVisualStyleBackColor = true; + // + // radioButton2 + // + this.radioButton2.AutoSize = true; + this.radioButton2.Location = new System.Drawing.Point(3, 237); + this.radioButton2.Name = "radioButton2"; + this.radioButton2.Size = new System.Drawing.Size(141, 29); + this.radioButton2.TabIndex = 15; + this.radioButton2.TabStop = true; + this.radioButton2.Text = "radioButton2"; + this.radioButton2.UseVisualStyleBackColor = true; + // + // radioButton3 + // + this.radioButton3.AutoSize = true; + this.radioButton3.Location = new System.Drawing.Point(3, 272); + this.radioButton3.Name = "radioButton3"; + this.radioButton3.Size = new System.Drawing.Size(141, 29); + this.radioButton3.TabIndex = 16; + this.radioButton3.TabStop = true; + this.radioButton3.Text = "radioButton3"; + this.radioButton3.UseVisualStyleBackColor = true; + // // SettingsForm // this.AcceptButton = this.okBtn; this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 25F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.cancelBtn; - this.ClientSize = new System.Drawing.Size(653, 494); + this.ClientSize = new System.Drawing.Size(653, 615); this.Controls.Add(this.tableLayoutPanel1); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.cancelBtn); @@ -231,5 +276,8 @@ private void InitializeComponent() { private System.Windows.Forms.CheckBox SettingsAtLaunchChkBox; private System.Windows.Forms.CheckBox ActivateChkBox; private System.Windows.Forms.CheckBox StartupChkBox; + private System.Windows.Forms.RadioButton radioButton1; + private System.Windows.Forms.RadioButton radioButton2; + private System.Windows.Forms.RadioButton radioButton3; } } \ No newline at end of file From b06d56cf3b7595681292bf839e8d855912429e57 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Wed, 18 Nov 2020 05:57:36 -0600 Subject: [PATCH 009/101] Add Radio buttons and custom durration text box --- SettingsForm.Designer.cs | 283 +++++++++++++++++++++++++++++++-------- 1 file changed, 230 insertions(+), 53 deletions(-) diff --git a/SettingsForm.Designer.cs b/SettingsForm.Designer.cs index a380b40..cadb6a1 100644 --- a/SettingsForm.Designer.cs +++ b/SettingsForm.Designer.cs @@ -36,12 +36,33 @@ private void InitializeComponent() { this.SettingsAtLaunchChkBox = new System.Windows.Forms.CheckBox(); this.ActivateChkBox = new System.Windows.Forms.CheckBox(); this.StartupChkBox = new System.Windows.Forms.CheckBox(); - this.radioButton1 = new System.Windows.Forms.RadioButton(); - this.radioButton2 = new System.Windows.Forms.RadioButton(); - this.radioButton3 = new System.Windows.Forms.RadioButton(); + this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); + this.OffIconLbl = new System.Windows.Forms.Label(); + this.OnIconLbl = new System.Windows.Forms.Label(); + this.defaultRDBTN = new System.Windows.Forms.RadioButton(); + this.eyeZZZRDBTN = new System.Windows.Forms.RadioButton(); + this.mugRDBTN = new System.Windows.Forms.RadioButton(); + this.pictureBox2 = new System.Windows.Forms.PictureBox(); + this.pictureBox3 = new System.Windows.Forms.PictureBox(); + this.pictureBox4 = new System.Windows.Forms.PictureBox(); + this.pictureBox5 = new System.Windows.Forms.PictureBox(); + this.pictureBox6 = new System.Windows.Forms.PictureBox(); + this.pictureBox7 = new System.Windows.Forms.PictureBox(); + this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); + this.label4 = new System.Windows.Forms.Label(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.button1 = new System.Windows.Forms.Button(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.tableLayoutPanel1.SuspendLayout(); this.tableLayoutPanel2.SuspendLayout(); + this.tableLayoutPanel3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox7)).BeginInit(); + this.tableLayoutPanel4.SuspendLayout(); this.SuspendLayout(); // // label1 @@ -69,7 +90,7 @@ private void InitializeComponent() { // this.okBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.okBtn.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.okBtn.Location = new System.Drawing.Point(376, 556); + this.okBtn.Location = new System.Drawing.Point(377, 829); this.okBtn.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.okBtn.Name = "okBtn"; this.okBtn.Size = new System.Drawing.Size(124, 45); @@ -83,7 +104,7 @@ private void InitializeComponent() { this.cancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.cancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.cancelBtn.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.cancelBtn.Location = new System.Drawing.Point(510, 556); + this.cancelBtn.Location = new System.Drawing.Point(511, 829); this.cancelBtn.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.cancelBtn.Name = "cancelBtn"; this.cancelBtn.Size = new System.Drawing.Size(124, 45); @@ -110,12 +131,11 @@ private void InitializeComponent() { this.tableLayoutPanel1.Controls.Add(this.SettingsAtLaunchChkBox, 0, 2); this.tableLayoutPanel1.Controls.Add(this.ActivateChkBox, 0, 1); this.tableLayoutPanel1.Controls.Add(this.StartupChkBox, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.radioButton1, 0, 6); - this.tableLayoutPanel1.Controls.Add(this.radioButton2, 0, 7); - this.tableLayoutPanel1.Controls.Add(this.radioButton3, 0, 8); + this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 0, 7); + this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel4, 0, 6); this.tableLayoutPanel1.Location = new System.Drawing.Point(186, 187); this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 10; + this.tableLayoutPanel1.RowCount = 9; this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); @@ -123,16 +143,15 @@ private void InitializeComponent() { this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(416, 361); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 378F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 83F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(464, 634); this.tableLayoutPanel1.TabIndex = 11; // // tableLayoutPanel2 // this.tableLayoutPanel2.ColumnCount = 2; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 200F)); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); this.tableLayoutPanel2.Controls.Add(this.label3, 0, 0); this.tableLayoutPanel2.Controls.Add(this.DefaultDurationBox, 1, 0); @@ -140,7 +159,7 @@ private void InitializeComponent() { this.tableLayoutPanel2.Name = "tableLayoutPanel2"; this.tableLayoutPanel2.RowCount = 1; this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(410, 56); + this.tableLayoutPanel2.Size = new System.Drawing.Size(458, 56); this.tableLayoutPanel2.TabIndex = 13; // // label3 @@ -156,10 +175,10 @@ private void InitializeComponent() { // DefaultDurationBox // this.DefaultDurationBox.FormattingEnabled = true; - this.DefaultDurationBox.Location = new System.Drawing.Point(157, 5); + this.DefaultDurationBox.Location = new System.Drawing.Point(204, 5); this.DefaultDurationBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.DefaultDurationBox.Name = "DefaultDurationBox"; - this.DefaultDurationBox.Size = new System.Drawing.Size(180, 33); + this.DefaultDurationBox.Size = new System.Drawing.Size(130, 33); this.DefaultDurationBox.TabIndex = 8; // // SettingsAtLaunchChkBox @@ -201,38 +220,173 @@ private void InitializeComponent() { this.StartupChkBox.UseVisualStyleBackColor = true; this.StartupChkBox.CheckedChanged += new System.EventHandler(this.StartupChkBox_CheckedChanged); // - // radioButton1 - // - this.radioButton1.AutoSize = true; - this.radioButton1.Location = new System.Drawing.Point(3, 202); - this.radioButton1.Name = "radioButton1"; - this.radioButton1.Size = new System.Drawing.Size(141, 29); - this.radioButton1.TabIndex = 14; - this.radioButton1.TabStop = true; - this.radioButton1.Text = "radioButton1"; - this.radioButton1.UseVisualStyleBackColor = true; - // - // radioButton2 - // - this.radioButton2.AutoSize = true; - this.radioButton2.Location = new System.Drawing.Point(3, 237); - this.radioButton2.Name = "radioButton2"; - this.radioButton2.Size = new System.Drawing.Size(141, 29); - this.radioButton2.TabIndex = 15; - this.radioButton2.TabStop = true; - this.radioButton2.Text = "radioButton2"; - this.radioButton2.UseVisualStyleBackColor = true; - // - // radioButton3 - // - this.radioButton3.AutoSize = true; - this.radioButton3.Location = new System.Drawing.Point(3, 272); - this.radioButton3.Name = "radioButton3"; - this.radioButton3.Size = new System.Drawing.Size(141, 29); - this.radioButton3.TabIndex = 16; - this.radioButton3.TabStop = true; - this.radioButton3.Text = "radioButton3"; - this.radioButton3.UseVisualStyleBackColor = true; + // tableLayoutPanel3 + // + this.tableLayoutPanel3.ColumnCount = 3; + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 150F)); + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel3.Controls.Add(this.OffIconLbl, 1, 0); + this.tableLayoutPanel3.Controls.Add(this.OnIconLbl, 2, 0); + this.tableLayoutPanel3.Controls.Add(this.defaultRDBTN, 0, 1); + this.tableLayoutPanel3.Controls.Add(this.eyeZZZRDBTN, 0, 2); + this.tableLayoutPanel3.Controls.Add(this.mugRDBTN, 0, 3); + this.tableLayoutPanel3.Controls.Add(this.pictureBox2, 1, 1); + this.tableLayoutPanel3.Controls.Add(this.pictureBox3, 2, 1); + this.tableLayoutPanel3.Controls.Add(this.pictureBox4, 1, 2); + this.tableLayoutPanel3.Controls.Add(this.pictureBox5, 2, 2); + this.tableLayoutPanel3.Controls.Add(this.pictureBox6, 1, 3); + this.tableLayoutPanel3.Controls.Add(this.pictureBox7, 2, 3); + this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 249); + this.tableLayoutPanel3.Name = "tableLayoutPanel3"; + this.tableLayoutPanel3.RowCount = 4; + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 110F)); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 110F)); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 110F)); + this.tableLayoutPanel3.Size = new System.Drawing.Size(391, 361); + this.tableLayoutPanel3.TabIndex = 14; + // + // OffIconLbl + // + this.OffIconLbl.AutoSize = true; + this.OffIconLbl.Location = new System.Drawing.Point(153, 0); + this.OffIconLbl.Name = "OffIconLbl"; + this.OffIconLbl.Size = new System.Drawing.Size(77, 25); + this.OffIconLbl.TabIndex = 0; + this.OffIconLbl.Text = "Off Icon"; + // + // OnIconLbl + // + this.OnIconLbl.AutoSize = true; + this.OnIconLbl.Location = new System.Drawing.Point(259, 0); + this.OnIconLbl.Name = "OnIconLbl"; + this.OnIconLbl.Size = new System.Drawing.Size(75, 25); + this.OnIconLbl.TabIndex = 1; + this.OnIconLbl.Text = "On Icon"; + // + // defaultRDBTN + // + this.defaultRDBTN.AutoSize = true; + this.defaultRDBTN.Location = new System.Drawing.Point(3, 28); + this.defaultRDBTN.Name = "defaultRDBTN"; + this.defaultRDBTN.Size = new System.Drawing.Size(94, 29); + this.defaultRDBTN.TabIndex = 2; + this.defaultRDBTN.TabStop = true; + this.defaultRDBTN.Text = "Default"; + this.defaultRDBTN.UseVisualStyleBackColor = true; + // + // eyeZZZRDBTN + // + this.eyeZZZRDBTN.AutoSize = true; + this.eyeZZZRDBTN.Location = new System.Drawing.Point(3, 138); + this.eyeZZZRDBTN.Name = "eyeZZZRDBTN"; + this.eyeZZZRDBTN.Size = new System.Drawing.Size(135, 29); + this.eyeZZZRDBTN.TabIndex = 3; + this.eyeZZZRDBTN.TabStop = true; + this.eyeZZZRDBTN.Text = "Eye with zZZ"; + this.eyeZZZRDBTN.UseVisualStyleBackColor = true; + // + // mugRDBTN + // + this.mugRDBTN.AutoSize = true; + this.mugRDBTN.Location = new System.Drawing.Point(3, 248); + this.mugRDBTN.Name = "mugRDBTN"; + this.mugRDBTN.Size = new System.Drawing.Size(74, 29); + this.mugRDBTN.TabIndex = 4; + this.mugRDBTN.TabStop = true; + this.mugRDBTN.Text = "Mug"; + this.mugRDBTN.UseVisualStyleBackColor = true; + // + // pictureBox2 + // + this.pictureBox2.Location = new System.Drawing.Point(153, 28); + this.pictureBox2.Name = "pictureBox2"; + this.pictureBox2.Size = new System.Drawing.Size(100, 100); + this.pictureBox2.TabIndex = 5; + this.pictureBox2.TabStop = false; + // + // pictureBox3 + // + this.pictureBox3.Location = new System.Drawing.Point(259, 28); + this.pictureBox3.Name = "pictureBox3"; + this.pictureBox3.Size = new System.Drawing.Size(100, 100); + this.pictureBox3.TabIndex = 6; + this.pictureBox3.TabStop = false; + // + // pictureBox4 + // + this.pictureBox4.Location = new System.Drawing.Point(153, 138); + this.pictureBox4.Name = "pictureBox4"; + this.pictureBox4.Size = new System.Drawing.Size(100, 100); + this.pictureBox4.TabIndex = 7; + this.pictureBox4.TabStop = false; + // + // pictureBox5 + // + this.pictureBox5.Location = new System.Drawing.Point(259, 138); + this.pictureBox5.Name = "pictureBox5"; + this.pictureBox5.Size = new System.Drawing.Size(100, 100); + this.pictureBox5.TabIndex = 8; + this.pictureBox5.TabStop = false; + // + // pictureBox6 + // + this.pictureBox6.Location = new System.Drawing.Point(153, 248); + this.pictureBox6.Name = "pictureBox6"; + this.pictureBox6.Size = new System.Drawing.Size(100, 100); + this.pictureBox6.TabIndex = 9; + this.pictureBox6.TabStop = false; + // + // pictureBox7 + // + this.pictureBox7.Location = new System.Drawing.Point(259, 248); + this.pictureBox7.Name = "pictureBox7"; + this.pictureBox7.Size = new System.Drawing.Size(100, 100); + this.pictureBox7.TabIndex = 10; + this.pictureBox7.TabStop = false; + // + // tableLayoutPanel4 + // + this.tableLayoutPanel4.ColumnCount = 3; + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 200F)); + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 103F)); + this.tableLayoutPanel4.Controls.Add(this.label4, 0, 0); + this.tableLayoutPanel4.Controls.Add(this.textBox1, 1, 0); + this.tableLayoutPanel4.Controls.Add(this.button1, 2, 0); + this.tableLayoutPanel4.Location = new System.Drawing.Point(3, 202); + this.tableLayoutPanel4.Name = "tableLayoutPanel4"; + this.tableLayoutPanel4.RowCount = 1; + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel4.Size = new System.Drawing.Size(456, 41); + this.tableLayoutPanel4.TabIndex = 15; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Dock = System.Windows.Forms.DockStyle.Fill; + this.label4.Location = new System.Drawing.Point(3, 0); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(194, 41); + this.label4.TabIndex = 0; + this.label4.Text = "Custom Durration"; + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(203, 3); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(131, 31); + this.textBox1.TabIndex = 1; + // + // button1 + // + this.button1.Location = new System.Drawing.Point(356, 3); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(96, 35); + this.button1.TabIndex = 2; + this.button1.Text = "Add"; + this.button1.UseVisualStyleBackColor = true; // // SettingsForm // @@ -240,7 +394,7 @@ private void InitializeComponent() { this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 25F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.cancelBtn; - this.ClientSize = new System.Drawing.Size(653, 615); + this.ClientSize = new System.Drawing.Size(654, 888); this.Controls.Add(this.tableLayoutPanel1); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.cancelBtn); @@ -258,6 +412,16 @@ private void InitializeComponent() { this.tableLayoutPanel1.PerformLayout(); this.tableLayoutPanel2.ResumeLayout(false); this.tableLayoutPanel2.PerformLayout(); + this.tableLayoutPanel3.ResumeLayout(false); + this.tableLayoutPanel3.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox7)).EndInit(); + this.tableLayoutPanel4.ResumeLayout(false); + this.tableLayoutPanel4.PerformLayout(); this.ResumeLayout(false); } @@ -276,8 +440,21 @@ private void InitializeComponent() { private System.Windows.Forms.CheckBox SettingsAtLaunchChkBox; private System.Windows.Forms.CheckBox ActivateChkBox; private System.Windows.Forms.CheckBox StartupChkBox; - private System.Windows.Forms.RadioButton radioButton1; - private System.Windows.Forms.RadioButton radioButton2; - private System.Windows.Forms.RadioButton radioButton3; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; + private System.Windows.Forms.Label OffIconLbl; + private System.Windows.Forms.Label OnIconLbl; + private System.Windows.Forms.RadioButton defaultRDBTN; + private System.Windows.Forms.RadioButton eyeZZZRDBTN; + private System.Windows.Forms.RadioButton mugRDBTN; + private System.Windows.Forms.PictureBox pictureBox2; + private System.Windows.Forms.PictureBox pictureBox3; + private System.Windows.Forms.PictureBox pictureBox4; + private System.Windows.Forms.PictureBox pictureBox5; + private System.Windows.Forms.PictureBox pictureBox6; + private System.Windows.Forms.PictureBox pictureBox7; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.Button button1; } } \ No newline at end of file From b0262fefb762675117effc80b7cbedcccab11e11 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Wed, 18 Nov 2020 06:48:30 -0600 Subject: [PATCH 010/101] Adding new duration error checking --- SettingsForm.Designer.cs | 69 ++++++++++++++++++++-------------------- SettingsForm.cs | 39 +++++++++++++++++++++++ 2 files changed, 74 insertions(+), 34 deletions(-) diff --git a/SettingsForm.Designer.cs b/SettingsForm.Designer.cs index cadb6a1..a145462 100644 --- a/SettingsForm.Designer.cs +++ b/SettingsForm.Designer.cs @@ -49,9 +49,9 @@ private void InitializeComponent() { this.pictureBox6 = new System.Windows.Forms.PictureBox(); this.pictureBox7 = new System.Windows.Forms.PictureBox(); this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); - this.label4 = new System.Windows.Forms.Label(); - this.textBox1 = new System.Windows.Forms.TextBox(); - this.button1 = new System.Windows.Forms.Button(); + this.CustomDurationLBL = new System.Windows.Forms.Label(); + this.CustomDurationTXBX = new System.Windows.Forms.TextBox(); + this.addCustomDurationBTN = new System.Windows.Forms.Button(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.tableLayoutPanel1.SuspendLayout(); this.tableLayoutPanel2.SuspendLayout(); @@ -141,8 +141,8 @@ private void InitializeComponent() { this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 60F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 60F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 378F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 83F)); this.tableLayoutPanel1.Size = new System.Drawing.Size(464, 634); @@ -159,7 +159,7 @@ private void InitializeComponent() { this.tableLayoutPanel2.Name = "tableLayoutPanel2"; this.tableLayoutPanel2.RowCount = 1; this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(458, 56); + this.tableLayoutPanel2.Size = new System.Drawing.Size(458, 54); this.tableLayoutPanel2.TabIndex = 13; // // label3 @@ -237,7 +237,7 @@ private void InitializeComponent() { this.tableLayoutPanel3.Controls.Add(this.pictureBox5, 2, 2); this.tableLayoutPanel3.Controls.Add(this.pictureBox6, 1, 3); this.tableLayoutPanel3.Controls.Add(this.pictureBox7, 2, 3); - this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 249); + this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 260); this.tableLayoutPanel3.Name = "tableLayoutPanel3"; this.tableLayoutPanel3.RowCount = 4; this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle()); @@ -352,41 +352,42 @@ private void InitializeComponent() { this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 200F)); this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 103F)); - this.tableLayoutPanel4.Controls.Add(this.label4, 0, 0); - this.tableLayoutPanel4.Controls.Add(this.textBox1, 1, 0); - this.tableLayoutPanel4.Controls.Add(this.button1, 2, 0); - this.tableLayoutPanel4.Location = new System.Drawing.Point(3, 202); + this.tableLayoutPanel4.Controls.Add(this.CustomDurationLBL, 0, 0); + this.tableLayoutPanel4.Controls.Add(this.CustomDurationTXBX, 1, 0); + this.tableLayoutPanel4.Controls.Add(this.addCustomDurationBTN, 2, 0); + this.tableLayoutPanel4.Location = new System.Drawing.Point(3, 200); this.tableLayoutPanel4.Name = "tableLayoutPanel4"; this.tableLayoutPanel4.RowCount = 1; this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel4.Size = new System.Drawing.Size(456, 41); this.tableLayoutPanel4.TabIndex = 15; // - // label4 + // CustomDurationLBL // - this.label4.AutoSize = true; - this.label4.Dock = System.Windows.Forms.DockStyle.Fill; - this.label4.Location = new System.Drawing.Point(3, 0); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(194, 41); - this.label4.TabIndex = 0; - this.label4.Text = "Custom Durration"; + this.CustomDurationLBL.AutoSize = true; + this.CustomDurationLBL.Dock = System.Windows.Forms.DockStyle.Top; + this.CustomDurationLBL.Location = new System.Drawing.Point(3, 0); + this.CustomDurationLBL.Name = "CustomDurationLBL"; + this.CustomDurationLBL.Size = new System.Drawing.Size(194, 25); + this.CustomDurationLBL.TabIndex = 0; + this.CustomDurationLBL.Text = "Custom Durration"; // - // textBox1 + // CustomDurationTXBX // - this.textBox1.Location = new System.Drawing.Point(203, 3); - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(131, 31); - this.textBox1.TabIndex = 1; + this.CustomDurationTXBX.Location = new System.Drawing.Point(203, 3); + this.CustomDurationTXBX.Name = "CustomDurationTXBX"; + this.CustomDurationTXBX.Size = new System.Drawing.Size(131, 31); + this.CustomDurationTXBX.TabIndex = 1; // - // button1 + // addCustomDurationBTN // - this.button1.Location = new System.Drawing.Point(356, 3); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(96, 35); - this.button1.TabIndex = 2; - this.button1.Text = "Add"; - this.button1.UseVisualStyleBackColor = true; + this.addCustomDurationBTN.Location = new System.Drawing.Point(356, 3); + this.addCustomDurationBTN.Name = "addCustomDurationBTN"; + this.addCustomDurationBTN.Size = new System.Drawing.Size(96, 31); + this.addCustomDurationBTN.TabIndex = 2; + this.addCustomDurationBTN.Text = "Add"; + this.addCustomDurationBTN.UseVisualStyleBackColor = true; + this.addCustomDurationBTN.Click += new System.EventHandler(this.addCustomDurationBTN_Click); // // SettingsForm // @@ -453,8 +454,8 @@ private void InitializeComponent() { private System.Windows.Forms.PictureBox pictureBox6; private System.Windows.Forms.PictureBox pictureBox7; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.TextBox textBox1; - private System.Windows.Forms.Button button1; + private System.Windows.Forms.Label CustomDurationLBL; + private System.Windows.Forms.TextBox CustomDurationTXBX; + private System.Windows.Forms.Button addCustomDurationBTN; } } \ No newline at end of file diff --git a/SettingsForm.cs b/SettingsForm.cs index 4653900..67f9fa3 100644 --- a/SettingsForm.cs +++ b/SettingsForm.cs @@ -89,5 +89,44 @@ private async void StartupChkBox_CheckedChanged(object sender, EventArgs e) break; } } + + private void addCustomDurationBTN_Click(object sender, EventArgs e) + { + int newDuration = 0; + int.TryParse(CustomDurationTXBX.Text, out newDuration); + + if (newDuration == 0 || newDuration < 0) + { + CustomDurationTXBX.Text = ""; + MessageBox.Show( + "Enter a number larger than 0.", + "Caffeinated", + MessageBoxButtons.OK + ); + return; + } + + if (Settings.Default.RealDurations.Contains(newDuration)) + { + CustomDurationTXBX.Text = ""; + MessageBox.Show( + $"{newDuration} is already a duration.", + "Caffeinated", + MessageBoxButtons.OK + ); + return; + } + + Duration newCustomDuration = new Duration + { + Minutes = newDuration + }; + + Durations.Add(newCustomDuration); + Settings.Default.RealDurations.Add(newDuration); + Settings.Default.Save(); + + CustomDurationTXBX.Text = ""; + } } } From d85f8e385e98d8674493225f6e740f3ff3eb321c Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Wed, 18 Nov 2020 06:53:32 -0600 Subject: [PATCH 011/101] Update Framework to 4.8 --- Caffeinated.csproj | 2 +- app.config | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Caffeinated.csproj b/Caffeinated.csproj index 5d3f757..c2f2fd4 100644 --- a/Caffeinated.csproj +++ b/Caffeinated.csproj @@ -10,7 +10,7 @@ Properties Caffeinated Caffeinated - v4.7.2 + v4.8 512 diff --git a/app.config b/app.config index f5e8dd6..b7fd07d 100644 --- a/app.config +++ b/app.config @@ -5,7 +5,7 @@
- + False From 46ca585ea66be6807241f2bcad348ecd4952ca4f Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Wed, 18 Nov 2020 06:53:47 -0600 Subject: [PATCH 012/101] Fix durations typo --- Properties/Settings.Designer.cs | 2 +- SettingsForm.Designer.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs index 1772438..420bb81 100644 --- a/Properties/Settings.Designer.cs +++ b/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace Caffeinated.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.4.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.7.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); diff --git a/SettingsForm.Designer.cs b/SettingsForm.Designer.cs index a145462..8018f0d 100644 --- a/SettingsForm.Designer.cs +++ b/SettingsForm.Designer.cs @@ -370,7 +370,7 @@ private void InitializeComponent() { this.CustomDurationLBL.Name = "CustomDurationLBL"; this.CustomDurationLBL.Size = new System.Drawing.Size(194, 25); this.CustomDurationLBL.TabIndex = 0; - this.CustomDurationLBL.Text = "Custom Durration"; + this.CustomDurationLBL.Text = "Custom duration:"; // // CustomDurationTXBX // From d0314b4aa9dbaef483d6263c77b95de0446e9949 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Wed, 18 Nov 2020 07:05:20 -0600 Subject: [PATCH 013/101] Saves and sets custom durations --- SettingsForm.Designer.cs | 1 + SettingsForm.cs | 13 +++++-------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/SettingsForm.Designer.cs b/SettingsForm.Designer.cs index 8018f0d..17906d1 100644 --- a/SettingsForm.Designer.cs +++ b/SettingsForm.Designer.cs @@ -180,6 +180,7 @@ private void InitializeComponent() { this.DefaultDurationBox.Name = "DefaultDurationBox"; this.DefaultDurationBox.Size = new System.Drawing.Size(130, 33); this.DefaultDurationBox.TabIndex = 8; + this.DefaultDurationBox.SelectedIndexChanged += new System.EventHandler(this.DefaultDurationBox_SelectedIndexChanged); // // SettingsAtLaunchChkBox // diff --git a/SettingsForm.cs b/SettingsForm.cs index 67f9fa3..295106a 100644 --- a/SettingsForm.cs +++ b/SettingsForm.cs @@ -28,8 +28,7 @@ public SettingsForm() : base() { setStartupCheckBox(); } - private async void setStartupCheckBox() - { + private async void setStartupCheckBox() { StartupTask startupTask = await StartupTask.GetAsync("StartCaffeinated"); Debug.WriteLine("Startup is " + startupTask.State.ToString()); @@ -71,8 +70,7 @@ EventArgs e } } - private async void StartupChkBox_CheckedChanged(object sender, EventArgs e) - { + private async void StartupChkBox_CheckedChanged(object sender, EventArgs e) { StartupTask startupTask = await StartupTask.GetAsync("StartCaffeinated"); switch (StartupChkBox.Checked) @@ -90,8 +88,7 @@ private async void StartupChkBox_CheckedChanged(object sender, EventArgs e) } } - private void addCustomDurationBTN_Click(object sender, EventArgs e) - { + private void addCustomDurationBTN_Click(object sender, EventArgs e) { int newDuration = 0; int.TryParse(CustomDurationTXBX.Text, out newDuration); @@ -123,8 +120,8 @@ private void addCustomDurationBTN_Click(object sender, EventArgs e) }; Durations.Add(newCustomDuration); - Settings.Default.RealDurations.Add(newDuration); - Settings.Default.Save(); + Settings.Default.RealDurations.Add(newDuration); + Settings.Default.Durations += $",{newDuration}"; CustomDurationTXBX.Text = ""; } From cdf6eed2ffd9e284017a157ba36e1d9f2d480036 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Wed, 18 Nov 2020 12:54:44 -0600 Subject: [PATCH 014/101] Create LICENSE --- LICENSE | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..6b88461 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Desmond Brand and Joseph Finney + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From 8b1b808abf78da324445a9b2cbddb1628236065b Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Thu, 19 Nov 2020 06:53:07 -0600 Subject: [PATCH 015/101] Need to find a robust way to remove durations --- SettingsForm.cs | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/SettingsForm.cs b/SettingsForm.cs index 295106a..62f015d 100644 --- a/SettingsForm.cs +++ b/SettingsForm.cs @@ -18,16 +18,58 @@ public SettingsForm() : base() { this.Durations = new BindingList(durations.ToList()); var defaultItem = this.Durations.Where( d => d.Minutes == Settings.Default.DefaultDuration - ).First(); + ).FirstOrDefault(); DefaultDurationBox.DataSource = this.Durations; DefaultDurationBox.DisplayMember = "Description"; DefaultDurationBox.ValueMember = "Minutes"; DefaultDurationBox.SelectedItem = defaultItem; + MenuItem deleteMI = new MenuItem("Delete Duration"); + deleteMI.Click += DeleteMI_Click; + ContextMenu durationCM = new ContextMenu(); + durationCM.MenuItems.Add(deleteMI); + DefaultDurationBox.ContextMenu = durationCM; + setStartupCheckBox(); } + private void DeleteMI_Click(object sender, EventArgs e) + { + Duration durationToDelete = DefaultDurationBox.SelectedItem as Duration; + + DialogResult result = MessageBox.Show( + $"Delete {durationToDelete.Description}?", + "Caffeinated", + MessageBoxButtons.YesNo + ); + + switch (result) + { + case DialogResult.None: + break; + case DialogResult.OK: + break; + case DialogResult.Cancel: + break; + case DialogResult.Abort: + break; + case DialogResult.Retry: + break; + case DialogResult.Ignore: + break; + case DialogResult.Yes: + Durations.Remove(durationToDelete); + Settings.Default.RealDurations.Remove(durationToDelete.Minutes); + Settings.Default.Durations.Replace(durationToDelete.Minutes.ToString(),""); + break; + case DialogResult.No: + break; + default: + break; + } + } + private async void setStartupCheckBox() { StartupTask startupTask = await StartupTask.GetAsync("StartCaffeinated"); Debug.WriteLine("Startup is " + startupTask.State.ToString()); From 78d021d429fdd6ab937fd71526681edcad9a3ad4 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Fri, 20 Nov 2020 07:02:25 -0600 Subject: [PATCH 016/101] Custom durations working well. --- Program.cs | 103 ++++++++++++++++++++++++++++++++---------------- SettingsForm.cs | 12 ++++-- 2 files changed, 79 insertions(+), 36 deletions(-) diff --git a/Program.cs b/Program.cs index 32639b7..2a8504d 100644 --- a/Program.cs +++ b/Program.cs @@ -8,7 +8,7 @@ using Caffeinated.Properties; namespace Caffeinated { - public class Duration { + public class Duration: IComparable { public int Minutes { get; set; } public string Description { get { @@ -34,6 +34,26 @@ public static string ToDescription(int time) { } } } + + public int CompareTo(object obj) + { + if (obj == null) return 1; + + Duration otherDuration = obj as Duration; + + if (otherDuration != null) + { + if (otherDuration.Minutes > this.Minutes) + return 1; + + if (otherDuration.Minutes < this.Minutes) + return -1; + + return 0; + } + else + return 1; + } } internal static class NativeMethods { @@ -65,18 +85,55 @@ public AppContext() { this.timer = new Timer(components); timer.Tick += new EventHandler(timer_Tick); + this.offIcon = new Icon( + Properties.Resources.cup_coffee_icon_bw, + SystemInformation.SmallIconSize + ); + this.onIcon = new Icon( + Properties.Resources.cup_coffee_icon, + SystemInformation.SmallIconSize + ); + this.notifyIcon = new NotifyIcon(this.components); + + setContextMenu(); + + // tooltip + notifyIcon.Text = "Caffeinated"; + notifyIcon.Visible = true; + + // Handle the DoubleClick event to activate the form. + notifyIcon.MouseClick += new MouseEventHandler(notifyIcon1_Click); + + if (Settings.Default.ActivateAtLaunch) { + activate(Settings.Default.DefaultDuration); + } + else { + deactivate(); + } + if (Settings.Default.ShowSettingsAtLaunch) { + showSettings(); + } + } + + public void setContextMenu() { var contextMenu = new ContextMenu(); var exitItem = new MenuItem("E&xit"); exitItem.Click += new EventHandler(this.exitItem_Click); + // If the user deleted all time settings, add 0 back in. + if (Settings.Default.Durations.Length == 0) + Settings.Default.Durations = "0"; + // we want the lower durations to be closer to the mouse. So, var times = Settings.Default.RealDurations; IEnumerable sortedTimes = Enumerable.Empty(); - if ((new Taskbar()).Position == TaskbarPosition.Top) { + if ((new Taskbar()).Position == TaskbarPosition.Top) + { sortedTimes = times.OrderBy(i => i); } - else { + else + { sortedTimes = times.OrderByDescending(i => i); } @@ -87,7 +144,7 @@ public AppContext() { aboutItem.Click += new EventHandler(aboutItem_Click); contextMenu.MenuItems.AddRange( - new MenuItem[] { + new MenuItem[] { settingsItem, aboutItem, exitItem, @@ -96,41 +153,15 @@ public AppContext() { } ); - foreach (var time in sortedTimes) { + foreach (var time in sortedTimes) + { var item = new MenuItem(Duration.ToDescription(time)); - item.Tag = time; + item.Tag = time; item.Click += new EventHandler(item_Click); contextMenu.MenuItems.Add(item); } - this.offIcon = new Icon( - Properties.Resources.cup_coffee_icon_bw, - SystemInformation.SmallIconSize - ); - this.onIcon = new Icon( - Properties.Resources.cup_coffee_icon, - SystemInformation.SmallIconSize - ); - this.notifyIcon = new NotifyIcon(this.components); - notifyIcon.ContextMenu = contextMenu; - - // tooltip - notifyIcon.Text = "Caffeinated"; - notifyIcon.Visible = true; - - // Handle the DoubleClick event to activate the form. - notifyIcon.MouseClick += new MouseEventHandler(notifyIcon1_Click); - - if (Settings.Default.ActivateAtLaunch) { - activate(Settings.Default.DefaultDuration); - } - else { - deactivate(); - } - if (Settings.Default.ShowSettingsAtLaunch) { - showSettings(); - } } void aboutItem_Click(object sender, EventArgs e) { @@ -144,9 +175,15 @@ void settingsItem_Click(object sender, EventArgs e) { void showSettings() { settingsForm = new SettingsForm(); + settingsForm.FormClosing += SettingsForm_FormClosing; settingsForm.Show(); } + private void SettingsForm_FormClosing(object sender, FormClosingEventArgs e) + { + setContextMenu(); + } + void timer_Tick(object sender, EventArgs e) { deactivate(); } diff --git a/SettingsForm.cs b/SettingsForm.cs index 62f015d..22b9958 100644 --- a/SettingsForm.cs +++ b/SettingsForm.cs @@ -61,7 +61,7 @@ private void DeleteMI_Click(object sender, EventArgs e) case DialogResult.Yes: Durations.Remove(durationToDelete); Settings.Default.RealDurations.Remove(durationToDelete.Minutes); - Settings.Default.Durations.Replace(durationToDelete.Minutes.ToString(),""); + Settings.Default.RealDurations = Settings.Default.RealDurations; break; case DialogResult.No: break; @@ -134,11 +134,11 @@ private void addCustomDurationBTN_Click(object sender, EventArgs e) { int newDuration = 0; int.TryParse(CustomDurationTXBX.Text, out newDuration); - if (newDuration == 0 || newDuration < 0) + if ( newDuration < 0) { CustomDurationTXBX.Text = ""; MessageBox.Show( - "Enter a number larger than 0.", + "Enter a positive number.", "Caffeinated", MessageBoxButtons.OK ); @@ -162,6 +162,12 @@ private void addCustomDurationBTN_Click(object sender, EventArgs e) { }; Durations.Add(newCustomDuration); + var sortedDurations = Durations.OrderByDescending(i => i).ToList(); + Durations.Clear(); + foreach (var item in sortedDurations) + { + Durations.Add(item); + } Settings.Default.RealDurations.Add(newDuration); Settings.Default.Durations += $",{newDuration}"; From 51e97683400ae1b07b56dfc0e54a37f4d5e4ba69 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Fri, 20 Nov 2020 07:09:59 -0600 Subject: [PATCH 017/101] More robust Duration description --- Program.cs | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/Program.cs b/Program.cs index 2a8504d..8fe31eb 100644 --- a/Program.cs +++ b/Program.cs @@ -20,23 +20,27 @@ public static string ToDescription(int time) { if (time == 0) { return "Indefinitely"; } - int mins = time % 60; - if (mins != 0) { - return String.Format("{0} minutes", mins); - } - else { + + string returnDescription = ""; + + if(time >= 60) { int hours = time / 60; if (hours == 1) { - return "1 hour"; + returnDescription = "1 hour "; } else { - return String.Format("{0} hours", hours); + returnDescription = String.Format("{0} hours ", hours); } } + int mins = time % 60; + if (mins != 0) { + returnDescription += String.Format("{0} minutes", mins); + } + + return returnDescription; } - public int CompareTo(object obj) - { + public int CompareTo(object obj) { if (obj == null) return 1; Duration otherDuration = obj as Duration; @@ -128,12 +132,10 @@ public void setContextMenu() { // we want the lower durations to be closer to the mouse. So, var times = Settings.Default.RealDurations; IEnumerable sortedTimes = Enumerable.Empty(); - if ((new Taskbar()).Position == TaskbarPosition.Top) - { + if ((new Taskbar()).Position == TaskbarPosition.Top) { sortedTimes = times.OrderBy(i => i); } - else - { + else { sortedTimes = times.OrderByDescending(i => i); } @@ -153,8 +155,7 @@ public void setContextMenu() { } ); - foreach (var time in sortedTimes) - { + foreach (var time in sortedTimes) { var item = new MenuItem(Duration.ToDescription(time)); item.Tag = time; item.Click += new EventHandler(item_Click); From d40fdd1798f46d2352233ef063d23d7321d03811 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sat, 21 Nov 2020 15:26:34 -0600 Subject: [PATCH 018/101] Add Icon Setting --- app.config | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app.config b/app.config index b7fd07d..5d86c81 100644 --- a/app.config +++ b/app.config @@ -19,6 +19,9 @@ 0,15,60,120,480 + + Default + From 6424f088ce0b5b9e8c3a02bdc80b4fb2cc7a681c Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sat, 21 Nov 2020 15:27:06 -0600 Subject: [PATCH 019/101] Add new icon resources --- Properties/Resources.Designer.cs | 90 ++++++++++++++++++++++++++++ Properties/Resources.resx | 44 +++++++++++--- Resources/Eye-zzz-Active-Black.png | Bin 0 -> 20298 bytes Resources/Eye-zzz-Active-Black1.png | Bin 0 -> 20298 bytes Resources/Eye-zzz-Active-icon.ico | Bin 0 -> 270398 bytes Resources/Eye-zzz-Sleep-Black.png | Bin 0 -> 22457 bytes Resources/Eye-zzz-Sleep-Black1.png | Bin 0 -> 22457 bytes Resources/Eye-zzz-Sleep-icon.ico | Bin 0 -> 270398 bytes Resources/Mug-Active-Black.png | Bin 0 -> 2729 bytes Resources/Mug-Active-Black1.png | Bin 0 -> 13230 bytes Resources/Mug-Sleep-Black.png | Bin 0 -> 2491 bytes Resources/Mug-Sleep-Black1.png | Bin 0 -> 12094 bytes Resources/Mug-Sleep1.png | Bin 0 -> 5419 bytes Resources/SleepEye-Black.png | Bin 0 -> 7957 bytes Resources/mug-active-icon.ico | Bin 0 -> 270398 bytes Resources/mug-sleep-icon.ico | Bin 0 -> 270398 bytes 16 files changed, 125 insertions(+), 9 deletions(-) create mode 100644 Resources/Eye-zzz-Active-Black.png create mode 100644 Resources/Eye-zzz-Active-Black1.png create mode 100644 Resources/Eye-zzz-Active-icon.ico create mode 100644 Resources/Eye-zzz-Sleep-Black.png create mode 100644 Resources/Eye-zzz-Sleep-Black1.png create mode 100644 Resources/Eye-zzz-Sleep-icon.ico create mode 100644 Resources/Mug-Active-Black.png create mode 100644 Resources/Mug-Active-Black1.png create mode 100644 Resources/Mug-Sleep-Black.png create mode 100644 Resources/Mug-Sleep-Black1.png create mode 100644 Resources/Mug-Sleep1.png create mode 100644 Resources/SleepEye-Black.png create mode 100644 Resources/mug-active-icon.ico create mode 100644 Resources/mug-sleep-icon.ico diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs index f4b3b02..dc2a7dc 100644 --- a/Properties/Resources.Designer.cs +++ b/Properties/Resources.Designer.cs @@ -119,5 +119,95 @@ internal static System.Drawing.Icon cup_coffee_icon_bw { return ((System.Drawing.Icon)(obj)); } } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Eye_zzz_Active_Black { + get { + object obj = ResourceManager.GetObject("Eye_zzz_Active_Black", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon Eye_zzz_Active_icon { + get { + object obj = ResourceManager.GetObject("Eye_zzz_Active_icon", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Eye_zzz_Sleep_Black { + get { + object obj = ResourceManager.GetObject("Eye_zzz_Sleep_Black", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon Eye_zzz_Sleep_icon { + get { + object obj = ResourceManager.GetObject("Eye_zzz_Sleep_icon", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Mug_Active_Black { + get { + object obj = ResourceManager.GetObject("Mug_Active_Black", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon mug_active_icon { + get { + object obj = ResourceManager.GetObject("mug_active_icon", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Mug_Sleep_Black { + get { + object obj = ResourceManager.GetObject("Mug_Sleep_Black", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon mug_sleep_icon { + get { + object obj = ResourceManager.GetObject("mug_sleep_icon", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap SleepEye_Black { + get { + object obj = ResourceManager.GetObject("SleepEye_Black", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } } } diff --git a/Properties/Resources.resx b/Properties/Resources.resx index 6927e8d..97afe01 100644 --- a/Properties/Resources.resx +++ b/Properties/Resources.resx @@ -112,29 +112,55 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\cup-coffee-icon-96.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\cup-coffee-icon.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Caffeine-Black-512.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\cup-coffee-icon-64.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\cup-coffee-icon-96.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\cup-coffee-icon-bw.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\Caffeine-Black-96.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\cup-coffee-icon-64.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Eye-zzz-Active-Black.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Eye-zzz-Active-icon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Eye-zzz-Sleep-Black.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Eye-zzz-Sleep-icon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Mug-Active-Black.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\mug-active-icon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Mug-Sleep-Black.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\mug-sleep-icon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\SleepEye-Black.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/Resources/Eye-zzz-Active-Black.png b/Resources/Eye-zzz-Active-Black.png new file mode 100644 index 0000000000000000000000000000000000000000..701f3309db4364863f67356f57c51c18e24eda15 GIT binary patch literal 20298 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 literal 0 HcmV?d00001 diff --git a/Resources/Eye-zzz-Sleep-Black1.png b/Resources/Eye-zzz-Sleep-Black1.png new file mode 100644 index 0000000000000000000000000000000000000000..2042f40f4c7ecdb7811ef7262d25f014fe696335 GIT binary patch literal 22457 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 literal 0 HcmV?d00001 diff --git a/Resources/Eye-zzz-Sleep-icon.ico b/Resources/Eye-zzz-Sleep-icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..f51b1e828abc870cbf8c0d611d9b01e99098dcd5 GIT binary patch literal 270398 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 literal 0 HcmV?d00001 diff --git a/Resources/Mug-Active-Black.png b/Resources/Mug-Active-Black.png new file mode 100644 index 0000000000000000000000000000000000000000..26ed4d80ca23e17d9b7de889efd9dbac5c45732f GIT binary patch literal 2729 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 literal 0 HcmV?d00001 diff --git a/Resources/Mug-Active-Black1.png b/Resources/Mug-Active-Black1.png new file mode 100644 index 0000000000000000000000000000000000000000..8a02164fe2c7547357d52d27cfef407cc5218a01 GIT binary patch literal 13230 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 INYscw01V1IJOBUy literal 0 HcmV?d00001 diff --git a/Resources/Mug-Sleep-Black1.png b/Resources/Mug-Sleep-Black1.png new file mode 100644 index 0000000000000000000000000000000000000000..1b373b0c0ae1bc7eca76f65f8ebcb6567c317d1a GIT binary patch literal 12094 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 F{|mEaw0-~p literal 0 HcmV?d00001 diff --git a/Resources/Mug-Sleep1.png b/Resources/Mug-Sleep1.png new file mode 100644 index 0000000000000000000000000000000000000000..53c5c3abeece9736c8b3e2a90e2781446354db67 GIT binary patch literal 5419 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 VvZQkutCBIxb~cVX3$`=Q{~J2aarXcK literal 0 HcmV?d00001 diff --git a/Resources/SleepEye-Black.png b/Resources/SleepEye-Black.png new file mode 100644 index 0000000000000000000000000000000000000000..8147afd6df6e85fdbc5dbbfc2a3947d0d6b587e3 GIT binary patch literal 7957 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 xIR%b_G8I6f4=Dey0xFV5zK literal 0 HcmV?d00001 diff --git a/Resources/mug-active-icon.ico b/Resources/mug-active-icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ce1755484bc8e00cfcbbbae577a47efa13739a60 GIT binary patch literal 270398 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 literal 0 HcmV?d00001 diff --git a/Resources/mug-sleep-icon.ico b/Resources/mug-sleep-icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..0fa6ac3426134d662acfd683cf5d0a585c0062ab GIT binary patch literal 270398 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 Date: Sat, 21 Nov 2020 15:27:32 -0600 Subject: [PATCH 020/101] Add Icons to settings form --- Caffeinated.csproj | 21 +++++-- SettingsForm.Designer.cs | 62 ++++++++++++------ SettingsForm.resx | 132 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 190 insertions(+), 25 deletions(-) diff --git a/Caffeinated.csproj b/Caffeinated.csproj index c2f2fd4..c90c17c 100644 --- a/Caffeinated.csproj +++ b/Caffeinated.csproj @@ -84,6 +84,11 @@ Form + + True + True + Resources.resx + @@ -107,14 +112,9 @@ ResXFileCodeGenerator - Resources.Designer.cs Designer + Resources.Designer.cs - - True - Resources.resx - True - @@ -135,6 +135,15 @@ + + + + + + + + + diff --git a/SettingsForm.Designer.cs b/SettingsForm.Designer.cs index 17906d1..db66807 100644 --- a/SettingsForm.Designer.cs +++ b/SettingsForm.Designer.cs @@ -90,7 +90,7 @@ private void InitializeComponent() { // this.okBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.okBtn.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.okBtn.Location = new System.Drawing.Point(377, 829); + this.okBtn.Location = new System.Drawing.Point(377, 894); this.okBtn.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.okBtn.Name = "okBtn"; this.okBtn.Size = new System.Drawing.Size(124, 45); @@ -104,7 +104,7 @@ private void InitializeComponent() { this.cancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.cancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.cancelBtn.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.cancelBtn.Location = new System.Drawing.Point(511, 829); + this.cancelBtn.Location = new System.Drawing.Point(511, 894); this.cancelBtn.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.cancelBtn.Name = "cancelBtn"; this.cancelBtn.Size = new System.Drawing.Size(124, 45); @@ -260,7 +260,7 @@ private void InitializeComponent() { // OnIconLbl // this.OnIconLbl.AutoSize = true; - this.OnIconLbl.Location = new System.Drawing.Point(259, 0); + this.OnIconLbl.Location = new System.Drawing.Point(253, 0); this.OnIconLbl.Name = "OnIconLbl"; this.OnIconLbl.Size = new System.Drawing.Size(75, 25); this.OnIconLbl.TabIndex = 1; @@ -271,10 +271,12 @@ private void InitializeComponent() { this.defaultRDBTN.AutoSize = true; this.defaultRDBTN.Location = new System.Drawing.Point(3, 28); this.defaultRDBTN.Name = "defaultRDBTN"; - this.defaultRDBTN.Size = new System.Drawing.Size(94, 29); + this.defaultRDBTN.Padding = new System.Windows.Forms.Padding(0, 25, 0, 0); + this.defaultRDBTN.Size = new System.Drawing.Size(94, 54); this.defaultRDBTN.TabIndex = 2; this.defaultRDBTN.TabStop = true; this.defaultRDBTN.Text = "Default"; + this.defaultRDBTN.TextAlign = System.Drawing.ContentAlignment.TopLeft; this.defaultRDBTN.UseVisualStyleBackColor = true; // // eyeZZZRDBTN @@ -282,7 +284,8 @@ private void InitializeComponent() { this.eyeZZZRDBTN.AutoSize = true; this.eyeZZZRDBTN.Location = new System.Drawing.Point(3, 138); this.eyeZZZRDBTN.Name = "eyeZZZRDBTN"; - this.eyeZZZRDBTN.Size = new System.Drawing.Size(135, 29); + this.eyeZZZRDBTN.Padding = new System.Windows.Forms.Padding(0, 25, 0, 0); + this.eyeZZZRDBTN.Size = new System.Drawing.Size(135, 54); this.eyeZZZRDBTN.TabIndex = 3; this.eyeZZZRDBTN.TabStop = true; this.eyeZZZRDBTN.Text = "Eye with zZZ"; @@ -293,7 +296,8 @@ private void InitializeComponent() { this.mugRDBTN.AutoSize = true; this.mugRDBTN.Location = new System.Drawing.Point(3, 248); this.mugRDBTN.Name = "mugRDBTN"; - this.mugRDBTN.Size = new System.Drawing.Size(74, 29); + this.mugRDBTN.Padding = new System.Windows.Forms.Padding(0, 25, 0, 0); + this.mugRDBTN.Size = new System.Drawing.Size(74, 54); this.mugRDBTN.TabIndex = 4; this.mugRDBTN.TabStop = true; this.mugRDBTN.Text = "Mug"; @@ -301,49 +305,68 @@ private void InitializeComponent() { // // pictureBox2 // - this.pictureBox2.Location = new System.Drawing.Point(153, 28); + this.pictureBox2.Image = global::Caffeinated.Properties.Resources.SleepEye_Black; + this.pictureBox2.Location = new System.Drawing.Point(160, 35); + this.pictureBox2.Margin = new System.Windows.Forms.Padding(10); this.pictureBox2.Name = "pictureBox2"; - this.pictureBox2.Size = new System.Drawing.Size(100, 100); + this.pictureBox2.Size = new System.Drawing.Size(80, 80); + this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox2.TabIndex = 5; this.pictureBox2.TabStop = false; // // pictureBox3 // - this.pictureBox3.Location = new System.Drawing.Point(259, 28); + this.pictureBox3.Image = global::Caffeinated.Properties.Resources.Caffeine_Black_512; + this.pictureBox3.Location = new System.Drawing.Point(260, 35); + this.pictureBox3.Margin = new System.Windows.Forms.Padding(10); this.pictureBox3.Name = "pictureBox3"; - this.pictureBox3.Size = new System.Drawing.Size(100, 100); + this.pictureBox3.Size = new System.Drawing.Size(80, 80); + this.pictureBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox3.TabIndex = 6; this.pictureBox3.TabStop = false; // // pictureBox4 // - this.pictureBox4.Location = new System.Drawing.Point(153, 138); + this.pictureBox4.Image = global::Caffeinated.Properties.Resources.Eye_zzz_Sleep_Black; + this.pictureBox4.Location = new System.Drawing.Point(160, 145); + this.pictureBox4.Margin = new System.Windows.Forms.Padding(10); this.pictureBox4.Name = "pictureBox4"; - this.pictureBox4.Size = new System.Drawing.Size(100, 100); + this.pictureBox4.Size = new System.Drawing.Size(80, 80); + this.pictureBox4.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox4.TabIndex = 7; this.pictureBox4.TabStop = false; // // pictureBox5 // - this.pictureBox5.Location = new System.Drawing.Point(259, 138); + this.pictureBox5.Image = global::Caffeinated.Properties.Resources.Eye_zzz_Active_Black; + this.pictureBox5.Location = new System.Drawing.Point(260, 145); + this.pictureBox5.Margin = new System.Windows.Forms.Padding(10); this.pictureBox5.Name = "pictureBox5"; - this.pictureBox5.Size = new System.Drawing.Size(100, 100); + this.pictureBox5.Size = new System.Drawing.Size(80, 80); + this.pictureBox5.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox5.TabIndex = 8; this.pictureBox5.TabStop = false; // // pictureBox6 // - this.pictureBox6.Location = new System.Drawing.Point(153, 248); + this.pictureBox6.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox6.Image"))); + this.pictureBox6.Location = new System.Drawing.Point(160, 255); + this.pictureBox6.Margin = new System.Windows.Forms.Padding(10); this.pictureBox6.Name = "pictureBox6"; - this.pictureBox6.Size = new System.Drawing.Size(100, 100); + this.pictureBox6.Padding = new System.Windows.Forms.Padding(10); + this.pictureBox6.Size = new System.Drawing.Size(80, 80); + this.pictureBox6.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox6.TabIndex = 9; this.pictureBox6.TabStop = false; // // pictureBox7 // - this.pictureBox7.Location = new System.Drawing.Point(259, 248); + this.pictureBox7.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox7.Image"))); + this.pictureBox7.Location = new System.Drawing.Point(260, 255); + this.pictureBox7.Margin = new System.Windows.Forms.Padding(10); this.pictureBox7.Name = "pictureBox7"; - this.pictureBox7.Size = new System.Drawing.Size(100, 100); + this.pictureBox7.Size = new System.Drawing.Size(80, 80); + this.pictureBox7.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox7.TabIndex = 10; this.pictureBox7.TabStop = false; // @@ -395,8 +418,9 @@ private void InitializeComponent() { this.AcceptButton = this.okBtn; this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 25F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.AutoSize = true; this.CancelButton = this.cancelBtn; - this.ClientSize = new System.Drawing.Size(654, 888); + this.ClientSize = new System.Drawing.Size(654, 953); this.Controls.Add(this.tableLayoutPanel1); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.cancelBtn); diff --git a/SettingsForm.resx b/SettingsForm.resx index fe96ba0..c288c58 100644 --- a/SettingsForm.resx +++ b/SettingsForm.resx @@ -118,6 +118,138 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 From 74458d55de26651ead8daeefeb0a8c9e94db8cae Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sat, 21 Nov 2020 15:56:43 -0600 Subject: [PATCH 021/101] New user configurable icon working --- Program.cs | 70 ++++++++++++++++++++++++++------- Properties/Settings.Designer.cs | 14 ++++++- Properties/Settings.settings | 5 ++- SettingsForm.Designer.cs | 3 ++ SettingsForm.cs | 31 +++++++++++++++ app.config | 2 +- 6 files changed, 108 insertions(+), 17 deletions(-) diff --git a/Program.cs b/Program.cs index 8fe31eb..32859c1 100644 --- a/Program.cs +++ b/Program.cs @@ -74,6 +74,7 @@ public class AppContext : ApplicationContext { private Icon onIcon; private Icon offIcon; private uint? oldState = null; + private bool isActivated = false; private Timer timer; private SettingsForm settingsForm = null; private AboutForm aboutForm = null; @@ -84,19 +85,14 @@ static void Main() { Application.Run(context); } - public AppContext() { + public AppContext() + { this.components = new Container(); this.timer = new Timer(components); timer.Tick += new EventHandler(timer_Tick); + + setIcons(); - this.offIcon = new Icon( - Properties.Resources.cup_coffee_icon_bw, - SystemInformation.SmallIconSize - ); - this.onIcon = new Icon( - Properties.Resources.cup_coffee_icon, - SystemInformation.SmallIconSize - ); this.notifyIcon = new NotifyIcon(this.components); setContextMenu(); @@ -108,17 +104,56 @@ public AppContext() { // Handle the DoubleClick event to activate the form. notifyIcon.MouseClick += new MouseEventHandler(notifyIcon1_Click); - if (Settings.Default.ActivateAtLaunch) { + if (Settings.Default.ActivateAtLaunch) + { activate(Settings.Default.DefaultDuration); } - else { + else + { deactivate(); } - if (Settings.Default.ShowSettingsAtLaunch) { + if (Settings.Default.ShowSettingsAtLaunch) + { showSettings(); } } + private void setIcons() { + switch (Settings.Default.Icon) + { + case "Mug": + this.offIcon = new Icon( + Properties.Resources.mug_sleep_icon, + SystemInformation.SmallIconSize + ); + this.onIcon = new Icon( + Properties.Resources.mug_active_icon, + SystemInformation.SmallIconSize + ); + break; + case "Eye-ZZZ": + this.offIcon = new Icon( + Properties.Resources.Eye_zzz_Sleep_icon, + SystemInformation.SmallIconSize + ); + this.onIcon = new Icon( + Properties.Resources.Eye_zzz_Active_icon, + SystemInformation.SmallIconSize + ); + break; + default: + this.offIcon = new Icon( + Properties.Resources.cup_coffee_icon_bw, + SystemInformation.SmallIconSize + ); + this.onIcon = new Icon( + Properties.Resources.cup_coffee_icon, + SystemInformation.SmallIconSize + ); + break; + } + } + public void setContextMenu() { var contextMenu = new ContextMenu(); @@ -180,9 +215,14 @@ void showSettings() { settingsForm.Show(); } - private void SettingsForm_FormClosing(object sender, FormClosingEventArgs e) - { + private void SettingsForm_FormClosing(object sender, FormClosingEventArgs e) { setContextMenu(); + setIcons(); + + if (isActivated) + notifyIcon.Icon = onIcon; + else + notifyIcon.Icon = offIcon; } void timer_Tick(object sender, EventArgs e) { @@ -226,6 +266,7 @@ void activate(int duration) { this.timer.Interval = duration * 60 * 1000; this.timer.Start(); } + this.isActivated = true; this.notifyIcon.Icon = onIcon; this.notifyIcon.Text = "Caffeinated: sleep not allowed!"; } @@ -239,6 +280,7 @@ void deactivate() { ShowError(); } } + this.isActivated = false; this.notifyIcon.Icon = offIcon; this.notifyIcon.Text = "Caffeinated: sleep allowed"; } diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs index 420bb81..800144f 100644 --- a/Properties/Settings.Designer.cs +++ b/Properties/Settings.Designer.cs @@ -61,7 +61,7 @@ public int DefaultDuration { [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0,15,60")] + [global::System.Configuration.DefaultSettingValueAttribute("0,15,60,120,480")] public string Durations { get { return ((string)(this["Durations"])); @@ -70,5 +70,17 @@ public string Durations { this["Durations"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("Default")] + public string Icon { + get { + return ((string)(this["Icon"])); + } + set { + this["Icon"] = value; + } + } } } diff --git a/Properties/Settings.settings b/Properties/Settings.settings index 3207e46..e7e38d8 100644 --- a/Properties/Settings.settings +++ b/Properties/Settings.settings @@ -12,7 +12,10 @@ 0 - 0,15,60 + 0,15,60,120,480 + + + Default \ No newline at end of file diff --git a/SettingsForm.Designer.cs b/SettingsForm.Designer.cs index db66807..cd5576b 100644 --- a/SettingsForm.Designer.cs +++ b/SettingsForm.Designer.cs @@ -278,6 +278,7 @@ private void InitializeComponent() { this.defaultRDBTN.Text = "Default"; this.defaultRDBTN.TextAlign = System.Drawing.ContentAlignment.TopLeft; this.defaultRDBTN.UseVisualStyleBackColor = true; + this.defaultRDBTN.Click += new System.EventHandler(this.defaultRDBTN_Click); // // eyeZZZRDBTN // @@ -290,6 +291,7 @@ private void InitializeComponent() { this.eyeZZZRDBTN.TabStop = true; this.eyeZZZRDBTN.Text = "Eye with zZZ"; this.eyeZZZRDBTN.UseVisualStyleBackColor = true; + this.eyeZZZRDBTN.Click += new System.EventHandler(this.eyeZZZRDBTN_Click); // // mugRDBTN // @@ -302,6 +304,7 @@ private void InitializeComponent() { this.mugRDBTN.TabStop = true; this.mugRDBTN.Text = "Mug"; this.mugRDBTN.UseVisualStyleBackColor = true; + this.mugRDBTN.Click += new System.EventHandler(this.mugRDBTN_Click); // // pictureBox2 // diff --git a/SettingsForm.cs b/SettingsForm.cs index 22b9958..f43dedd 100644 --- a/SettingsForm.cs +++ b/SettingsForm.cs @@ -32,6 +32,22 @@ public SettingsForm() : base() { DefaultDurationBox.ContextMenu = durationCM; setStartupCheckBox(); + setRadioButtons(); + } + + private void setRadioButtons() { + switch (Settings.Default.Icon) + { + case "Mug": + mugRDBTN.Checked = true; + break; + case "Eye-ZZZ": + eyeZZZRDBTN.Checked = true; + break; + default: + defaultRDBTN.Checked = true; + break; + } } private void DeleteMI_Click(object sender, EventArgs e) @@ -173,5 +189,20 @@ private void addCustomDurationBTN_Click(object sender, EventArgs e) { CustomDurationTXBX.Text = ""; } + + private void defaultRDBTN_Click(object sender, EventArgs e) + { + Settings.Default.Icon = "Default"; + } + + private void eyeZZZRDBTN_Click(object sender, EventArgs e) + { + Settings.Default.Icon = "Eye-ZZZ"; + } + + private void mugRDBTN_Click(object sender, EventArgs e) + { + Settings.Default.Icon = "Mug"; + } } } diff --git a/app.config b/app.config index 5d86c81..2e91605 100644 --- a/app.config +++ b/app.config @@ -20,7 +20,7 @@ 0,15,60,120,480 - Default + Default From dc1705a52053c46e96784255a589ef2ceb11f9f3 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sat, 21 Nov 2020 16:09:25 -0600 Subject: [PATCH 022/101] Abbreviate ToDescription because custom times can be long. --- Program.cs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Program.cs b/Program.cs index 32859c1..a972d14 100644 --- a/Program.cs +++ b/Program.cs @@ -26,15 +26,18 @@ public static string ToDescription(int time) { if(time >= 60) { int hours = time / 60; if (hours == 1) { - returnDescription = "1 hour "; + returnDescription = "1 hr "; } else { - returnDescription = String.Format("{0} hours ", hours); + returnDescription = String.Format("{0} hrs ", hours); } } int mins = time % 60; - if (mins != 0) { - returnDescription += String.Format("{0} minutes", mins); + if(mins == 1) { + returnDescription += String.Format("{0} min", mins); + } + if (mins > 1) { + returnDescription += String.Format("{0} mins", mins); } return returnDescription; From 4315826523b2725dd30e1eabcd2aeb8ca60abf04 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sat, 21 Nov 2020 16:09:41 -0600 Subject: [PATCH 023/101] Move the custom time box to be under the drop down. --- SettingsForm.Designer.cs | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/SettingsForm.Designer.cs b/SettingsForm.Designer.cs index cd5576b..2ac3e58 100644 --- a/SettingsForm.Designer.cs +++ b/SettingsForm.Designer.cs @@ -70,7 +70,7 @@ private void InitializeComponent() { this.label1.Location = new System.Drawing.Point(181, 20); this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(453, 200); + this.label1.Size = new System.Drawing.Size(406, 200); this.label1.TabIndex = 0; this.label1.Text = "Caffeinated is now running. You can find its icon in the notification area near t" + "he clock. Click it to keep your PC awake by disabling automatic sleep. Click the" + @@ -82,7 +82,7 @@ private void InitializeComponent() { this.label2.Location = new System.Drawing.Point(181, 132); this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(453, 68); + this.label2.Size = new System.Drawing.Size(406, 68); this.label2.TabIndex = 1; this.label2.Text = "Right-click the notification area icon to show the Caffeinated menu."; // @@ -90,7 +90,7 @@ private void InitializeComponent() { // this.okBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.okBtn.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.okBtn.Location = new System.Drawing.Point(377, 894); + this.okBtn.Location = new System.Drawing.Point(326, 894); this.okBtn.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.okBtn.Name = "okBtn"; this.okBtn.Size = new System.Drawing.Size(124, 45); @@ -104,7 +104,7 @@ private void InitializeComponent() { this.cancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.cancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.cancelBtn.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.cancelBtn.Location = new System.Drawing.Point(511, 894); + this.cancelBtn.Location = new System.Drawing.Point(460, 894); this.cancelBtn.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.cancelBtn.Name = "cancelBtn"; this.cancelBtn.Size = new System.Drawing.Size(124, 45); @@ -145,7 +145,7 @@ private void InitializeComponent() { this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 60F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 378F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 83F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(464, 634); + this.tableLayoutPanel1.Size = new System.Drawing.Size(401, 634); this.tableLayoutPanel1.TabIndex = 11; // // tableLayoutPanel2 @@ -159,7 +159,7 @@ private void InitializeComponent() { this.tableLayoutPanel2.Name = "tableLayoutPanel2"; this.tableLayoutPanel2.RowCount = 1; this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(458, 54); + this.tableLayoutPanel2.Size = new System.Drawing.Size(391, 54); this.tableLayoutPanel2.TabIndex = 13; // // label3 @@ -378,7 +378,7 @@ private void InitializeComponent() { this.tableLayoutPanel4.ColumnCount = 3; this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 200F)); this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 103F)); + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 80F)); this.tableLayoutPanel4.Controls.Add(this.CustomDurationLBL, 0, 0); this.tableLayoutPanel4.Controls.Add(this.CustomDurationTXBX, 1, 0); this.tableLayoutPanel4.Controls.Add(this.addCustomDurationBTN, 2, 0); @@ -386,7 +386,7 @@ private void InitializeComponent() { this.tableLayoutPanel4.Name = "tableLayoutPanel4"; this.tableLayoutPanel4.RowCount = 1; this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(456, 41); + this.tableLayoutPanel4.Size = new System.Drawing.Size(345, 41); this.tableLayoutPanel4.TabIndex = 15; // // CustomDurationLBL @@ -403,14 +403,14 @@ private void InitializeComponent() { // this.CustomDurationTXBX.Location = new System.Drawing.Point(203, 3); this.CustomDurationTXBX.Name = "CustomDurationTXBX"; - this.CustomDurationTXBX.Size = new System.Drawing.Size(131, 31); + this.CustomDurationTXBX.Size = new System.Drawing.Size(52, 31); this.CustomDurationTXBX.TabIndex = 1; // // addCustomDurationBTN // - this.addCustomDurationBTN.Location = new System.Drawing.Point(356, 3); + this.addCustomDurationBTN.Location = new System.Drawing.Point(268, 3); this.addCustomDurationBTN.Name = "addCustomDurationBTN"; - this.addCustomDurationBTN.Size = new System.Drawing.Size(96, 31); + this.addCustomDurationBTN.Size = new System.Drawing.Size(65, 31); this.addCustomDurationBTN.TabIndex = 2; this.addCustomDurationBTN.Text = "Add"; this.addCustomDurationBTN.UseVisualStyleBackColor = true; @@ -423,7 +423,7 @@ private void InitializeComponent() { this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoSize = true; this.CancelButton = this.cancelBtn; - this.ClientSize = new System.Drawing.Size(654, 953); + this.ClientSize = new System.Drawing.Size(603, 953); this.Controls.Add(this.tableLayoutPanel1); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.cancelBtn); From 5141dfcaa851c1048cf78f07d3c025ccf06d6f92 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Mon, 23 Nov 2020 06:27:04 -0600 Subject: [PATCH 024/101] Application version set automatically. bumped to 1.2 --- About.Designer.cs | 28 +++++++++++++--------------- About.cs | 19 ++++++------------- Caffeinated.csproj | 2 +- Properties/AssemblyInfo.cs | 4 ++-- 4 files changed, 22 insertions(+), 31 deletions(-) diff --git a/About.Designer.cs b/About.Designer.cs index e347783..c43bf63 100644 --- a/About.Designer.cs +++ b/About.Designer.cs @@ -24,7 +24,7 @@ protected override void Dispose(bool disposing) { private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutForm)); this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.label2 = new System.Windows.Forms.Label(); + this.VersionTxtBlk = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.dmndLbl = new System.Windows.Forms.LinkLabel(); this.caffeineLbl = new System.Windows.Forms.LinkLabel(); @@ -45,17 +45,17 @@ private void InitializeComponent() { this.pictureBox1.TabIndex = 11; this.pictureBox1.TabStop = false; // - // label2 + // VersionTxtBlk // - this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + this.VersionTxtBlk.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(138, 268); - this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(99, 25); - this.label2.TabIndex = 13; - this.label2.Text = "Version 1.1"; + this.VersionTxtBlk.AutoSize = true; + this.VersionTxtBlk.Location = new System.Drawing.Point(118, 265); + this.VersionTxtBlk.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.VersionTxtBlk.Name = "VersionTxtBlk"; + this.VersionTxtBlk.Size = new System.Drawing.Size(131, 25); + this.VersionTxtBlk.TabIndex = 13; + this.VersionTxtBlk.Text = "Version X.X.X.X"; // // label3 // @@ -99,11 +99,9 @@ private void InitializeComponent() { // // label1 // - this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); this.label1.AutoSize = true; this.label1.Font = new System.Drawing.Font("Segoe UI", 11F, System.Drawing.FontStyle.Bold); - this.label1.Location = new System.Drawing.Point(119, 226); + this.label1.Location = new System.Drawing.Point(118, 217); this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(133, 30); @@ -148,7 +146,7 @@ private void InitializeComponent() { this.Controls.Add(this.caffeineLbl); this.Controls.Add(this.dmndLbl); this.Controls.Add(this.label3); - this.Controls.Add(this.label2); + this.Controls.Add(this.VersionTxtBlk); this.Controls.Add(this.pictureBox1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); @@ -170,7 +168,7 @@ private void InitializeComponent() { #endregion private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label VersionTxtBlk; private System.Windows.Forms.Label label3; private System.Windows.Forms.LinkLabel dmndLbl; private System.Windows.Forms.LinkLabel caffeineLbl; diff --git a/About.cs b/About.cs index 5568529..3b9d019 100644 --- a/About.cs +++ b/About.cs @@ -1,9 +1,4 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Linq; -using System.Reflection; +using System.Reflection; using System.Windows.Forms; using System.Diagnostics; @@ -19,6 +14,7 @@ public AboutForm() : base() { "http://desmondbrand.com/caffeinated"; ForkedByTheJoeFinLink.Links[0].LinkData = "https://github.com/TheJoeFin/Caffeinated"; + VersionTxtBlk.Text = $"Version {ProductVersion}"; } #region Assembly Attribute Accessors @@ -38,7 +34,7 @@ public string AssemblyTitle { public string AssemblyVersion { get { - return Assembly.GetExecutingAssembly().GetName().Version.ToString(); + return Application.ProductVersion.ToString(); } } @@ -85,20 +81,17 @@ public string AssemblyCompany { private void linkLbl_LinkClicked( object sender, - LinkLabelLinkClickedEventArgs e - ) { + LinkLabelLinkClickedEventArgs e) { string target = e.Link.LinkData as string; System.Diagnostics.Process.Start(target); } - private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) - { + private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { string target = e.Link.LinkData as string; Process.Start(target); } - private void ForkedByTheJoeFinLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) - { + private void ForkedByTheJoeFinLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { string target = e.Link.LinkData as string; Process.Start(target); } diff --git a/Caffeinated.csproj b/Caffeinated.csproj index c90c17c..786acda 100644 --- a/Caffeinated.csproj +++ b/Caffeinated.csproj @@ -26,7 +26,7 @@ false true 0 - 1.1.0.%2a + 1.2.0.%2a false true diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index d830b18..9dab5d0 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // 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.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyVersion("1.2.0.0")] +[assembly: AssemblyFileVersion("1.2.0.0")] From 2955e48042923c9d983805fd821d78b148a2e1c0 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Mon, 23 Nov 2020 06:27:25 -0600 Subject: [PATCH 025/101] Made window 800 x 1000. Prevented text from being clipped --- SettingsForm.Designer.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/SettingsForm.Designer.cs b/SettingsForm.Designer.cs index 2ac3e58..2fbb804 100644 --- a/SettingsForm.Designer.cs +++ b/SettingsForm.Designer.cs @@ -70,7 +70,7 @@ private void InitializeComponent() { this.label1.Location = new System.Drawing.Point(181, 20); this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(406, 200); + this.label1.Size = new System.Drawing.Size(560, 200); this.label1.TabIndex = 0; this.label1.Text = "Caffeinated is now running. You can find its icon in the notification area near t" + "he clock. Click it to keep your PC awake by disabling automatic sleep. Click the" + @@ -90,7 +90,7 @@ private void InitializeComponent() { // this.okBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.okBtn.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.okBtn.Location = new System.Drawing.Point(326, 894); + this.okBtn.Location = new System.Drawing.Point(501, 885); this.okBtn.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.okBtn.Name = "okBtn"; this.okBtn.Size = new System.Drawing.Size(124, 45); @@ -104,7 +104,7 @@ private void InitializeComponent() { this.cancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.cancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.cancelBtn.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.cancelBtn.Location = new System.Drawing.Point(460, 894); + this.cancelBtn.Location = new System.Drawing.Point(635, 885); this.cancelBtn.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.cancelBtn.Name = "cancelBtn"; this.cancelBtn.Size = new System.Drawing.Size(124, 45); @@ -423,7 +423,7 @@ private void InitializeComponent() { this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoSize = true; this.CancelButton = this.cancelBtn; - this.ClientSize = new System.Drawing.Size(603, 953); + this.ClientSize = new System.Drawing.Size(778, 944); this.Controls.Add(this.tableLayoutPanel1); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.cancelBtn); From 3891bf9aae477da51538a4c80bc1128fb3dcd894 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Mon, 23 Nov 2020 06:35:32 -0600 Subject: [PATCH 026/101] Add Updated Screenshot for version 1.2 --- screenshots/Taskbar-and-Settings.jpg | Bin 0 -> 138548 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 screenshots/Taskbar-and-Settings.jpg diff --git a/screenshots/Taskbar-and-Settings.jpg b/screenshots/Taskbar-and-Settings.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d0270c6a966b1a687dc3481cda61befe7e2231fa GIT binary patch literal 138548 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%0DtqRV5dBb%{&*c=UK!#4XL#4G$+jV%IfzBQEWr% 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 Date: Mon, 23 Nov 2020 06:48:22 -0600 Subject: [PATCH 027/101] Update Readme with new settings screenshot --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4ed5894..61ebb06 100644 --- a/README.md +++ b/README.md @@ -5,11 +5,11 @@ A Windows app inspired by [Caffeine][1]. A small eye icon will appear in the Sys ### How does it work When initally launched the settings page shows up and an icon is added to the System Tray -![Settings page](https://github.com/TheJoeFin/Caffeinated/blob/master/screenshots/Windows-Caffeined-Screenshot.jpg) +![Settings page](https://github.com/TheJoeFin/Caffeinated/blob/master/screenshots/Taskbar-and-Settings.jpg) Clicking the icon in the System Tray will toggle Caffeinated on or off: -State | Icon +State | Default Icon --- | --- Active | ![On State icon](https://github.com/TheJoeFin/Caffeinated/blob/master/screenshots/Active.jpg) Inactive | ![Off State icon](https://github.com/TheJoeFin/Caffeinated/blob/master/screenshots/Inactive.jpg) From d0b2818791bc844a1ff28c75cd4826e447868da0 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Mon, 23 Nov 2020 06:50:03 -0600 Subject: [PATCH 028/101] Shift down buttons to prevent text clipping --- SettingsForm.Designer.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/SettingsForm.Designer.cs b/SettingsForm.Designer.cs index 2fbb804..90485b7 100644 --- a/SettingsForm.Designer.cs +++ b/SettingsForm.Designer.cs @@ -70,7 +70,7 @@ private void InitializeComponent() { this.label1.Location = new System.Drawing.Point(181, 20); this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(560, 200); + this.label1.Size = new System.Drawing.Size(584, 200); this.label1.TabIndex = 0; this.label1.Text = "Caffeinated is now running. You can find its icon in the notification area near t" + "he clock. Click it to keep your PC awake by disabling automatic sleep. Click the" + @@ -79,7 +79,7 @@ private void InitializeComponent() { // label2 // this.label2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.Location = new System.Drawing.Point(181, 132); + this.label2.Location = new System.Drawing.Point(181, 168); this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(406, 68); @@ -133,7 +133,7 @@ private void InitializeComponent() { this.tableLayoutPanel1.Controls.Add(this.StartupChkBox, 0, 0); this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 0, 7); this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel4, 0, 6); - this.tableLayoutPanel1.Location = new System.Drawing.Point(186, 187); + this.tableLayoutPanel1.Location = new System.Drawing.Point(186, 223); this.tableLayoutPanel1.Name = "tableLayoutPanel1"; this.tableLayoutPanel1.RowCount = 9; this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); From d1b15d5d20ce28a26530364488b34a798dd45c30 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Mon, 23 Nov 2020 06:55:18 -0600 Subject: [PATCH 029/101] Update screenshot to smaller dimensions --- screenshots/Taskbar-and-Settings.jpg | Bin 138548 -> 50712 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/screenshots/Taskbar-and-Settings.jpg b/screenshots/Taskbar-and-Settings.jpg index d0270c6a966b1a687dc3481cda61befe7e2231fa..a0f4dc70cde58a13966a37357ec7a945958b0e24 100644 GIT binary patch literal 50712 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%0DtqRV5dBb%{&*c=UK!#4XL#4G$+jV%IfzBQEWr% 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 Date: Thu, 31 Dec 2020 08:27:34 -0600 Subject: [PATCH 030/101] Add theme awareness --- SettingsForm.cs | 59 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/SettingsForm.cs b/SettingsForm.cs index f43dedd..51e550b 100644 --- a/SettingsForm.cs +++ b/SettingsForm.cs @@ -1,16 +1,21 @@ using System; using System.ComponentModel; using System.Diagnostics; +using System.Drawing; using System.IO; using System.Linq; using System.Reflection; using System.Windows.Forms; using Caffeinated.Properties; +using Microsoft.Win32; using Windows.ApplicationModel; +using vm = Windows.UI.ViewManagement; namespace Caffeinated { public partial class SettingsForm : BaseForm { BindingList Durations; + public Color AccentColor { get; set; } + public Color BaseHigh { get; set; } public SettingsForm() : base() { InitializeComponent(); var durations = from i in Settings.Default.RealDurations @@ -31,10 +36,64 @@ public SettingsForm() : base() { durationCM.MenuItems.Add(deleteMI); DefaultDurationBox.ContextMenu = durationCM; + getWindowsThemeColors(); + GetAccentColor(); + + label1.BackColor = BaseHigh; + this.BackColor = BaseHigh; + + label2.ForeColor = AccentColor; setStartupCheckBox(); setRadioButtons(); } + private void getWindowsThemeColors() + { + try + { + using (RegistryKey key = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\DWM")) + { + if (key != null) + { + Object o = key.GetValue("AccentColor"); + if (o != null) + { + AccentColor = Color.FromArgb(getARGB((int)o)); + } + + Object ob = key.GetValue("BaseHigh"); + if (ob != null) + { + BaseHigh = Color.FromArgb(getARGB((int)ob)); + } + } + } + } + catch (Exception ex) + { + //couldn't read color - not a problem in this case, we already defined a default color + } + } + + + void GetAccentColor() + { + var settings = new vm.UISettings(); + Windows.UI.Color color = settings.GetColorValue(vm.UIColorType.Accent); + var foreground = settings.GetColorValue(vm.UIColorType.Foreground); + BaseHigh = Color.FromArgb(foreground.A, foreground.R, foreground.G, foreground.B); + // color.A, color.R, color.G, and color.B are the color channels. + } + + private int getARGB(int iABGR) + { + return + ((iABGR >> 24) << 24) | // alpha value stays where it is (top 8 bits) + ((iABGR >> 16) & 0xFF) | // red value moves to the next 8 bits + ((iABGR >> 8) & 0xFF) << 8 | // green value stays where it is + ((iABGR) & 0xFF) << 16; // blue value in the lowest 8 bits + } + private void setRadioButtons() { switch (Settings.Default.Icon) { From 9dcabe164826b2b65563085282828a106ad84458 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Thu, 31 Dec 2020 17:03:59 -0600 Subject: [PATCH 031/101] Can identify theme --- SettingsForm.cs | 49 +++++++++++++------------------------------------ 1 file changed, 13 insertions(+), 36 deletions(-) diff --git a/SettingsForm.cs b/SettingsForm.cs index 51e550b..4aba55b 100644 --- a/SettingsForm.cs +++ b/SettingsForm.cs @@ -36,45 +36,16 @@ public SettingsForm() : base() { durationCM.MenuItems.Add(deleteMI); DefaultDurationBox.ContextMenu = durationCM; - getWindowsThemeColors(); GetAccentColor(); - label1.BackColor = BaseHigh; this.BackColor = BaseHigh; + okBtn.BackColor = AccentColor; label2.ForeColor = AccentColor; setStartupCheckBox(); setRadioButtons(); } - private void getWindowsThemeColors() - { - try - { - using (RegistryKey key = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\DWM")) - { - if (key != null) - { - Object o = key.GetValue("AccentColor"); - if (o != null) - { - AccentColor = Color.FromArgb(getARGB((int)o)); - } - - Object ob = key.GetValue("BaseHigh"); - if (ob != null) - { - BaseHigh = Color.FromArgb(getARGB((int)ob)); - } - } - } - } - catch (Exception ex) - { - //couldn't read color - not a problem in this case, we already defined a default color - } - } - void GetAccentColor() { @@ -83,15 +54,21 @@ void GetAccentColor() var foreground = settings.GetColorValue(vm.UIColorType.Foreground); BaseHigh = Color.FromArgb(foreground.A, foreground.R, foreground.G, foreground.B); // color.A, color.R, color.G, and color.B are the color channels. + string baseColorString = HexConverter(BaseHigh); + + if (baseColorString == "#FFFFFF") + Debug.WriteLine("White Icon"); + + if (baseColorString == "#000000") + Debug.WriteLine("Black Icon"); + + var accent = settings.GetColorValue(vm.UIColorType.Accent); + AccentColor = Color.FromArgb(accent.A, accent.R, accent.G, accent.B); } - private int getARGB(int iABGR) + private static String HexConverter(Color c) { - return - ((iABGR >> 24) << 24) | // alpha value stays where it is (top 8 bits) - ((iABGR >> 16) & 0xFF) | // red value moves to the next 8 bits - ((iABGR >> 8) & 0xFF) << 8 | // green value stays where it is - ((iABGR) & 0xFF) << 16; // blue value in the lowest 8 bits + return "#" + c.R.ToString("X2") + c.G.ToString("X2") + c.B.ToString("X2"); } private void setRadioButtons() { From d60ea34ae629628a50c1b81b0f7fcb495f7f0bc8 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Thu, 31 Dec 2020 17:37:09 -0600 Subject: [PATCH 032/101] Set icon per theme --- Caffeinated.csproj | 6 ++ Program.cs | 103 +++++++++++++++++++----- Properties/Resources.Designer.cs | 60 ++++++++++++++ Properties/Resources.resx | 18 +++++ Resources/Caffeine-Black_icon.ico | Bin 0 -> 270398 bytes Resources/Eye-zzz-Active-Black-ICON.ico | Bin 0 -> 270398 bytes Resources/Eye-zzz-Sleep-Black.ico | Bin 0 -> 270398 bytes Resources/Mug-Active-Black_icon.ico | Bin 0 -> 270398 bytes Resources/Mug-Sleep-Black_icon.ico | Bin 0 -> 270398 bytes Resources/SleepEye-Black_icon.ico | Bin 0 -> 270398 bytes SettingsForm.Designer.cs | 11 ++- SettingsForm.cs | 34 +------- 12 files changed, 175 insertions(+), 57 deletions(-) create mode 100644 Resources/Caffeine-Black_icon.ico create mode 100644 Resources/Eye-zzz-Active-Black-ICON.ico create mode 100644 Resources/Eye-zzz-Sleep-Black.ico create mode 100644 Resources/Mug-Active-Black_icon.ico create mode 100644 Resources/Mug-Sleep-Black_icon.ico create mode 100644 Resources/SleepEye-Black_icon.ico diff --git a/Caffeinated.csproj b/Caffeinated.csproj index 786acda..005539d 100644 --- a/Caffeinated.csproj +++ b/Caffeinated.csproj @@ -135,6 +135,11 @@ + + + + + @@ -147,6 +152,7 @@ + diff --git a/Program.cs b/Program.cs index a972d14..1a54c60 100644 --- a/Program.cs +++ b/Program.cs @@ -6,6 +6,7 @@ using System.Runtime.InteropServices; using System.Windows.Forms; using Caffeinated.Properties; +using vm = Windows.UI.ViewManagement; namespace Caffeinated { public class Duration: IComparable { @@ -81,6 +82,7 @@ public class AppContext : ApplicationContext { private Timer timer; private SettingsForm settingsForm = null; private AboutForm aboutForm = null; + private bool isLightTheme = false; [STAThread] static void Main() { @@ -93,6 +95,8 @@ public AppContext() this.components = new Container(); this.timer = new Timer(components); timer.Tick += new EventHandler(timer_Tick); + + SetIsLightTheme(); setIcons(); @@ -121,38 +125,93 @@ public AppContext() } } + void SetIsLightTheme() + { + var settings = new vm.UISettings(); + Windows.UI.Color color = settings.GetColorValue(vm.UIColorType.Accent); + var foreground = settings.GetColorValue(vm.UIColorType.Foreground); + Color BaseHigh = Color.FromArgb(foreground.A, foreground.R, foreground.G, foreground.B); + // color.A, color.R, color.G, and color.B are the color channels. + string baseColorString = HexConverter(BaseHigh); + + if (baseColorString == "#FFFFFF") + isLightTheme = false; + + if (baseColorString == "#000000") + isLightTheme = true; + } + + private static String HexConverter(Color c) + { + return "#" + c.R.ToString("X2") + c.G.ToString("X2") + c.B.ToString("X2"); + } + private void setIcons() { switch (Settings.Default.Icon) { case "Mug": - this.offIcon = new Icon( - Properties.Resources.mug_sleep_icon, - SystemInformation.SmallIconSize - ); - this.onIcon = new Icon( - Properties.Resources.mug_active_icon, - SystemInformation.SmallIconSize - ); + if (isLightTheme){ + this.offIcon = new Icon( + Properties.Resources.Mug_Sleep_Black_icon, + SystemInformation.SmallIconSize + ); + this.onIcon = new Icon( + Properties.Resources.Mug_Active_Black_icon, + SystemInformation.SmallIconSize + ); + } else{ + this.offIcon = new Icon( + Properties.Resources.mug_sleep_icon, + SystemInformation.SmallIconSize + ); + this.onIcon = new Icon( + Properties.Resources.mug_active_icon, + SystemInformation.SmallIconSize + ); + } + break; case "Eye-ZZZ": - this.offIcon = new Icon( - Properties.Resources.Eye_zzz_Sleep_icon, - SystemInformation.SmallIconSize - ); - this.onIcon = new Icon( - Properties.Resources.Eye_zzz_Active_icon, - SystemInformation.SmallIconSize - ); + if (isLightTheme){ + this.offIcon = new Icon( + Properties.Resources.Eye_zzz_Sleep_Black_icon, + SystemInformation.SmallIconSize + ); + this.onIcon = new Icon( + Properties.Resources.Eye_zzz_Active_Black_icon, + SystemInformation.SmallIconSize + ); + } else { + this.offIcon = new Icon( + Properties.Resources.Eye_zzz_Sleep_icon, + SystemInformation.SmallIconSize + ); + this.onIcon = new Icon( + Properties.Resources.Eye_zzz_Active_icon, + SystemInformation.SmallIconSize + ); + } break; default: - this.offIcon = new Icon( - Properties.Resources.cup_coffee_icon_bw, - SystemInformation.SmallIconSize - ); - this.onIcon = new Icon( - Properties.Resources.cup_coffee_icon, + if (isLightTheme) { + this.offIcon = new Icon( + Properties.Resources.Caffeine_Black_icon, SystemInformation.SmallIconSize ); + this.onIcon = new Icon( + Properties.Resources.SleepEye_Black_icon, + SystemInformation.SmallIconSize + ); + } else { + this.offIcon = new Icon( + Properties.Resources.cup_coffee_icon_bw, + SystemInformation.SmallIconSize + ); + this.onIcon = new Icon( + Properties.Resources.cup_coffee_icon, + SystemInformation.SmallIconSize + ); + } break; } } diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs index dc2a7dc..0fb3e7f 100644 --- a/Properties/Resources.Designer.cs +++ b/Properties/Resources.Designer.cs @@ -80,6 +80,16 @@ internal static System.Drawing.Bitmap Caffeine_Black_96 { } } + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon Caffeine_Black_icon { + get { + object obj = ResourceManager.GetObject("Caffeine_Black_icon", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). /// @@ -130,6 +140,16 @@ internal static System.Drawing.Bitmap Eye_zzz_Active_Black { } } + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon Eye_zzz_Active_Black_icon { + get { + object obj = ResourceManager.GetObject("Eye_zzz_Active_Black_icon", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). /// @@ -150,6 +170,16 @@ internal static System.Drawing.Bitmap Eye_zzz_Sleep_Black { } } + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon Eye_zzz_Sleep_Black_icon { + get { + object obj = ResourceManager.GetObject("Eye_zzz_Sleep_Black_icon", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). /// @@ -170,6 +200,16 @@ internal static System.Drawing.Bitmap Mug_Active_Black { } } + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon Mug_Active_Black_icon { + get { + object obj = ResourceManager.GetObject("Mug_Active_Black_icon", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). /// @@ -190,6 +230,16 @@ internal static System.Drawing.Bitmap Mug_Sleep_Black { } } + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon Mug_Sleep_Black_icon { + get { + object obj = ResourceManager.GetObject("Mug_Sleep_Black_icon", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). /// @@ -209,5 +259,15 @@ internal static System.Drawing.Bitmap SleepEye_Black { return ((System.Drawing.Bitmap)(obj)); } } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon SleepEye_Black_icon { + get { + object obj = ResourceManager.GetObject("SleepEye_Black_icon", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } } } diff --git a/Properties/Resources.resx b/Properties/Resources.resx index 97afe01..926610c 100644 --- a/Properties/Resources.resx +++ b/Properties/Resources.resx @@ -163,4 +163,22 @@ ..\Resources\SleepEye-Black.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Caffeine-Black_icon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Eye-zzz-Active-Black-ICON.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Eye-zzz-Sleep-Black.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Mug-Active-Black_icon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Mug-Sleep-Black_icon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\SleepEye-Black_icon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/Resources/Caffeine-Black_icon.ico b/Resources/Caffeine-Black_icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..b4016a48d01cacf7308c50841d8c257f304bad7e GIT binary patch literal 270398 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 Bvl9RS literal 0 HcmV?d00001 diff --git a/Resources/Eye-zzz-Active-Black-ICON.ico b/Resources/Eye-zzz-Active-Black-ICON.ico new file mode 100644 index 0000000000000000000000000000000000000000..d73ae06f0deba3c6a33942d1637ce0ff5d7c1de8 GIT binary patch literal 270398 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 G|N4I~UQE&e literal 0 HcmV?d00001 diff --git a/Resources/Mug-Active-Black_icon.ico b/Resources/Mug-Active-Black_icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..52b298e4c9c9a1b7ad409e3c49b9d9d0d3a3cbf4 GIT binary patch literal 270398 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 literal 0 HcmV?d00001 diff --git a/Resources/SleepEye-Black_icon.ico b/Resources/SleepEye-Black_icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..9fa2938279439162123b5accea7250821c501109 GIT binary patch literal 270398 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 literal 0 HcmV?d00001 diff --git a/SettingsForm.Designer.cs b/SettingsForm.Designer.cs index 90485b7..0866ef2 100644 --- a/SettingsForm.Designer.cs +++ b/SettingsForm.Designer.cs @@ -67,6 +67,8 @@ private void InitializeComponent() { // // label1 // + this.label1.BackColor = System.Drawing.Color.Transparent; + this.label1.ForeColor = System.Drawing.Color.Black; this.label1.Location = new System.Drawing.Point(181, 20); this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label1.Name = "label1"; @@ -78,6 +80,7 @@ private void InitializeComponent() { // // label2 // + this.label2.BackColor = System.Drawing.Color.Transparent; this.label2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.label2.Location = new System.Drawing.Point(181, 168); this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); @@ -89,6 +92,7 @@ private void InitializeComponent() { // okBtn // this.okBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.okBtn.BackColor = System.Drawing.Color.Transparent; this.okBtn.FlatStyle = System.Windows.Forms.FlatStyle.System; this.okBtn.Location = new System.Drawing.Point(501, 885); this.okBtn.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); @@ -96,12 +100,13 @@ private void InitializeComponent() { this.okBtn.Size = new System.Drawing.Size(124, 45); this.okBtn.TabIndex = 8; this.okBtn.Text = "Ok"; - this.okBtn.UseVisualStyleBackColor = true; + this.okBtn.UseVisualStyleBackColor = false; this.okBtn.Click += new System.EventHandler(this.okBtn_Click); // // cancelBtn // this.cancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.cancelBtn.BackColor = System.Drawing.Color.Transparent; this.cancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.cancelBtn.FlatStyle = System.Windows.Forms.FlatStyle.System; this.cancelBtn.Location = new System.Drawing.Point(635, 885); @@ -110,11 +115,12 @@ private void InitializeComponent() { this.cancelBtn.Size = new System.Drawing.Size(124, 45); this.cancelBtn.TabIndex = 9; this.cancelBtn.Text = "Cancel"; - this.cancelBtn.UseVisualStyleBackColor = true; + this.cancelBtn.UseVisualStyleBackColor = false; this.cancelBtn.Click += new System.EventHandler(this.cancelBtn_Click); // // pictureBox1 // + this.pictureBox1.BackColor = System.Drawing.Color.Transparent; this.pictureBox1.Image = global::Caffeinated.Properties.Resources.Caffeine_Black_96; this.pictureBox1.Location = new System.Drawing.Point(17, 20); this.pictureBox1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); @@ -125,6 +131,7 @@ private void InitializeComponent() { // // tableLayoutPanel1 // + 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.tableLayoutPanel2, 0, 5); diff --git a/SettingsForm.cs b/SettingsForm.cs index 4aba55b..1577432 100644 --- a/SettingsForm.cs +++ b/SettingsForm.cs @@ -14,8 +14,7 @@ namespace Caffeinated { public partial class SettingsForm : BaseForm { BindingList Durations; - public Color AccentColor { get; set; } - public Color BaseHigh { get; set; } + public SettingsForm() : base() { InitializeComponent(); var durations = from i in Settings.Default.RealDurations @@ -36,41 +35,10 @@ public SettingsForm() : base() { durationCM.MenuItems.Add(deleteMI); DefaultDurationBox.ContextMenu = durationCM; - GetAccentColor(); - - this.BackColor = BaseHigh; - okBtn.BackColor = AccentColor; - - label2.ForeColor = AccentColor; setStartupCheckBox(); setRadioButtons(); } - - void GetAccentColor() - { - var settings = new vm.UISettings(); - Windows.UI.Color color = settings.GetColorValue(vm.UIColorType.Accent); - var foreground = settings.GetColorValue(vm.UIColorType.Foreground); - BaseHigh = Color.FromArgb(foreground.A, foreground.R, foreground.G, foreground.B); - // color.A, color.R, color.G, and color.B are the color channels. - string baseColorString = HexConverter(BaseHigh); - - if (baseColorString == "#FFFFFF") - Debug.WriteLine("White Icon"); - - if (baseColorString == "#000000") - Debug.WriteLine("Black Icon"); - - var accent = settings.GetColorValue(vm.UIColorType.Accent); - AccentColor = Color.FromArgb(accent.A, accent.R, accent.G, accent.B); - } - - private static String HexConverter(Color c) - { - return "#" + c.R.ToString("X2") + c.G.ToString("X2") + c.B.ToString("X2"); - } - private void setRadioButtons() { switch (Settings.Default.Icon) { From 7ca5362361773e6560b46c6bafa77594539d1d3d Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sat, 2 Jan 2021 07:08:13 -0600 Subject: [PATCH 033/101] formatting, and version to 1.3 --- Program.cs | 13 +++++------- Properties/AssemblyInfo.cs | 4 ++-- SettingsForm.cs | 43 +++++++++++--------------------------- 3 files changed, 19 insertions(+), 41 deletions(-) diff --git a/Program.cs b/Program.cs index 1a54c60..a3dee3e 100644 --- a/Program.cs +++ b/Program.cs @@ -90,8 +90,7 @@ static void Main() { Application.Run(context); } - public AppContext() - { + public AppContext() { this.components = new Container(); this.timer = new Timer(components); timer.Tick += new EventHandler(timer_Tick); @@ -125,8 +124,7 @@ public AppContext() } } - void SetIsLightTheme() - { + void SetIsLightTheme() { var settings = new vm.UISettings(); Windows.UI.Color color = settings.GetColorValue(vm.UIColorType.Accent); var foreground = settings.GetColorValue(vm.UIColorType.Foreground); @@ -141,14 +139,12 @@ void SetIsLightTheme() isLightTheme = true; } - private static String HexConverter(Color c) - { + private static String HexConverter(Color c) { return "#" + c.R.ToString("X2") + c.G.ToString("X2") + c.B.ToString("X2"); } private void setIcons() { - switch (Settings.Default.Icon) - { + switch (Settings.Default.Icon) { case "Mug": if (isLightTheme){ this.offIcon = new Icon( @@ -279,6 +275,7 @@ void showSettings() { private void SettingsForm_FormClosing(object sender, FormClosingEventArgs e) { setContextMenu(); + SetIsLightTheme(); setIcons(); if (isActivated) diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 9dab5d0..0f36d1e 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // 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.2.0.0")] -[assembly: AssemblyFileVersion("1.2.0.0")] +[assembly: AssemblyVersion("1.3.0.0")] +[assembly: AssemblyFileVersion("1.3.0.0")] diff --git a/SettingsForm.cs b/SettingsForm.cs index 1577432..53afb73 100644 --- a/SettingsForm.cs +++ b/SettingsForm.cs @@ -1,15 +1,10 @@ using System; using System.ComponentModel; using System.Diagnostics; -using System.Drawing; -using System.IO; using System.Linq; -using System.Reflection; using System.Windows.Forms; using Caffeinated.Properties; -using Microsoft.Win32; using Windows.ApplicationModel; -using vm = Windows.UI.ViewManagement; namespace Caffeinated { public partial class SettingsForm : BaseForm { @@ -40,8 +35,7 @@ public SettingsForm() : base() { } private void setRadioButtons() { - switch (Settings.Default.Icon) - { + switch (Settings.Default.Icon) { case "Mug": mugRDBTN.Checked = true; break; @@ -54,8 +48,7 @@ private void setRadioButtons() { } } - private void DeleteMI_Click(object sender, EventArgs e) - { + private void DeleteMI_Click(object sender, EventArgs e) { Duration durationToDelete = DefaultDurationBox.SelectedItem as Duration; DialogResult result = MessageBox.Show( @@ -64,8 +57,7 @@ private void DeleteMI_Click(object sender, EventArgs e) MessageBoxButtons.YesNo ); - switch (result) - { + switch (result) { case DialogResult.None: break; case DialogResult.OK: @@ -94,8 +86,7 @@ private async void setStartupCheckBox() { StartupTask startupTask = await StartupTask.GetAsync("StartCaffeinated"); Debug.WriteLine("Startup is " + startupTask.State.ToString()); - switch (startupTask.State) - { + switch (startupTask.State) { case StartupTaskState.Disabled: // Task is disabled but can be enabled. StartupChkBox.Checked = false; @@ -122,10 +113,7 @@ private void cancelBtn_Click(object sender, EventArgs e) { this.Close(); } - private void DefaultDurationBox_SelectedIndexChanged( - object sender, - EventArgs e - ) { + private void DefaultDurationBox_SelectedIndexChanged(object sender,EventArgs e) { var item = DefaultDurationBox.SelectedItem as Duration; if (item != null) { Settings.Default.DefaultDuration = item.Minutes; @@ -154,8 +142,7 @@ private void addCustomDurationBTN_Click(object sender, EventArgs e) { int newDuration = 0; int.TryParse(CustomDurationTXBX.Text, out newDuration); - if ( newDuration < 0) - { + if ( newDuration < 0) { CustomDurationTXBX.Text = ""; MessageBox.Show( "Enter a positive number.", @@ -165,8 +152,7 @@ private void addCustomDurationBTN_Click(object sender, EventArgs e) { return; } - if (Settings.Default.RealDurations.Contains(newDuration)) - { + if (Settings.Default.RealDurations.Contains(newDuration)) { CustomDurationTXBX.Text = ""; MessageBox.Show( $"{newDuration} is already a duration.", @@ -176,16 +162,14 @@ private void addCustomDurationBTN_Click(object sender, EventArgs e) { return; } - Duration newCustomDuration = new Duration - { + Duration newCustomDuration = new Duration { Minutes = newDuration }; Durations.Add(newCustomDuration); var sortedDurations = Durations.OrderByDescending(i => i).ToList(); Durations.Clear(); - foreach (var item in sortedDurations) - { + foreach (var item in sortedDurations) { Durations.Add(item); } Settings.Default.RealDurations.Add(newDuration); @@ -194,18 +178,15 @@ private void addCustomDurationBTN_Click(object sender, EventArgs e) { CustomDurationTXBX.Text = ""; } - private void defaultRDBTN_Click(object sender, EventArgs e) - { + private void defaultRDBTN_Click(object sender, EventArgs e) { Settings.Default.Icon = "Default"; } - private void eyeZZZRDBTN_Click(object sender, EventArgs e) - { + private void eyeZZZRDBTN_Click(object sender, EventArgs e) { Settings.Default.Icon = "Eye-ZZZ"; } - private void mugRDBTN_Click(object sender, EventArgs e) - { + private void mugRDBTN_Click(object sender, EventArgs e) { Settings.Default.Icon = "Mug"; } } From 4973cc744bf8868d5bb0ba5c9a933a7196c3f51d Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Wed, 20 Jan 2021 06:47:20 -0600 Subject: [PATCH 034/101] Use RegKey to detect theme Instead of using the ViewManager to get the application theme now program.cs uses SystemUsesLightTheme to find the Windows system theme color which controls the color of the Taskbar. --- Program.cs | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/Program.cs b/Program.cs index a3dee3e..47c8247 100644 --- a/Program.cs +++ b/Program.cs @@ -6,7 +6,7 @@ using System.Runtime.InteropServices; using System.Windows.Forms; using Caffeinated.Properties; -using vm = Windows.UI.ViewManagement; +using Microsoft.Win32; namespace Caffeinated { public class Duration: IComparable { @@ -125,18 +125,23 @@ public AppContext() { } void SetIsLightTheme() { - var settings = new vm.UISettings(); - Windows.UI.Color color = settings.GetColorValue(vm.UIColorType.Accent); - var foreground = settings.GetColorValue(vm.UIColorType.Foreground); - Color BaseHigh = Color.FromArgb(foreground.A, foreground.R, foreground.G, foreground.B); - // color.A, color.R, color.G, and color.B are the color channels. - string baseColorString = HexConverter(BaseHigh); - - if (baseColorString == "#FFFFFF") + try + { + using (RegistryKey key = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize")) { + if (key != null) { + Object o = key.GetValue("SystemUsesLightTheme"); + if (o != null) { + if (o.ToString() == "1") + isLightTheme = true; + else + isLightTheme = false; + } + } + } + } + catch (Exception ex) { isLightTheme = false; - - if (baseColorString == "#000000") - isLightTheme = true; + } } private static String HexConverter(Color c) { From 4a88f2651cdcfa503c435d8e63b7425a62dbff9c Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Wed, 20 Jan 2021 06:50:22 -0600 Subject: [PATCH 035/101] Update AssemblyInfo to new version --- Properties/AssemblyInfo.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 0f36d1e..661d396 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -5,12 +5,12 @@ // 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("Caffeinated")] +[assembly: AssemblyTitle("Windows Caffeinated")] [assembly: AssemblyDescription("Prevents Windows from sleeping.")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Desmond Brand")] -[assembly: AssemblyProduct("Caffeinated")] -[assembly: AssemblyCopyright("Copyright © Desmond Brand 2011")] +[assembly: AssemblyCompany("JoeFinApps")] +[assembly: AssemblyProduct("Windows Caffeinated")] +[assembly: AssemblyCopyright("Copyright © JoeFinApps 2021")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -32,5 +32,5 @@ // 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.3.0.0")] -[assembly: AssemblyFileVersion("1.3.0.0")] +[assembly: AssemblyVersion("1.3.2.0")] +[assembly: AssemblyFileVersion("1.3.2.0")] From 20cdc1acede18a60c0a2730935d415f1b4c0a3bd Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Fri, 29 Jan 2021 17:11:14 -0600 Subject: [PATCH 036/101] Upgrade settings to ensure settings do not get lost. --- Program.cs | 3 +++ Properties/AssemblyInfo.cs | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Program.cs b/Program.cs index 47c8247..d92394e 100644 --- a/Program.cs +++ b/Program.cs @@ -96,6 +96,9 @@ public AppContext() { timer.Tick += new EventHandler(timer_Tick); SetIsLightTheme(); + + Settings.Default.Upgrade(); + Settings.Default.Save(); setIcons(); diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 661d396..64ed6f3 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // 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.3.2.0")] -[assembly: AssemblyFileVersion("1.3.2.0")] +[assembly: AssemblyVersion("1.3.3.0")] +[assembly: AssemblyFileVersion("1.3.3.0")] From 3a9d4952e3ecd211bf8fe70336e931b5adc65dd4 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sat, 27 Feb 2021 10:49:49 -0600 Subject: [PATCH 037/101] Add more description to custom durations --- SettingsForm.Designer.cs | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/SettingsForm.Designer.cs b/SettingsForm.Designer.cs index 0866ef2..f7d7f2f 100644 --- a/SettingsForm.Designer.cs +++ b/SettingsForm.Designer.cs @@ -94,7 +94,7 @@ private void InitializeComponent() { this.okBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.okBtn.BackColor = System.Drawing.Color.Transparent; this.okBtn.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.okBtn.Location = new System.Drawing.Point(501, 885); + this.okBtn.Location = new System.Drawing.Point(501, 1005); this.okBtn.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.okBtn.Name = "okBtn"; this.okBtn.Size = new System.Drawing.Size(124, 45); @@ -109,7 +109,7 @@ private void InitializeComponent() { this.cancelBtn.BackColor = System.Drawing.Color.Transparent; this.cancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.cancelBtn.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.cancelBtn.Location = new System.Drawing.Point(635, 885); + this.cancelBtn.Location = new System.Drawing.Point(635, 1005); this.cancelBtn.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.cancelBtn.Name = "cancelBtn"; this.cancelBtn.Size = new System.Drawing.Size(124, 45); @@ -149,10 +149,10 @@ private void InitializeComponent() { this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 60F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 60F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 378F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 90F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 400F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 83F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(401, 634); + this.tableLayoutPanel1.Size = new System.Drawing.Size(401, 748); this.tableLayoutPanel1.TabIndex = 11; // // tableLayoutPanel2 @@ -245,7 +245,7 @@ private void InitializeComponent() { this.tableLayoutPanel3.Controls.Add(this.pictureBox5, 2, 2); this.tableLayoutPanel3.Controls.Add(this.pictureBox6, 1, 3); this.tableLayoutPanel3.Controls.Add(this.pictureBox7, 2, 3); - this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 260); + this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 290); this.tableLayoutPanel3.Name = "tableLayoutPanel3"; this.tableLayoutPanel3.RowCount = 4; this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle()); @@ -392,8 +392,8 @@ private void InitializeComponent() { this.tableLayoutPanel4.Location = new System.Drawing.Point(3, 200); this.tableLayoutPanel4.Name = "tableLayoutPanel4"; this.tableLayoutPanel4.RowCount = 1; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(345, 41); + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel4.Size = new System.Drawing.Size(391, 58); this.tableLayoutPanel4.TabIndex = 15; // // CustomDurationLBL @@ -402,20 +402,20 @@ private void InitializeComponent() { this.CustomDurationLBL.Dock = System.Windows.Forms.DockStyle.Top; this.CustomDurationLBL.Location = new System.Drawing.Point(3, 0); this.CustomDurationLBL.Name = "CustomDurationLBL"; - this.CustomDurationLBL.Size = new System.Drawing.Size(194, 25); + this.CustomDurationLBL.Size = new System.Drawing.Size(194, 50); this.CustomDurationLBL.TabIndex = 0; - this.CustomDurationLBL.Text = "Custom duration:"; + this.CustomDurationLBL.Text = "Custom duration in minutes:"; // // CustomDurationTXBX // this.CustomDurationTXBX.Location = new System.Drawing.Point(203, 3); this.CustomDurationTXBX.Name = "CustomDurationTXBX"; - this.CustomDurationTXBX.Size = new System.Drawing.Size(52, 31); + this.CustomDurationTXBX.Size = new System.Drawing.Size(91, 31); this.CustomDurationTXBX.TabIndex = 1; // // addCustomDurationBTN // - this.addCustomDurationBTN.Location = new System.Drawing.Point(268, 3); + this.addCustomDurationBTN.Location = new System.Drawing.Point(314, 3); this.addCustomDurationBTN.Name = "addCustomDurationBTN"; this.addCustomDurationBTN.Size = new System.Drawing.Size(65, 31); this.addCustomDurationBTN.TabIndex = 2; @@ -430,7 +430,7 @@ private void InitializeComponent() { this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoSize = true; this.CancelButton = this.cancelBtn; - this.ClientSize = new System.Drawing.Size(778, 944); + this.ClientSize = new System.Drawing.Size(778, 1064); this.Controls.Add(this.tableLayoutPanel1); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.cancelBtn); From db8e182c889d3206115c7ecbb585512252ed1dea Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sat, 27 Feb 2021 10:50:09 -0600 Subject: [PATCH 038/101] Do not launch if already open, same for Settings and About forms --- Program.cs | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/Program.cs b/Program.cs index d92394e..500fff0 100644 --- a/Program.cs +++ b/Program.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.ComponentModel; +using System.Diagnostics; using System.Drawing; using System.Linq; using System.Runtime.InteropServices; @@ -87,14 +88,24 @@ public class AppContext : ApplicationContext { [STAThread] static void Main() { var context = new AppContext(); - Application.Run(context); + if(context.notifyIcon == null) + Application.Exit(); + else + Application.Run(context); } public AppContext() { + // Caffeinated.exe + var processes = Process.GetProcessesByName("Caffeinated"); + if (processes.Length > 1) + { + // Is already running + return; + } + this.components = new Container(); this.timer = new Timer(components); timer.Tick += new EventHandler(timer_Tick); - SetIsLightTheme(); Settings.Default.Upgrade(); @@ -128,8 +139,7 @@ public AppContext() { } void SetIsLightTheme() { - try - { + try { using (RegistryKey key = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize")) { if (key != null) { Object o = key.GetValue("SystemUsesLightTheme"); @@ -267,12 +277,15 @@ public void setContextMenu() { } void aboutItem_Click(object sender, EventArgs e) { - aboutForm = new AboutForm(); - aboutForm.Show(); + if (Application.OpenForms.OfType().Any() == false) { + aboutForm = new AboutForm(); + aboutForm.Show(); + } } void settingsItem_Click(object sender, EventArgs e) { - showSettings(); + if(Application.OpenForms.OfType().Any() == false) + showSettings(); } void showSettings() { From 5609dbc3601e46870cb3ca98faf386fb6b97939a Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sat, 27 Feb 2021 10:59:23 -0600 Subject: [PATCH 039/101] Bump version number to 1.4 --- Properties/AssemblyInfo.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 64ed6f3..395322d 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // 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.3.3.0")] -[assembly: AssemblyFileVersion("1.3.3.0")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyFileVersion("1.4.0.0")] From 9c5cc7f22ad20a80ca6b1d301090ac754349f869 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sat, 27 Feb 2021 11:08:04 -0600 Subject: [PATCH 040/101] Looking into why custom durations are being cleared --- Program.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Program.cs b/Program.cs index 500fff0..baef554 100644 --- a/Program.cs +++ b/Program.cs @@ -108,8 +108,9 @@ public AppContext() { timer.Tick += new EventHandler(timer_Tick); SetIsLightTheme(); - Settings.Default.Upgrade(); - Settings.Default.Save(); + // TODO: Looks like this is clearing custom durations. Need to look into this more. + // Settings.Default.Upgrade(); + // Settings.Default.Save(); setIcons(); From a78225345115cfe399c451332d82d438b4f1963c Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sun, 28 Feb 2021 20:24:45 -0600 Subject: [PATCH 041/101] Upgrade to net5.0 --- Caffeinated.csproj | 179 ++++++--------------------------------------- Caffeinated.sln | 8 +- Program.cs | 23 +++--- SettingsForm.cs | 8 +- app.config | 2 +- 5 files changed, 42 insertions(+), 178 deletions(-) diff --git a/Caffeinated.csproj b/Caffeinated.csproj index 005539d..0d13976 100644 --- a/Caffeinated.csproj +++ b/Caffeinated.csproj @@ -1,179 +1,42 @@ - - + + - Debug - x86 - 8.0.30703 - 2.0 - {AAEC62D1-5C45-45F6-9225-193CD45C3E8F} WinExe - Properties + net5.0-windows10.0.17763.0 + true + false + Caffeinated Caffeinated - v4.8 - - - 512 - false - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.2.0.%2a - false - true - - - x86 - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - - - x86 - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - - - cup-coffee-icon.ico - - Caffeinated.AppContext + - - - - - - - False - ..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5\System.Runtime.WindowsRuntime.dll - - - - - - ..\..\..\..\..\Program Files (x86)\Windows Kits\10\UnionMetadata\Windows.winmd - - - - - Form - - - About.cs - - - Form - - - True - True - Resources.resx - - - - - Form - - - SettingsForm.cs - - - - - - About.cs - - - BaseForm.cs - - - SettingsForm.cs - Designer - - - ResXFileCodeGenerator - Designer - Resources.Designer.cs - - - SettingsSingleFileGenerator Settings.Designer.cs - + True Settings.settings True + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + ResXFileCodeGenerator + Resources.Designer.cs + + + True + Resources.resx + True + + - - False - Microsoft .NET Framework 4.7.2 %28x86 and x64%29 - true - - - False - .NET Framework 3.5 SP1 - false - + - - + \ No newline at end of file diff --git a/Caffeinated.sln b/Caffeinated.sln index cd0dd11..c46f875 100644 --- a/Caffeinated.sln +++ b/Caffeinated.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.29728.190 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Caffeinated", "Caffeinated.csproj", "{AAEC62D1-5C45-45F6-9225-193CD45C3E8F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Caffeinated", "Caffeinated.csproj", "{AAEC62D1-5C45-45F6-9225-193CD45C3E8F}" EndProject Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "Caffeinated_Package", "..\Caffeinated_Package\Caffeinated_Package.wapproj", "{CC32EB7E-6CC3-4139-BD90-09D0A04439D4}" EndProject @@ -21,12 +21,12 @@ Global Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|Any CPU.ActiveCfg = Debug|x86 + {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|ARM.ActiveCfg = Debug|x86 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|ARM64.ActiveCfg = Debug|x86 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|x64.ActiveCfg = Debug|x86 - {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|x86.ActiveCfg = Debug|x86 - {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|x86.Build.0 = Debug|x86 + {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|x86.ActiveCfg = Debug|Any CPU + {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|x86.Build.0 = Debug|Any CPU {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|Any CPU.ActiveCfg = Release|x86 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|ARM.ActiveCfg = Release|x86 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|ARM64.ActiveCfg = Release|x86 diff --git a/Program.cs b/Program.cs index baef554..05e113b 100644 --- a/Program.cs +++ b/Program.cs @@ -232,9 +232,9 @@ private void setIcons() { } public void setContextMenu() { - var contextMenu = new ContextMenu(); + var contextMenu = new ContextMenuStrip(); - var exitItem = new MenuItem("E&xit"); + var exitItem = new ToolStripMenuItem("E&xit"); exitItem.Click += new EventHandler(this.exitItem_Click); // If the user deleted all time settings, add 0 back in. @@ -251,30 +251,31 @@ public void setContextMenu() { sortedTimes = times.OrderByDescending(i => i); } - var settingsItem = new MenuItem("&Settings..."); + var settingsItem = new ToolStripMenuItem("&Settings..."); settingsItem.Click += new EventHandler(settingsItem_Click); - var aboutItem = new MenuItem("&About..."); + var aboutItem = new ToolStripMenuItem("&About..."); aboutItem.Click += new EventHandler(aboutItem_Click); - contextMenu.MenuItems.AddRange( - new MenuItem[] { + contextMenu.Items.AddRange( + new ToolStripMenuItem[] { settingsItem, aboutItem, exitItem, - new MenuItem("-"), + // new ToolStripMenuItem("-"), //activateForItem, } ); + contextMenu.Items.Add(new ToolStripSeparator()); foreach (var time in sortedTimes) { - var item = new MenuItem(Duration.ToDescription(time)); + var item = new ToolStripMenuItem(Duration.ToDescription(time)); item.Tag = time; item.Click += new EventHandler(item_Click); - contextMenu.MenuItems.Add(item); + contextMenu.Items.Add(item); } - notifyIcon.ContextMenu = contextMenu; + notifyIcon.ContextMenuStrip = contextMenu; } void aboutItem_Click(object sender, EventArgs e) { @@ -311,7 +312,7 @@ void timer_Tick(object sender, EventArgs e) { } void item_Click(object sender, EventArgs e) { - int time = (int)((MenuItem)sender).Tag; + int time = (int)((ToolStripMenuItem)sender).Tag; this.activate(time); } diff --git a/SettingsForm.cs b/SettingsForm.cs index 53afb73..a7aae2a 100644 --- a/SettingsForm.cs +++ b/SettingsForm.cs @@ -24,11 +24,11 @@ public SettingsForm() : base() { DefaultDurationBox.ValueMember = "Minutes"; DefaultDurationBox.SelectedItem = defaultItem; - MenuItem deleteMI = new MenuItem("Delete Duration"); + ToolStripMenuItem deleteMI = new ToolStripMenuItem("Delete Duration"); deleteMI.Click += DeleteMI_Click; - ContextMenu durationCM = new ContextMenu(); - durationCM.MenuItems.Add(deleteMI); - DefaultDurationBox.ContextMenu = durationCM; + ContextMenuStrip durationCM = new ContextMenuStrip(); + durationCM.Items.Add(deleteMI); + DefaultDurationBox.ContextMenuStrip = durationCM; setStartupCheckBox(); setRadioButtons(); diff --git a/app.config b/app.config index 2e91605..9ad2dc1 100644 --- a/app.config +++ b/app.config @@ -5,7 +5,7 @@
- + False From 5a6475149e28a7d9f6dac79f05c15185f8232747 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sun, 28 Feb 2021 20:35:38 -0600 Subject: [PATCH 042/101] Leave assembly version alone to keep settings from getting overwritten. --- About.Designer.cs | 25 +++---- About.cs | 2 +- About.resx | 147 +++++++++++++++++++++---------------- Properties/AssemblyInfo.cs | 4 +- 4 files changed, 99 insertions(+), 79 deletions(-) diff --git a/About.Designer.cs b/About.Designer.cs index c43bf63..bbfafc8 100644 --- a/About.Designer.cs +++ b/About.Designer.cs @@ -37,11 +37,12 @@ private void InitializeComponent() { // pictureBox1 // this.pictureBox1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.pictureBox1.Image = global::Caffeinated.Properties.Resources.Caffeine_Black_96; - this.pictureBox1.Location = new System.Drawing.Point(100, 22); + this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); + this.pictureBox1.Location = new System.Drawing.Point(18, 22); this.pictureBox1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(172, 172); + this.pictureBox1.Size = new System.Drawing.Size(96, 96); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; this.pictureBox1.TabIndex = 11; this.pictureBox1.TabStop = false; // @@ -50,24 +51,23 @@ private void InitializeComponent() { this.VersionTxtBlk.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.VersionTxtBlk.AutoSize = true; - this.VersionTxtBlk.Location = new System.Drawing.Point(118, 265); + this.VersionTxtBlk.Location = new System.Drawing.Point(17, 254); this.VersionTxtBlk.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.VersionTxtBlk.Name = "VersionTxtBlk"; - this.VersionTxtBlk.Size = new System.Drawing.Size(131, 25); + this.VersionTxtBlk.Size = new System.Drawing.Size(99, 25); this.VersionTxtBlk.TabIndex = 13; - this.VersionTxtBlk.Text = "Version X.X.X.X"; + this.VersionTxtBlk.Text = "Version 1.4"; // // label3 // this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.label3.Location = new System.Drawing.Point(8, 323); + this.label3.Location = new System.Drawing.Point(17, 298); this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(364, 67); + this.label3.Size = new System.Drawing.Size(307, 67); this.label3.TabIndex = 14; this.label3.Text = "Prevents your PC from going to sleep or displaying the screen saver."; - this.label3.TextAlign = System.Drawing.ContentAlignment.TopCenter; // // dmndLbl // @@ -86,22 +86,21 @@ private void InitializeComponent() { // this.caffeineLbl.AutoSize = true; this.caffeineLbl.LinkArea = new System.Windows.Forms.LinkArea(12, 17); - this.caffeineLbl.Location = new System.Drawing.Point(67, 390); + this.caffeineLbl.Location = new System.Drawing.Point(17, 365); this.caffeineLbl.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.caffeineLbl.Name = "caffeineLbl"; this.caffeineLbl.Size = new System.Drawing.Size(246, 30); this.caffeineLbl.TabIndex = 18; this.caffeineLbl.TabStop = true; this.caffeineLbl.Text = "Inspired by Caffeine for OS X."; - this.caffeineLbl.TextAlign = System.Drawing.ContentAlignment.TopCenter; this.caffeineLbl.UseCompatibleTextRendering = true; this.caffeineLbl.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLbl_LinkClicked); // // label1 // this.label1.AutoSize = true; - this.label1.Font = new System.Drawing.Font("Segoe UI", 11F, System.Drawing.FontStyle.Bold); - this.label1.Location = new System.Drawing.Point(118, 217); + this.label1.Font = new System.Drawing.Font("Segoe UI", 11F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); + this.label1.Location = new System.Drawing.Point(17, 209); this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(133, 30); diff --git a/About.cs b/About.cs index 3b9d019..3b2924e 100644 --- a/About.cs +++ b/About.cs @@ -14,7 +14,7 @@ public AboutForm() : base() { "http://desmondbrand.com/caffeinated"; ForkedByTheJoeFinLink.Links[0].LinkData = "https://github.com/TheJoeFin/Caffeinated"; - VersionTxtBlk.Text = $"Version {ProductVersion}"; + // VersionTxtBlk.Text = $"Version {ProductVersion}"; } #region Assembly Attribute Accessors diff --git a/About.resx b/About.resx index fe96ba0..fdb8cb8 100644 --- a/About.resx +++ b/About.resx @@ -1,64 +1,4 @@ - - - + @@ -117,8 +57,89 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - + + + + 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 + UIbG+g9OiEDK401/xQAAAABJRU5ErkJggg== + + + AAABAAEAAAAAAAEAIAAoIAQAFgAAACgAAAAAAQAAAAIAAAEAIAAAAAAAAAAEACUWAAAlFgAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 395322d..64ed6f3 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // 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.4.0.0")] -[assembly: AssemblyFileVersion("1.4.0.0")] +[assembly: AssemblyVersion("1.3.3.0")] +[assembly: AssemblyFileVersion("1.3.3.0")] From daa02084f2d051c0d3808d67acdc7de8c23634e9 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sun, 28 Feb 2021 21:29:14 -0600 Subject: [PATCH 043/101] Add some high DPI support --- Caffeinated.csproj | 2 +- Program.cs | 3 ++ app.manifest | 76 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 app.manifest diff --git a/Caffeinated.csproj b/Caffeinated.csproj index 0d13976..4d73ccc 100644 --- a/Caffeinated.csproj +++ b/Caffeinated.csproj @@ -9,6 +9,7 @@ Caffeinated Caffeinated Caffeinated.AppContext + app.manifest @@ -38,5 +39,4 @@ - \ No newline at end of file diff --git a/Program.cs b/Program.cs index 05e113b..9a92361 100644 --- a/Program.cs +++ b/Program.cs @@ -87,11 +87,14 @@ public class AppContext : ApplicationContext { [STAThread] static void Main() { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); var context = new AppContext(); if(context.notifyIcon == null) Application.Exit(); else Application.Run(context); + } public AppContext() { diff --git a/app.manifest b/app.manifest new file mode 100644 index 0000000..c35c00b --- /dev/null +++ b/app.manifest @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + + + + + + + + + + + + From 3e4a9582eede5f978f2ebf0a197b941b55608f04 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Tue, 2 Mar 2021 05:10:36 -0600 Subject: [PATCH 044/101] Fix #6 --- Program.cs | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/Program.cs b/Program.cs index 9a92361..0b6ddad 100644 --- a/Program.cs +++ b/Program.cs @@ -78,7 +78,6 @@ public class AppContext : ApplicationContext { private IContainer components; private Icon onIcon; private Icon offIcon; - private uint? oldState = null; private bool isActivated = false; private Timer timer; private SettingsForm settingsForm = null; @@ -342,8 +341,8 @@ bool isActive() { void activate(int duration) { var sleepDisabled = NativeMethods.ES_CONTINUOUS | NativeMethods.ES_DISPLAY_REQUIRED; - oldState = NativeMethods.SetThreadExecutionState(sleepDisabled); - if (oldState == 0) { + uint previousState = NativeMethods.SetThreadExecutionState(sleepDisabled); + if (previousState == 0) { ShowError(); ExitThread(); } @@ -358,12 +357,9 @@ void activate(int duration) { void deactivate() { timer.Stop(); - if (oldState.HasValue) { - uint result = - NativeMethods.SetThreadExecutionState(oldState.Value); - if (result == 0) { - ShowError(); - } + uint result = NativeMethods.SetThreadExecutionState(NativeMethods.ES_CONTINUOUS); + if (result == 0) { + ShowError(); } this.isActivated = false; this.notifyIcon.Icon = offIcon; From fd8b259ec1391617a99deeeb72a86248ec7fb676 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Tue, 2 Mar 2021 05:28:34 -0600 Subject: [PATCH 045/101] Clean up comments and formatting --- Program.cs | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/Program.cs b/Program.cs index 0b6ddad..133ece0 100644 --- a/Program.cs +++ b/Program.cs @@ -109,15 +109,9 @@ public AppContext() { this.timer = new Timer(components); timer.Tick += new EventHandler(timer_Tick); SetIsLightTheme(); - - // TODO: Looks like this is clearing custom durations. Need to look into this more. - // Settings.Default.Upgrade(); - // Settings.Default.Save(); setIcons(); - this.notifyIcon = new NotifyIcon(this.components); - setContextMenu(); // tooltip @@ -128,17 +122,12 @@ public AppContext() { notifyIcon.MouseClick += new MouseEventHandler(notifyIcon1_Click); if (Settings.Default.ActivateAtLaunch) - { activate(Settings.Default.DefaultDuration); - } - else - { + else deactivate(); - } - if (Settings.Default.ShowSettingsAtLaunch) - { + + if (Settings.Default.ShowSettingsAtLaunch) showSettings(); - } } void SetIsLightTheme() { @@ -263,9 +252,7 @@ public void setContextMenu() { new ToolStripMenuItem[] { settingsItem, aboutItem, - exitItem, - // new ToolStripMenuItem("-"), - //activateForItem, + exitItem } ); contextMenu.Items.Add(new ToolStripSeparator()); From ee8d2b08fb2814d9be87b3fddd1f83bdfd604f2b Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Wed, 3 Mar 2021 06:07:08 -0600 Subject: [PATCH 046/101] Small tweaks to reduce warnings and get prepared for packaging. --- Caffeinated.sln | 6 +++--- Program.cs | 2 +- app.manifest | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Caffeinated.sln b/Caffeinated.sln index c46f875..197b5cd 100644 --- a/Caffeinated.sln +++ b/Caffeinated.sln @@ -21,7 +21,7 @@ Global Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|Any CPU.ActiveCfg = Debug|x86 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|ARM.ActiveCfg = Debug|x86 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|ARM64.ActiveCfg = Debug|x86 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|x64.ActiveCfg = Debug|x86 @@ -31,8 +31,8 @@ Global {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|ARM.ActiveCfg = Release|x86 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|ARM64.ActiveCfg = Release|x86 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|x64.ActiveCfg = Release|x86 - {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|x86.ActiveCfg = Release|x86 - {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|x86.Build.0 = Release|x86 + {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|x86.ActiveCfg = Release|Any CPU + {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|x86.Build.0 = Release|Any CPU {CC32EB7E-6CC3-4139-BD90-09D0A04439D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CC32EB7E-6CC3-4139-BD90-09D0A04439D4}.Debug|Any CPU.Build.0 = Debug|Any CPU {CC32EB7E-6CC3-4139-BD90-09D0A04439D4}.Debug|Any CPU.Deploy.0 = Debug|Any CPU diff --git a/Program.cs b/Program.cs index 133ece0..b4d60d8 100644 --- a/Program.cs +++ b/Program.cs @@ -144,7 +144,7 @@ void SetIsLightTheme() { } } } - catch (Exception ex) { + catch (Exception) { isLightTheme = false; } } diff --git a/app.manifest b/app.manifest index c35c00b..ad9c599 100644 --- a/app.manifest +++ b/app.manifest @@ -1,6 +1,6 @@  - + From 447dd4e44f8d0e8e3ecac0a67d3374aab3ad6f98 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Wed, 3 Mar 2021 06:34:30 -0600 Subject: [PATCH 047/101] Update Readme to include packaing files. fix #2 --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 61ebb06..73ff95a 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,10 @@ The future plans of Caffeinated involve: Now Caffeinated can be accessed for free through the Microsoft Store under the name [Windows Caffeinated][4]. +The packaging resources can be accessed at [This Repo][5] + [1]: http://lightheadsw.com/caffeine/ [2]: http://desmondbrand.com/caffeinated/ [3]: http://twitter.com/thejoefin [4]: https://www.microsoft.com/en-us/p/windows-caffeinated/9pbvhhsn78bl?activetab=pivot:overviewtab +[5]: https://github.com/TheJoeFin/Caffeinated_Package From 9ad8840a717ecd0837cdfa029cf57b7d28a3d639 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Mon, 8 Mar 2021 17:41:10 -0600 Subject: [PATCH 048/101] Use .Net5 settings --- Enums.cs | 15 ++++ Helpers/AppSettings.cs | 180 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 195 insertions(+) create mode 100644 Enums.cs create mode 100644 Helpers/AppSettings.cs diff --git a/Enums.cs b/Enums.cs new file mode 100644 index 0000000..fa3ecf0 --- /dev/null +++ b/Enums.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Caffeinated +{ + public enum TrayIcon + { + Default, + Mug, + EyeWithZzz + } +} diff --git a/Helpers/AppSettings.cs b/Helpers/AppSettings.cs new file mode 100644 index 0000000..7661448 --- /dev/null +++ b/Helpers/AppSettings.cs @@ -0,0 +1,180 @@ +using System; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.Configuration; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Caffeinated; + +namespace Caffeinated.Helpers +{ + public class AppSettings + { + NameValueCollection appSettings = ConfigurationManager.AppSettings; + + private bool _activateOnLaunch; + + public bool ActivateOnLaunch + { + get { return _activateOnLaunch; } + set + { + _activateOnLaunch = value; + appSettings[nameof(ActivateOnLaunch)] = _activateOnLaunch.ToString(); + } + } + + private bool _automaticallyLaunchWithWindows; + + public bool AutomaticallyLaunchWithWindows + { + get { return _automaticallyLaunchWithWindows; } + set + { + _automaticallyLaunchWithWindows = value; + appSettings[nameof(AutomaticallyLaunchWithWindows)] = _automaticallyLaunchWithWindows.ToString(); + } + } + + + private bool _showMessageOnLaunch; + + public bool ShowMessageOnLaunch + { + get { return _showMessageOnLaunch; } + set + { + _showMessageOnLaunch = value; + appSettings[nameof(ShowMessageOnLaunch)] = _showMessageOnLaunch.ToString(); + } + } + + + private int _defaultDuration; + + public int DefaultDuration + { + get { return _defaultDuration; } + set + { + _defaultDuration = value; + appSettings[nameof(DefaultDuration)] = _defaultDuration.ToString(); + } + } + + + private TrayIcon _icon; + + public TrayIcon Icon + { + get { return _icon; } + set + { + _icon = value; + appSettings[nameof(Icon)] = _icon.ToString(); + } + } + + + private List _durations; + + public List Durations + { + get { return _durations; } + set + { + _durations = value; + appSettings[nameof(Durations)] = string.Join(',',Durations.ToArray()); + } + } + + + public AppSettings() + { + try + { + string ActivateOnLaunchresult = appSettings[nameof(ActivateOnLaunch)]; + _activateOnLaunch = bool.Parse(ActivateOnLaunchresult); + } + catch (ConfigurationErrorsException) + { + _activateOnLaunch = false; + Console.WriteLine($"Error reading _activateOnLaunch app settings"); + } + + try + { + string AutomaticallyLaunchWithWindowsresult = appSettings[nameof(AutomaticallyLaunchWithWindows)]; + _automaticallyLaunchWithWindows = bool.Parse(AutomaticallyLaunchWithWindowsresult); + } + catch (ConfigurationErrorsException) + { + _automaticallyLaunchWithWindows = false; + Console.WriteLine("Error reading _automaticallyLaunchWithWindows app settings"); + } + + try + { + string ShowMessageOnLaunchresult = appSettings[nameof(ShowMessageOnLaunch)]; + _showMessageOnLaunch = bool.Parse(ShowMessageOnLaunchresult); + } + catch (ConfigurationErrorsException) + { + _showMessageOnLaunch = true; + Console.WriteLine($"Error reading _showMessageOnLaunch app settings"); + } + + try + { + string DefaultDurationresult = appSettings[nameof(DefaultDuration)]; + _defaultDuration = int.Parse(DefaultDurationresult); + } + catch (ConfigurationErrorsException) + { + _defaultDuration = 0; + Console.WriteLine("Error reading _defaultDuration app settings"); + } + + try + { + string Iconresult = appSettings[nameof(Icon)]; + + switch (Iconresult) + { + case "Mug": + _icon = TrayIcon.Mug; + break; + case "Eye-ZZZ": + _icon = TrayIcon.EyeWithZzz; + break; + default: + _icon = TrayIcon.Default; + break; + } + } + catch (ConfigurationErrorsException) + { + _icon = TrayIcon.Default; + Console.WriteLine($"Error reading Icon app settings"); + } + + try + { + string Durationsresult = appSettings[nameof(Durations)]; + List splitResult = Durationsresult.Split(',').ToList(); + + _durations = new List(); + foreach (string item in splitResult) + { + _durations.Add(int.Parse(item)); + } + } + catch (ConfigurationErrorsException) + { + _durations = new List { 0, 15, 60, 120, 480 }; + Console.WriteLine($"Error reading Durations app settings"); + } + } + } +} From 32b447ab4effa481c8c7071206e4ed089ff28a81 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Mon, 8 Mar 2021 20:47:45 -0600 Subject: [PATCH 049/101] Trying to retool the settings the .NET5 way --- Caffeinated.sln | 2 +- Helpers/AppSettings.cs | 71 +++++++++++++++++++++++++++------------- Program.cs | 29 ++++++++++------ SettingsForm.Designer.cs | 9 ++--- SettingsForm.cs | 48 ++++++++++++++++++--------- SettingsForm.resx | 66 ++----------------------------------- 6 files changed, 107 insertions(+), 118 deletions(-) diff --git a/Caffeinated.sln b/Caffeinated.sln index 197b5cd..9559c3d 100644 --- a/Caffeinated.sln +++ b/Caffeinated.sln @@ -21,7 +21,7 @@ Global Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|Any CPU.ActiveCfg = Debug|x86 + {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|ARM.ActiveCfg = Debug|x86 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|ARM64.ActiveCfg = Debug|x86 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|x64.ActiveCfg = Debug|x86 diff --git a/Helpers/AppSettings.cs b/Helpers/AppSettings.cs index 7661448..f548945 100644 --- a/Helpers/AppSettings.cs +++ b/Helpers/AppSettings.cs @@ -3,15 +3,13 @@ using System.Collections.Specialized; using System.Configuration; using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Caffeinated; namespace Caffeinated.Helpers { public class AppSettings { - NameValueCollection appSettings = ConfigurationManager.AppSettings; + Configuration configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); + KeyValueConfigurationCollection appSettings; private bool _activateOnLaunch; @@ -21,7 +19,7 @@ public bool ActivateOnLaunch set { _activateOnLaunch = value; - appSettings[nameof(ActivateOnLaunch)] = _activateOnLaunch.ToString(); + appSettings[nameof(ActivateOnLaunch)].Value = _activateOnLaunch.ToString(); } } @@ -33,7 +31,7 @@ public bool AutomaticallyLaunchWithWindows set { _automaticallyLaunchWithWindows = value; - appSettings[nameof(AutomaticallyLaunchWithWindows)] = _automaticallyLaunchWithWindows.ToString(); + appSettings[nameof(AutomaticallyLaunchWithWindows)].Value = _automaticallyLaunchWithWindows.ToString(); } } @@ -46,7 +44,7 @@ public bool ShowMessageOnLaunch set { _showMessageOnLaunch = value; - appSettings[nameof(ShowMessageOnLaunch)] = _showMessageOnLaunch.ToString(); + appSettings[nameof(ShowMessageOnLaunch)].Value = _showMessageOnLaunch.ToString(); } } @@ -59,7 +57,7 @@ public int DefaultDuration set { _defaultDuration = value; - appSettings[nameof(DefaultDuration)] = _defaultDuration.ToString(); + appSettings[nameof(DefaultDuration)].Value = _defaultDuration.ToString(); } } @@ -72,7 +70,7 @@ public TrayIcon Icon set { _icon = value; - appSettings[nameof(Icon)] = _icon.ToString(); + appSettings[nameof(Icon)].Value = _icon.ToString(); } } @@ -85,60 +83,66 @@ public List Durations set { _durations = value; - appSettings[nameof(Durations)] = string.Join(',',Durations.ToArray()); + appSettings[nameof(Durations)].Value = string.Join(',',Durations.ToArray()); } } public AppSettings() { + appSettings = configFile.AppSettings.Settings; + try { - string ActivateOnLaunchresult = appSettings[nameof(ActivateOnLaunch)]; + string ActivateOnLaunchresult = appSettings[nameof(ActivateOnLaunch)].Value; _activateOnLaunch = bool.Parse(ActivateOnLaunchresult); } - catch (ConfigurationErrorsException) + catch (Exception) { _activateOnLaunch = false; + AddUpdateAppSettings(nameof(ActivateOnLaunch), _activateOnLaunch.ToString()); Console.WriteLine($"Error reading _activateOnLaunch app settings"); } try { - string AutomaticallyLaunchWithWindowsresult = appSettings[nameof(AutomaticallyLaunchWithWindows)]; + string AutomaticallyLaunchWithWindowsresult = appSettings[nameof(AutomaticallyLaunchWithWindows)].Value; _automaticallyLaunchWithWindows = bool.Parse(AutomaticallyLaunchWithWindowsresult); } - catch (ConfigurationErrorsException) + catch (Exception) { _automaticallyLaunchWithWindows = false; + AddUpdateAppSettings(nameof(AutomaticallyLaunchWithWindows), _automaticallyLaunchWithWindows.ToString()); Console.WriteLine("Error reading _automaticallyLaunchWithWindows app settings"); } try { - string ShowMessageOnLaunchresult = appSettings[nameof(ShowMessageOnLaunch)]; + string ShowMessageOnLaunchresult = appSettings[nameof(ShowMessageOnLaunch)].Value; _showMessageOnLaunch = bool.Parse(ShowMessageOnLaunchresult); } - catch (ConfigurationErrorsException) + catch (Exception) { _showMessageOnLaunch = true; + AddUpdateAppSettings(nameof(ShowMessageOnLaunch), _showMessageOnLaunch.ToString()); Console.WriteLine($"Error reading _showMessageOnLaunch app settings"); } try { - string DefaultDurationresult = appSettings[nameof(DefaultDuration)]; + string DefaultDurationresult = appSettings[nameof(DefaultDuration)].Value; _defaultDuration = int.Parse(DefaultDurationresult); } - catch (ConfigurationErrorsException) + catch (Exception) { _defaultDuration = 0; + AddUpdateAppSettings(nameof(DefaultDuration), _defaultDuration.ToString()); Console.WriteLine("Error reading _defaultDuration app settings"); } try { - string Iconresult = appSettings[nameof(Icon)]; + string Iconresult = appSettings[nameof(Icon)].Value; switch (Iconresult) { @@ -153,15 +157,16 @@ public AppSettings() break; } } - catch (ConfigurationErrorsException) + catch (Exception) { _icon = TrayIcon.Default; + AddUpdateAppSettings(nameof(Icon), _icon.ToString()); Console.WriteLine($"Error reading Icon app settings"); } try { - string Durationsresult = appSettings[nameof(Durations)]; + string Durationsresult = appSettings[nameof(Durations)].Value; List splitResult = Durationsresult.Split(',').ToList(); _durations = new List(); @@ -170,11 +175,33 @@ public AppSettings() _durations.Add(int.Parse(item)); } } - catch (ConfigurationErrorsException) + catch (Exception) { _durations = new List { 0, 15, 60, 120, 480 }; + AddUpdateAppSettings(nameof(Durations), string.Join(',', _durations.ToArray())); Console.WriteLine($"Error reading Durations app settings"); } } + + void AddUpdateAppSettings(string key, string value) + { + try + { + if (appSettings[key] == null) + { + appSettings.Add(key, value); + } + else + { + appSettings[key].Value = value; + } + configFile.Save(ConfigurationSaveMode.Modified); + ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name); + } + catch (ConfigurationErrorsException) + { + Console.WriteLine("Error writing app settings"); + } + } } } diff --git a/Program.cs b/Program.cs index b4d60d8..3d23ff4 100644 --- a/Program.cs +++ b/Program.cs @@ -6,6 +6,7 @@ using System.Linq; using System.Runtime.InteropServices; using System.Windows.Forms; +using Caffeinated.Helpers; using Caffeinated.Properties; using Microsoft.Win32; @@ -83,6 +84,7 @@ public class AppContext : ApplicationContext { private SettingsForm settingsForm = null; private AboutForm aboutForm = null; private bool isLightTheme = false; + AppSettings appSettings; [STAThread] static void Main() { @@ -108,6 +110,9 @@ public AppContext() { this.components = new Container(); this.timer = new Timer(components); timer.Tick += new EventHandler(timer_Tick); + + appSettings = new AppSettings(); + SetIsLightTheme(); setIcons(); @@ -121,12 +126,12 @@ public AppContext() { // Handle the DoubleClick event to activate the form. notifyIcon.MouseClick += new MouseEventHandler(notifyIcon1_Click); - if (Settings.Default.ActivateAtLaunch) + if (appSettings.ActivateOnLaunch) activate(Settings.Default.DefaultDuration); else deactivate(); - if (Settings.Default.ShowSettingsAtLaunch) + if (appSettings.ShowMessageOnLaunch) showSettings(); } @@ -154,8 +159,8 @@ private static String HexConverter(Color c) { } private void setIcons() { - switch (Settings.Default.Icon) { - case "Mug": + switch (appSettings.Icon) { + case TrayIcon.Mug: if (isLightTheme){ this.offIcon = new Icon( Properties.Resources.Mug_Sleep_Black_icon, @@ -177,7 +182,7 @@ private void setIcons() { } break; - case "Eye-ZZZ": + case TrayIcon.EyeWithZzz: if (isLightTheme){ this.offIcon = new Icon( Properties.Resources.Eye_zzz_Sleep_Black_icon, @@ -229,11 +234,11 @@ public void setContextMenu() { exitItem.Click += new EventHandler(this.exitItem_Click); // If the user deleted all time settings, add 0 back in. - if (Settings.Default.Durations.Length == 0) - Settings.Default.Durations = "0"; + if (appSettings.Durations.Count == 0) + appSettings.DefaultDuration = 0; // we want the lower durations to be closer to the mouse. So, - var times = Settings.Default.RealDurations; + var times = appSettings.Durations; IEnumerable sortedTimes = Enumerable.Empty(); if ((new Taskbar()).Position == TaskbarPosition.Top) { sortedTimes = times.OrderBy(i => i); @@ -248,6 +253,10 @@ public void setContextMenu() { var aboutItem = new ToolStripMenuItem("&About..."); aboutItem.Click += new EventHandler(aboutItem_Click); + var settingsMenuItem = new ContextMenuStrip(){ + Text = "Settings", + }; + contextMenu.Items.AddRange( new ToolStripMenuItem[] { settingsItem, @@ -280,7 +289,7 @@ void settingsItem_Click(object sender, EventArgs e) { } void showSettings() { - settingsForm = new SettingsForm(); + settingsForm = new SettingsForm(appSettings); settingsForm.FormClosing += SettingsForm_FormClosing; settingsForm.Show(); } @@ -310,7 +319,7 @@ void notifyIcon1_Click(object sender, MouseEventArgs e) { if (this.isActive()) this.deactivate(); else - this.activate(Settings.Default.DefaultDuration); + this.activate(appSettings.DefaultDuration); } void ShowError() { diff --git a/SettingsForm.Designer.cs b/SettingsForm.Designer.cs index f7d7f2f..d80eebb 100644 --- a/SettingsForm.Designer.cs +++ b/SettingsForm.Designer.cs @@ -81,7 +81,7 @@ private void InitializeComponent() { // label2 // this.label2.BackColor = System.Drawing.Color.Transparent; - this.label2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); this.label2.Location = new System.Drawing.Point(181, 168); this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label2.Name = "label2"; @@ -192,9 +192,6 @@ private void InitializeComponent() { // SettingsAtLaunchChkBox // this.SettingsAtLaunchChkBox.AutoSize = true; - this.SettingsAtLaunchChkBox.Checked = global::Caffeinated.Properties.Settings.Default.ShowSettingsAtLaunch; - this.SettingsAtLaunchChkBox.CheckState = System.Windows.Forms.CheckState.Checked; - this.SettingsAtLaunchChkBox.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::Caffeinated.Properties.Settings.Default, "ShowSettingsAtLaunch", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); this.SettingsAtLaunchChkBox.Location = new System.Drawing.Point(4, 83); this.SettingsAtLaunchChkBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.SettingsAtLaunchChkBox.Name = "SettingsAtLaunchChkBox"; @@ -202,12 +199,11 @@ private void InitializeComponent() { this.SettingsAtLaunchChkBox.TabIndex = 5; this.SettingsAtLaunchChkBox.Text = "Show this message upon launch"; this.SettingsAtLaunchChkBox.UseVisualStyleBackColor = true; + this.SettingsAtLaunchChkBox.CheckedChanged += new System.EventHandler(this.SettingsAtLaunchChkBox_CheckedChanged); // // ActivateChkBox // this.ActivateChkBox.AutoSize = true; - this.ActivateChkBox.Checked = global::Caffeinated.Properties.Settings.Default.ActivateAtLaunch; - this.ActivateChkBox.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::Caffeinated.Properties.Settings.Default, "ActivateAtLaunch", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); this.ActivateChkBox.Location = new System.Drawing.Point(4, 44); this.ActivateChkBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.ActivateChkBox.Name = "ActivateChkBox"; @@ -215,6 +211,7 @@ private void InitializeComponent() { this.ActivateChkBox.TabIndex = 4; this.ActivateChkBox.Text = "Activate upon launch"; this.ActivateChkBox.UseVisualStyleBackColor = true; + this.ActivateChkBox.CheckedChanged += new System.EventHandler(this.ActivateChkBox_CheckedChanged); // // StartupChkBox // diff --git a/SettingsForm.cs b/SettingsForm.cs index a7aae2a..a017007 100644 --- a/SettingsForm.cs +++ b/SettingsForm.cs @@ -3,22 +3,31 @@ using System.Diagnostics; using System.Linq; using System.Windows.Forms; +using Caffeinated.Helpers; using Caffeinated.Properties; using Windows.ApplicationModel; namespace Caffeinated { public partial class SettingsForm : BaseForm { BindingList Durations; + AppSettings appSettings; - public SettingsForm() : base() { + public SettingsForm(AppSettings passedAppSettings) : base() { InitializeComponent(); - var durations = from i in Settings.Default.RealDurations + appSettings = passedAppSettings; + var durations = from i in appSettings.Durations select new Duration { Minutes = i }; this.Durations = new BindingList(durations.ToList()); var defaultItem = this.Durations.Where( - d => d.Minutes == Settings.Default.DefaultDuration + d => d.Minutes == appSettings.DefaultDuration ).FirstOrDefault(); + if (appSettings.ShowMessageOnLaunch) + SettingsAtLaunchChkBox.Checked = true; + + if (appSettings.ActivateOnLaunch) + ActivateChkBox.Checked = true; + DefaultDurationBox.DataSource = this.Durations; DefaultDurationBox.DisplayMember = "Description"; DefaultDurationBox.ValueMember = "Minutes"; @@ -35,11 +44,11 @@ public SettingsForm() : base() { } private void setRadioButtons() { - switch (Settings.Default.Icon) { - case "Mug": + switch (appSettings.Icon) { + case TrayIcon.Mug: mugRDBTN.Checked = true; break; - case "Eye-ZZZ": + case TrayIcon.EyeWithZzz: eyeZZZRDBTN.Checked = true; break; default: @@ -72,8 +81,8 @@ private void DeleteMI_Click(object sender, EventArgs e) { break; case DialogResult.Yes: Durations.Remove(durationToDelete); - Settings.Default.RealDurations.Remove(durationToDelete.Minutes); - Settings.Default.RealDurations = Settings.Default.RealDurations; + appSettings.Durations.Remove(durationToDelete.Minutes); + // appSettings.Durations = appSettings.Durations; break; case DialogResult.No: break; @@ -105,7 +114,7 @@ private async void setStartupCheckBox() { } private void okBtn_Click(object sender, EventArgs e) { - Settings.Default.Save(); + //Settings.Default.Save(); this.Close(); } @@ -116,7 +125,7 @@ private void cancelBtn_Click(object sender, EventArgs e) { private void DefaultDurationBox_SelectedIndexChanged(object sender,EventArgs e) { var item = DefaultDurationBox.SelectedItem as Duration; if (item != null) { - Settings.Default.DefaultDuration = item.Minutes; + appSettings.DefaultDuration = item.Minutes; } } @@ -152,7 +161,7 @@ private void addCustomDurationBTN_Click(object sender, EventArgs e) { return; } - if (Settings.Default.RealDurations.Contains(newDuration)) { + if (appSettings.Durations.Contains(newDuration)) { CustomDurationTXBX.Text = ""; MessageBox.Show( $"{newDuration} is already a duration.", @@ -172,22 +181,29 @@ private void addCustomDurationBTN_Click(object sender, EventArgs e) { foreach (var item in sortedDurations) { Durations.Add(item); } - Settings.Default.RealDurations.Add(newDuration); - Settings.Default.Durations += $",{newDuration}"; + appSettings.Durations.Add(newDuration); CustomDurationTXBX.Text = ""; } private void defaultRDBTN_Click(object sender, EventArgs e) { - Settings.Default.Icon = "Default"; + appSettings.Icon = TrayIcon.Default; } private void eyeZZZRDBTN_Click(object sender, EventArgs e) { - Settings.Default.Icon = "Eye-ZZZ"; + appSettings.Icon = TrayIcon.EyeWithZzz; } private void mugRDBTN_Click(object sender, EventArgs e) { - Settings.Default.Icon = "Mug"; + appSettings.Icon = TrayIcon.Mug; + } + + private void ActivateChkBox_CheckedChanged(object sender, EventArgs e) { + appSettings.ActivateOnLaunch = ActivateChkBox.Checked; + } + + private void SettingsAtLaunchChkBox_CheckedChanged(object sender, EventArgs e) { + appSettings.ShowMessageOnLaunch = SettingsAtLaunchChkBox.Checked; } } } diff --git a/SettingsForm.resx b/SettingsForm.resx index c288c58..71ce60b 100644 --- a/SettingsForm.resx +++ b/SettingsForm.resx @@ -1,64 +1,4 @@ - - - + @@ -121,7 +61,7 @@ iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL - EwAACxMBAJqcGAAADPFJREFUeF7t3e2xG1UWRmFCIINxCGRgMjAZmAwgA8iAEJgMCIEQCIEQCGGm95Rv + EAAACxABrSO9dQAADPFJREFUeF7t3e2xG1UWRmFCIINxCGRgMjAZmAwgA8iAEJgMCIEQCIEQCGGm95Rv levOMui9R9L52OupWj8xp9VbrW6ppfuVJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEk60n/MJqbJaKeYPStN RjvF7FlpMtopZs9Kk9FOMXtWmox2itmz0mS0U8yelSajnWL2rDQZ7RSzZ6XJaKeYPStNRjvF7FlpMtop Zs9Kk9FOMXtWmox2itmz0mS0U8yelSajnWL2rDQZ7ZQk9UYz8db+uvrzU79/6terX65+uPru6turr690 @@ -182,7 +122,7 @@ iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL - EwAACxMBAJqcGAAAD1BJREFUeF7tneuR3sYVRBmCMrBCYAZkBmQGUgZSBlYGDsHOQCE4BIXgEBSCjWtz + EAAACxABrSO9dQAAD1BJREFUeF7tneuR3sYVRBmCMrBCYAZkBmQGUgZSBlYGDsHOQCE4BIXgEBSCjWtz q1jrQwm9Ddx5oE/V+bm9d74BBgNgALwLIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQggh hBDClvw7xoGGwVCnxNhlGAx1SoxdhsFQp8TYZRgMdUqMXYbBUKfE2GUYDHVKjF2GwVCnxNhlGAx1Soxd hsFQp8TYZRgMdUqMXYbBUKfE2GUYDHVKjF2GwVCnxNhlGAx1SoxdhsFQp8TYZRgMdYpieDa0TbzV3w// From 30353085c2e814129f52ab7ccbcd3777c98a5cd9 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Mon, 8 Mar 2021 21:01:22 -0600 Subject: [PATCH 050/101] Saving bugs when changing settings. fixed bug where Icon was not parsing correctly --- Helpers/AppSettings.cs | 10 +++++++++- SettingsForm.cs | 1 - 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Helpers/AppSettings.cs b/Helpers/AppSettings.cs index f548945..1e1966b 100644 --- a/Helpers/AppSettings.cs +++ b/Helpers/AppSettings.cs @@ -20,6 +20,7 @@ public bool ActivateOnLaunch { _activateOnLaunch = value; appSettings[nameof(ActivateOnLaunch)].Value = _activateOnLaunch.ToString(); + configFile.Save(ConfigurationSaveMode.Modified); } } @@ -32,6 +33,7 @@ public bool AutomaticallyLaunchWithWindows { _automaticallyLaunchWithWindows = value; appSettings[nameof(AutomaticallyLaunchWithWindows)].Value = _automaticallyLaunchWithWindows.ToString(); + configFile.Save(ConfigurationSaveMode.Modified); } } @@ -45,6 +47,7 @@ public bool ShowMessageOnLaunch { _showMessageOnLaunch = value; appSettings[nameof(ShowMessageOnLaunch)].Value = _showMessageOnLaunch.ToString(); + configFile.Save(ConfigurationSaveMode.Modified); } } @@ -58,6 +61,7 @@ public int DefaultDuration { _defaultDuration = value; appSettings[nameof(DefaultDuration)].Value = _defaultDuration.ToString(); + configFile.Save(ConfigurationSaveMode.Modified); } } @@ -71,6 +75,7 @@ public TrayIcon Icon { _icon = value; appSettings[nameof(Icon)].Value = _icon.ToString(); + configFile.Save(ConfigurationSaveMode.Modified); } } @@ -84,6 +89,7 @@ public List Durations { _durations = value; appSettings[nameof(Durations)].Value = string.Join(',',Durations.ToArray()); + configFile.Save(ConfigurationSaveMode.Modified); } } @@ -149,7 +155,7 @@ public AppSettings() case "Mug": _icon = TrayIcon.Mug; break; - case "Eye-ZZZ": + case "EyeWithZzz": _icon = TrayIcon.EyeWithZzz; break; default: @@ -181,6 +187,8 @@ public AppSettings() AddUpdateAppSettings(nameof(Durations), string.Join(',', _durations.ToArray())); Console.WriteLine($"Error reading Durations app settings"); } + + configFile.Save(ConfigurationSaveMode.Modified); } void AddUpdateAppSettings(string key, string value) diff --git a/SettingsForm.cs b/SettingsForm.cs index a017007..6365e2a 100644 --- a/SettingsForm.cs +++ b/SettingsForm.cs @@ -114,7 +114,6 @@ private async void setStartupCheckBox() { } private void okBtn_Click(object sender, EventArgs e) { - //Settings.Default.Save(); this.Close(); } From aa72312256c69c17880351cc24845b46b437fcf4 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Mon, 8 Mar 2021 21:15:43 -0600 Subject: [PATCH 051/101] Formatting AppSettings --- Helpers/AppSettings.cs | 121 +++++++++++++++-------------------------- 1 file changed, 44 insertions(+), 77 deletions(-) diff --git a/Helpers/AppSettings.cs b/Helpers/AppSettings.cs index 1e1966b..fec9943 100644 --- a/Helpers/AppSettings.cs +++ b/Helpers/AppSettings.cs @@ -1,23 +1,20 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Collections.Specialized; using System.Configuration; using System.Linq; -namespace Caffeinated.Helpers -{ - public class AppSettings - { +namespace Caffeinated.Helpers { + public class AppSettings { Configuration configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); KeyValueConfigurationCollection appSettings; private bool _activateOnLaunch; - public bool ActivateOnLaunch - { + public bool ActivateOnLaunch { get { return _activateOnLaunch; } - set - { + set { _activateOnLaunch = value; appSettings[nameof(ActivateOnLaunch)].Value = _activateOnLaunch.ToString(); configFile.Save(ConfigurationSaveMode.Modified); @@ -26,132 +23,105 @@ public bool ActivateOnLaunch private bool _automaticallyLaunchWithWindows; - public bool AutomaticallyLaunchWithWindows - { + public bool AutomaticallyLaunchWithWindows { get { return _automaticallyLaunchWithWindows; } - set - { + set { _automaticallyLaunchWithWindows = value; appSettings[nameof(AutomaticallyLaunchWithWindows)].Value = _automaticallyLaunchWithWindows.ToString(); configFile.Save(ConfigurationSaveMode.Modified); } } - private bool _showMessageOnLaunch; - public bool ShowMessageOnLaunch - { + public bool ShowMessageOnLaunch { get { return _showMessageOnLaunch; } - set - { + set { _showMessageOnLaunch = value; appSettings[nameof(ShowMessageOnLaunch)].Value = _showMessageOnLaunch.ToString(); configFile.Save(ConfigurationSaveMode.Modified); } } - private int _defaultDuration; - public int DefaultDuration - { + public int DefaultDuration { get { return _defaultDuration; } - set - { + set { _defaultDuration = value; appSettings[nameof(DefaultDuration)].Value = _defaultDuration.ToString(); configFile.Save(ConfigurationSaveMode.Modified); } } - private TrayIcon _icon; - public TrayIcon Icon - { + public TrayIcon Icon { get { return _icon; } - set - { + set { _icon = value; appSettings[nameof(Icon)].Value = _icon.ToString(); configFile.Save(ConfigurationSaveMode.Modified); } } + private ObservableCollection _durations; - private List _durations; - - public List Durations - { + public ObservableCollection Durations { get { return _durations; } - set - { + set { _durations = value; appSettings[nameof(Durations)].Value = string.Join(',',Durations.ToArray()); configFile.Save(ConfigurationSaveMode.Modified); } } - - public AppSettings() - { + public AppSettings() { appSettings = configFile.AppSettings.Settings; - try - { + try { string ActivateOnLaunchresult = appSettings[nameof(ActivateOnLaunch)].Value; _activateOnLaunch = bool.Parse(ActivateOnLaunchresult); } - catch (Exception) - { + catch (Exception) { _activateOnLaunch = false; AddUpdateAppSettings(nameof(ActivateOnLaunch), _activateOnLaunch.ToString()); Console.WriteLine($"Error reading _activateOnLaunch app settings"); } - try - { + try { string AutomaticallyLaunchWithWindowsresult = appSettings[nameof(AutomaticallyLaunchWithWindows)].Value; _automaticallyLaunchWithWindows = bool.Parse(AutomaticallyLaunchWithWindowsresult); } - catch (Exception) - { + catch (Exception) { _automaticallyLaunchWithWindows = false; AddUpdateAppSettings(nameof(AutomaticallyLaunchWithWindows), _automaticallyLaunchWithWindows.ToString()); Console.WriteLine("Error reading _automaticallyLaunchWithWindows app settings"); } - try - { + try { string ShowMessageOnLaunchresult = appSettings[nameof(ShowMessageOnLaunch)].Value; _showMessageOnLaunch = bool.Parse(ShowMessageOnLaunchresult); } - catch (Exception) - { + catch (Exception) { _showMessageOnLaunch = true; AddUpdateAppSettings(nameof(ShowMessageOnLaunch), _showMessageOnLaunch.ToString()); Console.WriteLine($"Error reading _showMessageOnLaunch app settings"); } - try - { + try { string DefaultDurationresult = appSettings[nameof(DefaultDuration)].Value; _defaultDuration = int.Parse(DefaultDurationresult); } - catch (Exception) - { + catch (Exception) { _defaultDuration = 0; AddUpdateAppSettings(nameof(DefaultDuration), _defaultDuration.ToString()); Console.WriteLine("Error reading _defaultDuration app settings"); } - try - { + try { string Iconresult = appSettings[nameof(Icon)].Value; - - switch (Iconresult) - { + switch (Iconresult) { case "Mug": _icon = TrayIcon.Mug; break; @@ -163,51 +133,48 @@ public AppSettings() break; } } - catch (Exception) - { + catch (Exception) { _icon = TrayIcon.Default; AddUpdateAppSettings(nameof(Icon), _icon.ToString()); Console.WriteLine($"Error reading Icon app settings"); } - try - { + try { string Durationsresult = appSettings[nameof(Durations)].Value; List splitResult = Durationsresult.Split(',').ToList(); - _durations = new List(); - foreach (string item in splitResult) - { + _durations = new ObservableCollection(); + foreach (string item in splitResult) { _durations.Add(int.Parse(item)); } } - catch (Exception) - { - _durations = new List { 0, 15, 60, 120, 480 }; + catch (Exception) { + _durations = new ObservableCollection { 0, 15, 60, 120, 480 }; AddUpdateAppSettings(nameof(Durations), string.Join(',', _durations.ToArray())); Console.WriteLine($"Error reading Durations app settings"); } + Durations.CollectionChanged += Durations_CollectionChanged; + + configFile.Save(ConfigurationSaveMode.Modified); + } + private void Durations_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { + appSettings[nameof(Durations)].Value = string.Join(',', Durations.ToArray()); configFile.Save(ConfigurationSaveMode.Modified); } - void AddUpdateAppSettings(string key, string value) - { - try - { - if (appSettings[key] == null) - { + void AddUpdateAppSettings(string key, string value) { + try { + if (appSettings[key] == null) { appSettings.Add(key, value); } - else - { + else { appSettings[key].Value = value; } configFile.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name); } - catch (ConfigurationErrorsException) - { + catch (ConfigurationErrorsException) { Console.WriteLine("Error writing app settings"); } } From e85ddf48f063cb96c4e420996aa5964f8d83d3a9 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Fri, 12 Mar 2021 18:58:09 -0600 Subject: [PATCH 052/101] Rework the image on the about page --- About.Designer.cs | 29 ++++++++-------- About.resx | 85 ++--------------------------------------------- 2 files changed, 15 insertions(+), 99 deletions(-) diff --git a/About.Designer.cs b/About.Designer.cs index bbfafc8..f1d474b 100644 --- a/About.Designer.cs +++ b/About.Designer.cs @@ -23,7 +23,6 @@ protected override void Dispose(bool disposing) { /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutForm)); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.VersionTxtBlk = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.dmndLbl = new System.Windows.Forms.LinkLabel(); @@ -31,21 +30,10 @@ private void InitializeComponent() { this.label1 = new System.Windows.Forms.Label(); this.OriginallyByLink = new System.Windows.Forms.LinkLabel(); this.ForkedByTheJoeFinLink = new System.Windows.Forms.LinkLabel(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.SuspendLayout(); // - // pictureBox1 - // - this.pictureBox1.Anchor = System.Windows.Forms.AnchorStyles.None; - this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); - this.pictureBox1.Location = new System.Drawing.Point(18, 22); - this.pictureBox1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(96, 96); - this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; - this.pictureBox1.TabIndex = 11; - this.pictureBox1.TabStop = false; - // // VersionTxtBlk // this.VersionTxtBlk.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) @@ -134,11 +122,22 @@ private void InitializeComponent() { this.ForkedByTheJoeFinLink.UseCompatibleTextRendering = true; this.ForkedByTheJoeFinLink.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.ForkedByTheJoeFinLink_LinkClicked); // + // pictureBox1 + // + this.pictureBox1.Image = global::Caffeinated.Properties.Resources.Caffeine_Black_96; + this.pictureBox1.Location = new System.Drawing.Point(17, 20); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(175, 175); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBox1.TabIndex = 23; + this.pictureBox1.TabStop = false; + // // AboutForm // this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 25F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(378, 481); + this.Controls.Add(this.pictureBox1); this.Controls.Add(this.ForkedByTheJoeFinLink); this.Controls.Add(this.OriginallyByLink); this.Controls.Add(this.label1); @@ -146,7 +145,6 @@ private void InitializeComponent() { this.Controls.Add(this.dmndLbl); this.Controls.Add(this.label3); this.Controls.Add(this.VersionTxtBlk); - this.Controls.Add(this.pictureBox1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); @@ -165,8 +163,6 @@ private void InitializeComponent() { } #endregion - - private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.Label VersionTxtBlk; private System.Windows.Forms.Label label3; private System.Windows.Forms.LinkLabel dmndLbl; @@ -174,5 +170,6 @@ private void InitializeComponent() { private System.Windows.Forms.Label label1; private System.Windows.Forms.LinkLabel OriginallyByLink; private System.Windows.Forms.LinkLabel ForkedByTheJoeFinLink; + private System.Windows.Forms.PictureBox pictureBox1; } } diff --git a/About.resx b/About.resx index fdb8cb8..3e20303 100644 --- a/About.resx +++ b/About.resx @@ -57,89 +57,8 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH - DwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2Zp - bGUAAEjHnZZ3VFTXFofPvXd6oc0wAlKG3rvAANJ7k15FYZgZYCgDDjM0sSGiAhFFRJoiSFDEgNFQJFZE - sRAUVLAHJAgoMRhFVCxvRtaLrqy89/Ly++Osb+2z97n77L3PWhcAkqcvl5cGSwGQyhPwgzyc6RGRUXTs - AIABHmCAKQBMVka6X7B7CBDJy82FniFyAl8EAfB6WLwCcNPQM4BOB/+fpFnpfIHomAARm7M5GSwRF4g4 - JUuQLrbPipgalyxmGCVmvihBEcuJOWGRDT77LLKjmNmpPLaIxTmns1PZYu4V8bZMIUfEiK+ICzO5nCwR - 3xKxRoowlSviN+LYVA4zAwAUSWwXcFiJIjYRMYkfEuQi4uUA4EgJX3HcVyzgZAvEl3JJS8/hcxMSBXQd - li7d1NqaQffkZKVwBALDACYrmcln013SUtOZvBwAFu/8WTLi2tJFRbY0tba0NDQzMv2qUP91829K3NtF - ehn4uWcQrf+L7a/80hoAYMyJarPziy2uCoDOLQDI3fti0zgAgKSobx3Xv7oPTTwviQJBuo2xcVZWlhGX - wzISF/QP/U+Hv6GvvmckPu6P8tBdOfFMYYqALq4bKy0lTcinZ6QzWRy64Z+H+B8H/nUeBkGceA6fwxNF - hImmjMtLELWbx+YKuGk8Opf3n5r4D8P+pMW5FonS+BFQY4yA1HUqQH7tBygKESDR+8Vd/6NvvvgwIH55 - 4SqTi3P/7zf9Z8Gl4iWDm/A5ziUohM4S8jMX98TPEqABAUgCKpAHykAd6ABDYAasgC1wBG7AG/iDEBAJ - VgMWSASpgA+yQB7YBApBMdgJ9oBqUAcaQTNoBcdBJzgFzoNL4Bq4AW6D+2AUTIBnYBa8BgsQBGEhMkSB - 5CEVSBPSh8wgBmQPuUG+UBAUCcVCCRAPEkJ50GaoGCqDqqF6qBn6HjoJnYeuQIPQXWgMmoZ+h97BCEyC - qbASrAUbwwzYCfaBQ+BVcAK8Bs6FC+AdcCXcAB+FO+Dz8DX4NjwKP4PnEIAQERqiihgiDMQF8UeikHiE - j6xHipAKpAFpRbqRPuQmMorMIG9RGBQFRUcZomxRnqhQFAu1BrUeVYKqRh1GdaB6UTdRY6hZ1Ec0Ga2I - 1kfboL3QEegEdBa6EF2BbkK3oy+ib6Mn0K8xGAwNo42xwnhiIjFJmLWYEsw+TBvmHGYQM46Zw2Kx8lh9 - rB3WH8vECrCF2CrsUexZ7BB2AvsGR8Sp4Mxw7rgoHA+Xj6vAHcGdwQ3hJnELeCm8Jt4G749n43PwpfhG - fDf+On4Cv0CQJmgT7AghhCTCJkIloZVwkfCA8JJIJKoRrYmBRC5xI7GSeIx4mThGfEuSIemRXEjRJCFp - B+kQ6RzpLuklmUzWIjuSo8gC8g5yM/kC+RH5jQRFwkjCS4ItsUGiRqJDYkjiuSReUlPSSXK1ZK5kheQJ - yeuSM1J4KS0pFymm1HqpGqmTUiNSc9IUaVNpf+lU6RLpI9JXpKdksDJaMm4ybJkCmYMyF2TGKQhFneJC - YVE2UxopFykTVAxVm+pFTaIWU7+jDlBnZWVkl8mGyWbL1sielh2lITQtmhcthVZKO04bpr1borTEaQln - yfYlrUuGlszLLZVzlOPIFcm1yd2WeydPl3eTT5bfJd8p/1ABpaCnEKiQpbBf4aLCzFLqUtulrKVFS48v - vacIK+opBimuVTyo2K84p6Ss5KGUrlSldEFpRpmm7KicpFyufEZ5WoWiYq/CVSlXOavylC5Ld6Kn0Cvp - vfRZVUVVT1Whar3qgOqCmrZaqFq+WpvaQ3WCOkM9Xr1cvUd9VkNFw08jT6NF454mXpOhmai5V7NPc15L - Wytca6tWp9aUtpy2l3audov2Ax2yjoPOGp0GnVu6GF2GbrLuPt0berCehV6iXo3edX1Y31Kfq79Pf9AA - bWBtwDNoMBgxJBk6GWYathiOGdGMfI3yjTqNnhtrGEcZ7zLuM/5oYmGSYtJoct9UxtTbNN+02/R3Mz0z - llmN2S1zsrm7+QbzLvMXy/SXcZbtX3bHgmLhZ7HVosfig6WVJd+y1XLaSsMq1qrWaoRBZQQwShiXrdHW - ztYbrE9Zv7WxtBHYHLf5zdbQNtn2iO3Ucu3lnOWNy8ft1OyYdvV2o/Z0+1j7A/ajDqoOTIcGh8eO6o5s - xybHSSddpySno07PnU2c+c7tzvMuNi7rXM65Iq4erkWuA24ybqFu1W6P3NXcE9xb3Gc9LDzWepzzRHv6 - eO7yHPFS8mJ5NXvNelt5r/Pu9SH5BPtU+zz21fPl+3b7wX7efrv9HqzQXMFb0ekP/L38d/s/DNAOWBPw - YyAmMCCwJvBJkGlQXlBfMCU4JvhI8OsQ55DSkPuhOqHC0J4wybDosOaw+XDX8LLw0QjjiHUR1yIVIrmR - XVHYqLCopqi5lW4r96yciLaILoweXqW9KnvVldUKq1NWn46RjGHGnIhFx4bHHol9z/RnNjDn4rziauNm - WS6svaxnbEd2OXuaY8cp40zG28WXxU8l2CXsTphOdEisSJzhunCruS+SPJPqkuaT/ZMPJX9KCU9pS8Wl - xqae5Mnwknm9acpp2WmD6frphemja2zW7Fkzy/fhN2VAGasyugRU0c9Uv1BHuEU4lmmfWZP5Jiss60S2 - dDYvuz9HL2d7zmSue+63a1FrWWt78lTzNuWNrXNaV78eWh+3vmeD+oaCDRMbPTYe3kTYlLzpp3yT/LL8 - V5vDN3cXKBVsLBjf4rGlpVCikF84stV2a9021DbutoHt5turtn8sYhddLTYprih+X8IqufqN6TeV33za - Eb9joNSydP9OzE7ezuFdDrsOl0mX5ZaN7/bb3VFOLy8qf7UnZs+VimUVdXsJe4V7Ryt9K7uqNKp2Vr2v - Tqy+XeNc01arWLu9dn4fe9/Qfsf9rXVKdcV17w5wD9yp96jvaNBqqDiIOZh58EljWGPft4xvm5sUmoqb - PhziHRo9HHS4t9mqufmI4pHSFrhF2DJ9NProje9cv+tqNWytb6O1FR8Dx4THnn4f+/3wcZ/jPScYJ1p/ - 0Pyhtp3SXtQBdeR0zHYmdo52RXYNnvQ+2dNt293+o9GPh06pnqo5LXu69AzhTMGZT2dzz86dSz83cz7h - /HhPTM/9CxEXbvUG9g5c9Ll4+ZL7pQt9Tn1nL9tdPnXF5srJq4yrndcsr3X0W/S3/2TxU/uA5UDHdavr - XTesb3QPLh88M+QwdP6m681Lt7xuXbu94vbgcOjwnZHokdE77DtTd1PuvriXeW/h/sYH6AdFD6UeVjxS - fNTws+7PbaOWo6fHXMf6Hwc/vj/OGn/2S8Yv7ycKnpCfVEyqTDZPmU2dmnafvvF05dOJZ+nPFmYKf5X+ - tfa5zvMffnP8rX82YnbiBf/Fp99LXsq/PPRq2aueuYC5R69TXy/MF72Rf3P4LeNt37vwd5MLWe+x7ys/ - 6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAAOwQAADsEBuJFr7QAABxpJREFUeF7t3HXILUUc - xnFbsbsLO7HFbkWwsBvFxPrDLuzuQgQLO7C7sEVFscUO7O7O1+d7YWHv+myfM2ff+84Dn39+95w9c+Kd - nZmdvWMNDQ1FA2SLUTi2GIVji1E4thiFY4tROLYYhWOLUTi2GIVji1E4thiFY4tROLYYhWOLUTi2GIVj - i1E4thiFY4tROLYYhWOLUTi2GIVji1E4thiFY4tROF3OLLKu7CSHyhlyhzwjb8mH8p18Lx/L2/Kc3C3n - yOGyq6wnc0pMSeaTveRS4YP8W/iJ9MrLcpUcIIvIiM94soKcJa+I+9D66U25WNaSSWXEZHk5VuhC3Acz - CF/J6cKXMcZmZ3lI3AfQJU/KvjKJDPtML0fJ++LebFs/y0+ZWq98KXSPc8iwS/LB8wG5N9cEI51rhNHN - 2jKXTClTyOyyiuwvlwmjJHeMJv6RM2UeGRbhA2Jo6N5ME3Rb28oEUicbyy3ijtkEX8TJ0tkT9tbyrrjG - N/GqrCNtw0mfft29RhNfyJ7SmfCneZu4xjZF39vrMP53r9XUY7KMDDT0uX+Ja6BD//xOppa1pfQra4p7 - zcTXcnmmVuZECZ5Z5X5xDXKuldlkJSk6P6wv/c6y4l4bv8n2wsn9Aqk6G39WFpMg2UFoqGtI1g2yuCT5 - QdzjsLmEyori2pBIwkiL2bJ7jLO39DXninvhLBbMsrNKRkfusThbQocPy7UFdJXpLCX3iXtsFl3YONLT - TCePi3vBtN9lH3HJmzAxSRtU8kZH/8rMks12wrKFe07aGzKv9CR8+5+Le6E0fiFziwsNd88BE6hBhWVq - 1yYwanJh4seqqntOGt30qtIqm4g7eNZ+UpS7xD3vKRl0OE+5tjGbLsqOUmUEyDmzUZhsuAOm0cjlpCiM - KH4V9/wNZNDh2oBrGzgJF4W/eEZA7rlpnP9q5UhxB0q7WcaVsuT9FX0mdZcX+hWuprk2MiStkovEPT+t - 8kCD9Q53gLQTpGqYrLljXCFdCdcCXBuvk6rZXdwx0q6WwuQ1JI2FsTrhEqM7zmHSlXCydG18QepkDflT - 3LESrOjacNHbPSHBMLLJWT2vj2RZoCuhL3dtbDJEXljKrvZdL6OlrM9nBbDJevjY8om4Y7I00Sa80duF - c1HbXQ/Mc9yIhrWhCaVuppHXJHu8NCZso3KquAcknpAmjSBc1nNrP4yKGB21SXoSdS+FFmFs7yaKLJ1M - Jk1zo2SPmTbqHFO2+tfmzXHxwq3//CK86TZ5WJLj3UqhRSaXfnwBZaMj3sOolH0Jrwt/VnXDmkjeLNpN - 9euEMTq/oCtlBgotMq38Idk2fiMTSZOUbUC4R0ZL3oww8ZE0Wd94UdzxWJruSvgyXRs/EM5jdULX+rS4 - 4yUeFJuya6j03Szl1gm/UHcs5gddCRvEXBvZTVcnCwo/VHesxCNSmLITB3aRqjlY3DEuka7kaHFtZIRV - NRtK2RyAbqlSmKW6A6SdJ1WylbjnvyddCb9010Zmt1VSdK0jcZPUSpVZ8aPCnpyicILMu7S3ugw6bLxy - bQNdSlGmkipbXxr/tR8o7oBpDN+2kKLkjQjajt97kQvFtY0JZNFiI8sOeZPMtNOkVTYVd+Asrp3m7afc - Q9xzMMit4lMLG65cu46RvFRZsETVLqw0S0vZ2R1sH+QLy4at6HkXL16SQYWlDNcmuKt7rF/RXvf4tG+l - 5zutmbkWNTiNE878kk7RYt8ghqSbiWsL2GiWDmtF9OPusVls2OLunr7lCHEvnMWFbS5CzChJ3OMSIU/I - RSdeJLN+JlUsVBZtp0nrx44+m5WFvZuuEVlM3o4TFvT4kN2UP8EGgH6HJZC85RHOB7sJ4R4BuhL3uCxO - xiE2lf0v/MJdgxxWRU+RopED54nVpF9ZQIp2ePwoJwlzFPfvDutobVd2W4WliefFNa4pfn29zjZS9NcH - uk1Xd9gJvpF0JlxizNt81QRzhCWkbRjNsDfVvUZTXEPp+e63XoT+ter2xar4E2ePf90sJOdLL293ZYmG - bqzzWVTYAeDeRFOMvznncNMGSwSMrhgaczGFW6K4z5hr1sdLlb06dbCxrMmPYODhV8j4uWyVsAmOSZfH - iZM9qe4xbXHBp2zj2bAI4+5DpMpsetC4EM+weYy8m3584f9/YAWxlzfytcVGWv6PCZZR2lwDHlZhKZfF - Ks4VVXZf9xpdFxefGPKmZ+sjMhMLt5UeJA9IP/p0zhlsZWFpgbtxmmwyGDFh8Yt7rpjec7mQS4MscvGf - ejBL/VS4k51ujHUabppgsy872VgiYS/TncKsls3BS8pM0r24/0QoCscWo3BsMQrHFqNwbDEKxxajcGwx - CscWo3BsMQrHFqNwbDEKxxajcGwxCscWo3BsMQrHFqNwbDEKxxajcGwxCscWo3BsMQrHFqNwbDEKxxaj - UIbG+g9OiEDK401/xQAAAABJRU5ErkJggg== - - - + + AAABAAEAAAAAAAEAIAAoIAQAFgAAACgAAAAAAQAAAAIAAAEAIAAAAAAAAAAEACUWAAAlFgAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA From e809a461135f311dfd7995293f389f212953dd04 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sun, 14 Mar 2021 20:13:57 -0500 Subject: [PATCH 053/101] Increase About version to 1.5 --- About.Designer.cs | 2 +- About.resx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/About.Designer.cs b/About.Designer.cs index f1d474b..1702922 100644 --- a/About.Designer.cs +++ b/About.Designer.cs @@ -44,7 +44,7 @@ private void InitializeComponent() { this.VersionTxtBlk.Name = "VersionTxtBlk"; this.VersionTxtBlk.Size = new System.Drawing.Size(99, 25); this.VersionTxtBlk.TabIndex = 13; - this.VersionTxtBlk.Text = "Version 1.4"; + this.VersionTxtBlk.Text = "Version 1.5"; // // label3 // diff --git a/About.resx b/About.resx index 3e20303..8944908 100644 --- a/About.resx +++ b/About.resx @@ -57,8 +57,8 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - + + AAABAAEAAAAAAAEAIAAoIAQAFgAAACgAAAAAAQAAAAIAAAEAIAAAAAAAAAAEACUWAAAlFgAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA From be3f48a2801a045b114a8c78bc5da31652567b35 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Wed, 17 Mar 2021 05:59:50 -0500 Subject: [PATCH 054/101] Improve settings to check for null first --- Helpers/AppSettings.cs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/Helpers/AppSettings.cs b/Helpers/AppSettings.cs index fec9943..d3b4cf7 100644 --- a/Helpers/AppSettings.cs +++ b/Helpers/AppSettings.cs @@ -80,7 +80,8 @@ public AppSettings() { appSettings = configFile.AppSettings.Settings; try { - string ActivateOnLaunchresult = appSettings[nameof(ActivateOnLaunch)].Value; + KeyValueConfigurationElement ActivateOnLaunchSetting = appSettings[nameof(ActivateOnLaunch)]; + string ActivateOnLaunchresult = ActivateOnLaunchSetting == null ? "false" : ActivateOnLaunchSetting.Value; _activateOnLaunch = bool.Parse(ActivateOnLaunchresult); } catch (Exception) { @@ -90,7 +91,8 @@ public AppSettings() { } try { - string AutomaticallyLaunchWithWindowsresult = appSettings[nameof(AutomaticallyLaunchWithWindows)].Value; + KeyValueConfigurationElement AutomaticallyLaunchWithWindowsSetting = appSettings[nameof(AutomaticallyLaunchWithWindows)]; + string AutomaticallyLaunchWithWindowsresult = AutomaticallyLaunchWithWindowsSetting == null ? "false" : AutomaticallyLaunchWithWindowsSetting.Value; _automaticallyLaunchWithWindows = bool.Parse(AutomaticallyLaunchWithWindowsresult); } catch (Exception) { @@ -100,7 +102,8 @@ public AppSettings() { } try { - string ShowMessageOnLaunchresult = appSettings[nameof(ShowMessageOnLaunch)].Value; + KeyValueConfigurationElement ShowMessageOnLaunchSetting = appSettings[nameof(ShowMessageOnLaunch)]; + string ShowMessageOnLaunchresult = ShowMessageOnLaunchSetting == null ? "true" : ShowMessageOnLaunchSetting.Value; _showMessageOnLaunch = bool.Parse(ShowMessageOnLaunchresult); } catch (Exception) { @@ -110,7 +113,8 @@ public AppSettings() { } try { - string DefaultDurationresult = appSettings[nameof(DefaultDuration)].Value; + KeyValueConfigurationElement DefaultDurationSetting = appSettings[nameof(DefaultDuration)]; + string DefaultDurationresult = DefaultDurationSetting == null ? "0" : DefaultDurationSetting.Value; _defaultDuration = int.Parse(DefaultDurationresult); } catch (Exception) { @@ -120,7 +124,8 @@ public AppSettings() { } try { - string Iconresult = appSettings[nameof(Icon)].Value; + KeyValueConfigurationElement IconSetting = appSettings[nameof(Icon)]; + string Iconresult = IconSetting == null ? "default" : IconSetting.Value; switch (Iconresult) { case "Mug": _icon = TrayIcon.Mug; @@ -140,7 +145,8 @@ public AppSettings() { } try { - string Durationsresult = appSettings[nameof(Durations)].Value; + KeyValueConfigurationElement DurationsSetting = appSettings[nameof(Durations)]; + string Durationsresult = DurationsSetting == null ? "0,15,60,120,480" : DurationsSetting.Value; List splitResult = Durationsresult.Split(',').ToList(); _durations = new ObservableCollection(); From 332f7de16c2ddab4d9b371d35575cf216c1b4348 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Mon, 22 Mar 2021 21:08:46 -0500 Subject: [PATCH 055/101] Use Windows Storage instead of .NET5 --- Helpers/AppSettings.cs | 175 +++++++++++++---------------------------- 1 file changed, 56 insertions(+), 119 deletions(-) diff --git a/Helpers/AppSettings.cs b/Helpers/AppSettings.cs index d3b4cf7..43b498a 100644 --- a/Helpers/AppSettings.cs +++ b/Helpers/AppSettings.cs @@ -1,14 +1,12 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Collections.ObjectModel; using System.Collections.Specialized; -using System.Configuration; using System.Linq; +using Windows.Storage; namespace Caffeinated.Helpers { public class AppSettings { - Configuration configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); - KeyValueConfigurationCollection appSettings; + ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings; private bool _activateOnLaunch; @@ -16,8 +14,7 @@ public bool ActivateOnLaunch { get { return _activateOnLaunch; } set { _activateOnLaunch = value; - appSettings[nameof(ActivateOnLaunch)].Value = _activateOnLaunch.ToString(); - configFile.Save(ConfigurationSaveMode.Modified); + localSettings.Values[nameof(ActivateOnLaunch)] = _activateOnLaunch.ToString(); } } @@ -27,8 +24,7 @@ public bool AutomaticallyLaunchWithWindows { get { return _automaticallyLaunchWithWindows; } set { _automaticallyLaunchWithWindows = value; - appSettings[nameof(AutomaticallyLaunchWithWindows)].Value = _automaticallyLaunchWithWindows.ToString(); - configFile.Save(ConfigurationSaveMode.Modified); + localSettings.Values[nameof(AutomaticallyLaunchWithWindows)] = _automaticallyLaunchWithWindows.ToString(); } } @@ -38,8 +34,7 @@ public bool ShowMessageOnLaunch { get { return _showMessageOnLaunch; } set { _showMessageOnLaunch = value; - appSettings[nameof(ShowMessageOnLaunch)].Value = _showMessageOnLaunch.ToString(); - configFile.Save(ConfigurationSaveMode.Modified); + localSettings.Values[nameof(ShowMessageOnLaunch)] = _showMessageOnLaunch.ToString(); } } @@ -48,9 +43,8 @@ public bool ShowMessageOnLaunch { public int DefaultDuration { get { return _defaultDuration; } set { - _defaultDuration = value; - appSettings[nameof(DefaultDuration)].Value = _defaultDuration.ToString(); - configFile.Save(ConfigurationSaveMode.Modified); + _defaultDuration = value; + localSettings.Values[nameof(DefaultDuration)] = _defaultDuration.ToString(); } } @@ -59,9 +53,8 @@ public int DefaultDuration { public TrayIcon Icon { get { return _icon; } set { - _icon = value; - appSettings[nameof(Icon)].Value = _icon.ToString(); - configFile.Save(ConfigurationSaveMode.Modified); + _icon = value; + localSettings.Values[nameof(Icon)] = _icon.ToString(); } } @@ -71,118 +64,62 @@ public ObservableCollection Durations { get { return _durations; } set { _durations = value; - appSettings[nameof(Durations)].Value = string.Join(',',Durations.ToArray()); - configFile.Save(ConfigurationSaveMode.Modified); + localSettings.Values[nameof(Durations)] = string.Join(',',Durations.ToArray()); } } public AppSettings() { - appSettings = configFile.AppSettings.Settings; - try { - KeyValueConfigurationElement ActivateOnLaunchSetting = appSettings[nameof(ActivateOnLaunch)]; - string ActivateOnLaunchresult = ActivateOnLaunchSetting == null ? "false" : ActivateOnLaunchSetting.Value; - _activateOnLaunch = bool.Parse(ActivateOnLaunchresult); - } - catch (Exception) { - _activateOnLaunch = false; - AddUpdateAppSettings(nameof(ActivateOnLaunch), _activateOnLaunch.ToString()); - Console.WriteLine($"Error reading _activateOnLaunch app settings"); - } - - try { - KeyValueConfigurationElement AutomaticallyLaunchWithWindowsSetting = appSettings[nameof(AutomaticallyLaunchWithWindows)]; - string AutomaticallyLaunchWithWindowsresult = AutomaticallyLaunchWithWindowsSetting == null ? "false" : AutomaticallyLaunchWithWindowsSetting.Value; - _automaticallyLaunchWithWindows = bool.Parse(AutomaticallyLaunchWithWindowsresult); - } - catch (Exception) { - _automaticallyLaunchWithWindows = false; - AddUpdateAppSettings(nameof(AutomaticallyLaunchWithWindows), _automaticallyLaunchWithWindows.ToString()); - Console.WriteLine("Error reading _automaticallyLaunchWithWindows app settings"); - } - - try { - KeyValueConfigurationElement ShowMessageOnLaunchSetting = appSettings[nameof(ShowMessageOnLaunch)]; - string ShowMessageOnLaunchresult = ShowMessageOnLaunchSetting == null ? "true" : ShowMessageOnLaunchSetting.Value; - _showMessageOnLaunch = bool.Parse(ShowMessageOnLaunchresult); - } - catch (Exception) { - _showMessageOnLaunch = true; - AddUpdateAppSettings(nameof(ShowMessageOnLaunch), _showMessageOnLaunch.ToString()); - Console.WriteLine($"Error reading _showMessageOnLaunch app settings"); - } - - try { - KeyValueConfigurationElement DefaultDurationSetting = appSettings[nameof(DefaultDuration)]; - string DefaultDurationresult = DefaultDurationSetting == null ? "0" : DefaultDurationSetting.Value; - _defaultDuration = int.Parse(DefaultDurationresult); - } - catch (Exception) { - _defaultDuration = 0; - AddUpdateAppSettings(nameof(DefaultDuration), _defaultDuration.ToString()); - Console.WriteLine("Error reading _defaultDuration app settings"); - } - - try { - KeyValueConfigurationElement IconSetting = appSettings[nameof(Icon)]; - string Iconresult = IconSetting == null ? "default" : IconSetting.Value; - switch (Iconresult) { - case "Mug": - _icon = TrayIcon.Mug; - break; - case "EyeWithZzz": - _icon = TrayIcon.EyeWithZzz; - break; - default: - _icon = TrayIcon.Default; - break; - } - } - catch (Exception) { - _icon = TrayIcon.Default; - AddUpdateAppSettings(nameof(Icon), _icon.ToString()); - Console.WriteLine($"Error reading Icon app settings"); - } - - try { - KeyValueConfigurationElement DurationsSetting = appSettings[nameof(Durations)]; - string Durationsresult = DurationsSetting == null ? "0,15,60,120,480" : DurationsSetting.Value; - List splitResult = Durationsresult.Split(',').ToList(); - - _durations = new ObservableCollection(); - foreach (string item in splitResult) { - _durations.Add(int.Parse(item)); - } - } - catch (Exception) { - _durations = new ObservableCollection { 0, 15, 60, 120, 480 }; - AddUpdateAppSettings(nameof(Durations), string.Join(',', _durations.ToArray())); - Console.WriteLine($"Error reading Durations app settings"); + string ActivateOnLaunchSetting = (string)localSettings.Values[nameof(ActivateOnLaunch)]; + if (ActivateOnLaunchSetting == null) + ActivateOnLaunchSetting = "false"; + _activateOnLaunch = bool.Parse(ActivateOnLaunchSetting); + + string AutomaticallyLaunchWithWindowsSetting = (string)localSettings.Values[nameof(AutomaticallyLaunchWithWindows)]; + if (AutomaticallyLaunchWithWindowsSetting == null) + AutomaticallyLaunchWithWindowsSetting = "false"; + _automaticallyLaunchWithWindows = bool.Parse(AutomaticallyLaunchWithWindowsSetting); + + string ShowMessageOnLaunchSetting = (string)localSettings.Values[nameof(ShowMessageOnLaunch)]; + if (ShowMessageOnLaunchSetting == null) + ShowMessageOnLaunchSetting = "true"; + _showMessageOnLaunch = bool.Parse(ShowMessageOnLaunchSetting); + + string DefaultDurationSetting = (string)localSettings.Values[nameof(DefaultDuration)]; + if (DefaultDurationSetting == null) + DefaultDurationSetting = "0"; + _defaultDuration = int.Parse(DefaultDurationSetting); + + string IconSetting = (string)localSettings.Values[nameof(Icon)]; + if (IconSetting == null) + IconSetting = "default"; + + switch (IconSetting) { + case "Mug": + _icon = TrayIcon.Mug; + break; + case "EyeWithZzz": + _icon = TrayIcon.EyeWithZzz; + break; + default: + _icon = TrayIcon.Default; + break; + } + + string DurationsSetting = (string)localSettings.Values[nameof(Durations)]; + if (DurationsSetting == null) + DurationsSetting = "0,15,60,120,480"; + List splitResult = DurationsSetting.Split(',').ToList(); + + _durations = new ObservableCollection(); + foreach (string item in splitResult) { + _durations.Add(int.Parse(item)); } Durations.CollectionChanged += Durations_CollectionChanged; - - configFile.Save(ConfigurationSaveMode.Modified); } private void Durations_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { - appSettings[nameof(Durations)].Value = string.Join(',', Durations.ToArray()); - configFile.Save(ConfigurationSaveMode.Modified); - } - - void AddUpdateAppSettings(string key, string value) { - try { - if (appSettings[key] == null) { - appSettings.Add(key, value); - } - else { - appSettings[key].Value = value; - } - configFile.Save(ConfigurationSaveMode.Modified); - ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name); - } - catch (ConfigurationErrorsException) { - Console.WriteLine("Error writing app settings"); - } + localSettings.Values[nameof(Durations)] = string.Join(',', Durations.ToArray()); } } } From defda1a245fc469e6aa732ba83c4b8f05df28d54 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Thu, 21 Oct 2021 20:28:04 -0500 Subject: [PATCH 056/101] Enable Nullable on Program --- Caffeinated.csproj | 3 +- Program.cs | 420 ++++++++++++++++++++++++++++++--------------- 2 files changed, 288 insertions(+), 135 deletions(-) diff --git a/Caffeinated.csproj b/Caffeinated.csproj index 4d73ccc..72fa20f 100644 --- a/Caffeinated.csproj +++ b/Caffeinated.csproj @@ -5,11 +5,12 @@ net5.0-windows10.0.17763.0 true false - + true Caffeinated Caffeinated Caffeinated.AppContext app.manifest + Enable diff --git a/Program.cs b/Program.cs index 3d23ff4..b1b1f78 100644 --- a/Program.cs +++ b/Program.cs @@ -1,72 +1,93 @@ -using System; +using Caffeinated.Helpers; +using Caffeinated.Properties; +using Microsoft.Win32; +using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.ComponentModel; using System.Diagnostics; using System.Drawing; using System.Linq; using System.Runtime.InteropServices; using System.Windows.Forms; -using Caffeinated.Helpers; -using Caffeinated.Properties; -using Microsoft.Win32; -namespace Caffeinated { - public class Duration: IComparable { +namespace Caffeinated +{ + public class Duration : IComparable + { public int Minutes { get; set; } - public string Description { - get { - return Duration.ToDescription(this.Minutes); + public string Description + { + get + { + return Duration.ToDescription(Minutes); } } - public static string ToDescription(int time) { - if (time == 0) { + public static string ToDescription(int time) + { + if (time == 0) + { return "Indefinitely"; } - + string returnDescription = ""; - if(time >= 60) { + if (time >= 60) + { int hours = time / 60; - if (hours == 1) { + if (hours == 1) + { returnDescription = "1 hr "; } - else { + else + { returnDescription = String.Format("{0} hrs ", hours); } } int mins = time % 60; - if(mins == 1) { + if (mins == 1) + { returnDescription += String.Format("{0} min", mins); } - if (mins > 1) { + if (mins > 1) + { returnDescription += String.Format("{0} mins", mins); } return returnDescription; } - public int CompareTo(object obj) { - if (obj == null) return 1; - - Duration otherDuration = obj as Duration; + public int CompareTo(object? obj) + { + if (obj == null) + { + return 1; + } - if (otherDuration != null) + if (obj is Duration otherDuration) { - if (otherDuration.Minutes > this.Minutes) + if (otherDuration.Minutes > Minutes) + { return 1; - - if (otherDuration.Minutes < this.Minutes) + } + + if (otherDuration.Minutes < Minutes) + { return -1; + } return 0; } else + { return 1; + } } } - internal static class NativeMethods { + internal static class NativeMethods + { [DllImport("kernel32.dll")] public static extern uint SetThreadExecutionState(uint esFlags); public const uint ES_CONTINUOUS = 0x80000000; @@ -74,49 +95,55 @@ internal static class NativeMethods { public const uint ES_DISPLAY_REQUIRED = 0x00000002; } - public class AppContext : ApplicationContext { - private NotifyIcon notifyIcon; - private IContainer components; - private Icon onIcon; - private Icon offIcon; + public class AppContext : ApplicationContext + { + private NotifyIcon? notifyIcon; + private IContainer? components; + private Icon? onIcon; + private Icon? offIcon; private bool isActivated = false; - private Timer timer; - private SettingsForm settingsForm = null; - private AboutForm aboutForm = null; + private Timer? timer; + private SettingsForm? settingsForm = null; + private AboutForm? aboutForm = null; private bool isLightTheme = false; - AppSettings appSettings; + private AppSettings? appSettings; [STAThread] - static void Main() { + private static void Main() + { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); - var context = new AppContext(); - if(context.notifyIcon == null) + AppContext? context = new AppContext(); + if (context.notifyIcon == null) + { Application.Exit(); + } else + { Application.Run(context); - + } } - public AppContext() { + public AppContext() + { // Caffeinated.exe - var processes = Process.GetProcessesByName("Caffeinated"); + Process[]? processes = Process.GetProcessesByName("Caffeinated"); if (processes.Length > 1) { // Is already running return; } - this.components = new Container(); - this.timer = new Timer(components); + components = new Container(); + timer = new Timer(components); timer.Tick += new EventHandler(timer_Tick); appSettings = new AppSettings(); SetIsLightTheme(); - + setIcons(); - this.notifyIcon = new NotifyIcon(this.components); + notifyIcon = new NotifyIcon(components); setContextMenu(); // tooltip @@ -127,55 +154,82 @@ public AppContext() { notifyIcon.MouseClick += new MouseEventHandler(notifyIcon1_Click); if (appSettings.ActivateOnLaunch) + { activate(Settings.Default.DefaultDuration); - else + } + else + { deactivate(); + } - if (appSettings.ShowMessageOnLaunch) + if (appSettings.ShowMessageOnLaunch) + { showSettings(); + } } - void SetIsLightTheme() { - try { - using (RegistryKey key = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize")) { - if (key != null) { - Object o = key.GetValue("SystemUsesLightTheme"); - if (o != null) { + private void SetIsLightTheme() + { + try + { + using (RegistryKey? key = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize")) + { + if (key != null) + { + Object? o = key.GetValue("SystemUsesLightTheme"); + if (o != null) + { if (o.ToString() == "1") + { isLightTheme = true; + } else + { isLightTheme = false; + } } } } } - catch (Exception) { + catch (Exception) + { isLightTheme = false; } } - private static String HexConverter(Color c) { + private static String HexConverter(Color c) + { return "#" + c.R.ToString("X2") + c.G.ToString("X2") + c.B.ToString("X2"); } - private void setIcons() { - switch (appSettings.Icon) { + private void setIcons() + { + if (appSettings == null) + { + return; + } + + switch (appSettings.Icon) + { case TrayIcon.Mug: - if (isLightTheme){ - this.offIcon = new Icon( + if (isLightTheme) + { + offIcon = new Icon( Properties.Resources.Mug_Sleep_Black_icon, SystemInformation.SmallIconSize ); - this.onIcon = new Icon( + onIcon = new Icon( Properties.Resources.Mug_Active_Black_icon, SystemInformation.SmallIconSize ); - } else{ - this.offIcon = new Icon( + } + else + { + offIcon = new Icon( Properties.Resources.mug_sleep_icon, SystemInformation.SmallIconSize ); - this.onIcon = new Icon( + onIcon = new Icon( Properties.Resources.mug_active_icon, SystemInformation.SmallIconSize ); @@ -183,42 +237,48 @@ private void setIcons() { break; case TrayIcon.EyeWithZzz: - if (isLightTheme){ - this.offIcon = new Icon( + if (isLightTheme) + { + offIcon = new Icon( Properties.Resources.Eye_zzz_Sleep_Black_icon, SystemInformation.SmallIconSize ); - this.onIcon = new Icon( + onIcon = new Icon( Properties.Resources.Eye_zzz_Active_Black_icon, SystemInformation.SmallIconSize ); - } else { - this.offIcon = new Icon( + } + else + { + offIcon = new Icon( Properties.Resources.Eye_zzz_Sleep_icon, SystemInformation.SmallIconSize ); - this.onIcon = new Icon( + onIcon = new Icon( Properties.Resources.Eye_zzz_Active_icon, SystemInformation.SmallIconSize ); } break; default: - if (isLightTheme) { - this.offIcon = new Icon( + if (isLightTheme) + { + offIcon = new Icon( Properties.Resources.Caffeine_Black_icon, SystemInformation.SmallIconSize ); - this.onIcon = new Icon( + onIcon = new Icon( Properties.Resources.SleepEye_Black_icon, SystemInformation.SmallIconSize ); - } else { - this.offIcon = new Icon( + } + else + { + offIcon = new Icon( Properties.Resources.cup_coffee_icon_bw, SystemInformation.SmallIconSize ); - this.onIcon = new Icon( + onIcon = new Icon( Properties.Resources.cup_coffee_icon, SystemInformation.SmallIconSize ); @@ -227,33 +287,51 @@ private void setIcons() { } } - public void setContextMenu() { - var contextMenu = new ContextMenuStrip(); + public void setContextMenu() + { + if (appSettings == null + || notifyIcon == null) + { + return; + } + + ContextMenuStrip? contextMenu = new(); - var exitItem = new ToolStripMenuItem("E&xit"); - exitItem.Click += new EventHandler(this.exitItem_Click); + ToolStripMenuItem? exitItem = new("E&xit"); + exitItem.Click += new(exitItem_Click); // If the user deleted all time settings, add 0 back in. if (appSettings.Durations.Count == 0) + { appSettings.DefaultDuration = 0; + } // we want the lower durations to be closer to the mouse. So, - var times = appSettings.Durations; + ObservableCollection? times = appSettings.Durations; IEnumerable sortedTimes = Enumerable.Empty(); - if ((new Taskbar()).Position == TaskbarPosition.Top) { - sortedTimes = times.OrderBy(i => i); + if ((new Taskbar()).Position == TaskbarPosition.Top) + { + if (times != null) + { + sortedTimes = times.OrderBy(i => i); + } } - else { - sortedTimes = times.OrderByDescending(i => i); + else + { + if (times != null) + { + sortedTimes = times.OrderByDescending(i => i); + } } - var settingsItem = new ToolStripMenuItem("&Settings..."); - settingsItem.Click += new EventHandler(settingsItem_Click); + ToolStripMenuItem? settingsItem = new("&Settings..."); + settingsItem.Click += new(settingsItem_Click); - var aboutItem = new ToolStripMenuItem("&About..."); - aboutItem.Click += new EventHandler(aboutItem_Click); + ToolStripMenuItem? aboutItem = new("&About..."); + aboutItem.Click += new(aboutItem_Click); - var settingsMenuItem = new ContextMenuStrip(){ + ContextMenuStrip? settingsMenuItem = new() + { Text = "Settings", }; @@ -266,63 +344,104 @@ public void setContextMenu() { ); contextMenu.Items.Add(new ToolStripSeparator()); - foreach (var time in sortedTimes) { - var item = new ToolStripMenuItem(Duration.ToDescription(time)); + foreach (int time in sortedTimes) + { + ToolStripMenuItem? item = new(Duration.ToDescription(time)); item.Tag = time; - item.Click += new EventHandler(item_Click); + item.Click += new(item_Click); contextMenu.Items.Add(item); } notifyIcon.ContextMenuStrip = contextMenu; } - void aboutItem_Click(object sender, EventArgs e) { - if (Application.OpenForms.OfType().Any() == false) { - aboutForm = new AboutForm(); + private void aboutItem_Click(object? sender, EventArgs e) + { + if (Application.OpenForms.OfType().Any() == false) + { + aboutForm = new(); aboutForm.Show(); } } - void settingsItem_Click(object sender, EventArgs e) { - if(Application.OpenForms.OfType().Any() == false) + private void settingsItem_Click(object? sender, EventArgs e) + { + if (Application.OpenForms.OfType().Any() == false) + { showSettings(); + } } - void showSettings() { - settingsForm = new SettingsForm(appSettings); + private void showSettings() + { + if (appSettings == null) + { + return; + } + + settingsForm = new(appSettings); settingsForm.FormClosing += SettingsForm_FormClosing; settingsForm.Show(); } - private void SettingsForm_FormClosing(object sender, FormClosingEventArgs e) { + private void SettingsForm_FormClosing(object? sender, FormClosingEventArgs e) + { setContextMenu(); SetIsLightTheme(); setIcons(); - if (isActivated) - notifyIcon.Icon = onIcon; - else - notifyIcon.Icon = offIcon; + if (notifyIcon != null) + { + if (isActivated) + { + notifyIcon.Icon = onIcon; + } + else + { + notifyIcon.Icon = offIcon; + } + } } - void timer_Tick(object sender, EventArgs e) { + private void timer_Tick(object? sender, EventArgs e) + { deactivate(); } - void item_Click(object sender, EventArgs e) { - int time = (int)((ToolStripMenuItem)sender).Tag; - this.activate(time); + private void item_Click(object? sender, EventArgs e) + { + if (sender is ToolStripMenuItem tsmi + && tsmi.Tag is int time) + { + activate(time); + } } - void notifyIcon1_Click(object sender, MouseEventArgs e) { - if (e.Button != MouseButtons.Left) return; - if (this.isActive()) - this.deactivate(); + private void notifyIcon1_Click(object? sender, MouseEventArgs e) + { + if (e.Button != MouseButtons.Left) + { + return; + } + + bool? isactive = isActive(); + + if (isactive != null + && isactive == true) + { + deactivate(); + } else - this.activate(appSettings.DefaultDuration); + { + if (appSettings != null) + { + activate(appSettings.DefaultDuration); + } + } } - void ShowError() { + private void ShowError() + { MessageBox.Show( "Call to SetThreadExecutionState failed.", "Caffeinated", @@ -330,47 +449,80 @@ void ShowError() { ); } - bool isActive() { - return notifyIcon.Icon == onIcon; + private bool? isActive() + { + if (notifyIcon != null) + { + return notifyIcon.Icon == onIcon; + } + + return false; } - void activate(int duration) { - var sleepDisabled = NativeMethods.ES_CONTINUOUS | + private void activate(int duration) + { + uint sleepDisabled = NativeMethods.ES_CONTINUOUS | NativeMethods.ES_DISPLAY_REQUIRED; uint previousState = NativeMethods.SetThreadExecutionState(sleepDisabled); - if (previousState == 0) { + if (previousState == 0) + { ShowError(); ExitThread(); } - if (duration > 0) { - this.timer.Interval = duration * 60 * 1000; - this.timer.Start(); + if (duration > 0 + && timer != null) + { + timer.Interval = duration * 60 * 1000; + timer.Start(); + } + isActivated = true; + + if (notifyIcon != null) + { + notifyIcon.Icon = onIcon; + notifyIcon.Text = "Caffeinated: sleep not allowed!"; } - this.isActivated = true; - this.notifyIcon.Icon = onIcon; - this.notifyIcon.Text = "Caffeinated: sleep not allowed!"; } - void deactivate() { - timer.Stop(); + private void deactivate() + { + if (timer != null) + { + timer.Stop(); + } + uint result = NativeMethods.SetThreadExecutionState(NativeMethods.ES_CONTINUOUS); - if (result == 0) { + if (result == 0) + { ShowError(); } - this.isActivated = false; - this.notifyIcon.Icon = offIcon; - this.notifyIcon.Text = "Caffeinated: sleep allowed"; + isActivated = false; + + if (notifyIcon != null) + { + notifyIcon.Icon = offIcon; + notifyIcon.Text = "Caffeinated: sleep allowed"; + } } - private void exitItem_Click(object Sender, EventArgs e) { + private void exitItem_Click(object? Sender, EventArgs e) + { deactivate(); - notifyIcon.Dispose(); + if (notifyIcon != null) + { + notifyIcon.Dispose(); + } + ExitThread(); } - protected override void Dispose(bool disposing) { + protected override void Dispose(bool disposing) + { if (disposing && components != null) + { components.Dispose(); + } + base.Dispose(disposing); } } From 88c109061c3eb15c61f21cd15a6e5fc8bda8ae0f Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sat, 23 Oct 2021 08:45:01 -0500 Subject: [PATCH 057/101] Add editor config file --- .editorconfig | 5 +++++ Caffeinated.sln | 9 +++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..f429cb3 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,5 @@ +[*.cs] + +# IDE1006: Naming Styles +dotnet_diagnostic.IDE1006.severity = none +csharp_prefer_braces=when_multiline:silent diff --git a/Caffeinated.sln b/Caffeinated.sln index 9559c3d..da19c75 100644 --- a/Caffeinated.sln +++ b/Caffeinated.sln @@ -1,12 +1,17 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29728.190 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31815.197 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Caffeinated", "Caffeinated.csproj", "{AAEC62D1-5C45-45F6-9225-193CD45C3E8F}" EndProject Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "Caffeinated_Package", "..\Caffeinated_Package\Caffeinated_Package.wapproj", "{CC32EB7E-6CC3-4139-BD90-09D0A04439D4}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{3F14C578-20D2-4EDC-9FA2-A7FCBD650A53}" + ProjectSection(SolutionItems) = preProject + .editorconfig = .editorconfig + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU From 62fa294d3d4094fcdb807f53f6d087be29af72c2 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Mon, 29 Nov 2021 20:24:20 -0600 Subject: [PATCH 058/101] Update Code styles and enable nullable --- .editorconfig | 4 + About.cs | 10 +- Caffeinated.csproj | 4 +- Program.cs | 294 ++++++++++++++++----------------------------- SettingsForm.cs | 28 ++--- 5 files changed, 131 insertions(+), 209 deletions(-) diff --git a/.editorconfig b/.editorconfig index f429cb3..e8b5084 100644 --- a/.editorconfig +++ b/.editorconfig @@ -3,3 +3,7 @@ # IDE1006: Naming Styles dotnet_diagnostic.IDE1006.severity = none csharp_prefer_braces=when_multiline:silent +csharp_new_line_before_open_brace=all + +[*.{cs,vb}] +dotnet_diagnostic.CA1416.severity=silent \ No newline at end of file diff --git a/About.cs b/About.cs index 3b2924e..d081b20 100644 --- a/About.cs +++ b/About.cs @@ -1,6 +1,7 @@ using System.Reflection; using System.Windows.Forms; using System.Diagnostics; +using System.IO; namespace Caffeinated { partial class AboutForm : BaseForm { @@ -19,7 +20,7 @@ public AboutForm() : base() { #region Assembly Attribute Accessors - public string AssemblyTitle { + public static string AssemblyTitle { get { object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false); if (attributes.Length > 0) { @@ -28,7 +29,12 @@ public string AssemblyTitle { return titleAttribute.Title; } } - return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase); + string? systemString = Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase); + + if (systemString == null) + return ""; + else + return systemString; } } diff --git a/Caffeinated.csproj b/Caffeinated.csproj index 72fa20f..2e6ef3e 100644 --- a/Caffeinated.csproj +++ b/Caffeinated.csproj @@ -2,7 +2,7 @@ WinExe - net5.0-windows10.0.17763.0 + net6.0-windows10.0.19041.0 true false true @@ -38,6 +38,6 @@ - + \ No newline at end of file diff --git a/Program.cs b/Program.cs index b1b1f78..a635978 100644 --- a/Program.cs +++ b/Program.cs @@ -11,83 +11,65 @@ using System.Runtime.InteropServices; using System.Windows.Forms; -namespace Caffeinated -{ - public class Duration : IComparable - { +namespace Caffeinated { + public class Duration : IComparable { public int Minutes { get; set; } - public string Description - { - get - { + public string Description { + get { return Duration.ToDescription(Minutes); } } - public static string ToDescription(int time) - { - if (time == 0) - { + public static string ToDescription(int time) { + if (time == 0) { return "Indefinitely"; } string returnDescription = ""; - if (time >= 60) - { + if (time >= 60) { int hours = time / 60; - if (hours == 1) - { + if (hours == 1) { returnDescription = "1 hr "; } - else - { - returnDescription = String.Format("{0} hrs ", hours); + else { + returnDescription = string.Format("{0} hrs ", hours); } } int mins = time % 60; - if (mins == 1) - { - returnDescription += String.Format("{0} min", mins); + if (mins == 1) { + returnDescription += string.Format("{0} min", mins); } - if (mins > 1) - { - returnDescription += String.Format("{0} mins", mins); + if (mins > 1) { + returnDescription += string.Format("{0} mins", mins); } return returnDescription; } - public int CompareTo(object? obj) - { - if (obj == null) - { + public int CompareTo(object? obj) { + if (obj == null) { return 1; } - if (obj is Duration otherDuration) - { - if (otherDuration.Minutes > Minutes) - { + if (obj is Duration otherDuration) { + if (otherDuration.Minutes > Minutes) { return 1; } - if (otherDuration.Minutes < Minutes) - { + if (otherDuration.Minutes < Minutes) { return -1; } return 0; } - else - { + else { return 1; } } } - internal static class NativeMethods - { + internal static class NativeMethods { [DllImport("kernel32.dll")] public static extern uint SetThreadExecutionState(uint esFlags); public const uint ES_CONTINUOUS = 0x80000000; @@ -95,8 +77,7 @@ internal static class NativeMethods public const uint ES_DISPLAY_REQUIRED = 0x00000002; } - public class AppContext : ApplicationContext - { + public class AppContext : ApplicationContext { private NotifyIcon? notifyIcon; private IContainer? components; private Icon? onIcon; @@ -109,27 +90,23 @@ public class AppContext : ApplicationContext private AppSettings? appSettings; [STAThread] - private static void Main() - { + private static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); - AppContext? context = new AppContext(); - if (context.notifyIcon == null) - { + Application.SetHighDpiMode(HighDpiMode.PerMonitorV2); + AppContext? context = new(); + if (context.notifyIcon == null) { Application.Exit(); } - else - { + else { Application.Run(context); } } - public AppContext() - { + public AppContext() { // Caffeinated.exe Process[]? processes = Process.GetProcessesByName("Caffeinated"); - if (processes.Length > 1) - { + if (processes.Length > 1) { // Is already running return; } @@ -153,133 +130,113 @@ public AppContext() // Handle the DoubleClick event to activate the form. notifyIcon.MouseClick += new MouseEventHandler(notifyIcon1_Click); - if (appSettings.ActivateOnLaunch) - { + if (appSettings.ActivateOnLaunch) { activate(Settings.Default.DefaultDuration); } - else - { + else { deactivate(); } - if (appSettings.ShowMessageOnLaunch) - { + if (appSettings.ShowMessageOnLaunch) { showSettings(); } } - private void SetIsLightTheme() - { - try - { - using (RegistryKey? key = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize")) - { - if (key != null) - { + private void SetIsLightTheme() { + try { + using (RegistryKey? key = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize")) { + if (key != null) { Object? o = key.GetValue("SystemUsesLightTheme"); - if (o != null) - { - if (o.ToString() == "1") - { + if (o != null) { + if (o.ToString() == "1") { isLightTheme = true; } - else - { + else { isLightTheme = false; } } } } } - catch (Exception) - { + catch (Exception) { isLightTheme = false; } } - private static String HexConverter(Color c) - { + private static String HexConverter(Color c) { return "#" + c.R.ToString("X2") + c.G.ToString("X2") + c.B.ToString("X2"); } - private void setIcons() - { - if (appSettings == null) - { + private void setIcons() { + if (appSettings == null) { return; } switch (appSettings.Icon) { case TrayIcon.Mug: - if (isLightTheme) - { + if (isLightTheme) { offIcon = new Icon( - Properties.Resources.Mug_Sleep_Black_icon, + Resources.Mug_Sleep_Black_icon, SystemInformation.SmallIconSize ); onIcon = new Icon( - Properties.Resources.Mug_Active_Black_icon, + Resources.Mug_Active_Black_icon, SystemInformation.SmallIconSize ); } - else - { + else { offIcon = new Icon( - Properties.Resources.mug_sleep_icon, + Resources.mug_sleep_icon, SystemInformation.SmallIconSize ); onIcon = new Icon( - Properties.Resources.mug_active_icon, + Resources.mug_active_icon, SystemInformation.SmallIconSize ); } break; case TrayIcon.EyeWithZzz: - if (isLightTheme) - { + if (isLightTheme) { offIcon = new Icon( - Properties.Resources.Eye_zzz_Sleep_Black_icon, + Resources.Eye_zzz_Sleep_Black_icon, SystemInformation.SmallIconSize ); onIcon = new Icon( - Properties.Resources.Eye_zzz_Active_Black_icon, + Resources.Eye_zzz_Active_Black_icon, SystemInformation.SmallIconSize ); } - else - { + else { offIcon = new Icon( - Properties.Resources.Eye_zzz_Sleep_icon, + Resources.Eye_zzz_Sleep_icon, SystemInformation.SmallIconSize ); onIcon = new Icon( - Properties.Resources.Eye_zzz_Active_icon, + Resources.Eye_zzz_Active_icon, SystemInformation.SmallIconSize ); } break; default: - if (isLightTheme) - { + if (isLightTheme) { offIcon = new Icon( - Properties.Resources.Caffeine_Black_icon, + Resources.Caffeine_Black_icon, SystemInformation.SmallIconSize ); onIcon = new Icon( - Properties.Resources.SleepEye_Black_icon, + Resources.SleepEye_Black_icon, SystemInformation.SmallIconSize ); } - else - { + else { offIcon = new Icon( - Properties.Resources.cup_coffee_icon_bw, + Resources.cup_coffee_icon_bw, SystemInformation.SmallIconSize ); onIcon = new Icon( - Properties.Resources.cup_coffee_icon, + Resources.cup_coffee_icon, SystemInformation.SmallIconSize ); } @@ -287,11 +244,8 @@ private void setIcons() } } - public void setContextMenu() - { - if (appSettings == null - || notifyIcon == null) - { + public void setContextMenu() { + if (appSettings == null || notifyIcon == null) { return; } @@ -301,25 +255,20 @@ public void setContextMenu() exitItem.Click += new(exitItem_Click); // If the user deleted all time settings, add 0 back in. - if (appSettings.Durations.Count == 0) - { + if (appSettings.Durations.Count == 0) { appSettings.DefaultDuration = 0; } // we want the lower durations to be closer to the mouse. So, ObservableCollection? times = appSettings.Durations; IEnumerable sortedTimes = Enumerable.Empty(); - if ((new Taskbar()).Position == TaskbarPosition.Top) - { - if (times != null) - { + if ((new Taskbar()).Position == TaskbarPosition.Top) { + if (times != null) { sortedTimes = times.OrderBy(i => i); } } - else - { - if (times != null) - { + else { + if (times != null) { sortedTimes = times.OrderByDescending(i => i); } } @@ -330,8 +279,7 @@ public void setContextMenu() ToolStripMenuItem? aboutItem = new("&About..."); aboutItem.Click += new(aboutItem_Click); - ContextMenuStrip? settingsMenuItem = new() - { + ContextMenuStrip? settingsMenuItem = new() { Text = "Settings", }; @@ -344,8 +292,7 @@ public void setContextMenu() ); contextMenu.Items.Add(new ToolStripSeparator()); - foreach (int time in sortedTimes) - { + foreach (int time in sortedTimes) { ToolStripMenuItem? item = new(Duration.ToDescription(time)); item.Tag = time; item.Click += new(item_Click); @@ -355,27 +302,21 @@ public void setContextMenu() notifyIcon.ContextMenuStrip = contextMenu; } - private void aboutItem_Click(object? sender, EventArgs e) - { - if (Application.OpenForms.OfType().Any() == false) - { + private void aboutItem_Click(object? sender, EventArgs e) { + if (Application.OpenForms.OfType().Any() == false) { aboutForm = new(); aboutForm.Show(); } } - private void settingsItem_Click(object? sender, EventArgs e) - { - if (Application.OpenForms.OfType().Any() == false) - { + private void settingsItem_Click(object? sender, EventArgs e) { + if (Application.OpenForms.OfType().Any() == false) { showSettings(); } } - private void showSettings() - { - if (appSettings == null) - { + private void showSettings() { + if (appSettings == null) { return; } @@ -384,64 +325,49 @@ private void showSettings() settingsForm.Show(); } - private void SettingsForm_FormClosing(object? sender, FormClosingEventArgs e) - { + private void SettingsForm_FormClosing(object? sender, FormClosingEventArgs e) { setContextMenu(); SetIsLightTheme(); setIcons(); - if (notifyIcon != null) - { - if (isActivated) - { + if (notifyIcon != null) { + if (isActivated) { notifyIcon.Icon = onIcon; } - else - { + else { notifyIcon.Icon = offIcon; } } } - private void timer_Tick(object? sender, EventArgs e) - { + private void timer_Tick(object? sender, EventArgs e) { deactivate(); } - private void item_Click(object? sender, EventArgs e) - { - if (sender is ToolStripMenuItem tsmi - && tsmi.Tag is int time) - { + private void item_Click(object? sender, EventArgs e) { + if (sender is ToolStripMenuItem tsmi && tsmi.Tag is int time) { activate(time); } } - private void notifyIcon1_Click(object? sender, MouseEventArgs e) - { - if (e.Button != MouseButtons.Left) - { + private void notifyIcon1_Click(object? sender, MouseEventArgs e) { + if (e.Button != MouseButtons.Left) { return; } bool? isactive = isActive(); - if (isactive != null - && isactive == true) - { + if (isactive != null && isactive == true) { deactivate(); } - else - { - if (appSettings != null) - { + else { + if (appSettings != null) { activate(appSettings.DefaultDuration); } } } - private void ShowError() - { + private void ShowError() { MessageBox.Show( "Call to SetThreadExecutionState failed.", "Caffeinated", @@ -449,77 +375,63 @@ private void ShowError() ); } - private bool? isActive() - { - if (notifyIcon != null) - { + private bool? isActive() { + if (notifyIcon != null) { return notifyIcon.Icon == onIcon; } return false; } - private void activate(int duration) - { + private void activate(int duration) { uint sleepDisabled = NativeMethods.ES_CONTINUOUS | NativeMethods.ES_DISPLAY_REQUIRED; uint previousState = NativeMethods.SetThreadExecutionState(sleepDisabled); - if (previousState == 0) - { + if (previousState == 0) { ShowError(); ExitThread(); } if (duration > 0 - && timer != null) - { + && timer != null) { timer.Interval = duration * 60 * 1000; timer.Start(); } isActivated = true; - if (notifyIcon != null) - { + if (notifyIcon != null) { notifyIcon.Icon = onIcon; notifyIcon.Text = "Caffeinated: sleep not allowed!"; } } - private void deactivate() - { - if (timer != null) - { + private void deactivate() { + if (timer != null) { timer.Stop(); } uint result = NativeMethods.SetThreadExecutionState(NativeMethods.ES_CONTINUOUS); - if (result == 0) - { + if (result == 0) { ShowError(); } isActivated = false; - if (notifyIcon != null) - { + if (notifyIcon != null) { notifyIcon.Icon = offIcon; notifyIcon.Text = "Caffeinated: sleep allowed"; } } - private void exitItem_Click(object? Sender, EventArgs e) - { + private void exitItem_Click(object? Sender, EventArgs e) { deactivate(); - if (notifyIcon != null) - { + if (notifyIcon != null) { notifyIcon.Dispose(); } ExitThread(); } - protected override void Dispose(bool disposing) - { - if (disposing && components != null) - { + protected override void Dispose(bool disposing) { + if (disposing && components != null) { components.Dispose(); } diff --git a/SettingsForm.cs b/SettingsForm.cs index 6365e2a..f1404ee 100644 --- a/SettingsForm.cs +++ b/SettingsForm.cs @@ -4,7 +4,6 @@ using System.Linq; using System.Windows.Forms; using Caffeinated.Helpers; -using Caffeinated.Properties; using Windows.ApplicationModel; namespace Caffeinated { @@ -33,9 +32,9 @@ public SettingsForm(AppSettings passedAppSettings) : base() { DefaultDurationBox.ValueMember = "Minutes"; DefaultDurationBox.SelectedItem = defaultItem; - ToolStripMenuItem deleteMI = new ToolStripMenuItem("Delete Duration"); + ToolStripMenuItem deleteMI = new("Delete Duration"); deleteMI.Click += DeleteMI_Click; - ContextMenuStrip durationCM = new ContextMenuStrip(); + ContextMenuStrip durationCM = new(); durationCM.Items.Add(deleteMI); DefaultDurationBox.ContextMenuStrip = durationCM; @@ -57,8 +56,9 @@ private void setRadioButtons() { } } - private void DeleteMI_Click(object sender, EventArgs e) { - Duration durationToDelete = DefaultDurationBox.SelectedItem as Duration; + private void DeleteMI_Click(object? sender, EventArgs e) { + if (DefaultDurationBox.SelectedItem is not Duration durationToDelete) + return; DialogResult result = MessageBox.Show( $"Delete {durationToDelete.Description}?", @@ -122,8 +122,7 @@ private void cancelBtn_Click(object sender, EventArgs e) { } private void DefaultDurationBox_SelectedIndexChanged(object sender,EventArgs e) { - var item = DefaultDurationBox.SelectedItem as Duration; - if (item != null) { + if (DefaultDurationBox.SelectedItem is Duration item) { appSettings.DefaultDuration = item.Minutes; } } @@ -131,8 +130,7 @@ private void DefaultDurationBox_SelectedIndexChanged(object sender,EventArgs e) private async void StartupChkBox_CheckedChanged(object sender, EventArgs e) { StartupTask startupTask = await StartupTask.GetAsync("StartCaffeinated"); - switch (StartupChkBox.Checked) - { + switch (StartupChkBox.Checked) { case true: StartupTaskState newState = await startupTask.RequestEnableAsync(); Debug.WriteLine("Request to enable startup, result = {0}", newState); @@ -147,8 +145,10 @@ private async void StartupChkBox_CheckedChanged(object sender, EventArgs e) { } private void addCustomDurationBTN_Click(object sender, EventArgs e) { - int newDuration = 0; - int.TryParse(CustomDurationTXBX.Text, out newDuration); + bool didParse = int.TryParse(CustomDurationTXBX.Text, out int newDuration); + + if (didParse == false) + return; if ( newDuration < 0) { CustomDurationTXBX.Text = ""; @@ -170,7 +170,7 @@ private void addCustomDurationBTN_Click(object sender, EventArgs e) { return; } - Duration newCustomDuration = new Duration { + Duration newCustomDuration = new() { Minutes = newDuration }; @@ -180,9 +180,9 @@ private void addCustomDurationBTN_Click(object sender, EventArgs e) { foreach (var item in sortedDurations) { Durations.Add(item); } - appSettings.Durations.Add(newDuration); + appSettings.Durations.Add(newDuration); - CustomDurationTXBX.Text = ""; + CustomDurationTXBX.Text = ""; } private void defaultRDBTN_Click(object sender, EventArgs e) { From 3d9c434f5942ac45a0dbd22c459c48492f50152b Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Mon, 29 Nov 2021 21:46:27 -0600 Subject: [PATCH 059/101] Monitor theme changes --- Helpers/RegistryMonitor.cs | 394 +++++++++++++++++++++++++++++++++++++ Program.cs | 29 ++- 2 files changed, 419 insertions(+), 4 deletions(-) create mode 100644 Helpers/RegistryMonitor.cs diff --git a/Helpers/RegistryMonitor.cs b/Helpers/RegistryMonitor.cs new file mode 100644 index 0000000..bdfa27c --- /dev/null +++ b/Helpers/RegistryMonitor.cs @@ -0,0 +1,394 @@ +using System; +using System.ComponentModel; +using System.IO; +using System.Threading; +using System.Runtime.InteropServices; +using Microsoft.Win32; + +namespace RegistryUtils +{ + /// + /// RegistryMonitor allows you to monitor specific registry key. + /// + /// + /// If a monitored registry key changes, an event is fired. You can subscribe to these + /// events by adding a delegate to . + /// The Windows API provides a function + /// + /// RegNotifyChangeKeyValue, which is not covered by the + /// class. imports + /// that function and encapsulates it in a convenient manner. + /// + /// + /// + /// This sample shows how to monitor HKEY_CURRENT_USER\Environment for changes: + /// + /// public class MonitorSample + /// { + /// static void Main() + /// { + /// RegistryMonitor monitor = new RegistryMonitor(RegistryHive.CurrentUser, "Environment"); + /// monitor.RegChanged += new EventHandler(OnRegChanged); + /// monitor.Start(); + /// + /// while(true); + /// + /// monitor.Stop(); + /// } + /// + /// private void OnRegChanged(object sender, EventArgs e) + /// { + /// Console.WriteLine("registry key has changed"); + /// } + /// } + /// + /// + public class RegistryMonitor : IDisposable + { + #region P/Invoke + + [DllImport("advapi32.dll", SetLastError = true)] + private static extern int RegOpenKeyEx(IntPtr hKey, string subKey, uint options, int samDesired, + out IntPtr phkResult); + + [DllImport("advapi32.dll", SetLastError = true)] + private static extern int RegNotifyChangeKeyValue(IntPtr hKey, bool bWatchSubtree, + RegChangeNotifyFilter dwNotifyFilter, IntPtr hEvent, + bool fAsynchronous); + + [DllImport("advapi32.dll", SetLastError = true)] + private static extern int RegCloseKey(IntPtr hKey); + + private const int KEY_QUERY_VALUE = 0x0001; + private const int KEY_NOTIFY = 0x0010; + private const int STANDARD_RIGHTS_READ = 0x00020000; + + private static readonly IntPtr HKEY_CLASSES_ROOT = new IntPtr(unchecked((int) 0x80000000)); + private static readonly IntPtr HKEY_CURRENT_USER = new IntPtr(unchecked((int) 0x80000001)); + private static readonly IntPtr HKEY_LOCAL_MACHINE = new IntPtr(unchecked((int) 0x80000002)); + private static readonly IntPtr HKEY_USERS = new IntPtr(unchecked((int) 0x80000003)); + private static readonly IntPtr HKEY_PERFORMANCE_DATA = new IntPtr(unchecked((int) 0x80000004)); + private static readonly IntPtr HKEY_CURRENT_CONFIG = new IntPtr(unchecked((int) 0x80000005)); + private static readonly IntPtr HKEY_DYN_DATA = new IntPtr(unchecked((int) 0x80000006)); + + #endregion + + #region Event handling + + /// + /// Occurs when the specified registry key has changed. + /// + public event EventHandler RegChanged; + + /// + /// Raises the event. + /// + /// + ///

+ /// OnRegChanged is called when the specified registry key has changed. + ///

+ /// + /// When overriding in a derived class, be sure to call + /// the base class's method. + /// + ///
+ protected virtual void OnRegChanged() + { + EventHandler handler = RegChanged; + if (handler != null) + handler(this, null); + } + + /// + /// Occurs when the access to the registry fails. + /// + public event ErrorEventHandler Error; + + /// + /// Raises the event. + /// + /// The which occured while watching the registry. + /// + ///

+ /// OnError is called when an exception occurs while watching the registry. + ///

+ /// + /// When overriding in a derived class, be sure to call + /// the base class's method. + /// + ///
+ protected virtual void OnError(Exception e) + { + ErrorEventHandler handler = Error; + if (handler != null) + handler(this, new ErrorEventArgs(e)); + } + + #endregion + + #region Private member variables + + private IntPtr _registryHive; + private string _registrySubName; + private object _threadLock = new object(); + private Thread _thread; + private bool _disposed = false; + private ManualResetEvent _eventTerminate = new ManualResetEvent(false); + + private RegChangeNotifyFilter _regFilter = RegChangeNotifyFilter.Key | RegChangeNotifyFilter.Attribute | + RegChangeNotifyFilter.Value | RegChangeNotifyFilter.Security; + + #endregion + + /// + /// Initializes a new instance of the class. + /// + /// The registry key to monitor. + public RegistryMonitor(RegistryKey registryKey) + { + InitRegistryKey(registryKey.Name); + } + + /// + /// Initializes a new instance of the class. + /// + /// The name. + public RegistryMonitor(string name) + { + if (name == null || name.Length == 0) + throw new ArgumentNullException("name"); + + InitRegistryKey(name); + } + + /// + /// Initializes a new instance of the class. + /// + /// The registry hive. + /// The sub key. + public RegistryMonitor(RegistryHive registryHive, string subKey) + { + InitRegistryKey(registryHive, subKey); + } + + /// + /// Disposes this object. + /// + public void Dispose() + { + Stop(); + _disposed = true; + GC.SuppressFinalize(this); + } + + /// + /// Gets or sets the RegChangeNotifyFilter. + /// + public RegChangeNotifyFilter RegChangeNotifyFilter + { + get { return _regFilter; } + set + { + lock (_threadLock) + { + if (IsMonitoring) + throw new InvalidOperationException("Monitoring thread is already running"); + + _regFilter = value; + } + } + } + + #region Initialization + + private void InitRegistryKey(RegistryHive hive, string name) + { + switch (hive) + { + case RegistryHive.ClassesRoot: + _registryHive = HKEY_CLASSES_ROOT; + break; + + case RegistryHive.CurrentConfig: + _registryHive = HKEY_CURRENT_CONFIG; + break; + + case RegistryHive.CurrentUser: + _registryHive = HKEY_CURRENT_USER; + break; + + //case RegistryHive.DynData: + // _registryHive = HKEY_DYN_DATA; + // break; + + case RegistryHive.LocalMachine: + _registryHive = HKEY_LOCAL_MACHINE; + break; + + case RegistryHive.PerformanceData: + _registryHive = HKEY_PERFORMANCE_DATA; + break; + + case RegistryHive.Users: + _registryHive = HKEY_USERS; + break; + + default: + throw new InvalidEnumArgumentException("hive", (int)hive, typeof (RegistryHive)); + } + _registrySubName = name; + } + + private void InitRegistryKey(string name) + { + string[] nameParts = name.Split('\\'); + + switch (nameParts[0]) + { + case "HKEY_CLASSES_ROOT": + case "HKCR": + _registryHive = HKEY_CLASSES_ROOT; + break; + + case "HKEY_CURRENT_USER": + case "HKCU": + _registryHive = HKEY_CURRENT_USER; + break; + + case "HKEY_LOCAL_MACHINE": + case "HKLM": + _registryHive = HKEY_LOCAL_MACHINE; + break; + + case "HKEY_USERS": + _registryHive = HKEY_USERS; + break; + + case "HKEY_CURRENT_CONFIG": + _registryHive = HKEY_CURRENT_CONFIG; + break; + + default: + _registryHive = IntPtr.Zero; + throw new ArgumentException("The registry hive '" + nameParts[0] + "' is not supported", "value"); + } + + _registrySubName = String.Join("\\", nameParts, 1, nameParts.Length - 1); + } + + #endregion + + /// + /// true if this object is currently monitoring; + /// otherwise, false. + /// + public bool IsMonitoring + { + get { return _thread != null; } + } + + /// + /// Start monitoring. + /// + public void Start() + { + if (_disposed) + throw new ObjectDisposedException(null, "This instance is already disposed"); + + lock (_threadLock) + { + if (!IsMonitoring) + { + _eventTerminate.Reset(); + _thread = new Thread(new ThreadStart(MonitorThread)); + _thread.IsBackground = true; + _thread.Start(); + } + } + } + + /// + /// Stops the monitoring thread. + /// + public void Stop() + { + if (_disposed) + throw new ObjectDisposedException(null, "This instance is already disposed"); + + lock (_threadLock) + { + Thread thread = _thread; + if (thread != null) + { + _eventTerminate.Set(); + thread.Join(); + } + } + } + + private void MonitorThread() + { + try + { + ThreadLoop(); + } + catch (Exception e) + { + OnError(e); + } + _thread = null; + } + + private void ThreadLoop() + { + IntPtr registryKey; + int result = RegOpenKeyEx(_registryHive, _registrySubName, 0, STANDARD_RIGHTS_READ | KEY_QUERY_VALUE | KEY_NOTIFY, + out registryKey); + if (result != 0) + throw new Win32Exception(result); + + try + { + AutoResetEvent _eventNotify = new AutoResetEvent(false); + WaitHandle[] waitHandles = new WaitHandle[] {_eventNotify, _eventTerminate}; + while (!_eventTerminate.WaitOne(0, true)) + { + result = RegNotifyChangeKeyValue(registryKey, true, _regFilter, _eventNotify.Handle, true); + if (result != 0) + throw new Win32Exception(result); + + if (WaitHandle.WaitAny(waitHandles) == 0) + { + OnRegChanged(); + } + } + } + finally + { + if (registryKey != IntPtr.Zero) + { + RegCloseKey(registryKey); + } + } + } + } + + /// + /// Filter for notifications reported by . + /// + [Flags] + public enum RegChangeNotifyFilter + { + /// Notify the caller if a subkey is added or deleted. + Key = 1, + /// Notify the caller of changes to the attributes of the key, + /// such as the security descriptor information. + Attribute = 2, + /// Notify the caller of changes to a value of the key. This can + /// include adding or deleting a value, or changing an existing value. + Value = 4, + /// Notify the caller of changes to the security descriptor + /// of the key. + Security = 8, + } +} \ No newline at end of file diff --git a/Program.cs b/Program.cs index a635978..2bbaf53 100644 --- a/Program.cs +++ b/Program.cs @@ -1,6 +1,7 @@ using Caffeinated.Helpers; using Caffeinated.Properties; using Microsoft.Win32; +using RegistryUtils; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -119,9 +120,14 @@ public AppContext() { SetIsLightTheme(); - setIcons(); - notifyIcon = new NotifyIcon(components); - setContextMenu(); + string keyPath = "Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; + if (Registry.CurrentUser.OpenSubKey(keyPath) is RegistryKey key) { + RegistryMonitor monitor = new(key); + monitor.RegChanged += new EventHandler(SetIsLightTheme); + monitor.Start(); + } + + notifyIcon = new(components); // tooltip notifyIcon.Text = "Caffeinated"; @@ -142,7 +148,7 @@ public AppContext() { } } - private void SetIsLightTheme() { + private void SetIsLightTheme(object? sender = null, EventArgs? e = null) { try { using (RegistryKey? key = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize")) { if (key != null) { @@ -161,6 +167,21 @@ private void SetIsLightTheme() { catch (Exception) { isLightTheme = false; } + + setContextMenu(); + setIcons(); + + if (notifyIcon != null) + { + if (isActivated) + { + notifyIcon.Icon = onIcon; + } + else + { + notifyIcon.Icon = offIcon; + } + } } private static String HexConverter(Color c) { From ca592d20daa722f8c13154f27a8a2ea2749b880e Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Mon, 29 Nov 2021 22:20:05 -0600 Subject: [PATCH 060/101] Code Formatting --- Helpers/RegistryMonitor.cs | 116 +++++++++++++++---------------------- Program.cs | 6 +- 2 files changed, 49 insertions(+), 73 deletions(-) diff --git a/Helpers/RegistryMonitor.cs b/Helpers/RegistryMonitor.cs index bdfa27c..88360cf 100644 --- a/Helpers/RegistryMonitor.cs +++ b/Helpers/RegistryMonitor.cs @@ -47,7 +47,7 @@ public class RegistryMonitor : IDisposable { #region P/Invoke - [DllImport("advapi32.dll", SetLastError = true)] + [DllImport("advapi32.dll", SetLastError = true, CharSet = CharSet.Unicode)] private static extern int RegOpenKeyEx(IntPtr hKey, string subKey, uint options, int samDesired, out IntPtr phkResult); @@ -63,13 +63,13 @@ private static extern int RegNotifyChangeKeyValue(IntPtr hKey, bool bWatchSubtre private const int KEY_NOTIFY = 0x0010; private const int STANDARD_RIGHTS_READ = 0x00020000; - private static readonly IntPtr HKEY_CLASSES_ROOT = new IntPtr(unchecked((int) 0x80000000)); - private static readonly IntPtr HKEY_CURRENT_USER = new IntPtr(unchecked((int) 0x80000001)); - private static readonly IntPtr HKEY_LOCAL_MACHINE = new IntPtr(unchecked((int) 0x80000002)); - private static readonly IntPtr HKEY_USERS = new IntPtr(unchecked((int) 0x80000003)); - private static readonly IntPtr HKEY_PERFORMANCE_DATA = new IntPtr(unchecked((int) 0x80000004)); - private static readonly IntPtr HKEY_CURRENT_CONFIG = new IntPtr(unchecked((int) 0x80000005)); - private static readonly IntPtr HKEY_DYN_DATA = new IntPtr(unchecked((int) 0x80000006)); + private static readonly IntPtr HKEY_CLASSES_ROOT = new(unchecked((int) 0x80000000)); + private static readonly IntPtr HKEY_CURRENT_USER = new(unchecked((int)0x80000001)); + private static readonly IntPtr HKEY_LOCAL_MACHINE = new(unchecked((int)0x80000002)); + private static readonly IntPtr HKEY_USERS = new(unchecked((int)0x80000003)); + private static readonly IntPtr HKEY_PERFORMANCE_DATA = new(unchecked((int)0x80000004)); + private static readonly IntPtr HKEY_CURRENT_CONFIG = new(unchecked((int)0x80000005)); + private static readonly IntPtr HKEY_DYN_DATA = new(unchecked((int)0x80000006)); #endregion @@ -78,7 +78,7 @@ private static extern int RegNotifyChangeKeyValue(IntPtr hKey, bool bWatchSubtre /// /// Occurs when the specified registry key has changed. /// - public event EventHandler RegChanged; + public event EventHandler? RegChanged; /// /// Raises the event. @@ -94,15 +94,13 @@ private static extern int RegNotifyChangeKeyValue(IntPtr hKey, bool bWatchSubtre /// protected virtual void OnRegChanged() { - EventHandler handler = RegChanged; - if (handler != null) - handler(this, null); - } + RegChanged?.Invoke(this, null); + } /// /// Occurs when the access to the registry fails. /// - public event ErrorEventHandler Error; + public event ErrorEventHandler? Error; /// /// Raises the event. @@ -119,21 +117,19 @@ protected virtual void OnRegChanged() /// protected virtual void OnError(Exception e) { - ErrorEventHandler handler = Error; - if (handler != null) - handler(this, new ErrorEventArgs(e)); - } + Error?.Invoke(this, new ErrorEventArgs(e)); + } #endregion #region Private member variables - private IntPtr _registryHive; - private string _registrySubName; - private object _threadLock = new object(); - private Thread _thread; + private IntPtr? _registryHive; + private string? _registrySubName; + private object _threadLock = new(); + private Thread? _thread; private bool _disposed = false; - private ManualResetEvent _eventTerminate = new ManualResetEvent(false); + private ManualResetEvent _eventTerminate = new(false); private RegChangeNotifyFilter _regFilter = RegChangeNotifyFilter.Key | RegChangeNotifyFilter.Attribute | RegChangeNotifyFilter.Value | RegChangeNotifyFilter.Security; @@ -156,7 +152,7 @@ public RegistryMonitor(RegistryKey registryKey) public RegistryMonitor(string name) { if (name == null || name.Length == 0) - throw new ArgumentNullException("name"); + throw new ArgumentNullException(nameof(name)); InitRegistryKey(name); } @@ -203,40 +199,17 @@ public RegChangeNotifyFilter RegChangeNotifyFilter private void InitRegistryKey(RegistryHive hive, string name) { - switch (hive) - { - case RegistryHive.ClassesRoot: - _registryHive = HKEY_CLASSES_ROOT; - break; - - case RegistryHive.CurrentConfig: - _registryHive = HKEY_CURRENT_CONFIG; - break; - - case RegistryHive.CurrentUser: - _registryHive = HKEY_CURRENT_USER; - break; - - //case RegistryHive.DynData: - // _registryHive = HKEY_DYN_DATA; - // break; - - case RegistryHive.LocalMachine: - _registryHive = HKEY_LOCAL_MACHINE; - break; - - case RegistryHive.PerformanceData: - _registryHive = HKEY_PERFORMANCE_DATA; - break; - - case RegistryHive.Users: - _registryHive = HKEY_USERS; - break; - - default: - throw new InvalidEnumArgumentException("hive", (int)hive, typeof (RegistryHive)); - } - _registrySubName = name; + _registryHive = hive switch + { + RegistryHive.ClassesRoot => HKEY_CLASSES_ROOT, + RegistryHive.CurrentConfig => HKEY_CURRENT_CONFIG, + RegistryHive.CurrentUser => HKEY_CURRENT_USER, + RegistryHive.LocalMachine => HKEY_LOCAL_MACHINE, + RegistryHive.PerformanceData => HKEY_PERFORMANCE_DATA, + RegistryHive.Users => HKEY_USERS, + _ => throw new InvalidEnumArgumentException("hive", (int)hive, typeof(RegistryHive)), + }; + _registrySubName = name; } private void InitRegistryKey(string name) @@ -270,10 +243,10 @@ private void InitRegistryKey(string name) default: _registryHive = IntPtr.Zero; - throw new ArgumentException("The registry hive '" + nameParts[0] + "' is not supported", "value"); + throw new ArgumentException($"The registry hive '{nameParts[0]}' is not supported", "value"); } - _registrySubName = String.Join("\\", nameParts, 1, nameParts.Length - 1); + _registrySubName = string.Join("\\", nameParts, 1, nameParts.Length - 1); } #endregion @@ -300,9 +273,11 @@ public void Start() if (!IsMonitoring) { _eventTerminate.Reset(); - _thread = new Thread(new ThreadStart(MonitorThread)); - _thread.IsBackground = true; - _thread.Start(); + _thread = new Thread(new ThreadStart(MonitorThread)) + { + IsBackground = true + }; + _thread.Start(); } } } @@ -317,8 +292,7 @@ public void Stop() lock (_threadLock) { - Thread thread = _thread; - if (thread != null) + if (_thread is Thread thread) { _eventTerminate.Set(); thread.Join(); @@ -341,15 +315,17 @@ private void MonitorThread() private void ThreadLoop() { - IntPtr registryKey; - int result = RegOpenKeyEx(_registryHive, _registrySubName, 0, STANDARD_RIGHTS_READ | KEY_QUERY_VALUE | KEY_NOTIFY, - out registryKey); - if (result != 0) + int result = RegOpenKeyEx(_registryHive.Value, + _registrySubName, + 0, + STANDARD_RIGHTS_READ | KEY_QUERY_VALUE | KEY_NOTIFY, + out IntPtr registryKey); + if (result != 0) throw new Win32Exception(result); try { - AutoResetEvent _eventNotify = new AutoResetEvent(false); + AutoResetEvent _eventNotify = new(false); WaitHandle[] waitHandles = new WaitHandle[] {_eventNotify, _eventTerminate}; while (!_eventTerminate.WaitOne(0, true)) { diff --git a/Program.cs b/Program.cs index 2bbaf53..98f215d 100644 --- a/Program.cs +++ b/Program.cs @@ -89,6 +89,7 @@ public class AppContext : ApplicationContext { private AboutForm? aboutForm = null; private bool isLightTheme = false; private AppSettings? appSettings; + private const string themeKeyPath = "Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; [STAThread] private static void Main() { @@ -120,8 +121,7 @@ public AppContext() { SetIsLightTheme(); - string keyPath = "Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; - if (Registry.CurrentUser.OpenSubKey(keyPath) is RegistryKey key) { + if (Registry.CurrentUser.OpenSubKey(themeKeyPath) is RegistryKey key) { RegistryMonitor monitor = new(key); monitor.RegChanged += new EventHandler(SetIsLightTheme); monitor.Start(); @@ -150,7 +150,7 @@ public AppContext() { private void SetIsLightTheme(object? sender = null, EventArgs? e = null) { try { - using (RegistryKey? key = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize")) { + using (RegistryKey? key = Registry.CurrentUser.OpenSubKey(themeKeyPath)) { if (key != null) { Object? o = key.GetValue("SystemUsesLightTheme"); if (o != null) { From 1d145d599b16eb56ba192b7a40939a72eec820c8 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Tue, 30 Nov 2021 19:32:11 -0600 Subject: [PATCH 061/101] Code formatting and update to .NET6 namespaces --- Helpers/RegistryMonitor.cs | 694 ++++++++++++++++++------------------- 1 file changed, 334 insertions(+), 360 deletions(-) diff --git a/Helpers/RegistryMonitor.cs b/Helpers/RegistryMonitor.cs index 88360cf..bd8a476 100644 --- a/Helpers/RegistryMonitor.cs +++ b/Helpers/RegistryMonitor.cs @@ -1,370 +1,344 @@ +using Microsoft.Win32; using System; using System.ComponentModel; using System.IO; -using System.Threading; using System.Runtime.InteropServices; -using Microsoft.Win32; +using System.Threading; -namespace RegistryUtils -{ - /// - /// RegistryMonitor allows you to monitor specific registry key. - /// - /// - /// If a monitored registry key changes, an event is fired. You can subscribe to these - /// events by adding a delegate to . - /// The Windows API provides a function - /// - /// RegNotifyChangeKeyValue, which is not covered by the - /// class. imports - /// that function and encapsulates it in a convenient manner. - /// - /// - /// - /// This sample shows how to monitor HKEY_CURRENT_USER\Environment for changes: - /// - /// public class MonitorSample - /// { - /// static void Main() - /// { - /// RegistryMonitor monitor = new RegistryMonitor(RegistryHive.CurrentUser, "Environment"); - /// monitor.RegChanged += new EventHandler(OnRegChanged); - /// monitor.Start(); - /// - /// while(true); - /// - /// monitor.Stop(); - /// } - /// - /// private void OnRegChanged(object sender, EventArgs e) - /// { - /// Console.WriteLine("registry key has changed"); - /// } - /// } - /// - /// - public class RegistryMonitor : IDisposable - { - #region P/Invoke - - [DllImport("advapi32.dll", SetLastError = true, CharSet = CharSet.Unicode)] - private static extern int RegOpenKeyEx(IntPtr hKey, string subKey, uint options, int samDesired, - out IntPtr phkResult); - - [DllImport("advapi32.dll", SetLastError = true)] - private static extern int RegNotifyChangeKeyValue(IntPtr hKey, bool bWatchSubtree, - RegChangeNotifyFilter dwNotifyFilter, IntPtr hEvent, - bool fAsynchronous); - - [DllImport("advapi32.dll", SetLastError = true)] - private static extern int RegCloseKey(IntPtr hKey); - - private const int KEY_QUERY_VALUE = 0x0001; - private const int KEY_NOTIFY = 0x0010; - private const int STANDARD_RIGHTS_READ = 0x00020000; - - private static readonly IntPtr HKEY_CLASSES_ROOT = new(unchecked((int) 0x80000000)); - private static readonly IntPtr HKEY_CURRENT_USER = new(unchecked((int)0x80000001)); - private static readonly IntPtr HKEY_LOCAL_MACHINE = new(unchecked((int)0x80000002)); - private static readonly IntPtr HKEY_USERS = new(unchecked((int)0x80000003)); - private static readonly IntPtr HKEY_PERFORMANCE_DATA = new(unchecked((int)0x80000004)); - private static readonly IntPtr HKEY_CURRENT_CONFIG = new(unchecked((int)0x80000005)); - private static readonly IntPtr HKEY_DYN_DATA = new(unchecked((int)0x80000006)); - - #endregion - - #region Event handling - - /// - /// Occurs when the specified registry key has changed. - /// - public event EventHandler? RegChanged; - - /// - /// Raises the event. - /// - /// - ///

- /// OnRegChanged is called when the specified registry key has changed. - ///

- /// - /// When overriding in a derived class, be sure to call - /// the base class's method. - /// - ///
- protected virtual void OnRegChanged() - { - RegChanged?.Invoke(this, null); +namespace RegistryUtils; + +/// +/// RegistryMonitor allows you to monitor specific registry key. +/// +/// +/// If a monitored registry key changes, an event is fired. You can subscribe to these +/// events by adding a delegate to . +/// The Windows API provides a function +/// +/// RegNotifyChangeKeyValue, which is not covered by the +/// class. imports +/// that function and encapsulates it in a convenient manner. +/// +/// +/// +/// This sample shows how to monitor HKEY_CURRENT_USER\Environment for changes: +/// +/// public class MonitorSample +/// { +/// static void Main() +/// { +/// RegistryMonitor monitor = new RegistryMonitor(RegistryHive.CurrentUser, "Environment"); +/// monitor.RegChanged += new EventHandler(OnRegChanged); +/// monitor.Start(); +/// +/// while(true); +/// +/// monitor.Stop(); +/// } +/// +/// private void OnRegChanged(object sender, EventArgs e) +/// { +/// Console.WriteLine("registry key has changed"); +/// } +/// } +/// +/// +public class RegistryMonitor : IDisposable { + #region P/Invoke + + [DllImport("advapi32.dll", SetLastError = true, CharSet = CharSet.Unicode)] + private static extern int RegOpenKeyEx(IntPtr hKey, string subKey, uint options, int samDesired, + out IntPtr phkResult); + + [DllImport("advapi32.dll", SetLastError = true)] + private static extern int RegNotifyChangeKeyValue(IntPtr hKey, bool bWatchSubtree, + RegChangeNotifyFilter dwNotifyFilter, IntPtr hEvent, + bool fAsynchronous); + + [DllImport("advapi32.dll", SetLastError = true)] + private static extern int RegCloseKey(IntPtr hKey); + + private const int KEY_QUERY_VALUE = 0x0001; + private const int KEY_NOTIFY = 0x0010; + private const int STANDARD_RIGHTS_READ = 0x00020000; + + private static readonly IntPtr HKEY_CLASSES_ROOT = new(unchecked((int)0x80000000)); + private static readonly IntPtr HKEY_CURRENT_USER = new(unchecked((int)0x80000001)); + private static readonly IntPtr HKEY_LOCAL_MACHINE = new(unchecked((int)0x80000002)); + private static readonly IntPtr HKEY_USERS = new(unchecked((int)0x80000003)); + private static readonly IntPtr HKEY_PERFORMANCE_DATA = new(unchecked((int)0x80000004)); + private static readonly IntPtr HKEY_CURRENT_CONFIG = new(unchecked((int)0x80000005)); + + #endregion + + #region Event handling + + /// + /// Occurs when the specified registry key has changed. + /// + public event EventHandler? RegChanged; + + /// + /// Raises the event. + /// + /// + ///

+ /// OnRegChanged is called when the specified registry key has changed. + ///

+ /// + /// When overriding in a derived class, be sure to call + /// the base class's method. + /// + ///
+ protected virtual void OnRegChanged() { + RegChanged?.Invoke(this, new EventArgs()); + } + + /// + /// Occurs when the access to the registry fails. + /// + public event ErrorEventHandler? Error; + + /// + /// Raises the event. + /// + /// The which occured while watching the registry. + /// + ///

+ /// OnError is called when an exception occurs while watching the registry. + ///

+ /// + /// When overriding in a derived class, be sure to call + /// the base class's method. + /// + ///
+ protected virtual void OnError(Exception e) { + Error?.Invoke(this, new ErrorEventArgs(e)); + } + + #endregion + + #region Private member variables + + private IntPtr? _registryHive; + private string? _registrySubName; + private readonly object _threadLock = new(); + private Thread? _thread; + private bool _disposed = false; + private readonly ManualResetEvent _eventTerminate = new(false); + + private RegChangeNotifyFilter _regFilter = RegChangeNotifyFilter.Key | RegChangeNotifyFilter.Attribute | + RegChangeNotifyFilter.Value | RegChangeNotifyFilter.Security; + + #endregion + + /// + /// Initializes a new instance of the class. + /// + /// The registry key to monitor. + public RegistryMonitor(RegistryKey registryKey) { + InitRegistryKey(registryKey.Name); + } + + /// + /// Initializes a new instance of the class. + /// + /// The name. + public RegistryMonitor(string name) { + if (name == null || name.Length == 0) + throw new ArgumentNullException(nameof(name)); + + InitRegistryKey(name); + } + + /// + /// Initializes a new instance of the class. + /// + /// The registry hive. + /// The sub key. + public RegistryMonitor(RegistryHive registryHive, string subKey) { + InitRegistryKey(registryHive, subKey); + } + + /// + /// Disposes this object. + /// + public void Dispose() { + Stop(); + _disposed = true; + GC.SuppressFinalize(this); + } + + /// + /// Gets or sets the RegChangeNotifyFilter. + /// + public RegChangeNotifyFilter RegChangeNotifyFilter { + get { return _regFilter; } + set { + lock (_threadLock) { + if (IsMonitoring) + throw new InvalidOperationException("Monitoring thread is already running"); + + _regFilter = value; + } + } + } + + #region Initialization + + private void InitRegistryKey(RegistryHive hive, string name) { + _registryHive = hive switch { + RegistryHive.ClassesRoot => HKEY_CLASSES_ROOT, + RegistryHive.CurrentConfig => HKEY_CURRENT_CONFIG, + RegistryHive.CurrentUser => HKEY_CURRENT_USER, + RegistryHive.LocalMachine => HKEY_LOCAL_MACHINE, + RegistryHive.PerformanceData => HKEY_PERFORMANCE_DATA, + RegistryHive.Users => HKEY_USERS, + _ => throw new InvalidEnumArgumentException("hive", (int)hive, typeof(RegistryHive)), + }; + _registrySubName = name; + } + + private void InitRegistryKey(string name) { + string[] nameParts = name.Split('\\'); + + switch (nameParts[0]) + { + case "HKEY_CLASSES_ROOT": + case "HKCR": + _registryHive = HKEY_CLASSES_ROOT; + break; + + case "HKEY_CURRENT_USER": + case "HKCU": + _registryHive = HKEY_CURRENT_USER; + break; + + case "HKEY_LOCAL_MACHINE": + case "HKLM": + _registryHive = HKEY_LOCAL_MACHINE; + break; + + case "HKEY_USERS": + _registryHive = HKEY_USERS; + break; + + case "HKEY_CURRENT_CONFIG": + _registryHive = HKEY_CURRENT_CONFIG; + break; + + default: + _registryHive = IntPtr.Zero; + throw new ArgumentException($"The registry hive '{nameParts[0]}' is not supported", nameof(name)); } - /// - /// Occurs when the access to the registry fails. - /// - public event ErrorEventHandler? Error; - - /// - /// Raises the event. - /// - /// The which occured while watching the registry. - /// - ///

- /// OnError is called when an exception occurs while watching the registry. - ///

- /// - /// When overriding in a derived class, be sure to call - /// the base class's method. - /// - ///
- protected virtual void OnError(Exception e) - { - Error?.Invoke(this, new ErrorEventArgs(e)); + _registrySubName = string.Join("\\", nameParts, 1, nameParts.Length - 1); + } + + #endregion + + /// + /// true if this object is currently monitoring; + /// otherwise, false. + /// + public bool IsMonitoring { + get { return _thread != null; } + } + + /// + /// Start monitoring. + /// + public void Start() { + if (_disposed) + throw new ObjectDisposedException(null, "This instance is already disposed"); + + lock (_threadLock) { + if (!IsMonitoring) { + _eventTerminate.Reset(); + _thread = new Thread(new ThreadStart(MonitorThread)) { + IsBackground = true + }; + _thread.Start(); + } } + } + + /// + /// Stops the monitoring thread. + /// + public void Stop() { + if (_disposed) + throw new ObjectDisposedException(null, "This instance is already disposed"); + + lock (_threadLock) { + if (_thread is Thread thread) { + _eventTerminate.Set(); + thread.Join(); + } + } + } - #endregion - - #region Private member variables - - private IntPtr? _registryHive; - private string? _registrySubName; - private object _threadLock = new(); - private Thread? _thread; - private bool _disposed = false; - private ManualResetEvent _eventTerminate = new(false); - - private RegChangeNotifyFilter _regFilter = RegChangeNotifyFilter.Key | RegChangeNotifyFilter.Attribute | - RegChangeNotifyFilter.Value | RegChangeNotifyFilter.Security; - - #endregion - - /// - /// Initializes a new instance of the class. - /// - /// The registry key to monitor. - public RegistryMonitor(RegistryKey registryKey) - { - InitRegistryKey(registryKey.Name); - } - - /// - /// Initializes a new instance of the class. - /// - /// The name. - public RegistryMonitor(string name) - { - if (name == null || name.Length == 0) - throw new ArgumentNullException(nameof(name)); - - InitRegistryKey(name); - } - - /// - /// Initializes a new instance of the class. - /// - /// The registry hive. - /// The sub key. - public RegistryMonitor(RegistryHive registryHive, string subKey) - { - InitRegistryKey(registryHive, subKey); - } - - /// - /// Disposes this object. - /// - public void Dispose() - { - Stop(); - _disposed = true; - GC.SuppressFinalize(this); - } - - /// - /// Gets or sets the RegChangeNotifyFilter. - /// - public RegChangeNotifyFilter RegChangeNotifyFilter - { - get { return _regFilter; } - set - { - lock (_threadLock) - { - if (IsMonitoring) - throw new InvalidOperationException("Monitoring thread is already running"); - - _regFilter = value; - } - } - } - - #region Initialization - - private void InitRegistryKey(RegistryHive hive, string name) - { - _registryHive = hive switch - { - RegistryHive.ClassesRoot => HKEY_CLASSES_ROOT, - RegistryHive.CurrentConfig => HKEY_CURRENT_CONFIG, - RegistryHive.CurrentUser => HKEY_CURRENT_USER, - RegistryHive.LocalMachine => HKEY_LOCAL_MACHINE, - RegistryHive.PerformanceData => HKEY_PERFORMANCE_DATA, - RegistryHive.Users => HKEY_USERS, - _ => throw new InvalidEnumArgumentException("hive", (int)hive, typeof(RegistryHive)), - }; - _registrySubName = name; - } - - private void InitRegistryKey(string name) - { - string[] nameParts = name.Split('\\'); - - switch (nameParts[0]) - { - case "HKEY_CLASSES_ROOT": - case "HKCR": - _registryHive = HKEY_CLASSES_ROOT; - break; - - case "HKEY_CURRENT_USER": - case "HKCU": - _registryHive = HKEY_CURRENT_USER; - break; - - case "HKEY_LOCAL_MACHINE": - case "HKLM": - _registryHive = HKEY_LOCAL_MACHINE; - break; - - case "HKEY_USERS": - _registryHive = HKEY_USERS; - break; - - case "HKEY_CURRENT_CONFIG": - _registryHive = HKEY_CURRENT_CONFIG; - break; - - default: - _registryHive = IntPtr.Zero; - throw new ArgumentException($"The registry hive '{nameParts[0]}' is not supported", "value"); - } - - _registrySubName = string.Join("\\", nameParts, 1, nameParts.Length - 1); - } - - #endregion - - /// - /// true if this object is currently monitoring; - /// otherwise, false. - /// - public bool IsMonitoring - { - get { return _thread != null; } - } - - /// - /// Start monitoring. - /// - public void Start() - { - if (_disposed) - throw new ObjectDisposedException(null, "This instance is already disposed"); - - lock (_threadLock) - { - if (!IsMonitoring) - { - _eventTerminate.Reset(); - _thread = new Thread(new ThreadStart(MonitorThread)) - { - IsBackground = true - }; - _thread.Start(); - } - } - } - - /// - /// Stops the monitoring thread. - /// - public void Stop() - { - if (_disposed) - throw new ObjectDisposedException(null, "This instance is already disposed"); - - lock (_threadLock) - { - if (_thread is Thread thread) - { - _eventTerminate.Set(); - thread.Join(); - } - } - } - - private void MonitorThread() - { - try - { - ThreadLoop(); - } - catch (Exception e) - { - OnError(e); - } - _thread = null; - } - - private void ThreadLoop() - { - int result = RegOpenKeyEx(_registryHive.Value, - _registrySubName, - 0, - STANDARD_RIGHTS_READ | KEY_QUERY_VALUE | KEY_NOTIFY, - out IntPtr registryKey); - if (result != 0) - throw new Win32Exception(result); - - try - { - AutoResetEvent _eventNotify = new(false); - WaitHandle[] waitHandles = new WaitHandle[] {_eventNotify, _eventTerminate}; - while (!_eventTerminate.WaitOne(0, true)) - { - result = RegNotifyChangeKeyValue(registryKey, true, _regFilter, _eventNotify.Handle, true); - if (result != 0) - throw new Win32Exception(result); - - if (WaitHandle.WaitAny(waitHandles) == 0) - { - OnRegChanged(); - } - } - } - finally - { - if (registryKey != IntPtr.Zero) - { - RegCloseKey(registryKey); - } - } - } - } - - /// - /// Filter for notifications reported by . - /// - [Flags] - public enum RegChangeNotifyFilter - { - /// Notify the caller if a subkey is added or deleted. - Key = 1, - /// Notify the caller of changes to the attributes of the key, - /// such as the security descriptor information. - Attribute = 2, - /// Notify the caller of changes to a value of the key. This can - /// include adding or deleting a value, or changing an existing value. - Value = 4, - /// Notify the caller of changes to the security descriptor - /// of the key. - Security = 8, - } + private void MonitorThread() { + try { + ThreadLoop(); + } + catch (Exception e) { + OnError(e); + } + _thread = null; + } + + private void ThreadLoop() { + if (_registryHive is null || _registrySubName is null) + return; + + int result = RegOpenKeyEx(_registryHive.Value, + _registrySubName, + 0, + STANDARD_RIGHTS_READ | KEY_QUERY_VALUE | KEY_NOTIFY, + out IntPtr registryKey); + if (result != 0) + throw new Win32Exception(result); + + try { + AutoResetEvent _eventNotify = new(false); + WaitHandle[] waitHandles = new WaitHandle[] { _eventNotify, _eventTerminate }; + while (!_eventTerminate.WaitOne(0, true)) { + result = RegNotifyChangeKeyValue(registryKey, + true, + _regFilter, + _eventNotify.SafeWaitHandle.DangerousGetHandle(), + true); + if (result != 0) + throw new Win32Exception(result); + + if (WaitHandle.WaitAny(waitHandles) == 0) { + OnRegChanged(); + } + } + } + finally { + if (registryKey != IntPtr.Zero) { + RegCloseKey(registryKey); + } + } + } +} + +/// +/// Filter for notifications reported by . +/// +[Flags] +public enum RegChangeNotifyFilter { + /// Notify the caller if a subkey is added or deleted. + Key = 1, + /// Notify the caller of changes to the attributes of the key, + /// such as the security descriptor information. + Attribute = 2, + /// Notify the caller of changes to a value of the key. This can + /// include adding or deleting a value, or changing an existing value. + Value = 4, + /// Notify the caller of changes to the security descriptor + /// of the key. + Security = 8, } \ No newline at end of file From 60f6519035361eb417bfd17900354201ae88152f Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Tue, 30 Nov 2021 19:37:08 -0600 Subject: [PATCH 062/101] Code formatting and break classes into their own files. .NET6 file scoped namespaces --- Duration.cs | 60 +++++ NativeMethods.cs | 11 + Program.cs | 667 +++++++++++++++++++++-------------------------- 3 files changed, 373 insertions(+), 365 deletions(-) create mode 100644 Duration.cs create mode 100644 NativeMethods.cs diff --git a/Duration.cs b/Duration.cs new file mode 100644 index 0000000..f65d9fa --- /dev/null +++ b/Duration.cs @@ -0,0 +1,60 @@ +using System; + +namespace Caffeinated; + +public class Duration : IComparable { + public int Minutes { get; set; } + public string Description { + get { + return Duration.ToDescription(Minutes); + } + } + + public static string ToDescription(int time) { + if (time == 0) { + return "Indefinitely"; + } + + string returnDescription = ""; + + if (time >= 60) { + int hours = time / 60; + if (hours == 1) { + returnDescription = "1 hr "; + } + else { + returnDescription = string.Format("{0} hrs ", hours); + } + } + int mins = time % 60; + if (mins == 1) { + returnDescription += string.Format("{0} min", mins); + } + if (mins > 1) { + returnDescription += string.Format("{0} mins", mins); + } + + return returnDescription; + } + + public int CompareTo(object? obj) { + if (obj == null) { + return 1; + } + + if (obj is Duration otherDuration) { + if (otherDuration.Minutes > Minutes) { + return 1; + } + + if (otherDuration.Minutes < Minutes) { + return -1; + } + + return 0; + } + else { + return 1; + } + } +} diff --git a/NativeMethods.cs b/NativeMethods.cs new file mode 100644 index 0000000..d10970f --- /dev/null +++ b/NativeMethods.cs @@ -0,0 +1,11 @@ +using System.Runtime.InteropServices; + +namespace Caffeinated; + +internal static class NativeMethods { + [DllImport("kernel32.dll")] + public static extern uint SetThreadExecutionState(uint esFlags); + public const uint ES_CONTINUOUS = 0x80000000; + public const uint ES_SYSTEM_REQUIRED = 0x00000001; + public const uint ES_DISPLAY_REQUIRED = 0x00000002; +} diff --git a/Program.cs b/Program.cs index 98f215d..3f9b028 100644 --- a/Program.cs +++ b/Program.cs @@ -9,454 +9,391 @@ using System.Diagnostics; using System.Drawing; using System.Linq; -using System.Runtime.InteropServices; using System.Windows.Forms; -namespace Caffeinated { - public class Duration : IComparable { - public int Minutes { get; set; } - public string Description { - get { - return Duration.ToDescription(Minutes); - } +namespace Caffeinated; + +public class AppContext : ApplicationContext { + private readonly NotifyIcon? notifyIcon; + private readonly IContainer? components; + private Icon? onIcon; + private Icon? offIcon; + private bool isActivated = false; + private readonly Timer? timer; + private SettingsForm? settingsForm = null; + private AboutForm? aboutForm = null; + private bool isLightTheme = false; + private readonly AppSettings? appSettings; + private const string themeKeyPath = "Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; + + [STAThread] + private static void Main() { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.SetHighDpiMode(HighDpiMode.PerMonitorV2); + AppContext? context = new(); + if (context.notifyIcon == null) { + Application.Exit(); } - - public static string ToDescription(int time) { - if (time == 0) { - return "Indefinitely"; - } - - string returnDescription = ""; - - if (time >= 60) { - int hours = time / 60; - if (hours == 1) { - returnDescription = "1 hr "; - } - else { - returnDescription = string.Format("{0} hrs ", hours); - } - } - int mins = time % 60; - if (mins == 1) { - returnDescription += string.Format("{0} min", mins); - } - if (mins > 1) { - returnDescription += string.Format("{0} mins", mins); - } - - return returnDescription; - } - - public int CompareTo(object? obj) { - if (obj == null) { - return 1; - } - - if (obj is Duration otherDuration) { - if (otherDuration.Minutes > Minutes) { - return 1; - } - - if (otherDuration.Minutes < Minutes) { - return -1; - } - - return 0; - } - else { - return 1; - } + else { + Application.Run(context); } } - internal static class NativeMethods { - [DllImport("kernel32.dll")] - public static extern uint SetThreadExecutionState(uint esFlags); - public const uint ES_CONTINUOUS = 0x80000000; - public const uint ES_SYSTEM_REQUIRED = 0x00000001; - public const uint ES_DISPLAY_REQUIRED = 0x00000002; - } - - public class AppContext : ApplicationContext { - private NotifyIcon? notifyIcon; - private IContainer? components; - private Icon? onIcon; - private Icon? offIcon; - private bool isActivated = false; - private Timer? timer; - private SettingsForm? settingsForm = null; - private AboutForm? aboutForm = null; - private bool isLightTheme = false; - private AppSettings? appSettings; - private const string themeKeyPath = "Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; - - [STAThread] - private static void Main() { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.SetHighDpiMode(HighDpiMode.PerMonitorV2); - AppContext? context = new(); - if (context.notifyIcon == null) { - Application.Exit(); - } - else { - Application.Run(context); - } + public AppContext() { + // Caffeinated.exe + Process[]? processes = Process.GetProcessesByName("Caffeinated"); + if (processes.Length > 1) { + // Is already running + return; } - public AppContext() { - // Caffeinated.exe - Process[]? processes = Process.GetProcessesByName("Caffeinated"); - if (processes.Length > 1) { - // Is already running - return; - } + components = new Container(); + timer = new Timer(components); + timer.Tick += new EventHandler(timer_Tick); - components = new Container(); - timer = new Timer(components); - timer.Tick += new EventHandler(timer_Tick); + appSettings = new AppSettings(); - appSettings = new AppSettings(); + SetIsLightTheme(); - SetIsLightTheme(); + if (Registry.CurrentUser.OpenSubKey(themeKeyPath) is RegistryKey key) { + RegistryMonitor monitor = new(key); + monitor.RegChanged += new EventHandler(SetIsLightTheme); + monitor.Start(); + } - if (Registry.CurrentUser.OpenSubKey(themeKeyPath) is RegistryKey key) { - RegistryMonitor monitor = new(key); - monitor.RegChanged += new EventHandler(SetIsLightTheme); - monitor.Start(); - } + notifyIcon = new(components); - notifyIcon = new(components); + // tooltip + notifyIcon.Text = "Caffeinated"; + notifyIcon.Visible = true; - // tooltip - notifyIcon.Text = "Caffeinated"; - notifyIcon.Visible = true; + // Handle the DoubleClick event to activate the form. + notifyIcon.MouseClick += new MouseEventHandler(notifyIcon1_Click); - // Handle the DoubleClick event to activate the form. - notifyIcon.MouseClick += new MouseEventHandler(notifyIcon1_Click); + setIcons(); + setContextMenu(); - if (appSettings.ActivateOnLaunch) { - activate(Settings.Default.DefaultDuration); - } - else { - deactivate(); - } + if (appSettings.ActivateOnLaunch) { + activate(Settings.Default.DefaultDuration); + } + else { + deactivate(); + } - if (appSettings.ShowMessageOnLaunch) { - showSettings(); - } + if (appSettings.ShowMessageOnLaunch) { + showSettings(); } + } - private void SetIsLightTheme(object? sender = null, EventArgs? e = null) { - try { - using (RegistryKey? key = Registry.CurrentUser.OpenSubKey(themeKeyPath)) { - if (key != null) { - Object? o = key.GetValue("SystemUsesLightTheme"); - if (o != null) { - if (o.ToString() == "1") { - isLightTheme = true; - } - else { - isLightTheme = false; - } + private void SetIsLightTheme(object? sender = null, EventArgs? e = null) { + try { + using (RegistryKey? key = Registry.CurrentUser.OpenSubKey(themeKeyPath)) { + if (key != null) { + Object? o = key.GetValue("SystemUsesLightTheme"); + if (o != null) { + if (o.ToString() == "1") { + isLightTheme = true; + } + else { + isLightTheme = false; } } } } - catch (Exception) { - isLightTheme = false; - } + } + catch (Exception) { + isLightTheme = false; + } - setContextMenu(); - setIcons(); + setIcons(); + setContextMenu(); - if (notifyIcon != null) + if (notifyIcon != null) + { + if (isActivated) { - if (isActivated) - { - notifyIcon.Icon = onIcon; - } - else - { - notifyIcon.Icon = offIcon; - } + notifyIcon.Icon = onIcon; + } + else + { + notifyIcon.Icon = offIcon; } } + } - private static String HexConverter(Color c) { - return "#" + c.R.ToString("X2") + c.G.ToString("X2") + c.B.ToString("X2"); - } - - private void setIcons() { - if (appSettings == null) { - return; - } + private static String HexConverter(Color c) { + return "#" + c.R.ToString("X2") + c.G.ToString("X2") + c.B.ToString("X2"); + } - switch (appSettings.Icon) - { - case TrayIcon.Mug: - if (isLightTheme) { - offIcon = new Icon( - Resources.Mug_Sleep_Black_icon, - SystemInformation.SmallIconSize - ); - onIcon = new Icon( - Resources.Mug_Active_Black_icon, - SystemInformation.SmallIconSize - ); - } - else { - offIcon = new Icon( - Resources.mug_sleep_icon, - SystemInformation.SmallIconSize - ); - onIcon = new Icon( - Resources.mug_active_icon, - SystemInformation.SmallIconSize - ); - } + private void setIcons() { + if (appSettings == null) { + return; + } - break; - case TrayIcon.EyeWithZzz: - if (isLightTheme) { - offIcon = new Icon( - Resources.Eye_zzz_Sleep_Black_icon, - SystemInformation.SmallIconSize - ); - onIcon = new Icon( - Resources.Eye_zzz_Active_Black_icon, - SystemInformation.SmallIconSize - ); - } - else { - offIcon = new Icon( - Resources.Eye_zzz_Sleep_icon, - SystemInformation.SmallIconSize - ); - onIcon = new Icon( - Resources.Eye_zzz_Active_icon, - SystemInformation.SmallIconSize - ); - } - break; - default: - if (isLightTheme) { - offIcon = new Icon( - Resources.Caffeine_Black_icon, + switch (appSettings.Icon) + { + case TrayIcon.Mug: + if (isLightTheme) { + offIcon = new Icon( + Resources.Mug_Sleep_Black_icon, SystemInformation.SmallIconSize ); - onIcon = new Icon( - Resources.SleepEye_Black_icon, - SystemInformation.SmallIconSize - ); - } - else { - offIcon = new Icon( - Resources.cup_coffee_icon_bw, - SystemInformation.SmallIconSize - ); - onIcon = new Icon( - Resources.cup_coffee_icon, - SystemInformation.SmallIconSize + onIcon = new Icon( + Resources.Mug_Active_Black_icon, + SystemInformation.SmallIconSize ); - } - break; - } - } - - public void setContextMenu() { - if (appSettings == null || notifyIcon == null) { - return; - } - - ContextMenuStrip? contextMenu = new(); - - ToolStripMenuItem? exitItem = new("E&xit"); - exitItem.Click += new(exitItem_Click); - - // If the user deleted all time settings, add 0 back in. - if (appSettings.Durations.Count == 0) { - appSettings.DefaultDuration = 0; - } - - // we want the lower durations to be closer to the mouse. So, - ObservableCollection? times = appSettings.Durations; - IEnumerable sortedTimes = Enumerable.Empty(); - if ((new Taskbar()).Position == TaskbarPosition.Top) { - if (times != null) { - sortedTimes = times.OrderBy(i => i); } - } - else { - if (times != null) { - sortedTimes = times.OrderByDescending(i => i); + else { + offIcon = new Icon( + Resources.mug_sleep_icon, + SystemInformation.SmallIconSize + ); + onIcon = new Icon( + Resources.mug_active_icon, + SystemInformation.SmallIconSize + ); } - } - ToolStripMenuItem? settingsItem = new("&Settings..."); - settingsItem.Click += new(settingsItem_Click); + break; + case TrayIcon.EyeWithZzz: + if (isLightTheme) { + offIcon = new Icon( + Resources.Eye_zzz_Sleep_Black_icon, + SystemInformation.SmallIconSize + ); + onIcon = new Icon( + Resources.Eye_zzz_Active_Black_icon, + SystemInformation.SmallIconSize + ); + } + else { + offIcon = new Icon( + Resources.Eye_zzz_Sleep_icon, + SystemInformation.SmallIconSize + ); + onIcon = new Icon( + Resources.Eye_zzz_Active_icon, + SystemInformation.SmallIconSize + ); + } + break; + default: + if (isLightTheme) { + offIcon = new Icon( + Resources.Caffeine_Black_icon, + SystemInformation.SmallIconSize + ); + onIcon = new Icon( + Resources.SleepEye_Black_icon, + SystemInformation.SmallIconSize + ); + } + else { + offIcon = new Icon( + Resources.cup_coffee_icon_bw, + SystemInformation.SmallIconSize + ); + onIcon = new Icon( + Resources.cup_coffee_icon, + SystemInformation.SmallIconSize + ); + } + break; + } + } - ToolStripMenuItem? aboutItem = new("&About..."); - aboutItem.Click += new(aboutItem_Click); + public void setContextMenu() { + if (appSettings == null || notifyIcon == null) { + return; + } - ContextMenuStrip? settingsMenuItem = new() { - Text = "Settings", - }; + ContextMenuStrip? contextMenu = new(); - contextMenu.Items.AddRange( - new ToolStripMenuItem[] { - settingsItem, - aboutItem, - exitItem - } - ); - contextMenu.Items.Add(new ToolStripSeparator()); - - foreach (int time in sortedTimes) { - ToolStripMenuItem? item = new(Duration.ToDescription(time)); - item.Tag = time; - item.Click += new(item_Click); - contextMenu.Items.Add(item); - } + ToolStripMenuItem? exitItem = new("E&xit"); + exitItem.Click += new(exitItem_Click); - notifyIcon.ContextMenuStrip = contextMenu; + // If the user deleted all time settings, add 0 back in. + if (appSettings.Durations.Count == 0) { + appSettings.DefaultDuration = 0; } - private void aboutItem_Click(object? sender, EventArgs e) { - if (Application.OpenForms.OfType().Any() == false) { - aboutForm = new(); - aboutForm.Show(); + // we want the lower durations to be closer to the mouse. So, + ObservableCollection? times = appSettings.Durations; + IEnumerable sortedTimes = Enumerable.Empty(); + if ((new Taskbar()).Position == TaskbarPosition.Top) { + if (times != null) { + sortedTimes = times.OrderBy(i => i); } } - - private void settingsItem_Click(object? sender, EventArgs e) { - if (Application.OpenForms.OfType().Any() == false) { - showSettings(); + else { + if (times != null) { + sortedTimes = times.OrderByDescending(i => i); } } - private void showSettings() { - if (appSettings == null) { - return; + ToolStripMenuItem? settingsItem = new("&Settings..."); + settingsItem.Click += new(settingsItem_Click); + + ToolStripMenuItem? aboutItem = new("&About..."); + aboutItem.Click += new(aboutItem_Click); + + ContextMenuStrip? settingsMenuItem = new() { + Text = "Settings", + }; + + contextMenu.Items.AddRange( + new ToolStripMenuItem[] { + settingsItem, + aboutItem, + exitItem } + ); + contextMenu.Items.Add(new ToolStripSeparator()); - settingsForm = new(appSettings); - settingsForm.FormClosing += SettingsForm_FormClosing; - settingsForm.Show(); + foreach (int time in sortedTimes) { + ToolStripMenuItem? item = new(Duration.ToDescription(time)); + item.Tag = time; + item.Click += new(item_Click); + contextMenu.Items.Add(item); } - private void SettingsForm_FormClosing(object? sender, FormClosingEventArgs e) { - setContextMenu(); - SetIsLightTheme(); - setIcons(); + notifyIcon.ContextMenuStrip = contextMenu; + } - if (notifyIcon != null) { - if (isActivated) { - notifyIcon.Icon = onIcon; - } - else { - notifyIcon.Icon = offIcon; - } - } + private void aboutItem_Click(object? sender, EventArgs e) { + if (Application.OpenForms.OfType().Any() == false) { + aboutForm = new(); + aboutForm.Show(); } + } - private void timer_Tick(object? sender, EventArgs e) { - deactivate(); + private void settingsItem_Click(object? sender, EventArgs e) { + if (Application.OpenForms.OfType().Any() == false) { + showSettings(); } + } - private void item_Click(object? sender, EventArgs e) { - if (sender is ToolStripMenuItem tsmi && tsmi.Tag is int time) { - activate(time); - } + private void showSettings() { + if (appSettings == null) { + return; } - private void notifyIcon1_Click(object? sender, MouseEventArgs e) { - if (e.Button != MouseButtons.Left) { - return; - } + settingsForm = new(appSettings); + settingsForm.FormClosing += SettingsForm_FormClosing; + settingsForm.Show(); + } - bool? isactive = isActive(); + private void SettingsForm_FormClosing(object? sender, FormClosingEventArgs e) { + setContextMenu(); + SetIsLightTheme(); + setIcons(); - if (isactive != null && isactive == true) { - deactivate(); + if (notifyIcon != null) { + if (isActivated) { + notifyIcon.Icon = onIcon; } else { - if (appSettings != null) { - activate(appSettings.DefaultDuration); - } + notifyIcon.Icon = offIcon; } } + } + + private void timer_Tick(object? sender, EventArgs e) { + deactivate(); + } - private void ShowError() { - MessageBox.Show( - "Call to SetThreadExecutionState failed.", - "Caffeinated", - MessageBoxButtons.OK - ); + private void item_Click(object? sender, EventArgs e) { + if (sender is ToolStripMenuItem tsmi && tsmi.Tag is int time) { + activate(time); } + } - private bool? isActive() { - if (notifyIcon != null) { - return notifyIcon.Icon == onIcon; + private void notifyIcon1_Click(object? sender, MouseEventArgs e) { + if (e.Button != MouseButtons.Left) { + return; + } + + bool? isactive = isActive(); + + if (isactive != null && isactive == true) { + deactivate(); + } + else { + if (appSettings != null) { + activate(appSettings.DefaultDuration); } + } + } + + private void ShowError() { + MessageBox.Show( + "Call to SetThreadExecutionState failed.", + "Caffeinated", + MessageBoxButtons.OK + ); + } - return false; + private bool? isActive() { + if (notifyIcon != null) { + return notifyIcon.Icon == onIcon; } - private void activate(int duration) { - uint sleepDisabled = NativeMethods.ES_CONTINUOUS | - NativeMethods.ES_DISPLAY_REQUIRED; - uint previousState = NativeMethods.SetThreadExecutionState(sleepDisabled); - if (previousState == 0) { - ShowError(); - ExitThread(); - } - if (duration > 0 - && timer != null) { - timer.Interval = duration * 60 * 1000; - timer.Start(); - } - isActivated = true; + return false; + } - if (notifyIcon != null) { - notifyIcon.Icon = onIcon; - notifyIcon.Text = "Caffeinated: sleep not allowed!"; - } + private void activate(int duration) { + uint sleepDisabled = NativeMethods.ES_CONTINUOUS | + NativeMethods.ES_DISPLAY_REQUIRED; + uint previousState = NativeMethods.SetThreadExecutionState(sleepDisabled); + if (previousState == 0) { + ShowError(); + ExitThread(); + } + if (duration > 0 + && timer != null) { + timer.Interval = duration * 60 * 1000; + timer.Start(); } + isActivated = true; - private void deactivate() { - if (timer != null) { - timer.Stop(); - } + if (notifyIcon != null) { + notifyIcon.Icon = onIcon; + notifyIcon.Text = "Caffeinated: sleep not allowed!"; + } + } - uint result = NativeMethods.SetThreadExecutionState(NativeMethods.ES_CONTINUOUS); - if (result == 0) { - ShowError(); - } - isActivated = false; + private void deactivate() { + if (timer != null) { + timer.Stop(); + } - if (notifyIcon != null) { - notifyIcon.Icon = offIcon; - notifyIcon.Text = "Caffeinated: sleep allowed"; - } + uint result = NativeMethods.SetThreadExecutionState(NativeMethods.ES_CONTINUOUS); + if (result == 0) { + ShowError(); } + isActivated = false; - private void exitItem_Click(object? Sender, EventArgs e) { - deactivate(); - if (notifyIcon != null) { - notifyIcon.Dispose(); - } + if (notifyIcon != null) { + notifyIcon.Icon = offIcon; + notifyIcon.Text = "Caffeinated: sleep allowed"; + } + } - ExitThread(); + private void exitItem_Click(object? Sender, EventArgs e) { + deactivate(); + if (notifyIcon != null) { + notifyIcon.Dispose(); } - protected override void Dispose(bool disposing) { - if (disposing && components != null) { - components.Dispose(); - } + ExitThread(); + } - base.Dispose(disposing); + protected override void Dispose(bool disposing) { + if (disposing && components != null) { + components.Dispose(); } + + base.Dispose(disposing); } } \ No newline at end of file From 3c98600840f6217ae1458c2a44922dbe65d5d4c4 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Tue, 30 Nov 2021 19:58:39 -0600 Subject: [PATCH 063/101] Code formatting. Organize files. --- About.cs | 105 --------- BaseForm.cs | 32 --- Enums.cs | 15 -- About.Designer.cs => Forms/About.Designer.cs | 0 Forms/About.cs | 103 +++++++++ About.resx => Forms/About.resx | 0 Forms/BaseForm.cs | 28 +++ BaseForm.resx => Forms/BaseForm.resx | 0 .../SettingsForm.Designer.cs | 0 Forms/SettingsForm.cs | 206 +++++++++++++++++ SettingsForm.resx => Forms/SettingsForm.resx | 0 NativeMethods.cs => Helpers/NativeMethods.cs | 0 Helpers/ReflectedShell.cs | 64 ++++++ Helpers/Settings.cs | 24 ++ Duration.cs => Models/Duration.cs | 0 Models/Enums.cs | 7 + Taskbar.cs => Models/Taskbar.cs | 8 +- ReflectedShell.cs | 69 ------ Settings.cs | 24 -- SettingsForm.cs | 208 ------------------ 20 files changed, 437 insertions(+), 456 deletions(-) delete mode 100644 About.cs delete mode 100644 BaseForm.cs delete mode 100644 Enums.cs rename About.Designer.cs => Forms/About.Designer.cs (100%) create mode 100644 Forms/About.cs rename About.resx => Forms/About.resx (100%) create mode 100644 Forms/BaseForm.cs rename BaseForm.resx => Forms/BaseForm.resx (100%) rename SettingsForm.Designer.cs => Forms/SettingsForm.Designer.cs (100%) create mode 100644 Forms/SettingsForm.cs rename SettingsForm.resx => Forms/SettingsForm.resx (100%) rename NativeMethods.cs => Helpers/NativeMethods.cs (100%) create mode 100644 Helpers/ReflectedShell.cs create mode 100644 Helpers/Settings.cs rename Duration.cs => Models/Duration.cs (100%) create mode 100644 Models/Enums.cs rename Taskbar.cs => Models/Taskbar.cs (93%) delete mode 100644 ReflectedShell.cs delete mode 100644 Settings.cs delete mode 100644 SettingsForm.cs diff --git a/About.cs b/About.cs deleted file mode 100644 index d081b20..0000000 --- a/About.cs +++ /dev/null @@ -1,105 +0,0 @@ -using System.Reflection; -using System.Windows.Forms; -using System.Diagnostics; -using System.IO; - -namespace Caffeinated { - partial class AboutForm : BaseForm { - public AboutForm() : base() { - InitializeComponent(); - caffeineLbl.Links[0].LinkData = - "http://lightheadsw.com/caffeine/"; - dmndLbl.Links[0].LinkData = - "http://desmondbrand.com/caffeinated"; - OriginallyByLink.Links[0].LinkData = - "http://desmondbrand.com/caffeinated"; - ForkedByTheJoeFinLink.Links[0].LinkData = - "https://github.com/TheJoeFin/Caffeinated"; - // VersionTxtBlk.Text = $"Version {ProductVersion}"; - } - - #region Assembly Attribute Accessors - - public static string AssemblyTitle { - get { - object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false); - if (attributes.Length > 0) { - AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0]; - if (titleAttribute.Title != "") { - return titleAttribute.Title; - } - } - string? systemString = Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase); - - if (systemString == null) - return ""; - else - return systemString; - } - } - - public string AssemblyVersion { - get { - return Application.ProductVersion.ToString(); - } - } - - public string AssemblyDescription { - get { - object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false); - if (attributes.Length == 0) { - return ""; - } - return ((AssemblyDescriptionAttribute)attributes[0]).Description; - } - } - - public string AssemblyProduct { - get { - object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false); - if (attributes.Length == 0) { - return ""; - } - return ((AssemblyProductAttribute)attributes[0]).Product; - } - } - - public string AssemblyCopyright { - get { - object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); - if (attributes.Length == 0) { - return ""; - } - return ((AssemblyCopyrightAttribute)attributes[0]).Copyright; - } - } - - public string AssemblyCompany { - get { - object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false); - if (attributes.Length == 0) { - return ""; - } - return ((AssemblyCompanyAttribute)attributes[0]).Company; - } - } - #endregion - - private void linkLbl_LinkClicked( - object sender, - LinkLabelLinkClickedEventArgs e) { - string target = e.Link.LinkData as string; - System.Diagnostics.Process.Start(target); - } - - private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { - string target = e.Link.LinkData as string; - Process.Start(target); - } - - private void ForkedByTheJoeFinLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { - string target = e.Link.LinkData as string; - Process.Start(target); - } - } -} diff --git a/BaseForm.cs b/BaseForm.cs deleted file mode 100644 index 3141899..0000000 --- a/BaseForm.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Windows.Forms; -using System.Drawing; - -namespace Caffeinated { - // Base class for all forms. See stackvoerflow for reasons: - // http://stackoverflow.com/questions/297701/default-font-for-windows-forms-application/4076183#4076183 - public class BaseForm : Form { - public BaseForm() { - // Provides design-time support for the default font on Visa/Win7. - // Falls back to something decent if system lacks the font. - this.Font = SystemFonts.MessageBoxFont; - } - - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BaseForm)); - this.SuspendLayout(); - // - // BaseForm - // - this.ClientSize = new System.Drawing.Size(278, 244); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "BaseForm"; - this.ResumeLayout(false); - - } - } -} diff --git a/Enums.cs b/Enums.cs deleted file mode 100644 index fa3ecf0..0000000 --- a/Enums.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Caffeinated -{ - public enum TrayIcon - { - Default, - Mug, - EyeWithZzz - } -} diff --git a/About.Designer.cs b/Forms/About.Designer.cs similarity index 100% rename from About.Designer.cs rename to Forms/About.Designer.cs diff --git a/Forms/About.cs b/Forms/About.cs new file mode 100644 index 0000000..d2ac8a1 --- /dev/null +++ b/Forms/About.cs @@ -0,0 +1,103 @@ +using System.Reflection; +using System.Windows.Forms; +using System.Diagnostics; +using System.IO; + +namespace Caffeinated; + +partial class AboutForm : BaseForm { + public AboutForm() : base() { + InitializeComponent(); + caffeineLbl.Links[0].LinkData = + "http://lightheadsw.com/caffeine/"; + dmndLbl.Links[0].LinkData = + "http://desmondbrand.com/caffeinated"; + OriginallyByLink.Links[0].LinkData = + "http://desmondbrand.com/caffeinated"; + ForkedByTheJoeFinLink.Links[0].LinkData = + "https://github.com/TheJoeFin/Caffeinated"; + // VersionTxtBlk.Text = $"Version {ProductVersion}"; + } + + #region Assembly Attribute Accessors + + public static string AssemblyTitle { + get { + object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false); + if (attributes.Length > 0) { + AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0]; + if (titleAttribute.Title != "") { + return titleAttribute.Title; + } + } + string? systemString = Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase); + + if (systemString == null) + return ""; + else + return systemString; + } + } + + public string AssemblyVersion { + get { + return Application.ProductVersion.ToString(); + } + } + + public string AssemblyDescription { + get { + object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false); + if (attributes.Length == 0) { + return ""; + } + return ((AssemblyDescriptionAttribute)attributes[0]).Description; + } + } + + public string AssemblyProduct { + get { + object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false); + if (attributes.Length == 0) { + return ""; + } + return ((AssemblyProductAttribute)attributes[0]).Product; + } + } + + public string AssemblyCopyright { + get { + object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); + if (attributes.Length == 0) { + return ""; + } + return ((AssemblyCopyrightAttribute)attributes[0]).Copyright; + } + } + + public string AssemblyCompany { + get { + object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false); + if (attributes.Length == 0) { + return ""; + } + return ((AssemblyCompanyAttribute)attributes[0]).Company; + } + } + #endregion + + private void linkLbl_LinkClicked( object sender, LinkLabelLinkClickedEventArgs e) { + if (e.Link.LinkData is string target) + Process.Start(target); + } + + private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { + if (e.Link.LinkData is string target) + Process.Start(target); + } + + private void ForkedByTheJoeFinLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { + if (e.Link.LinkData is string target) + Process.Start(target); + } +} diff --git a/About.resx b/Forms/About.resx similarity index 100% rename from About.resx rename to Forms/About.resx diff --git a/Forms/BaseForm.cs b/Forms/BaseForm.cs new file mode 100644 index 0000000..69817de --- /dev/null +++ b/Forms/BaseForm.cs @@ -0,0 +1,28 @@ +using System.Windows.Forms; +using System.Drawing; +using System.ComponentModel; + +namespace Caffeinated; + +// Base class for all forms. See stackvoerflow for reasons: +// http://stackoverflow.com/questions/297701/default-font-for-windows-forms-application/4076183#4076183 +public class BaseForm : Form { + public BaseForm() { + // Provides design-time support for the default font on Visa/Win7. + // Falls back to something decent if system lacks the font. + Font = SystemFonts.MessageBoxFont; + } + + private void InitializeComponent() + { + ComponentResourceManager resources = new(typeof(BaseForm)); + SuspendLayout(); + // + // BaseForm + // + ClientSize = new Size(278, 244); + Icon = resources.GetObject("$this.Icon") as Icon; + Name = "BaseForm"; + ResumeLayout(false); + } +} diff --git a/BaseForm.resx b/Forms/BaseForm.resx similarity index 100% rename from BaseForm.resx rename to Forms/BaseForm.resx diff --git a/SettingsForm.Designer.cs b/Forms/SettingsForm.Designer.cs similarity index 100% rename from SettingsForm.Designer.cs rename to Forms/SettingsForm.Designer.cs diff --git a/Forms/SettingsForm.cs b/Forms/SettingsForm.cs new file mode 100644 index 0000000..075cfdf --- /dev/null +++ b/Forms/SettingsForm.cs @@ -0,0 +1,206 @@ +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.Linq; +using System.Windows.Forms; +using Caffeinated.Helpers; +using Windows.ApplicationModel; + +namespace Caffeinated; + +public partial class SettingsForm : BaseForm { + readonly BindingList Durations; + readonly AppSettings appSettings; + + public SettingsForm(AppSettings passedAppSettings) : base() { + InitializeComponent(); + appSettings = passedAppSettings; + var durations = from i in appSettings.Durations + select new Duration { Minutes = i }; + this.Durations = new BindingList(durations.ToList()); + var defaultItem = this.Durations.Where( + d => d.Minutes == appSettings.DefaultDuration + ).FirstOrDefault(); + + if (appSettings.ShowMessageOnLaunch) + SettingsAtLaunchChkBox.Checked = true; + + if (appSettings.ActivateOnLaunch) + ActivateChkBox.Checked = true; + + DefaultDurationBox.DataSource = this.Durations; + DefaultDurationBox.DisplayMember = "Description"; + DefaultDurationBox.ValueMember = "Minutes"; + DefaultDurationBox.SelectedItem = defaultItem; + + ToolStripMenuItem deleteMI = new("Delete Duration"); + deleteMI.Click += DeleteMI_Click; + ContextMenuStrip durationCM = new(); + durationCM.Items.Add(deleteMI); + DefaultDurationBox.ContextMenuStrip = durationCM; + + setStartupCheckBox(); + setRadioButtons(); + } + + private void setRadioButtons() { + switch (appSettings.Icon) { + case TrayIcon.Mug: + mugRDBTN.Checked = true; + break; + case TrayIcon.EyeWithZzz: + eyeZZZRDBTN.Checked = true; + break; + default: + defaultRDBTN.Checked = true; + break; + } + } + + private void DeleteMI_Click(object? sender, EventArgs e) { + if (DefaultDurationBox.SelectedItem is not Duration durationToDelete) + return; + + DialogResult result = MessageBox.Show( + $"Delete {durationToDelete.Description}?", + "Caffeinated", + MessageBoxButtons.YesNo + ); + + switch (result) { + case DialogResult.None: + break; + case DialogResult.OK: + break; + case DialogResult.Cancel: + break; + case DialogResult.Abort: + break; + case DialogResult.Retry: + break; + case DialogResult.Ignore: + break; + case DialogResult.Yes: + Durations.Remove(durationToDelete); + appSettings.Durations.Remove(durationToDelete.Minutes); + // appSettings.Durations = appSettings.Durations; + break; + case DialogResult.No: + break; + default: + break; + } + } + + private async void setStartupCheckBox() { + StartupTask startupTask = await StartupTask.GetAsync("StartCaffeinated"); + Debug.WriteLine("Startup is " + startupTask.State.ToString()); + + switch (startupTask.State) { + case StartupTaskState.Disabled: + // Task is disabled but can be enabled. + StartupChkBox.Checked = false; + break; + case StartupTaskState.DisabledByUser: + // Task is disabled and user must enable it manually. + StartupChkBox.Checked = false; + StartupChkBox.Enabled = false; + + StartupChkBox.Text += "\nDisabled in Task Manager"; + break; + case StartupTaskState.Enabled: + StartupChkBox.Checked = true; + break; + } + } + + private void okBtn_Click(object sender, EventArgs e) { + this.Close(); + } + + private void cancelBtn_Click(object sender, EventArgs e) { + this.Close(); + } + + private void DefaultDurationBox_SelectedIndexChanged(object sender,EventArgs e) { + if (DefaultDurationBox.SelectedItem is Duration item) { + appSettings.DefaultDuration = item.Minutes; + } + } + + private async void StartupChkBox_CheckedChanged(object sender, EventArgs e) { + StartupTask startupTask = await StartupTask.GetAsync("StartCaffeinated"); + + switch (StartupChkBox.Checked) { + case true: + StartupTaskState newState = await startupTask.RequestEnableAsync(); + Debug.WriteLine("Request to enable startup, result = {0}", newState); + break; + case false: + startupTask.Disable(); + Debug.WriteLine("Disabled startup task"); + break; + } + } + + private void addCustomDurationBTN_Click(object sender, EventArgs e) { + bool didParse = int.TryParse(CustomDurationTXBX.Text, out int newDuration); + + if (didParse == false) + return; + + if ( newDuration < 0) { + CustomDurationTXBX.Text = ""; + MessageBox.Show( + "Enter a positive number.", + "Caffeinated", + MessageBoxButtons.OK + ); + return; + } + + if (appSettings.Durations.Contains(newDuration)) { + CustomDurationTXBX.Text = ""; + MessageBox.Show( + $"{newDuration} is already a duration.", + "Caffeinated", + MessageBoxButtons.OK + ); + return; + } + + Duration newCustomDuration = new() { + Minutes = newDuration + }; + + Durations.Add(newCustomDuration); + var sortedDurations = Durations.OrderByDescending(i => i).ToList(); + Durations.Clear(); + foreach (var item in sortedDurations) { + Durations.Add(item); + } + appSettings.Durations.Add(newDuration); + + CustomDurationTXBX.Text = ""; + } + + private void defaultRDBTN_Click(object sender, EventArgs e) { + appSettings.Icon = TrayIcon.Default; + } + + private void eyeZZZRDBTN_Click(object sender, EventArgs e) { + appSettings.Icon = TrayIcon.EyeWithZzz; + } + + private void mugRDBTN_Click(object sender, EventArgs e) { + appSettings.Icon = TrayIcon.Mug; + } + + private void ActivateChkBox_CheckedChanged(object sender, EventArgs e) { + appSettings.ActivateOnLaunch = ActivateChkBox.Checked; + } + + private void SettingsAtLaunchChkBox_CheckedChanged(object sender, EventArgs e) { + appSettings.ShowMessageOnLaunch = SettingsAtLaunchChkBox.Checked; + } +} diff --git a/SettingsForm.resx b/Forms/SettingsForm.resx similarity index 100% rename from SettingsForm.resx rename to Forms/SettingsForm.resx diff --git a/NativeMethods.cs b/Helpers/NativeMethods.cs similarity index 100% rename from NativeMethods.cs rename to Helpers/NativeMethods.cs diff --git a/Helpers/ReflectedShell.cs b/Helpers/ReflectedShell.cs new file mode 100644 index 0000000..a4336f1 --- /dev/null +++ b/Helpers/ReflectedShell.cs @@ -0,0 +1,64 @@ +using System; +using System.Reflection; + +namespace Caffeinated; + +class ReflectedShell { + private const BindingFlags PublicInstance = + BindingFlags.Public | BindingFlags.Instance; + + private readonly Type? type; + private readonly object? shell; + + public ReflectedShell() { + type = Type.GetTypeFromProgID("WScript.Shell"); + if (type is not null) + shell = Activator.CreateInstance(type); + } + + public object? CreateShortcut( + string linkFileName, + string targetPath, + string? workingDir = null) { + object? shortcut = type?.InvokeMember( + "CreateShortcut", PublicInstance | BindingFlags.InvokeMethod, + null, shell, new object[] { linkFileName } + ); + + Type? shortcutType = shortcut?.GetType(); + shortcutType?.InvokeMember( + "TargetPath", PublicInstance | BindingFlags.SetProperty, + null, shortcut, new object[] { targetPath } + ); + + if (workingDir != null) { + shortcutType?.InvokeMember( + "WorkingDirectory", + PublicInstance | BindingFlags.SetProperty, + null, shortcut, new object[] { workingDir } + ); + } + + shortcutType?.InvokeMember( + "Save", PublicInstance | BindingFlags.InvokeMethod, + null, shortcut, null + ); + + return shortcut; + } + + public string? GetSpecialFolder(string item) { + object? specFolders = type?.InvokeMember( + "SpecialFolders", PublicInstance | BindingFlags.GetProperty, + null, shell, null + ); + + Type? specFoldersType = specFolders?.GetType(); + object? path = specFoldersType?.InvokeMember( + "Item", PublicInstance | BindingFlags.InvokeMethod, + null, specFolders, new object[] { item } + ); + + return path as string; + } +} diff --git a/Helpers/Settings.cs b/Helpers/Settings.cs new file mode 100644 index 0000000..80af927 --- /dev/null +++ b/Helpers/Settings.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Caffeinated.Properties; + +internal sealed partial class Settings { + private IList? realDurations; + public IList RealDurations { + get { + if (realDurations == null) { + realDurations = Durations.Split(',') + .Select(s => Convert.ToInt32(s)) + .ToList(); + } + return realDurations; + } + set { + this.realDurations = value; + var strDurations = value.Select(s => s.ToString()).ToArray(); + this.Durations = string.Join(",", strDurations); + } + } +} diff --git a/Duration.cs b/Models/Duration.cs similarity index 100% rename from Duration.cs rename to Models/Duration.cs diff --git a/Models/Enums.cs b/Models/Enums.cs new file mode 100644 index 0000000..5292429 --- /dev/null +++ b/Models/Enums.cs @@ -0,0 +1,7 @@ +namespace Caffeinated; + +public enum TrayIcon { + Default, + Mug, + EyeWithZzz +} diff --git a/Taskbar.cs b/Models/Taskbar.cs similarity index 93% rename from Taskbar.cs rename to Models/Taskbar.cs index 8e298bb..fe52743 100644 --- a/Taskbar.cs +++ b/Models/Taskbar.cs @@ -2,6 +2,8 @@ using System.Drawing; using System.Runtime.InteropServices; +namespace Caffeinated; + // taskbar api stuff from here: // http://winsharp93.wordpress.com/2009/06/29/find-out-size-and-position-of-the-taskbar/ @@ -45,9 +47,9 @@ public bool AutoHide { } public Taskbar() { - IntPtr taskbarHandle = User32.FindWindow(Taskbar.ClassName, null); + IntPtr taskbarHandle = User32.FindWindow(ClassName, string.Empty); - APPBARDATA data = new APPBARDATA(); + APPBARDATA data = new(); data.cbSize = (uint)Marshal.SizeOf(typeof(APPBARDATA)); data.hWnd = taskbarHandle; IntPtr result = Shell32.SHAppBarMessage(ABM.GetTaskbarPos, ref data); @@ -104,7 +106,7 @@ public static extern IntPtr SHAppBarMessage( } public static class User32 { - [DllImport("user32.dll", SetLastError = true)] + [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)] public static extern IntPtr FindWindow( string lpClassName, string lpWindowName diff --git a/ReflectedShell.cs b/ReflectedShell.cs deleted file mode 100644 index a07efcd..0000000 --- a/ReflectedShell.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Reflection; -using System.IO; - -namespace Caffeinated { - class ReflectedShell { - private const BindingFlags PublicInstance = - BindingFlags.Public | BindingFlags.Instance; - - private Type type; - private object shell; - - public ReflectedShell() { - this.type = Type.GetTypeFromProgID("WScript.Shell"); - this.shell = Activator.CreateInstance(type); - } - - public object CreateShortcut( - string linkFileName, - string targetPath, - string workingDir = null - - ) { - object shortcut = type.InvokeMember( - "CreateShortcut", PublicInstance | BindingFlags.InvokeMethod, - null, shell, new object[] { linkFileName } - ); - - Type shortcutType = shortcut.GetType(); - shortcutType.InvokeMember( - "TargetPath", PublicInstance | BindingFlags.SetProperty, - null, shortcut, new object[] { targetPath } - ); - - if (workingDir != null) { - shortcutType.InvokeMember( - "WorkingDirectory", - PublicInstance | BindingFlags.SetProperty, - null, shortcut, new object[] { workingDir } - ); - } - - shortcutType.InvokeMember( - "Save", PublicInstance | BindingFlags.InvokeMethod, - null, shortcut, null - ); - - return shortcut; - } - - public string GetSpecialFolder(string item) { - object specFolders = type.InvokeMember( - "SpecialFolders", PublicInstance | BindingFlags.GetProperty, - null, shell, null - ); - - Type specFoldersType = specFolders.GetType(); - object path = specFoldersType.InvokeMember( - "Item", PublicInstance | BindingFlags.InvokeMethod, - null, specFolders, new object[] { item } - ); - - return path as string; - } - } -} diff --git a/Settings.cs b/Settings.cs deleted file mode 100644 index 26cccbd..0000000 --- a/Settings.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; - -namespace Caffeinated.Properties { - internal sealed partial class Settings { - private IList realDurations; - public IList RealDurations { - get { - if (realDurations == null) { - realDurations = Durations.Split(',') - .Select(s => Convert.ToInt32(s)) - .ToList(); - } - return realDurations; - } - set { - this.realDurations = value; - var strDurations = value.Select(s => s.ToString()).ToArray(); - this.Durations = string.Join(",", strDurations); - } - } - } -} diff --git a/SettingsForm.cs b/SettingsForm.cs deleted file mode 100644 index f1404ee..0000000 --- a/SettingsForm.cs +++ /dev/null @@ -1,208 +0,0 @@ -using System; -using System.ComponentModel; -using System.Diagnostics; -using System.Linq; -using System.Windows.Forms; -using Caffeinated.Helpers; -using Windows.ApplicationModel; - -namespace Caffeinated { - public partial class SettingsForm : BaseForm { - BindingList Durations; - AppSettings appSettings; - - public SettingsForm(AppSettings passedAppSettings) : base() { - InitializeComponent(); - appSettings = passedAppSettings; - var durations = from i in appSettings.Durations - select new Duration { Minutes = i }; - this.Durations = new BindingList(durations.ToList()); - var defaultItem = this.Durations.Where( - d => d.Minutes == appSettings.DefaultDuration - ).FirstOrDefault(); - - if (appSettings.ShowMessageOnLaunch) - SettingsAtLaunchChkBox.Checked = true; - - if (appSettings.ActivateOnLaunch) - ActivateChkBox.Checked = true; - - DefaultDurationBox.DataSource = this.Durations; - DefaultDurationBox.DisplayMember = "Description"; - DefaultDurationBox.ValueMember = "Minutes"; - DefaultDurationBox.SelectedItem = defaultItem; - - ToolStripMenuItem deleteMI = new("Delete Duration"); - deleteMI.Click += DeleteMI_Click; - ContextMenuStrip durationCM = new(); - durationCM.Items.Add(deleteMI); - DefaultDurationBox.ContextMenuStrip = durationCM; - - setStartupCheckBox(); - setRadioButtons(); - } - - private void setRadioButtons() { - switch (appSettings.Icon) { - case TrayIcon.Mug: - mugRDBTN.Checked = true; - break; - case TrayIcon.EyeWithZzz: - eyeZZZRDBTN.Checked = true; - break; - default: - defaultRDBTN.Checked = true; - break; - } - } - - private void DeleteMI_Click(object? sender, EventArgs e) { - if (DefaultDurationBox.SelectedItem is not Duration durationToDelete) - return; - - DialogResult result = MessageBox.Show( - $"Delete {durationToDelete.Description}?", - "Caffeinated", - MessageBoxButtons.YesNo - ); - - switch (result) { - case DialogResult.None: - break; - case DialogResult.OK: - break; - case DialogResult.Cancel: - break; - case DialogResult.Abort: - break; - case DialogResult.Retry: - break; - case DialogResult.Ignore: - break; - case DialogResult.Yes: - Durations.Remove(durationToDelete); - appSettings.Durations.Remove(durationToDelete.Minutes); - // appSettings.Durations = appSettings.Durations; - break; - case DialogResult.No: - break; - default: - break; - } - } - - private async void setStartupCheckBox() { - StartupTask startupTask = await StartupTask.GetAsync("StartCaffeinated"); - Debug.WriteLine("Startup is " + startupTask.State.ToString()); - - switch (startupTask.State) { - case StartupTaskState.Disabled: - // Task is disabled but can be enabled. - StartupChkBox.Checked = false; - break; - case StartupTaskState.DisabledByUser: - // Task is disabled and user must enable it manually. - StartupChkBox.Checked = false; - StartupChkBox.Enabled = false; - - StartupChkBox.Text += "\nDisabled in Task Manager"; - break; - case StartupTaskState.Enabled: - StartupChkBox.Checked = true; - break; - } - } - - private void okBtn_Click(object sender, EventArgs e) { - this.Close(); - } - - private void cancelBtn_Click(object sender, EventArgs e) { - this.Close(); - } - - private void DefaultDurationBox_SelectedIndexChanged(object sender,EventArgs e) { - if (DefaultDurationBox.SelectedItem is Duration item) { - appSettings.DefaultDuration = item.Minutes; - } - } - - private async void StartupChkBox_CheckedChanged(object sender, EventArgs e) { - StartupTask startupTask = await StartupTask.GetAsync("StartCaffeinated"); - - switch (StartupChkBox.Checked) { - case true: - StartupTaskState newState = await startupTask.RequestEnableAsync(); - Debug.WriteLine("Request to enable startup, result = {0}", newState); - break; - case false: - startupTask.Disable(); - Debug.WriteLine("Disabled startup task"); - break; - default: - break; - } - } - - private void addCustomDurationBTN_Click(object sender, EventArgs e) { - bool didParse = int.TryParse(CustomDurationTXBX.Text, out int newDuration); - - if (didParse == false) - return; - - if ( newDuration < 0) { - CustomDurationTXBX.Text = ""; - MessageBox.Show( - "Enter a positive number.", - "Caffeinated", - MessageBoxButtons.OK - ); - return; - } - - if (appSettings.Durations.Contains(newDuration)) { - CustomDurationTXBX.Text = ""; - MessageBox.Show( - $"{newDuration} is already a duration.", - "Caffeinated", - MessageBoxButtons.OK - ); - return; - } - - Duration newCustomDuration = new() { - Minutes = newDuration - }; - - Durations.Add(newCustomDuration); - var sortedDurations = Durations.OrderByDescending(i => i).ToList(); - Durations.Clear(); - foreach (var item in sortedDurations) { - Durations.Add(item); - } - appSettings.Durations.Add(newDuration); - - CustomDurationTXBX.Text = ""; - } - - private void defaultRDBTN_Click(object sender, EventArgs e) { - appSettings.Icon = TrayIcon.Default; - } - - private void eyeZZZRDBTN_Click(object sender, EventArgs e) { - appSettings.Icon = TrayIcon.EyeWithZzz; - } - - private void mugRDBTN_Click(object sender, EventArgs e) { - appSettings.Icon = TrayIcon.Mug; - } - - private void ActivateChkBox_CheckedChanged(object sender, EventArgs e) { - appSettings.ActivateOnLaunch = ActivateChkBox.Checked; - } - - private void SettingsAtLaunchChkBox_CheckedChanged(object sender, EventArgs e) { - appSettings.ShowMessageOnLaunch = SettingsAtLaunchChkBox.Checked; - } - } -} From 30d85102c6ca47a179da4c042fe984da2de84274 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Tue, 30 Nov 2021 20:02:26 -0600 Subject: [PATCH 064/101] Update about form to version 1.6 --- Forms/About.Designer.cs | 2 +- Forms/About.resx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Forms/About.Designer.cs b/Forms/About.Designer.cs index 1702922..c5e0405 100644 --- a/Forms/About.Designer.cs +++ b/Forms/About.Designer.cs @@ -44,7 +44,7 @@ private void InitializeComponent() { this.VersionTxtBlk.Name = "VersionTxtBlk"; this.VersionTxtBlk.Size = new System.Drawing.Size(99, 25); this.VersionTxtBlk.TabIndex = 13; - this.VersionTxtBlk.Text = "Version 1.5"; + this.VersionTxtBlk.Text = "Version 1.6"; // // label3 // diff --git a/Forms/About.resx b/Forms/About.resx index 8944908..3e20303 100644 --- a/Forms/About.resx +++ b/Forms/About.resx @@ -57,8 +57,8 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - + + AAABAAEAAAAAAAEAIAAoIAQAFgAAACgAAAAAAQAAAAIAAAEAIAAAAAAAAAAEACUWAAAlFgAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA From 171b14b38c72bc835fe7dd53b2ae738847ef3811 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Tue, 30 Nov 2021 20:20:30 -0600 Subject: [PATCH 065/101] Update Package to 1.6 and add configuations --- Caffeinated.sln | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Caffeinated.sln b/Caffeinated.sln index da19c75..34b6b39 100644 --- a/Caffeinated.sln +++ b/Caffeinated.sln @@ -29,13 +29,13 @@ Global {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|ARM.ActiveCfg = Debug|x86 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|ARM64.ActiveCfg = Debug|x86 - {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|x64.ActiveCfg = Debug|x86 + {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|x64.ActiveCfg = Debug|Any CPU {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|x86.ActiveCfg = Debug|Any CPU {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|x86.Build.0 = Debug|Any CPU {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|Any CPU.ActiveCfg = Release|x86 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|ARM.ActiveCfg = Release|x86 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|ARM64.ActiveCfg = Release|x86 - {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|x64.ActiveCfg = Release|x86 + {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|x64.ActiveCfg = Release|Any CPU {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|x86.ActiveCfg = Release|Any CPU {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|x86.Build.0 = Release|Any CPU {CC32EB7E-6CC3-4139-BD90-09D0A04439D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU From b71bbcdeeafb5b80d087cd1024ec93f0e95fbd3f Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Wed, 1 Dec 2021 08:09:28 -0600 Subject: [PATCH 066/101] Add more platforms --- Caffeinated.csproj | 1 + Caffeinated.sln | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Caffeinated.csproj b/Caffeinated.csproj index 2e6ef3e..8eb64f6 100644 --- a/Caffeinated.csproj +++ b/Caffeinated.csproj @@ -11,6 +11,7 @@ Caffeinated.AppContext app.manifest Enable + AnyCPU;x86;x64 diff --git a/Caffeinated.sln b/Caffeinated.sln index 34b6b39..b33abc5 100644 --- a/Caffeinated.sln +++ b/Caffeinated.sln @@ -35,7 +35,7 @@ Global {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|Any CPU.ActiveCfg = Release|x86 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|ARM.ActiveCfg = Release|x86 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|ARM64.ActiveCfg = Release|x86 - {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|x64.ActiveCfg = Release|Any CPU + {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|x64.ActiveCfg = Release|x64 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|x86.ActiveCfg = Release|Any CPU {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|x86.Build.0 = Release|Any CPU {CC32EB7E-6CC3-4139-BD90-09D0A04439D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU From 3eb5943f8aaa49a9cde108e29a977b9c558cacfc Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Wed, 1 Dec 2021 20:18:12 -0600 Subject: [PATCH 067/101] Use Launcher and URI instead of Process.Start --- Forms/About.Designer.cs | 26 +++++++++++++++++++------- Forms/About.cs | 31 ++++++++++++------------------- 2 files changed, 31 insertions(+), 26 deletions(-) diff --git a/Forms/About.Designer.cs b/Forms/About.Designer.cs index c5e0405..9238477 100644 --- a/Forms/About.Designer.cs +++ b/Forms/About.Designer.cs @@ -31,6 +31,7 @@ private void InitializeComponent() { this.OriginallyByLink = new System.Windows.Forms.LinkLabel(); this.ForkedByTheJoeFinLink = new System.Windows.Forms.LinkLabel(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.RateLabel = new System.Windows.Forms.LinkLabel(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.SuspendLayout(); // @@ -42,9 +43,9 @@ private void InitializeComponent() { this.VersionTxtBlk.Location = new System.Drawing.Point(17, 254); this.VersionTxtBlk.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.VersionTxtBlk.Name = "VersionTxtBlk"; - this.VersionTxtBlk.Size = new System.Drawing.Size(99, 25); + this.VersionTxtBlk.Size = new System.Drawing.Size(113, 25); this.VersionTxtBlk.TabIndex = 13; - this.VersionTxtBlk.Text = "Version 1.6"; + this.VersionTxtBlk.Text = "Version 1.6.1"; // // label3 // @@ -73,15 +74,13 @@ private void InitializeComponent() { // caffeineLbl // this.caffeineLbl.AutoSize = true; - this.caffeineLbl.LinkArea = new System.Windows.Forms.LinkArea(12, 17); + this.caffeineLbl.LinkArea = new System.Windows.Forms.LinkArea(0, 0); this.caffeineLbl.Location = new System.Drawing.Point(17, 365); this.caffeineLbl.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.caffeineLbl.Name = "caffeineLbl"; - this.caffeineLbl.Size = new System.Drawing.Size(246, 30); + this.caffeineLbl.Size = new System.Drawing.Size(247, 25); this.caffeineLbl.TabIndex = 18; - this.caffeineLbl.TabStop = true; this.caffeineLbl.Text = "Inspired by Caffeine for OS X."; - this.caffeineLbl.UseCompatibleTextRendering = true; this.caffeineLbl.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLbl_LinkClicked); // // label1 @@ -132,11 +131,23 @@ private void InitializeComponent() { this.pictureBox1.TabIndex = 23; this.pictureBox1.TabStop = false; // + // RateLabel + // + this.RateLabel.AutoSize = true; + this.RateLabel.Location = new System.Drawing.Point(34, 494); + this.RateLabel.Name = "RateLabel"; + this.RateLabel.Size = new System.Drawing.Size(316, 25); + this.RateLabel.TabIndex = 24; + this.RateLabel.TabStop = true; + this.RateLabel.Text = "Rate Windows Caffeinated in the Store"; + this.RateLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.RateLabel_LinkClicked); + // // AboutForm // this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 25F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(378, 481); + this.ClientSize = new System.Drawing.Size(378, 559); + this.Controls.Add(this.RateLabel); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.ForkedByTheJoeFinLink); this.Controls.Add(this.OriginallyByLink); @@ -171,5 +182,6 @@ private void InitializeComponent() { private System.Windows.Forms.LinkLabel OriginallyByLink; private System.Windows.Forms.LinkLabel ForkedByTheJoeFinLink; private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.LinkLabel RateLabel; } } diff --git a/Forms/About.cs b/Forms/About.cs index d2ac8a1..29c50ee 100644 --- a/Forms/About.cs +++ b/Forms/About.cs @@ -1,22 +1,14 @@ using System.Reflection; using System.Windows.Forms; -using System.Diagnostics; using System.IO; +using Windows.System; +using System; namespace Caffeinated; partial class AboutForm : BaseForm { public AboutForm() : base() { InitializeComponent(); - caffeineLbl.Links[0].LinkData = - "http://lightheadsw.com/caffeine/"; - dmndLbl.Links[0].LinkData = - "http://desmondbrand.com/caffeinated"; - OriginallyByLink.Links[0].LinkData = - "http://desmondbrand.com/caffeinated"; - ForkedByTheJoeFinLink.Links[0].LinkData = - "https://github.com/TheJoeFin/Caffeinated"; - // VersionTxtBlk.Text = $"Version {ProductVersion}"; } #region Assembly Attribute Accessors @@ -86,18 +78,19 @@ public string AssemblyCompany { } #endregion - private void linkLbl_LinkClicked( object sender, LinkLabelLinkClickedEventArgs e) { - if (e.Link.LinkData is string target) - Process.Start(target); + private async void linkLbl_LinkClicked( object sender, LinkLabelLinkClickedEventArgs e) { + _ = await Launcher.LaunchUriAsync(new Uri(string.Format("http://lightheadsw.com/caffeine/"))); } - private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { - if (e.Link.LinkData is string target) - Process.Start(target); + private async void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { + _ = await Launcher.LaunchUriAsync(new Uri(string.Format("http://desmondbrand.com/caffeinated"))); } - private void ForkedByTheJoeFinLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { - if (e.Link.LinkData is string target) - Process.Start(target); + private async void ForkedByTheJoeFinLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { + _ = await Launcher.LaunchUriAsync(new Uri(string.Format("https://github.com/TheJoeFin/Caffeinated"))); + } + + private async void RateLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { + _ = await Launcher.LaunchUriAsync(new Uri(string.Format("ms-windows-store:REVIEW?PFN={0}", "40087JoeFinApps.WindowsCaffeinated_kdbpvth5scec4"))); } } From 42a2ca5bc2cee1824e31e39eb1b5bae794f22b0e Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Wed, 1 Dec 2021 21:30:46 -0600 Subject: [PATCH 068/101] Change about dialog to 1.6.2 --- Forms/About.Designer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Forms/About.Designer.cs b/Forms/About.Designer.cs index 9238477..82c1a7d 100644 --- a/Forms/About.Designer.cs +++ b/Forms/About.Designer.cs @@ -45,7 +45,7 @@ private void InitializeComponent() { this.VersionTxtBlk.Name = "VersionTxtBlk"; this.VersionTxtBlk.Size = new System.Drawing.Size(113, 25); this.VersionTxtBlk.TabIndex = 13; - this.VersionTxtBlk.Text = "Version 1.6.1"; + this.VersionTxtBlk.Text = "Version 1.6.2"; // // label3 // From 88386ce5bdee4bb6149a38afa0f02e055878b16c Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sun, 9 Apr 2023 22:02:25 -0500 Subject: [PATCH 069/101] Code styles. --- Program.cs | 61 ++++++++++++++++++++++++++---------------------------- 1 file changed, 29 insertions(+), 32 deletions(-) diff --git a/Program.cs b/Program.cs index 3f9b028..f98b589 100644 --- a/Program.cs +++ b/Program.cs @@ -62,11 +62,11 @@ public AppContext() { monitor.Start(); } - notifyIcon = new(components); - - // tooltip - notifyIcon.Text = "Caffeinated"; - notifyIcon.Visible = true; + notifyIcon = new(components) { + // tooltip + Text = "Caffeinated", + Visible = true + }; // Handle the DoubleClick event to activate the form. notifyIcon.MouseClick += new MouseEventHandler(notifyIcon1_Click); @@ -88,18 +88,20 @@ public AppContext() { private void SetIsLightTheme(object? sender = null, EventArgs? e = null) { try { - using (RegistryKey? key = Registry.CurrentUser.OpenSubKey(themeKeyPath)) { - if (key != null) { - Object? o = key.GetValue("SystemUsesLightTheme"); - if (o != null) { - if (o.ToString() == "1") { - isLightTheme = true; - } - else { - isLightTheme = false; - } - } - } + using RegistryKey? key = Registry.CurrentUser.OpenSubKey(themeKeyPath); + if (key is null) { + return; + } + Object? o = key.GetValue("SystemUsesLightTheme"); + if (o is null) { + return; + } + + if (o.ToString() == "1") { + isLightTheme = true; + } + else { + isLightTheme = false; } } catch (Exception) { @@ -109,14 +111,11 @@ private void SetIsLightTheme(object? sender = null, EventArgs? e = null) { setIcons(); setContextMenu(); - if (notifyIcon != null) - { - if (isActivated) - { + if (notifyIcon != null) { + if (isActivated) { notifyIcon.Icon = onIcon; } - else - { + else { notifyIcon.Icon = offIcon; } } @@ -252,8 +251,10 @@ public void setContextMenu() { contextMenu.Items.Add(new ToolStripSeparator()); foreach (int time in sortedTimes) { - ToolStripMenuItem? item = new(Duration.ToDescription(time)); - item.Tag = time; + ToolStripMenuItem? item = new(Duration.ToDescription(time)) + { + Tag = time + }; item.Click += new(item_Click); contextMenu.Items.Add(item); } @@ -326,7 +327,7 @@ private void notifyIcon1_Click(object? sender, MouseEventArgs e) { } } - private void ShowError() { + private static void ShowError() { MessageBox.Show( "Call to SetThreadExecutionState failed.", "Caffeinated", @@ -364,9 +365,7 @@ private void activate(int duration) { } private void deactivate() { - if (timer != null) { - timer.Stop(); - } + timer?.Stop(); uint result = NativeMethods.SetThreadExecutionState(NativeMethods.ES_CONTINUOUS); if (result == 0) { @@ -382,9 +381,7 @@ private void deactivate() { private void exitItem_Click(object? Sender, EventArgs e) { deactivate(); - if (notifyIcon != null) { - notifyIcon.Dispose(); - } + notifyIcon?.Dispose(); ExitThread(); } From 16704f31ec62e78d668bf1503760167aad88a1a7 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sun, 9 Apr 2023 22:06:43 -0500 Subject: [PATCH 070/101] Updated packages and remove thumbprint --- Caffeinated.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Caffeinated.csproj b/Caffeinated.csproj index 8eb64f6..3a25726 100644 --- a/Caffeinated.csproj +++ b/Caffeinated.csproj @@ -39,6 +39,6 @@ - + \ No newline at end of file From 06063ae968bef210622ce206ec4b2275fa232f7e Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sun, 31 Dec 2023 13:50:41 -0600 Subject: [PATCH 071/101] update packages --- Caffeinated.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Caffeinated.csproj b/Caffeinated.csproj index 3a25726..c63754e 100644 --- a/Caffeinated.csproj +++ b/Caffeinated.csproj @@ -39,6 +39,6 @@ - + \ No newline at end of file From af4d086f1379277b133cd3abb1062330c46e105a Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sun, 31 Dec 2023 15:02:37 -0600 Subject: [PATCH 072/101] Update text and version number --- Forms/About.Designer.cs | 235 ++++++----- Forms/About.resx | 62 ++- Forms/SettingsForm.Designer.cs | 692 ++++++++++++++++----------------- Forms/SettingsForm.resx | 66 +++- 4 files changed, 585 insertions(+), 470 deletions(-) diff --git a/Forms/About.Designer.cs b/Forms/About.Designer.cs index 82c1a7d..4c47635 100644 --- a/Forms/About.Designer.cs +++ b/Forms/About.Designer.cs @@ -21,156 +21,153 @@ protected override void Dispose(bool disposing) { /// Required method for Designer support - do not modify /// the contents of this method with the code editor. ///
- private void InitializeComponent() { + private void InitializeComponent() + { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutForm)); - this.VersionTxtBlk = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.dmndLbl = new System.Windows.Forms.LinkLabel(); - this.caffeineLbl = new System.Windows.Forms.LinkLabel(); - this.label1 = new System.Windows.Forms.Label(); - this.OriginallyByLink = new System.Windows.Forms.LinkLabel(); - this.ForkedByTheJoeFinLink = new System.Windows.Forms.LinkLabel(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.RateLabel = new System.Windows.Forms.LinkLabel(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.SuspendLayout(); + VersionTxtBlk = new System.Windows.Forms.Label(); + label3 = new System.Windows.Forms.Label(); + dmndLbl = new System.Windows.Forms.LinkLabel(); + caffeineLbl = new System.Windows.Forms.LinkLabel(); + label1 = new System.Windows.Forms.Label(); + OriginallyByLink = new System.Windows.Forms.LinkLabel(); + ForkedByTheJoeFinLink = new System.Windows.Forms.LinkLabel(); + pictureBox1 = new System.Windows.Forms.PictureBox(); + RateLabel = new System.Windows.Forms.LinkLabel(); + ((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit(); + SuspendLayout(); // // VersionTxtBlk // - this.VersionTxtBlk.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.VersionTxtBlk.AutoSize = true; - this.VersionTxtBlk.Location = new System.Drawing.Point(17, 254); - this.VersionTxtBlk.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.VersionTxtBlk.Name = "VersionTxtBlk"; - this.VersionTxtBlk.Size = new System.Drawing.Size(113, 25); - this.VersionTxtBlk.TabIndex = 13; - this.VersionTxtBlk.Text = "Version 1.6.2"; + VersionTxtBlk.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right; + VersionTxtBlk.AutoSize = true; + VersionTxtBlk.Location = new System.Drawing.Point(17, 254); + VersionTxtBlk.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + VersionTxtBlk.Name = "VersionTxtBlk"; + VersionTxtBlk.Size = new System.Drawing.Size(113, 25); + VersionTxtBlk.TabIndex = 13; + VersionTxtBlk.Text = "Version 1.7.0"; // // label3 // - this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.label3.Location = new System.Drawing.Point(17, 298); - this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(307, 67); - this.label3.TabIndex = 14; - this.label3.Text = "Prevents your PC from going to sleep or displaying the screen saver."; + label3.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right; + label3.Location = new System.Drawing.Point(17, 298); + label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + label3.Name = "label3"; + label3.Size = new System.Drawing.Size(307, 67); + label3.TabIndex = 14; + label3.Text = "Prevents your PC from going to sleep or displaying the screen saver."; // // dmndLbl // - this.dmndLbl.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dmndLbl.AutoSize = true; - this.dmndLbl.Location = new System.Drawing.Point(34, 365); - this.dmndLbl.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.dmndLbl.Name = "dmndLbl"; - this.dmndLbl.Size = new System.Drawing.Size(0, 25); - this.dmndLbl.TabIndex = 17; - this.dmndLbl.TextAlign = System.Drawing.ContentAlignment.TopCenter; - this.dmndLbl.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLbl_LinkClicked); + dmndLbl.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right; + dmndLbl.AutoSize = true; + dmndLbl.Location = new System.Drawing.Point(34, 365); + dmndLbl.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + dmndLbl.Name = "dmndLbl"; + dmndLbl.Size = new System.Drawing.Size(0, 25); + dmndLbl.TabIndex = 17; + dmndLbl.TextAlign = System.Drawing.ContentAlignment.TopCenter; + dmndLbl.LinkClicked += linkLbl_LinkClicked; // // caffeineLbl // - this.caffeineLbl.AutoSize = true; - this.caffeineLbl.LinkArea = new System.Windows.Forms.LinkArea(0, 0); - this.caffeineLbl.Location = new System.Drawing.Point(17, 365); - this.caffeineLbl.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.caffeineLbl.Name = "caffeineLbl"; - this.caffeineLbl.Size = new System.Drawing.Size(247, 25); - this.caffeineLbl.TabIndex = 18; - this.caffeineLbl.Text = "Inspired by Caffeine for OS X."; - this.caffeineLbl.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLbl_LinkClicked); + caffeineLbl.AutoSize = true; + caffeineLbl.LinkArea = new System.Windows.Forms.LinkArea(0, 0); + caffeineLbl.Location = new System.Drawing.Point(17, 365); + caffeineLbl.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + caffeineLbl.Name = "caffeineLbl"; + caffeineLbl.Size = new System.Drawing.Size(247, 25); + caffeineLbl.TabIndex = 18; + caffeineLbl.Text = "Inspired by Caffeine for OS X."; + caffeineLbl.LinkClicked += linkLbl_LinkClicked; // // label1 // - this.label1.AutoSize = true; - this.label1.Font = new System.Drawing.Font("Segoe UI", 11F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); - this.label1.Location = new System.Drawing.Point(17, 209); - this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(133, 30); - this.label1.TabIndex = 20; - this.label1.Text = "Caffeinated"; - this.label1.TextAlign = System.Drawing.ContentAlignment.TopCenter; + label1.AutoSize = true; + label1.Font = new System.Drawing.Font("Segoe UI", 11F, System.Drawing.FontStyle.Bold); + label1.Location = new System.Drawing.Point(17, 209); + label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + label1.Name = "label1"; + label1.Size = new System.Drawing.Size(133, 30); + label1.TabIndex = 20; + label1.Text = "Caffeinated"; + label1.TextAlign = System.Drawing.ContentAlignment.TopCenter; // // OriginallyByLink // - this.OriginallyByLink.AutoSize = true; - this.OriginallyByLink.LinkArea = new System.Windows.Forms.LinkArea(14, 18); - this.OriginallyByLink.Location = new System.Drawing.Point(17, 439); - this.OriginallyByLink.Name = "OriginallyByLink"; - this.OriginallyByLink.Size = new System.Drawing.Size(163, 30); - this.OriginallyByLink.TabIndex = 21; - this.OriginallyByLink.TabStop = true; - this.OriginallyByLink.Text = "Originally by dmnd"; - this.OriginallyByLink.UseCompatibleTextRendering = true; - this.OriginallyByLink.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); + OriginallyByLink.AutoSize = true; + OriginallyByLink.LinkArea = new System.Windows.Forms.LinkArea(14, 18); + OriginallyByLink.Location = new System.Drawing.Point(17, 439); + OriginallyByLink.Name = "OriginallyByLink"; + OriginallyByLink.Size = new System.Drawing.Size(163, 30); + OriginallyByLink.TabIndex = 21; + OriginallyByLink.TabStop = true; + OriginallyByLink.Text = "Originally by dmnd"; + OriginallyByLink.UseCompatibleTextRendering = true; + OriginallyByLink.LinkClicked += linkLabel1_LinkClicked; // // ForkedByTheJoeFinLink // - this.ForkedByTheJoeFinLink.AutoSize = true; - this.ForkedByTheJoeFinLink.LinkArea = new System.Windows.Forms.LinkArea(10, 19); - this.ForkedByTheJoeFinLink.Location = new System.Drawing.Point(198, 439); - this.ForkedByTheJoeFinLink.Name = "ForkedByTheJoeFinLink"; - this.ForkedByTheJoeFinLink.Size = new System.Drawing.Size(174, 30); - this.ForkedByTheJoeFinLink.TabIndex = 22; - this.ForkedByTheJoeFinLink.TabStop = true; - this.ForkedByTheJoeFinLink.Text = "Forked by TheJoeFin"; - this.ForkedByTheJoeFinLink.UseCompatibleTextRendering = true; - this.ForkedByTheJoeFinLink.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.ForkedByTheJoeFinLink_LinkClicked); + ForkedByTheJoeFinLink.AutoSize = true; + ForkedByTheJoeFinLink.LinkArea = new System.Windows.Forms.LinkArea(10, 19); + ForkedByTheJoeFinLink.Location = new System.Drawing.Point(198, 439); + ForkedByTheJoeFinLink.Name = "ForkedByTheJoeFinLink"; + ForkedByTheJoeFinLink.Size = new System.Drawing.Size(174, 30); + ForkedByTheJoeFinLink.TabIndex = 22; + ForkedByTheJoeFinLink.TabStop = true; + ForkedByTheJoeFinLink.Text = "Forked by TheJoeFin"; + ForkedByTheJoeFinLink.UseCompatibleTextRendering = true; + ForkedByTheJoeFinLink.LinkClicked += ForkedByTheJoeFinLink_LinkClicked; // // pictureBox1 // - this.pictureBox1.Image = global::Caffeinated.Properties.Resources.Caffeine_Black_96; - this.pictureBox1.Location = new System.Drawing.Point(17, 20); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(175, 175); - this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.pictureBox1.TabIndex = 23; - this.pictureBox1.TabStop = false; + pictureBox1.Image = Properties.Resources.Caffeine_Black_96; + pictureBox1.Location = new System.Drawing.Point(17, 20); + pictureBox1.Name = "pictureBox1"; + pictureBox1.Size = new System.Drawing.Size(175, 175); + pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + pictureBox1.TabIndex = 23; + pictureBox1.TabStop = false; // // RateLabel // - this.RateLabel.AutoSize = true; - this.RateLabel.Location = new System.Drawing.Point(34, 494); - this.RateLabel.Name = "RateLabel"; - this.RateLabel.Size = new System.Drawing.Size(316, 25); - this.RateLabel.TabIndex = 24; - this.RateLabel.TabStop = true; - this.RateLabel.Text = "Rate Windows Caffeinated in the Store"; - this.RateLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.RateLabel_LinkClicked); + RateLabel.AutoSize = true; + RateLabel.Location = new System.Drawing.Point(34, 494); + RateLabel.Name = "RateLabel"; + RateLabel.Size = new System.Drawing.Size(316, 25); + RateLabel.TabIndex = 24; + RateLabel.TabStop = true; + RateLabel.Text = "Rate Windows Caffeinated in the Store"; + RateLabel.LinkClicked += RateLabel_LinkClicked; // // AboutForm // - this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 25F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(378, 559); - this.Controls.Add(this.RateLabel); - this.Controls.Add(this.pictureBox1); - this.Controls.Add(this.ForkedByTheJoeFinLink); - this.Controls.Add(this.OriginallyByLink); - this.Controls.Add(this.label1); - this.Controls.Add(this.caffeineLbl); - this.Controls.Add(this.dmndLbl); - this.Controls.Add(this.label3); - this.Controls.Add(this.VersionTxtBlk); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "AboutForm"; - this.Padding = new System.Windows.Forms.Padding(14, 17, 14, 17); - this.ShowIcon = false; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "About Caffeinated"; - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - + AutoScaleDimensions = new System.Drawing.SizeF(10F, 25F); + AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + ClientSize = new System.Drawing.Size(378, 559); + Controls.Add(RateLabel); + Controls.Add(pictureBox1); + Controls.Add(ForkedByTheJoeFinLink); + Controls.Add(OriginallyByLink); + Controls.Add(label1); + Controls.Add(caffeineLbl); + Controls.Add(dmndLbl); + Controls.Add(label3); + Controls.Add(VersionTxtBlk); + FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon"); + Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + MaximizeBox = false; + MinimizeBox = false; + Name = "AboutForm"; + Padding = new System.Windows.Forms.Padding(14, 17, 14, 17); + ShowIcon = false; + ShowInTaskbar = false; + StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + Text = "About Caffeinated"; + ((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit(); + ResumeLayout(false); + PerformLayout(); } #endregion diff --git a/Forms/About.resx b/Forms/About.resx index 3e20303..9b39623 100644 --- a/Forms/About.resx +++ b/Forms/About.resx @@ -1,4 +1,64 @@ - + + + diff --git a/Forms/SettingsForm.Designer.cs b/Forms/SettingsForm.Designer.cs index d80eebb..5ec6975 100644 --- a/Forms/SettingsForm.Designer.cs +++ b/Forms/SettingsForm.Designer.cs @@ -22,441 +22,439 @@ protected override void Dispose(bool disposing) { /// Required method for Designer support - do not modify /// the contents of this method with the code editor. ///
- private void InitializeComponent() { + private void InitializeComponent() + { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SettingsForm)); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.okBtn = new System.Windows.Forms.Button(); - this.cancelBtn = new System.Windows.Forms.Button(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.label3 = new System.Windows.Forms.Label(); - this.DefaultDurationBox = new System.Windows.Forms.ComboBox(); - this.SettingsAtLaunchChkBox = new System.Windows.Forms.CheckBox(); - this.ActivateChkBox = new System.Windows.Forms.CheckBox(); - this.StartupChkBox = new System.Windows.Forms.CheckBox(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.OffIconLbl = new System.Windows.Forms.Label(); - this.OnIconLbl = new System.Windows.Forms.Label(); - this.defaultRDBTN = new System.Windows.Forms.RadioButton(); - this.eyeZZZRDBTN = new System.Windows.Forms.RadioButton(); - this.mugRDBTN = new System.Windows.Forms.RadioButton(); - this.pictureBox2 = new System.Windows.Forms.PictureBox(); - this.pictureBox3 = new System.Windows.Forms.PictureBox(); - this.pictureBox4 = new System.Windows.Forms.PictureBox(); - this.pictureBox5 = new System.Windows.Forms.PictureBox(); - this.pictureBox6 = new System.Windows.Forms.PictureBox(); - this.pictureBox7 = new System.Windows.Forms.PictureBox(); - this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); - this.CustomDurationLBL = new System.Windows.Forms.Label(); - this.CustomDurationTXBX = new System.Windows.Forms.TextBox(); - this.addCustomDurationBTN = new System.Windows.Forms.Button(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.tableLayoutPanel1.SuspendLayout(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel3.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox7)).BeginInit(); - this.tableLayoutPanel4.SuspendLayout(); - this.SuspendLayout(); + label1 = new System.Windows.Forms.Label(); + label2 = new System.Windows.Forms.Label(); + okBtn = new System.Windows.Forms.Button(); + cancelBtn = new System.Windows.Forms.Button(); + pictureBox1 = new System.Windows.Forms.PictureBox(); + tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + label3 = new System.Windows.Forms.Label(); + DefaultDurationBox = new System.Windows.Forms.ComboBox(); + SettingsAtLaunchChkBox = new System.Windows.Forms.CheckBox(); + ActivateChkBox = new System.Windows.Forms.CheckBox(); + StartupChkBox = new System.Windows.Forms.CheckBox(); + tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); + OffIconLbl = new System.Windows.Forms.Label(); + OnIconLbl = new System.Windows.Forms.Label(); + defaultRDBTN = new System.Windows.Forms.RadioButton(); + eyeZZZRDBTN = new System.Windows.Forms.RadioButton(); + mugRDBTN = new System.Windows.Forms.RadioButton(); + pictureBox2 = new System.Windows.Forms.PictureBox(); + pictureBox3 = new System.Windows.Forms.PictureBox(); + pictureBox4 = new System.Windows.Forms.PictureBox(); + pictureBox5 = new System.Windows.Forms.PictureBox(); + pictureBox6 = new System.Windows.Forms.PictureBox(); + pictureBox7 = new System.Windows.Forms.PictureBox(); + tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); + CustomDurationLBL = new System.Windows.Forms.Label(); + CustomDurationTXBX = new System.Windows.Forms.TextBox(); + addCustomDurationBTN = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit(); + tableLayoutPanel1.SuspendLayout(); + tableLayoutPanel2.SuspendLayout(); + tableLayoutPanel3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)pictureBox2).BeginInit(); + ((System.ComponentModel.ISupportInitialize)pictureBox3).BeginInit(); + ((System.ComponentModel.ISupportInitialize)pictureBox4).BeginInit(); + ((System.ComponentModel.ISupportInitialize)pictureBox5).BeginInit(); + ((System.ComponentModel.ISupportInitialize)pictureBox6).BeginInit(); + ((System.ComponentModel.ISupportInitialize)pictureBox7).BeginInit(); + tableLayoutPanel4.SuspendLayout(); + SuspendLayout(); // // label1 // - this.label1.BackColor = System.Drawing.Color.Transparent; - this.label1.ForeColor = System.Drawing.Color.Black; - this.label1.Location = new System.Drawing.Point(181, 20); - this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(584, 200); - this.label1.TabIndex = 0; - this.label1.Text = "Caffeinated is now running. You can find its icon in the notification area near t" + - "he clock. Click it to keep your PC awake by disabling automatic sleep. Click the" + - " icon again to allow automatic sleep."; + label1.BackColor = System.Drawing.Color.Transparent; + label1.ForeColor = System.Drawing.Color.Black; + label1.Location = new System.Drawing.Point(181, 20); + label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + label1.Name = "label1"; + label1.Size = new System.Drawing.Size(584, 200); + label1.TabIndex = 0; + label1.Text = "Caffeinated is now running. You can find its icon in the notification area near the clock. Click it to keep your PC awake by disabling automatic sleep. Click the icon again to allow automatic sleep."; // // label2 // - this.label2.BackColor = System.Drawing.Color.Transparent; - this.label2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); - this.label2.Location = new System.Drawing.Point(181, 168); - this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(406, 68); - this.label2.TabIndex = 1; - this.label2.Text = "Right-click the notification area icon to show the Caffeinated menu."; + label2.BackColor = System.Drawing.Color.Transparent; + label2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold); + label2.Location = new System.Drawing.Point(181, 168); + label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + label2.Name = "label2"; + label2.Size = new System.Drawing.Size(406, 68); + label2.TabIndex = 1; + label2.Text = "Right-click the notification area icon to show the Caffeinated menu."; // // okBtn // - this.okBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.okBtn.BackColor = System.Drawing.Color.Transparent; - this.okBtn.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.okBtn.Location = new System.Drawing.Point(501, 1005); - this.okBtn.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.okBtn.Name = "okBtn"; - this.okBtn.Size = new System.Drawing.Size(124, 45); - this.okBtn.TabIndex = 8; - this.okBtn.Text = "Ok"; - this.okBtn.UseVisualStyleBackColor = false; - this.okBtn.Click += new System.EventHandler(this.okBtn_Click); + okBtn.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right; + okBtn.BackColor = System.Drawing.Color.Transparent; + okBtn.FlatStyle = System.Windows.Forms.FlatStyle.System; + okBtn.Location = new System.Drawing.Point(501, 1005); + okBtn.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + okBtn.Name = "okBtn"; + okBtn.Size = new System.Drawing.Size(124, 45); + okBtn.TabIndex = 8; + okBtn.Text = "Ok"; + okBtn.UseVisualStyleBackColor = false; + okBtn.Click += okBtn_Click; // // cancelBtn // - this.cancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.cancelBtn.BackColor = System.Drawing.Color.Transparent; - this.cancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.cancelBtn.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.cancelBtn.Location = new System.Drawing.Point(635, 1005); - this.cancelBtn.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.cancelBtn.Name = "cancelBtn"; - this.cancelBtn.Size = new System.Drawing.Size(124, 45); - this.cancelBtn.TabIndex = 9; - this.cancelBtn.Text = "Cancel"; - this.cancelBtn.UseVisualStyleBackColor = false; - this.cancelBtn.Click += new System.EventHandler(this.cancelBtn_Click); + cancelBtn.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right; + cancelBtn.BackColor = System.Drawing.Color.Transparent; + cancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; + cancelBtn.FlatStyle = System.Windows.Forms.FlatStyle.System; + cancelBtn.Location = new System.Drawing.Point(635, 1005); + cancelBtn.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + cancelBtn.Name = "cancelBtn"; + cancelBtn.Size = new System.Drawing.Size(124, 45); + cancelBtn.TabIndex = 9; + cancelBtn.Text = "Cancel"; + cancelBtn.UseVisualStyleBackColor = false; + cancelBtn.Click += cancelBtn_Click; // // pictureBox1 // - this.pictureBox1.BackColor = System.Drawing.Color.Transparent; - this.pictureBox1.Image = global::Caffeinated.Properties.Resources.Caffeine_Black_96; - this.pictureBox1.Location = new System.Drawing.Point(17, 20); - this.pictureBox1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(137, 160); - this.pictureBox1.TabIndex = 10; - this.pictureBox1.TabStop = false; + pictureBox1.BackColor = System.Drawing.Color.Transparent; + pictureBox1.Image = Properties.Resources.Caffeine_Black_96; + pictureBox1.Location = new System.Drawing.Point(17, 20); + pictureBox1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + pictureBox1.Name = "pictureBox1"; + pictureBox1.Size = new System.Drawing.Size(137, 160); + pictureBox1.TabIndex = 10; + pictureBox1.TabStop = false; // // tableLayoutPanel1 // - 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.tableLayoutPanel2, 0, 5); - this.tableLayoutPanel1.Controls.Add(this.SettingsAtLaunchChkBox, 0, 2); - this.tableLayoutPanel1.Controls.Add(this.ActivateChkBox, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.StartupChkBox, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 0, 7); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel4, 0, 6); - this.tableLayoutPanel1.Location = new System.Drawing.Point(186, 223); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 9; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 60F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 90F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 400F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 83F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(401, 748); - this.tableLayoutPanel1.TabIndex = 11; + tableLayoutPanel1.BackColor = System.Drawing.Color.Transparent; + tableLayoutPanel1.ColumnCount = 1; + tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + tableLayoutPanel1.Controls.Add(tableLayoutPanel2, 0, 5); + tableLayoutPanel1.Controls.Add(SettingsAtLaunchChkBox, 0, 2); + tableLayoutPanel1.Controls.Add(ActivateChkBox, 0, 1); + tableLayoutPanel1.Controls.Add(StartupChkBox, 0, 0); + tableLayoutPanel1.Controls.Add(tableLayoutPanel3, 0, 7); + tableLayoutPanel1.Controls.Add(tableLayoutPanel4, 0, 6); + tableLayoutPanel1.Location = new System.Drawing.Point(186, 223); + tableLayoutPanel1.Name = "tableLayoutPanel1"; + tableLayoutPanel1.RowCount = 9; + tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 60F)); + tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 90F)); + tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 400F)); + tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 83F)); + tableLayoutPanel1.Size = new System.Drawing.Size(401, 748); + tableLayoutPanel1.TabIndex = 11; // // tableLayoutPanel2 // - this.tableLayoutPanel2.ColumnCount = 2; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 200F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); - this.tableLayoutPanel2.Controls.Add(this.label3, 0, 0); - this.tableLayoutPanel2.Controls.Add(this.DefaultDurationBox, 1, 0); - this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 140); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 1; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(391, 54); - this.tableLayoutPanel2.TabIndex = 13; + tableLayoutPanel2.ColumnCount = 2; + tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 200F)); + tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + tableLayoutPanel2.Controls.Add(label3, 0, 0); + tableLayoutPanel2.Controls.Add(DefaultDurationBox, 1, 0); + tableLayoutPanel2.Location = new System.Drawing.Point(3, 140); + tableLayoutPanel2.Name = "tableLayoutPanel2"; + tableLayoutPanel2.RowCount = 1; + tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + tableLayoutPanel2.Size = new System.Drawing.Size(391, 54); + tableLayoutPanel2.TabIndex = 13; // // label3 // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(4, 0); - this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(145, 25); - this.label3.TabIndex = 9; - this.label3.Text = "Default duration:"; + label3.AutoSize = true; + label3.Location = new System.Drawing.Point(4, 0); + label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + label3.Name = "label3"; + label3.Size = new System.Drawing.Size(145, 25); + label3.TabIndex = 9; + label3.Text = "Default duration:"; // // DefaultDurationBox // - this.DefaultDurationBox.FormattingEnabled = true; - this.DefaultDurationBox.Location = new System.Drawing.Point(204, 5); - this.DefaultDurationBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.DefaultDurationBox.Name = "DefaultDurationBox"; - this.DefaultDurationBox.Size = new System.Drawing.Size(130, 33); - this.DefaultDurationBox.TabIndex = 8; - this.DefaultDurationBox.SelectedIndexChanged += new System.EventHandler(this.DefaultDurationBox_SelectedIndexChanged); + DefaultDurationBox.FormattingEnabled = true; + DefaultDurationBox.Location = new System.Drawing.Point(204, 5); + DefaultDurationBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + DefaultDurationBox.Name = "DefaultDurationBox"; + DefaultDurationBox.Size = new System.Drawing.Size(130, 33); + DefaultDurationBox.TabIndex = 8; + DefaultDurationBox.SelectedIndexChanged += DefaultDurationBox_SelectedIndexChanged; // // SettingsAtLaunchChkBox // - this.SettingsAtLaunchChkBox.AutoSize = true; - this.SettingsAtLaunchChkBox.Location = new System.Drawing.Point(4, 83); - this.SettingsAtLaunchChkBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.SettingsAtLaunchChkBox.Name = "SettingsAtLaunchChkBox"; - this.SettingsAtLaunchChkBox.Size = new System.Drawing.Size(293, 29); - this.SettingsAtLaunchChkBox.TabIndex = 5; - this.SettingsAtLaunchChkBox.Text = "Show this message upon launch"; - this.SettingsAtLaunchChkBox.UseVisualStyleBackColor = true; - this.SettingsAtLaunchChkBox.CheckedChanged += new System.EventHandler(this.SettingsAtLaunchChkBox_CheckedChanged); + SettingsAtLaunchChkBox.AutoSize = true; + SettingsAtLaunchChkBox.Location = new System.Drawing.Point(4, 83); + SettingsAtLaunchChkBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + SettingsAtLaunchChkBox.Name = "SettingsAtLaunchChkBox"; + SettingsAtLaunchChkBox.Size = new System.Drawing.Size(352, 29); + SettingsAtLaunchChkBox.TabIndex = 5; + SettingsAtLaunchChkBox.Text = "Show this settings window upon launch"; + SettingsAtLaunchChkBox.UseVisualStyleBackColor = true; + SettingsAtLaunchChkBox.CheckedChanged += SettingsAtLaunchChkBox_CheckedChanged; // // ActivateChkBox // - this.ActivateChkBox.AutoSize = true; - this.ActivateChkBox.Location = new System.Drawing.Point(4, 44); - this.ActivateChkBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.ActivateChkBox.Name = "ActivateChkBox"; - this.ActivateChkBox.Size = new System.Drawing.Size(204, 29); - this.ActivateChkBox.TabIndex = 4; - this.ActivateChkBox.Text = "Activate upon launch"; - this.ActivateChkBox.UseVisualStyleBackColor = true; - this.ActivateChkBox.CheckedChanged += new System.EventHandler(this.ActivateChkBox_CheckedChanged); + ActivateChkBox.AutoSize = true; + ActivateChkBox.Location = new System.Drawing.Point(4, 44); + ActivateChkBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + ActivateChkBox.Name = "ActivateChkBox"; + ActivateChkBox.Size = new System.Drawing.Size(204, 29); + ActivateChkBox.TabIndex = 4; + ActivateChkBox.Text = "Activate upon launch"; + ActivateChkBox.UseVisualStyleBackColor = true; + ActivateChkBox.CheckedChanged += ActivateChkBox_CheckedChanged; // // StartupChkBox // - this.StartupChkBox.AutoSize = true; - this.StartupChkBox.Location = new System.Drawing.Point(4, 5); - this.StartupChkBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.StartupChkBox.Name = "StartupChkBox"; - this.StartupChkBox.Size = new System.Drawing.Size(362, 29); - this.StartupChkBox.TabIndex = 3; - this.StartupChkBox.Text = "Automatically launch at Windows startup"; - this.StartupChkBox.UseVisualStyleBackColor = true; - this.StartupChkBox.CheckedChanged += new System.EventHandler(this.StartupChkBox_CheckedChanged); + StartupChkBox.AutoSize = true; + StartupChkBox.Location = new System.Drawing.Point(4, 5); + StartupChkBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + StartupChkBox.Name = "StartupChkBox"; + StartupChkBox.Size = new System.Drawing.Size(362, 29); + StartupChkBox.TabIndex = 3; + StartupChkBox.Text = "Automatically launch at Windows startup"; + StartupChkBox.UseVisualStyleBackColor = true; + StartupChkBox.CheckedChanged += StartupChkBox_CheckedChanged; // // tableLayoutPanel3 // - this.tableLayoutPanel3.ColumnCount = 3; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 150F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); - this.tableLayoutPanel3.Controls.Add(this.OffIconLbl, 1, 0); - this.tableLayoutPanel3.Controls.Add(this.OnIconLbl, 2, 0); - this.tableLayoutPanel3.Controls.Add(this.defaultRDBTN, 0, 1); - this.tableLayoutPanel3.Controls.Add(this.eyeZZZRDBTN, 0, 2); - this.tableLayoutPanel3.Controls.Add(this.mugRDBTN, 0, 3); - this.tableLayoutPanel3.Controls.Add(this.pictureBox2, 1, 1); - this.tableLayoutPanel3.Controls.Add(this.pictureBox3, 2, 1); - this.tableLayoutPanel3.Controls.Add(this.pictureBox4, 1, 2); - this.tableLayoutPanel3.Controls.Add(this.pictureBox5, 2, 2); - this.tableLayoutPanel3.Controls.Add(this.pictureBox6, 1, 3); - this.tableLayoutPanel3.Controls.Add(this.pictureBox7, 2, 3); - this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 290); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 4; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 110F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 110F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 110F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(391, 361); - this.tableLayoutPanel3.TabIndex = 14; + tableLayoutPanel3.ColumnCount = 3; + tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 150F)); + tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + tableLayoutPanel3.Controls.Add(OffIconLbl, 1, 0); + tableLayoutPanel3.Controls.Add(OnIconLbl, 2, 0); + tableLayoutPanel3.Controls.Add(defaultRDBTN, 0, 1); + tableLayoutPanel3.Controls.Add(eyeZZZRDBTN, 0, 2); + tableLayoutPanel3.Controls.Add(mugRDBTN, 0, 3); + tableLayoutPanel3.Controls.Add(pictureBox2, 1, 1); + tableLayoutPanel3.Controls.Add(pictureBox3, 2, 1); + tableLayoutPanel3.Controls.Add(pictureBox4, 1, 2); + tableLayoutPanel3.Controls.Add(pictureBox5, 2, 2); + tableLayoutPanel3.Controls.Add(pictureBox6, 1, 3); + tableLayoutPanel3.Controls.Add(pictureBox7, 2, 3); + tableLayoutPanel3.Location = new System.Drawing.Point(3, 290); + tableLayoutPanel3.Name = "tableLayoutPanel3"; + tableLayoutPanel3.RowCount = 4; + tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle()); + tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 110F)); + tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 110F)); + tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 110F)); + tableLayoutPanel3.Size = new System.Drawing.Size(391, 361); + tableLayoutPanel3.TabIndex = 14; // // OffIconLbl // - this.OffIconLbl.AutoSize = true; - this.OffIconLbl.Location = new System.Drawing.Point(153, 0); - this.OffIconLbl.Name = "OffIconLbl"; - this.OffIconLbl.Size = new System.Drawing.Size(77, 25); - this.OffIconLbl.TabIndex = 0; - this.OffIconLbl.Text = "Off Icon"; + OffIconLbl.AutoSize = true; + OffIconLbl.Location = new System.Drawing.Point(153, 0); + OffIconLbl.Name = "OffIconLbl"; + OffIconLbl.Size = new System.Drawing.Size(77, 25); + OffIconLbl.TabIndex = 0; + OffIconLbl.Text = "Off Icon"; // // OnIconLbl // - this.OnIconLbl.AutoSize = true; - this.OnIconLbl.Location = new System.Drawing.Point(253, 0); - this.OnIconLbl.Name = "OnIconLbl"; - this.OnIconLbl.Size = new System.Drawing.Size(75, 25); - this.OnIconLbl.TabIndex = 1; - this.OnIconLbl.Text = "On Icon"; + OnIconLbl.AutoSize = true; + OnIconLbl.Location = new System.Drawing.Point(253, 0); + OnIconLbl.Name = "OnIconLbl"; + OnIconLbl.Size = new System.Drawing.Size(75, 25); + OnIconLbl.TabIndex = 1; + OnIconLbl.Text = "On Icon"; // // defaultRDBTN // - this.defaultRDBTN.AutoSize = true; - this.defaultRDBTN.Location = new System.Drawing.Point(3, 28); - this.defaultRDBTN.Name = "defaultRDBTN"; - this.defaultRDBTN.Padding = new System.Windows.Forms.Padding(0, 25, 0, 0); - this.defaultRDBTN.Size = new System.Drawing.Size(94, 54); - this.defaultRDBTN.TabIndex = 2; - this.defaultRDBTN.TabStop = true; - this.defaultRDBTN.Text = "Default"; - this.defaultRDBTN.TextAlign = System.Drawing.ContentAlignment.TopLeft; - this.defaultRDBTN.UseVisualStyleBackColor = true; - this.defaultRDBTN.Click += new System.EventHandler(this.defaultRDBTN_Click); + defaultRDBTN.AutoSize = true; + defaultRDBTN.Location = new System.Drawing.Point(3, 28); + defaultRDBTN.Name = "defaultRDBTN"; + defaultRDBTN.Padding = new System.Windows.Forms.Padding(0, 25, 0, 0); + defaultRDBTN.Size = new System.Drawing.Size(94, 54); + defaultRDBTN.TabIndex = 2; + defaultRDBTN.TabStop = true; + defaultRDBTN.Text = "Default"; + defaultRDBTN.TextAlign = System.Drawing.ContentAlignment.TopLeft; + defaultRDBTN.UseVisualStyleBackColor = true; + defaultRDBTN.Click += defaultRDBTN_Click; // // eyeZZZRDBTN // - this.eyeZZZRDBTN.AutoSize = true; - this.eyeZZZRDBTN.Location = new System.Drawing.Point(3, 138); - this.eyeZZZRDBTN.Name = "eyeZZZRDBTN"; - this.eyeZZZRDBTN.Padding = new System.Windows.Forms.Padding(0, 25, 0, 0); - this.eyeZZZRDBTN.Size = new System.Drawing.Size(135, 54); - this.eyeZZZRDBTN.TabIndex = 3; - this.eyeZZZRDBTN.TabStop = true; - this.eyeZZZRDBTN.Text = "Eye with zZZ"; - this.eyeZZZRDBTN.UseVisualStyleBackColor = true; - this.eyeZZZRDBTN.Click += new System.EventHandler(this.eyeZZZRDBTN_Click); + eyeZZZRDBTN.AutoSize = true; + eyeZZZRDBTN.Location = new System.Drawing.Point(3, 138); + eyeZZZRDBTN.Name = "eyeZZZRDBTN"; + eyeZZZRDBTN.Padding = new System.Windows.Forms.Padding(0, 25, 0, 0); + eyeZZZRDBTN.Size = new System.Drawing.Size(135, 54); + eyeZZZRDBTN.TabIndex = 3; + eyeZZZRDBTN.TabStop = true; + eyeZZZRDBTN.Text = "Eye with zZZ"; + eyeZZZRDBTN.UseVisualStyleBackColor = true; + eyeZZZRDBTN.Click += eyeZZZRDBTN_Click; // // mugRDBTN // - this.mugRDBTN.AutoSize = true; - this.mugRDBTN.Location = new System.Drawing.Point(3, 248); - this.mugRDBTN.Name = "mugRDBTN"; - this.mugRDBTN.Padding = new System.Windows.Forms.Padding(0, 25, 0, 0); - this.mugRDBTN.Size = new System.Drawing.Size(74, 54); - this.mugRDBTN.TabIndex = 4; - this.mugRDBTN.TabStop = true; - this.mugRDBTN.Text = "Mug"; - this.mugRDBTN.UseVisualStyleBackColor = true; - this.mugRDBTN.Click += new System.EventHandler(this.mugRDBTN_Click); + mugRDBTN.AutoSize = true; + mugRDBTN.Location = new System.Drawing.Point(3, 248); + mugRDBTN.Name = "mugRDBTN"; + mugRDBTN.Padding = new System.Windows.Forms.Padding(0, 25, 0, 0); + mugRDBTN.Size = new System.Drawing.Size(74, 54); + mugRDBTN.TabIndex = 4; + mugRDBTN.TabStop = true; + mugRDBTN.Text = "Mug"; + mugRDBTN.UseVisualStyleBackColor = true; + mugRDBTN.Click += mugRDBTN_Click; // // pictureBox2 // - this.pictureBox2.Image = global::Caffeinated.Properties.Resources.SleepEye_Black; - this.pictureBox2.Location = new System.Drawing.Point(160, 35); - this.pictureBox2.Margin = new System.Windows.Forms.Padding(10); - this.pictureBox2.Name = "pictureBox2"; - this.pictureBox2.Size = new System.Drawing.Size(80, 80); - this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.pictureBox2.TabIndex = 5; - this.pictureBox2.TabStop = false; + pictureBox2.Image = Properties.Resources.SleepEye_Black; + pictureBox2.Location = new System.Drawing.Point(160, 35); + pictureBox2.Margin = new System.Windows.Forms.Padding(10); + pictureBox2.Name = "pictureBox2"; + pictureBox2.Size = new System.Drawing.Size(80, 80); + pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + pictureBox2.TabIndex = 5; + pictureBox2.TabStop = false; // // pictureBox3 // - this.pictureBox3.Image = global::Caffeinated.Properties.Resources.Caffeine_Black_512; - this.pictureBox3.Location = new System.Drawing.Point(260, 35); - this.pictureBox3.Margin = new System.Windows.Forms.Padding(10); - this.pictureBox3.Name = "pictureBox3"; - this.pictureBox3.Size = new System.Drawing.Size(80, 80); - this.pictureBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.pictureBox3.TabIndex = 6; - this.pictureBox3.TabStop = false; + pictureBox3.Image = Properties.Resources.Caffeine_Black_512; + pictureBox3.Location = new System.Drawing.Point(260, 35); + pictureBox3.Margin = new System.Windows.Forms.Padding(10); + pictureBox3.Name = "pictureBox3"; + pictureBox3.Size = new System.Drawing.Size(80, 80); + pictureBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + pictureBox3.TabIndex = 6; + pictureBox3.TabStop = false; // // pictureBox4 // - this.pictureBox4.Image = global::Caffeinated.Properties.Resources.Eye_zzz_Sleep_Black; - this.pictureBox4.Location = new System.Drawing.Point(160, 145); - this.pictureBox4.Margin = new System.Windows.Forms.Padding(10); - this.pictureBox4.Name = "pictureBox4"; - this.pictureBox4.Size = new System.Drawing.Size(80, 80); - this.pictureBox4.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.pictureBox4.TabIndex = 7; - this.pictureBox4.TabStop = false; + pictureBox4.Image = Properties.Resources.Eye_zzz_Sleep_Black; + pictureBox4.Location = new System.Drawing.Point(160, 145); + pictureBox4.Margin = new System.Windows.Forms.Padding(10); + pictureBox4.Name = "pictureBox4"; + pictureBox4.Size = new System.Drawing.Size(80, 80); + pictureBox4.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + pictureBox4.TabIndex = 7; + pictureBox4.TabStop = false; // // pictureBox5 // - this.pictureBox5.Image = global::Caffeinated.Properties.Resources.Eye_zzz_Active_Black; - this.pictureBox5.Location = new System.Drawing.Point(260, 145); - this.pictureBox5.Margin = new System.Windows.Forms.Padding(10); - this.pictureBox5.Name = "pictureBox5"; - this.pictureBox5.Size = new System.Drawing.Size(80, 80); - this.pictureBox5.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.pictureBox5.TabIndex = 8; - this.pictureBox5.TabStop = false; + pictureBox5.Image = Properties.Resources.Eye_zzz_Active_Black; + pictureBox5.Location = new System.Drawing.Point(260, 145); + pictureBox5.Margin = new System.Windows.Forms.Padding(10); + pictureBox5.Name = "pictureBox5"; + pictureBox5.Size = new System.Drawing.Size(80, 80); + pictureBox5.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + pictureBox5.TabIndex = 8; + pictureBox5.TabStop = false; // // pictureBox6 // - this.pictureBox6.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox6.Image"))); - this.pictureBox6.Location = new System.Drawing.Point(160, 255); - this.pictureBox6.Margin = new System.Windows.Forms.Padding(10); - this.pictureBox6.Name = "pictureBox6"; - this.pictureBox6.Padding = new System.Windows.Forms.Padding(10); - this.pictureBox6.Size = new System.Drawing.Size(80, 80); - this.pictureBox6.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.pictureBox6.TabIndex = 9; - this.pictureBox6.TabStop = false; + pictureBox6.Image = (System.Drawing.Image)resources.GetObject("pictureBox6.Image"); + pictureBox6.Location = new System.Drawing.Point(160, 255); + pictureBox6.Margin = new System.Windows.Forms.Padding(10); + pictureBox6.Name = "pictureBox6"; + pictureBox6.Padding = new System.Windows.Forms.Padding(10); + pictureBox6.Size = new System.Drawing.Size(80, 80); + pictureBox6.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + pictureBox6.TabIndex = 9; + pictureBox6.TabStop = false; // // pictureBox7 // - this.pictureBox7.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox7.Image"))); - this.pictureBox7.Location = new System.Drawing.Point(260, 255); - this.pictureBox7.Margin = new System.Windows.Forms.Padding(10); - this.pictureBox7.Name = "pictureBox7"; - this.pictureBox7.Size = new System.Drawing.Size(80, 80); - this.pictureBox7.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.pictureBox7.TabIndex = 10; - this.pictureBox7.TabStop = false; + pictureBox7.Image = (System.Drawing.Image)resources.GetObject("pictureBox7.Image"); + pictureBox7.Location = new System.Drawing.Point(260, 255); + pictureBox7.Margin = new System.Windows.Forms.Padding(10); + pictureBox7.Name = "pictureBox7"; + pictureBox7.Size = new System.Drawing.Size(80, 80); + pictureBox7.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + pictureBox7.TabIndex = 10; + pictureBox7.TabStop = false; // // tableLayoutPanel4 // - this.tableLayoutPanel4.ColumnCount = 3; - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 200F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 80F)); - this.tableLayoutPanel4.Controls.Add(this.CustomDurationLBL, 0, 0); - this.tableLayoutPanel4.Controls.Add(this.CustomDurationTXBX, 1, 0); - this.tableLayoutPanel4.Controls.Add(this.addCustomDurationBTN, 2, 0); - this.tableLayoutPanel4.Location = new System.Drawing.Point(3, 200); - this.tableLayoutPanel4.Name = "tableLayoutPanel4"; - this.tableLayoutPanel4.RowCount = 1; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel4.Size = new System.Drawing.Size(391, 58); - this.tableLayoutPanel4.TabIndex = 15; + tableLayoutPanel4.ColumnCount = 3; + tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 200F)); + tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 80F)); + tableLayoutPanel4.Controls.Add(CustomDurationLBL, 0, 0); + tableLayoutPanel4.Controls.Add(CustomDurationTXBX, 1, 0); + tableLayoutPanel4.Controls.Add(addCustomDurationBTN, 2, 0); + tableLayoutPanel4.Location = new System.Drawing.Point(3, 200); + tableLayoutPanel4.Name = "tableLayoutPanel4"; + tableLayoutPanel4.RowCount = 1; + tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle()); + tableLayoutPanel4.Size = new System.Drawing.Size(391, 58); + tableLayoutPanel4.TabIndex = 15; // // CustomDurationLBL // - this.CustomDurationLBL.AutoSize = true; - this.CustomDurationLBL.Dock = System.Windows.Forms.DockStyle.Top; - this.CustomDurationLBL.Location = new System.Drawing.Point(3, 0); - this.CustomDurationLBL.Name = "CustomDurationLBL"; - this.CustomDurationLBL.Size = new System.Drawing.Size(194, 50); - this.CustomDurationLBL.TabIndex = 0; - this.CustomDurationLBL.Text = "Custom duration in minutes:"; + CustomDurationLBL.AutoSize = true; + CustomDurationLBL.Dock = System.Windows.Forms.DockStyle.Top; + CustomDurationLBL.Location = new System.Drawing.Point(3, 0); + CustomDurationLBL.Name = "CustomDurationLBL"; + CustomDurationLBL.Size = new System.Drawing.Size(194, 50); + CustomDurationLBL.TabIndex = 0; + CustomDurationLBL.Text = "Custom duration in minutes:"; // // CustomDurationTXBX // - this.CustomDurationTXBX.Location = new System.Drawing.Point(203, 3); - this.CustomDurationTXBX.Name = "CustomDurationTXBX"; - this.CustomDurationTXBX.Size = new System.Drawing.Size(91, 31); - this.CustomDurationTXBX.TabIndex = 1; + CustomDurationTXBX.Location = new System.Drawing.Point(203, 3); + CustomDurationTXBX.Name = "CustomDurationTXBX"; + CustomDurationTXBX.Size = new System.Drawing.Size(91, 31); + CustomDurationTXBX.TabIndex = 1; // // addCustomDurationBTN // - this.addCustomDurationBTN.Location = new System.Drawing.Point(314, 3); - this.addCustomDurationBTN.Name = "addCustomDurationBTN"; - this.addCustomDurationBTN.Size = new System.Drawing.Size(65, 31); - this.addCustomDurationBTN.TabIndex = 2; - this.addCustomDurationBTN.Text = "Add"; - this.addCustomDurationBTN.UseVisualStyleBackColor = true; - this.addCustomDurationBTN.Click += new System.EventHandler(this.addCustomDurationBTN_Click); + addCustomDurationBTN.Location = new System.Drawing.Point(314, 3); + addCustomDurationBTN.Name = "addCustomDurationBTN"; + addCustomDurationBTN.Size = new System.Drawing.Size(65, 31); + addCustomDurationBTN.TabIndex = 2; + addCustomDurationBTN.Text = "Add"; + addCustomDurationBTN.UseVisualStyleBackColor = true; + addCustomDurationBTN.Click += addCustomDurationBTN_Click; // // SettingsForm // - this.AcceptButton = this.okBtn; - this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 25F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.AutoSize = true; - this.CancelButton = this.cancelBtn; - this.ClientSize = new System.Drawing.Size(778, 1064); - this.Controls.Add(this.tableLayoutPanel1); - this.Controls.Add(this.pictureBox1); - this.Controls.Add(this.cancelBtn); - this.Controls.Add(this.okBtn); - this.Controls.Add(this.label2); - this.Controls.Add(this.label1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.MaximizeBox = false; - this.Name = "SettingsForm"; - this.Text = "Welcome to Caffeinated"; - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.tableLayoutPanel1.ResumeLayout(false); - this.tableLayoutPanel1.PerformLayout(); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel2.PerformLayout(); - this.tableLayoutPanel3.ResumeLayout(false); - this.tableLayoutPanel3.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox7)).EndInit(); - this.tableLayoutPanel4.ResumeLayout(false); - this.tableLayoutPanel4.PerformLayout(); - this.ResumeLayout(false); - + AcceptButton = okBtn; + AutoScaleDimensions = new System.Drawing.SizeF(10F, 25F); + AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + AutoSize = true; + CancelButton = cancelBtn; + ClientSize = new System.Drawing.Size(778, 1064); + Controls.Add(tableLayoutPanel1); + Controls.Add(pictureBox1); + Controls.Add(cancelBtn); + Controls.Add(okBtn); + Controls.Add(label2); + Controls.Add(label1); + FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon"); + Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + MaximizeBox = false; + Name = "SettingsForm"; + Text = "Welcome to Caffeinated"; + ((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit(); + tableLayoutPanel1.ResumeLayout(false); + tableLayoutPanel1.PerformLayout(); + tableLayoutPanel2.ResumeLayout(false); + tableLayoutPanel2.PerformLayout(); + tableLayoutPanel3.ResumeLayout(false); + tableLayoutPanel3.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)pictureBox2).EndInit(); + ((System.ComponentModel.ISupportInitialize)pictureBox3).EndInit(); + ((System.ComponentModel.ISupportInitialize)pictureBox4).EndInit(); + ((System.ComponentModel.ISupportInitialize)pictureBox5).EndInit(); + ((System.ComponentModel.ISupportInitialize)pictureBox6).EndInit(); + ((System.ComponentModel.ISupportInitialize)pictureBox7).EndInit(); + tableLayoutPanel4.ResumeLayout(false); + tableLayoutPanel4.PerformLayout(); + ResumeLayout(false); } #endregion diff --git a/Forms/SettingsForm.resx b/Forms/SettingsForm.resx index 71ce60b..e69b98a 100644 --- a/Forms/SettingsForm.resx +++ b/Forms/SettingsForm.resx @@ -1,4 +1,64 @@ - + + + @@ -61,7 +121,7 @@ iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL - EAAACxABrSO9dQAADPFJREFUeF7t3e2xG1UWRmFCIINxCGRgMjAZmAwgA8iAEJgMCIEQCIEQCGGm95Rv + DwAACw8BkvkDpQAADPFJREFUeF7t3e2xG1UWRmFCIINxCGRgMjAZmAwgA8iAEJgMCIEQCIEQCGGm95Rv levOMui9R9L52OupWj8xp9VbrW6ppfuVJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEk60n/MJqbJaKeYPStN RjvF7FlpMtopZs9Kk9FOMXtWmox2itmz0mS0U8yelSajnWL2rDQZ7RSzZ6XJaKeYPStNRjvF7FlpMtop Zs9Kk9FOMXtWmox2itmz0mS0U8yelSajnWL2rDQZ7ZQk9UYz8db+uvrzU79/6terX65+uPru6turr690 @@ -122,7 +182,7 @@ iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL - EAAACxABrSO9dQAAD1BJREFUeF7tneuR3sYVRBmCMrBCYAZkBmQGUgZSBlYGDsHOQCE4BIXgEBSCjWtz + DwAACw8BkvkDpQAAD1BJREFUeF7tneuR3sYVRBmCMrBCYAZkBmQGUgZSBlYGDsHOQCE4BIXgEBSCjWtz q1jrQwm9Ddx5oE/V+bm9d74BBgNgALwLIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQggh hBDClvw7xoGGwVCnxNhlGAx1SoxdhsFQp8TYZRgMdUqMXYbBUKfE2GUYDHVKjF2GwVCnxNhlGAx1Soxd hsFQp8TYZRgMdUqMXYbBUKfE2GUYDHVKjF2GwVCnxNhlGAx1SoxdhsFQp8TYZRgMdYpieDa0TbzV3w// From c6d7533c7c96a695f222d244f2a3005dae271a55 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sun, 31 Dec 2023 15:03:02 -0600 Subject: [PATCH 073/101] Adjust default settings and add IsFirstLaunch setting --- Helpers/AppSettings.cs | 56 +++++++++++++++++++----------------- Properties/Settings.settings | 9 ++++-- app.config | 9 ++++-- 3 files changed, 42 insertions(+), 32 deletions(-) diff --git a/Helpers/AppSettings.cs b/Helpers/AppSettings.cs index 43b498a..94fa6f0 100644 --- a/Helpers/AppSettings.cs +++ b/Helpers/AppSettings.cs @@ -18,6 +18,18 @@ public bool ActivateOnLaunch { } } + private bool _isFirstLaunch; + + public bool IsFirstLaunch + { + get { return _isFirstLaunch; } + set { + _isFirstLaunch = value; + localSettings.Values[nameof(IsFirstLaunch)] = _isFirstLaunch.ToString(); + } + } + + private bool _automaticallyLaunchWithWindows; public bool AutomaticallyLaunchWithWindows { @@ -71,44 +83,36 @@ public ObservableCollection Durations { public AppSettings() { string ActivateOnLaunchSetting = (string)localSettings.Values[nameof(ActivateOnLaunch)]; - if (ActivateOnLaunchSetting == null) - ActivateOnLaunchSetting = "false"; + ActivateOnLaunchSetting ??= "false"; _activateOnLaunch = bool.Parse(ActivateOnLaunchSetting); + + string IsFirstLaunchSetting = (string)localSettings.Values[nameof(IsFirstLaunch)]; + IsFirstLaunchSetting ??= "true"; + _isFirstLaunch = bool.Parse(IsFirstLaunchSetting); string AutomaticallyLaunchWithWindowsSetting = (string)localSettings.Values[nameof(AutomaticallyLaunchWithWindows)]; - if (AutomaticallyLaunchWithWindowsSetting == null) - AutomaticallyLaunchWithWindowsSetting = "false"; + AutomaticallyLaunchWithWindowsSetting ??= "false"; _automaticallyLaunchWithWindows = bool.Parse(AutomaticallyLaunchWithWindowsSetting); string ShowMessageOnLaunchSetting = (string)localSettings.Values[nameof(ShowMessageOnLaunch)]; - if (ShowMessageOnLaunchSetting == null) - ShowMessageOnLaunchSetting = "true"; + ShowMessageOnLaunchSetting ??= "false"; _showMessageOnLaunch = bool.Parse(ShowMessageOnLaunchSetting); string DefaultDurationSetting = (string)localSettings.Values[nameof(DefaultDuration)]; - if (DefaultDurationSetting == null) - DefaultDurationSetting = "0"; + DefaultDurationSetting ??= "480"; _defaultDuration = int.Parse(DefaultDurationSetting); string IconSetting = (string)localSettings.Values[nameof(Icon)]; - if (IconSetting == null) - IconSetting = "default"; - - switch (IconSetting) { - case "Mug": - _icon = TrayIcon.Mug; - break; - case "EyeWithZzz": - _icon = TrayIcon.EyeWithZzz; - break; - default: - _icon = TrayIcon.Default; - break; - } - + IconSetting ??= "Mug"; + + _icon = IconSetting switch + { + "Mug" => TrayIcon.Mug, + "EyeWithZzz" => TrayIcon.EyeWithZzz, + _ => TrayIcon.Default, + }; string DurationsSetting = (string)localSettings.Values[nameof(Durations)]; - if (DurationsSetting == null) - DurationsSetting = "0,15,60,120,480"; + DurationsSetting ??= "0,15,60,120,480"; List splitResult = DurationsSetting.Split(',').ToList(); _durations = new ObservableCollection(); @@ -118,7 +122,7 @@ public AppSettings() { Durations.CollectionChanged += Durations_CollectionChanged; } - private void Durations_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { + private void Durations_CollectionChanged(object? sender, NotifyCollectionChangedEventArgs e) { localSettings.Values[nameof(Durations)] = string.Join(',', Durations.ToArray()); } } diff --git a/Properties/Settings.settings b/Properties/Settings.settings index e7e38d8..0a49496 100644 --- a/Properties/Settings.settings +++ b/Properties/Settings.settings @@ -6,16 +6,19 @@ False
- True + False - 0 + 480 0,15,60,120,480 - Default + Mug + + + true \ No newline at end of file diff --git a/app.config b/app.config index 9ad2dc1..172a906 100644 --- a/app.config +++ b/app.config @@ -11,16 +11,19 @@ False - True + False - 0 + 480 0,15,60,120,480 - Default + Mug + + + true
From 855018e8c2dce83f4c0cd42cb3d595d5bb5c3b75 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sun, 31 Dec 2023 15:03:23 -0600 Subject: [PATCH 074/101] Update packages, and version --- Caffeinated.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/Caffeinated.csproj b/Caffeinated.csproj index c63754e..e8adb97 100644 --- a/Caffeinated.csproj +++ b/Caffeinated.csproj @@ -39,6 +39,7 @@ + \ No newline at end of file From 4edf0e89f2ae54dced273aef5477bde8c6cd4204 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sun, 31 Dec 2023 15:03:41 -0600 Subject: [PATCH 075/101] Make a dynamic tooltip that tells remaining time --- Program.cs | 58 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 52 insertions(+), 6 deletions(-) diff --git a/Program.cs b/Program.cs index f98b589..4136b90 100644 --- a/Program.cs +++ b/Program.cs @@ -1,5 +1,6 @@ using Caffeinated.Helpers; using Caffeinated.Properties; +using Humanizer; using Microsoft.Win32; using RegistryUtils; using System; @@ -19,7 +20,9 @@ public class AppContext : ApplicationContext { private Icon? onIcon; private Icon? offIcon; private bool isActivated = false; + private DateTime? endTime; private readonly Timer? timer; + private readonly Timer updateTooltipTimer; private SettingsForm? settingsForm = null; private AboutForm? aboutForm = null; private bool isLightTheme = false; @@ -52,6 +55,11 @@ public AppContext() { timer = new Timer(components); timer.Tick += new EventHandler(timer_Tick); + updateTooltipTimer = new Timer(components); + updateTooltipTimer.Tick += new EventHandler(UpdateTooltipTimer_Tick); + updateTooltipTimer.Interval = 10000; // 5 seconds + updateTooltipTimer.Start(); + appSettings = new AppSettings(); SetIsLightTheme(); @@ -81,11 +89,22 @@ public AppContext() { deactivate(); } - if (appSettings.ShowMessageOnLaunch) { + if (appSettings.ShowMessageOnLaunch || appSettings.IsFirstLaunch) { + if (appSettings.IsFirstLaunch) + appSettings.IsFirstLaunch = false; + showSettings(); } } + private void UpdateTooltipTimer_Tick(object? sender, EventArgs e) + { + if (notifyIcon is null) + return; + + updateNotifyIconText(); + } + private void SetIsLightTheme(object? sender = null, EventArgs? e = null) { try { using RegistryKey? key = Registry.CurrentUser.OpenSubKey(themeKeyPath); @@ -351,17 +370,44 @@ private void activate(int duration) { ShowError(); ExitThread(); } - if (duration > 0 + int timerIntervalInMilliseconds = duration * 60 * 1000; + if (timerIntervalInMilliseconds > 0 && timer != null) { - timer.Interval = duration * 60 * 1000; + timer.Interval = timerIntervalInMilliseconds; timer.Start(); + endTime = DateTime.Now.AddMilliseconds(timerIntervalInMilliseconds); + } + else { + endTime = null; } isActivated = true; - if (notifyIcon != null) { - notifyIcon.Icon = onIcon; - notifyIcon.Text = "Caffeinated: sleep not allowed!"; + + if (notifyIcon is null) + return; + + notifyIcon.Icon = onIcon; + updateNotifyIconText(); + } + + private void updateNotifyIconText() { + if (notifyIcon is null) + return; + + if (notifyIcon.Icon == offIcon) + { + notifyIcon.Text = "Caffeinated: sleep allowed"; + return; } + + if (endTime is null) { + notifyIcon.Text = $"Caffeinated: No sleep indefinitely"; + return; + } + + string timeRemaining = endTime.Value.AddSeconds(2).Humanize() ; + Debug.WriteLine($"timeRemaining {timeRemaining}"); + notifyIcon.Text = $"Caffeinated: No sleep for about {timeRemaining}"; } private void deactivate() { From 2b3eb3815371d90584340ad008e0bf554e0cdfd9 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sun, 31 Dec 2023 15:37:00 -0600 Subject: [PATCH 076/101] DPI Aware. Update for build --- app.manifest | 1 + 1 file changed, 1 insertion(+) diff --git a/app.manifest b/app.manifest index ad9c599..d14924d 100644 --- a/app.manifest +++ b/app.manifest @@ -53,6 +53,7 @@ true + permonitorv2,permonitor From 3842b5e64b15350b8e97d2a7a5b427a23e974e13 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sun, 7 Apr 2024 09:17:59 -0500 Subject: [PATCH 077/101] Update readme with logo and store badge --- README.md | 18 ++++++++++++++++-- readme-images/AppIcon.png | Bin 0 -> 9985 bytes readme-images/storeBadge.png | Bin 0 -> 18793 bytes 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 readme-images/AppIcon.png create mode 100644 readme-images/storeBadge.png diff --git a/README.md b/README.md index 73ff95a..9441162 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,19 @@ -Caffeinated ------------ +

+ +

+

+ Windows Caffeinated +

+

+ Keep your device awake, that's it. +

+

+ + Store link + +

+ +### Caffeinated A Windows app inspired by [Caffeine][1]. A small eye icon will appear in the System Tray which when toggled will enable and disable sleep. This project was originally created by [Desmond Brand][2] but was forked and is being updated by [TheJoeFin][3]. Part of the updates involved new icons which are still in the process of being refined. diff --git a/readme-images/AppIcon.png b/readme-images/AppIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..07d882f190b536b52dc438a9609306e68b31806b GIT binary patch literal 9985 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 literal 0 HcmV?d00001 diff --git a/readme-images/storeBadge.png b/readme-images/storeBadge.png new file mode 100644 index 0000000000000000000000000000000000000000..4d78d31495b14f2e12eaae62db9b11499f9773a2 GIT binary patch literal 18793 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 yr+j#jnXGEzw`7`ntk}j$1s@193#{6HPa;xV6 literal 0 HcmV?d00001 From f945979666705d51879e26e9b03fb0ad7908080b Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sun, 7 Apr 2024 09:21:12 -0500 Subject: [PATCH 078/101] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9441162..214c80c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- +

Windows Caffeinated @@ -9,7 +9,7 @@

- Store link + Store link

From 6bc2c097eae60e48fe4920963796998dc90ca5e0 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Sun, 7 Apr 2024 09:21:44 -0500 Subject: [PATCH 079/101] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 214c80c..fee39e2 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- +

Windows Caffeinated @@ -9,7 +9,7 @@

- Store link + Store link

From 3d0de45c6953d07d0901f0089b4d56f224cbc7e0 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Tue, 30 Jul 2024 22:58:34 -0500 Subject: [PATCH 080/101] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fee39e2..8283d67 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ The future plans of Caffeinated involve: 2. Simplify the settings and options 3. Repo maintenance: updating screenshots, documenting plans, etc. -Now Caffeinated can be accessed for free through the Microsoft Store under the name [Windows Caffeinated][4]. +Now Caffeinated can be accessed for free through the Microsoft Store under the name [Windows Caffeinated][4]. To uninstall just right click the app in the Start Menu and click Uninstall. The packaging resources can be accessed at [This Repo][5] From ecb8f0ff926e1de1ee9fa903d2a19c0357b43f5a Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Mon, 9 Dec 2024 21:19:17 -0600 Subject: [PATCH 081/101] Update packages and to net9 --- Caffeinated.csproj | 8 ++++++-- Caffeinated.sln | 7 ++++--- Program.cs | 2 +- Properties/launchSettings.json | 8 ++++++++ 4 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 Properties/launchSettings.json diff --git a/Caffeinated.csproj b/Caffeinated.csproj index e8adb97..f672c78 100644 --- a/Caffeinated.csproj +++ b/Caffeinated.csproj @@ -2,7 +2,7 @@ WinExe - net6.0-windows10.0.19041.0 + net9.0-windows10.0.19041.0 true false true @@ -12,6 +12,7 @@ app.manifest Enable AnyCPU;x86;x64 + true @@ -40,6 +41,9 @@ - + + + + \ No newline at end of file diff --git a/Caffeinated.sln b/Caffeinated.sln index b33abc5..65efb60 100644 --- a/Caffeinated.sln +++ b/Caffeinated.sln @@ -29,9 +29,10 @@ Global {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|ARM.ActiveCfg = Debug|x86 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|ARM64.ActiveCfg = Debug|x86 - {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|x64.ActiveCfg = Debug|Any CPU - {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|x86.ActiveCfg = Debug|Any CPU - {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|x86.Build.0 = Debug|Any CPU + {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|x64.ActiveCfg = Debug|x64 + {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|x64.Build.0 = Debug|x64 + {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|x86.ActiveCfg = Debug|x86 + {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|x86.Build.0 = Debug|x86 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|Any CPU.ActiveCfg = Release|x86 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|ARM.ActiveCfg = Release|x86 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|ARM64.ActiveCfg = Release|x86 diff --git a/Program.cs b/Program.cs index 4136b90..baf8a8e 100644 --- a/Program.cs +++ b/Program.cs @@ -22,7 +22,7 @@ public class AppContext : ApplicationContext { private bool isActivated = false; private DateTime? endTime; private readonly Timer? timer; - private readonly Timer updateTooltipTimer; + private readonly Timer updateTooltipTimer = new(); private SettingsForm? settingsForm = null; private AboutForm? aboutForm = null; private bool isLightTheme = false; diff --git a/Properties/launchSettings.json b/Properties/launchSettings.json new file mode 100644 index 0000000..d94d684 --- /dev/null +++ b/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "Caffeinated": { + "commandName": "Project", + "nativeDebugging": false + } + } +} \ No newline at end of file From 5f694d9f851ced4b79a090c9889ae2a6e3e10a17 Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Mon, 9 Dec 2024 21:32:59 -0600 Subject: [PATCH 082/101] Fix default settings bug apply some recommended styles and performance tweaks --- Program.cs | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/Program.cs b/Program.cs index baf8a8e..3c04f7a 100644 --- a/Program.cs +++ b/Program.cs @@ -14,9 +14,9 @@ namespace Caffeinated; -public class AppContext : ApplicationContext { +public partial class AppContext : ApplicationContext { private readonly NotifyIcon? notifyIcon; - private readonly IContainer? components; + private readonly Container? components; private Icon? onIcon; private Icon? offIcon; private bool isActivated = false; @@ -83,7 +83,7 @@ public AppContext() { setContextMenu(); if (appSettings.ActivateOnLaunch) { - activate(Settings.Default.DefaultDuration); + activate(appSettings.DefaultDuration); } else { deactivate(); @@ -140,10 +140,6 @@ private void SetIsLightTheme(object? sender = null, EventArgs? e = null) { } } - private static String HexConverter(Color c) { - return "#" + c.R.ToString("X2") + c.G.ToString("X2") + c.B.ToString("X2"); - } - private void setIcons() { if (appSettings == null) { return; @@ -238,7 +234,7 @@ public void setContextMenu() { // we want the lower durations to be closer to the mouse. So, ObservableCollection? times = appSettings.Durations; - IEnumerable sortedTimes = Enumerable.Empty(); + IEnumerable sortedTimes = []; if ((new Taskbar()).Position == TaskbarPosition.Top) { if (times != null) { sortedTimes = times.OrderBy(i => i); @@ -261,11 +257,11 @@ public void setContextMenu() { }; contextMenu.Items.AddRange( - new ToolStripMenuItem[] { + [ settingsItem, aboutItem, exitItem - } + ] ); contextMenu.Items.Add(new ToolStripSeparator()); From c710789a068f66c19a705891a22fb622cf4d057c Mon Sep 17 00:00:00 2001 From: Joseph Finney Date: Mon, 9 Dec 2024 21:49:59 -0600 Subject: [PATCH 083/101] update version --- Forms/About.Designer.cs | 60 ++++++++++++++++++++++------------------- Forms/About.resx | 4 +-- 2 files changed, 34 insertions(+), 30 deletions(-) diff --git a/Forms/About.Designer.cs b/Forms/About.Designer.cs index 4c47635..e955359 100644 --- a/Forms/About.Designer.cs +++ b/Forms/About.Designer.cs @@ -40,20 +40,20 @@ private void InitializeComponent() // VersionTxtBlk.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right; VersionTxtBlk.AutoSize = true; - VersionTxtBlk.Location = new System.Drawing.Point(17, 254); - VersionTxtBlk.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + VersionTxtBlk.Location = new System.Drawing.Point(22, 325); + VersionTxtBlk.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); VersionTxtBlk.Name = "VersionTxtBlk"; - VersionTxtBlk.Size = new System.Drawing.Size(113, 25); + VersionTxtBlk.Size = new System.Drawing.Size(148, 32); VersionTxtBlk.TabIndex = 13; - VersionTxtBlk.Text = "Version 1.7.0"; + VersionTxtBlk.Text = "Version 1.8.0"; // // label3 // label3.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right; - label3.Location = new System.Drawing.Point(17, 298); - label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + label3.Location = new System.Drawing.Point(22, 381); + label3.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); label3.Name = "label3"; - label3.Size = new System.Drawing.Size(307, 67); + label3.Size = new System.Drawing.Size(399, 86); label3.TabIndex = 14; label3.Text = "Prevents your PC from going to sleep or displaying the screen saver."; // @@ -61,10 +61,10 @@ private void InitializeComponent() // dmndLbl.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right; dmndLbl.AutoSize = true; - dmndLbl.Location = new System.Drawing.Point(34, 365); - dmndLbl.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + dmndLbl.Location = new System.Drawing.Point(44, 467); + dmndLbl.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); dmndLbl.Name = "dmndLbl"; - dmndLbl.Size = new System.Drawing.Size(0, 25); + dmndLbl.Size = new System.Drawing.Size(0, 32); dmndLbl.TabIndex = 17; dmndLbl.TextAlign = System.Drawing.ContentAlignment.TopCenter; dmndLbl.LinkClicked += linkLbl_LinkClicked; @@ -73,10 +73,10 @@ private void InitializeComponent() // caffeineLbl.AutoSize = true; caffeineLbl.LinkArea = new System.Windows.Forms.LinkArea(0, 0); - caffeineLbl.Location = new System.Drawing.Point(17, 365); - caffeineLbl.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + caffeineLbl.Location = new System.Drawing.Point(22, 467); + caffeineLbl.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); caffeineLbl.Name = "caffeineLbl"; - caffeineLbl.Size = new System.Drawing.Size(247, 25); + caffeineLbl.Size = new System.Drawing.Size(329, 32); caffeineLbl.TabIndex = 18; caffeineLbl.Text = "Inspired by Caffeine for OS X."; caffeineLbl.LinkClicked += linkLbl_LinkClicked; @@ -85,10 +85,10 @@ private void InitializeComponent() // label1.AutoSize = true; label1.Font = new System.Drawing.Font("Segoe UI", 11F, System.Drawing.FontStyle.Bold); - label1.Location = new System.Drawing.Point(17, 209); - label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + label1.Location = new System.Drawing.Point(22, 268); + label1.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); label1.Name = "label1"; - label1.Size = new System.Drawing.Size(133, 30); + label1.Size = new System.Drawing.Size(183, 41); label1.TabIndex = 20; label1.Text = "Caffeinated"; label1.TextAlign = System.Drawing.ContentAlignment.TopCenter; @@ -97,9 +97,10 @@ private void InitializeComponent() // OriginallyByLink.AutoSize = true; OriginallyByLink.LinkArea = new System.Windows.Forms.LinkArea(14, 18); - OriginallyByLink.Location = new System.Drawing.Point(17, 439); + OriginallyByLink.Location = new System.Drawing.Point(22, 562); + OriginallyByLink.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); OriginallyByLink.Name = "OriginallyByLink"; - OriginallyByLink.Size = new System.Drawing.Size(163, 30); + OriginallyByLink.Size = new System.Drawing.Size(217, 38); OriginallyByLink.TabIndex = 21; OriginallyByLink.TabStop = true; OriginallyByLink.Text = "Originally by dmnd"; @@ -110,9 +111,10 @@ private void InitializeComponent() // ForkedByTheJoeFinLink.AutoSize = true; ForkedByTheJoeFinLink.LinkArea = new System.Windows.Forms.LinkArea(10, 19); - ForkedByTheJoeFinLink.Location = new System.Drawing.Point(198, 439); + ForkedByTheJoeFinLink.Location = new System.Drawing.Point(257, 562); + ForkedByTheJoeFinLink.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); ForkedByTheJoeFinLink.Name = "ForkedByTheJoeFinLink"; - ForkedByTheJoeFinLink.Size = new System.Drawing.Size(174, 30); + ForkedByTheJoeFinLink.Size = new System.Drawing.Size(232, 38); ForkedByTheJoeFinLink.TabIndex = 22; ForkedByTheJoeFinLink.TabStop = true; ForkedByTheJoeFinLink.Text = "Forked by TheJoeFin"; @@ -122,9 +124,10 @@ private void InitializeComponent() // pictureBox1 // pictureBox1.Image = Properties.Resources.Caffeine_Black_96; - pictureBox1.Location = new System.Drawing.Point(17, 20); + pictureBox1.Location = new System.Drawing.Point(22, 26); + pictureBox1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); pictureBox1.Name = "pictureBox1"; - pictureBox1.Size = new System.Drawing.Size(175, 175); + pictureBox1.Size = new System.Drawing.Size(227, 224); pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; pictureBox1.TabIndex = 23; pictureBox1.TabStop = false; @@ -132,9 +135,10 @@ private void InitializeComponent() // RateLabel // RateLabel.AutoSize = true; - RateLabel.Location = new System.Drawing.Point(34, 494); + RateLabel.Location = new System.Drawing.Point(44, 632); + RateLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); RateLabel.Name = "RateLabel"; - RateLabel.Size = new System.Drawing.Size(316, 25); + RateLabel.Size = new System.Drawing.Size(426, 32); RateLabel.TabIndex = 24; RateLabel.TabStop = true; RateLabel.Text = "Rate Windows Caffeinated in the Store"; @@ -142,9 +146,9 @@ private void InitializeComponent() // // AboutForm // - AutoScaleDimensions = new System.Drawing.SizeF(10F, 25F); + AutoScaleDimensions = new System.Drawing.SizeF(13F, 32F); AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - ClientSize = new System.Drawing.Size(378, 559); + ClientSize = new System.Drawing.Size(491, 716); Controls.Add(RateLabel); Controls.Add(pictureBox1); Controls.Add(ForkedByTheJoeFinLink); @@ -156,11 +160,11 @@ private void InitializeComponent() Controls.Add(VersionTxtBlk); FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon"); - Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); MaximizeBox = false; MinimizeBox = false; Name = "AboutForm"; - Padding = new System.Windows.Forms.Padding(14, 17, 14, 17); + Padding = new System.Windows.Forms.Padding(18, 22, 18, 22); ShowIcon = false; ShowInTaskbar = false; StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; diff --git a/Forms/About.resx b/Forms/About.resx index 9b39623..87e0b2e 100644 --- a/Forms/About.resx +++ b/Forms/About.resx @@ -1,7 +1,7 @@  + net10.0-windows10.0.22621.0 true false true diff --git a/Caffeinated.sln b/Caffeinated.sln index 77ac7ad..30de14e 100644 --- a/Caffeinated.sln +++ b/Caffeinated.sln @@ -1,4 +1,4 @@ - + Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.0.31815.197 @@ -29,14 +29,16 @@ Global {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|ARM.ActiveCfg = Debug|x86 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|ARM64.Build.0 = Debug|ARM64 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|x64.ActiveCfg = Debug|x64 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|x64.Build.0 = Debug|x64 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|x86.ActiveCfg = Debug|x86 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Debug|x86.Build.0 = Debug|x86 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|Any CPU.ActiveCfg = Release|x86 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|ARM.ActiveCfg = Release|x86 - {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|ARM64.ActiveCfg = Release|x86 + {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|ARM64.ActiveCfg = Release|ARM64 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|x64.ActiveCfg = Release|x64 + {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|ARM64.Build.0 = Release|ARM64 {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|x86.ActiveCfg = Release|Any CPU {AAEC62D1-5C45-45F6-9225-193CD45C3E8F}.Release|x86.Build.0 = Release|Any CPU {CC32EB7E-6CC3-4139-BD90-09D0A04439D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU diff --git a/Program.cs b/Program.cs index 3c04f7a..396c219 100644 --- a/Program.cs +++ b/Program.cs @@ -34,6 +34,7 @@ private static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.SetHighDpiMode(HighDpiMode.PerMonitorV2); + Application.SetColorMode(SystemColorMode.System); AppContext? context = new(); if (context.notifyIcon == null) { Application.Exit(); From 6697a52c912e143f285e32b8defb9875977d4b0a Mon Sep 17 00:00:00 2001 From: Joe Finney Date: Tue, 30 Dec 2025 13:09:25 -0600 Subject: [PATCH 087/101] Improve dark mode support for Settings and About forms Enhances UI to adapt icons and colors for light/dark themes. --- Forms/About.cs | 55 +++++++- Forms/BaseForm.cs | 23 ++- Forms/SettingsForm.Designer.cs | 212 +++++++++++++++------------- Forms/SettingsForm.cs | 68 ++++++++- Forms/SettingsForm.resx | 247 ++++++++++++++++----------------- 5 files changed, 377 insertions(+), 228 deletions(-) diff --git a/Forms/About.cs b/Forms/About.cs index 29c50ee..b149b4b 100644 --- a/Forms/About.cs +++ b/Forms/About.cs @@ -1,8 +1,10 @@ -using System.Reflection; +using System.Reflection; using System.Windows.Forms; +using System.Drawing; using System.IO; using Windows.System; using System; +using Caffeinated.Properties; namespace Caffeinated; @@ -11,6 +13,57 @@ public AboutForm() : base() { InitializeComponent(); } + protected override void UpdateTheme() { + base.UpdateTheme(); + + // Update all labels to use proper foreground color + VersionTxtBlk.ForeColor = ForeColor; + label3.ForeColor = ForeColor; + label1.ForeColor = ForeColor; + + // Update LinkLabel colors for better visibility in dark mode + Color linkColor; + Color visitedLinkColor; + Color activeLinkColor; + + if (IsDarkMode) { + // Light colors for dark background + linkColor = Color.FromArgb(100, 181, 246); // Light blue + visitedLinkColor = Color.FromArgb(186, 104, 200); // Light purple + activeLinkColor = Color.FromArgb(144, 202, 249); // Lighter blue + } else { + // Standard colors for light background + linkColor = Color.FromArgb(0, 0, 255); // Blue + visitedLinkColor = Color.FromArgb(128, 0, 128); // Purple + activeLinkColor = Color.FromArgb(255, 0, 0); // Red + } + + // Apply to all LinkLabels + dmndLbl.LinkColor = linkColor; + dmndLbl.VisitedLinkColor = visitedLinkColor; + dmndLbl.ActiveLinkColor = activeLinkColor; + + caffeineLbl.LinkColor = linkColor; + caffeineLbl.VisitedLinkColor = visitedLinkColor; + caffeineLbl.ActiveLinkColor = activeLinkColor; + + OriginallyByLink.LinkColor = linkColor; + OriginallyByLink.VisitedLinkColor = visitedLinkColor; + OriginallyByLink.ActiveLinkColor = activeLinkColor; + + ForkedByTheJoeFinLink.LinkColor = linkColor; + ForkedByTheJoeFinLink.VisitedLinkColor = visitedLinkColor; + ForkedByTheJoeFinLink.ActiveLinkColor = activeLinkColor; + + RateLabel.LinkColor = linkColor; + RateLabel.VisitedLinkColor = visitedLinkColor; + RateLabel.ActiveLinkColor = activeLinkColor; + + // Update icon based on theme + pictureBox1.Image = IsDarkMode ? Resources.cup_coffee_icon_96 : Resources.Caffeine_Black_96; + pictureBox1.BackColor = BackColor; + } + #region Assembly Attribute Accessors public static string AssemblyTitle { diff --git a/Forms/BaseForm.cs b/Forms/BaseForm.cs index 69817de..c9db115 100644 --- a/Forms/BaseForm.cs +++ b/Forms/BaseForm.cs @@ -1,18 +1,36 @@ -using System.Windows.Forms; +using System.Windows.Forms; using System.Drawing; using System.ComponentModel; namespace Caffeinated; -// Base class for all forms. See stackvoerflow for reasons: +// Base class for all forms. See Stackoverflow for reasons: // http://stackoverflow.com/questions/297701/default-font-for-windows-forms-application/4076183#4076183 public class BaseForm : Form { + protected bool IsDarkMode => Application.IsDarkModeEnabled; + public BaseForm() { // Provides design-time support for the default font on Visa/Win7. // Falls back to something decent if system lacks the font. Font = SystemFonts.MessageBoxFont; } + protected override void OnLoad(System.EventArgs e) { + base.OnLoad(e); + UpdateTheme(); + } + + protected override void OnSystemColorsChanged(System.EventArgs e) { + base.OnSystemColorsChanged(e); + UpdateTheme(); + } + + protected virtual void UpdateTheme() { + // Override in derived classes to respond to theme changes + BackColor = IsDarkMode ? Color.FromArgb(32, 32, 32) : SystemColors.Control; + ForeColor = IsDarkMode ? Color.FromArgb(255, 255, 255) : SystemColors.ControlText; + } + private void InitializeComponent() { ComponentResourceManager resources = new(typeof(BaseForm)); @@ -26,3 +44,4 @@ private void InitializeComponent() ResumeLayout(false); } } + diff --git a/Forms/SettingsForm.Designer.cs b/Forms/SettingsForm.Designer.cs index 5ec6975..2225352 100644 --- a/Forms/SettingsForm.Designer.cs +++ b/Forms/SettingsForm.Designer.cs @@ -1,4 +1,4 @@ -namespace Caffeinated { +namespace Caffeinated { partial class SettingsForm { /// /// Required designer variable. @@ -68,35 +68,35 @@ private void InitializeComponent() // // label1 // - label1.BackColor = System.Drawing.Color.Transparent; - label1.ForeColor = System.Drawing.Color.Black; - label1.Location = new System.Drawing.Point(181, 20); - label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + // BackColor inherited from form + // ForeColor will be set by UpdateTheme() + label1.Location = new System.Drawing.Point(235, 26); + label1.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); label1.Name = "label1"; - label1.Size = new System.Drawing.Size(584, 200); + label1.Size = new System.Drawing.Size(759, 172); label1.TabIndex = 0; label1.Text = "Caffeinated is now running. You can find its icon in the notification area near the clock. Click it to keep your PC awake by disabling automatic sleep. Click the icon again to allow automatic sleep."; // // label2 // - label2.BackColor = System.Drawing.Color.Transparent; + // BackColor inherited from form label2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold); - label2.Location = new System.Drawing.Point(181, 168); - label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + label2.Location = new System.Drawing.Point(235, 215); + label2.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); label2.Name = "label2"; - label2.Size = new System.Drawing.Size(406, 68); + label2.Size = new System.Drawing.Size(528, 87); label2.TabIndex = 1; label2.Text = "Right-click the notification area icon to show the Caffeinated menu."; // // okBtn // okBtn.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right; - okBtn.BackColor = System.Drawing.Color.Transparent; + // BackColor inherited from form okBtn.FlatStyle = System.Windows.Forms.FlatStyle.System; - okBtn.Location = new System.Drawing.Point(501, 1005); - okBtn.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + okBtn.Location = new System.Drawing.Point(651, 1286); + okBtn.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); okBtn.Name = "okBtn"; - okBtn.Size = new System.Drawing.Size(124, 45); + okBtn.Size = new System.Drawing.Size(161, 58); okBtn.TabIndex = 8; okBtn.Text = "Ok"; okBtn.UseVisualStyleBackColor = false; @@ -105,13 +105,13 @@ private void InitializeComponent() // cancelBtn // cancelBtn.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right; - cancelBtn.BackColor = System.Drawing.Color.Transparent; + // BackColor inherited from form cancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; cancelBtn.FlatStyle = System.Windows.Forms.FlatStyle.System; - cancelBtn.Location = new System.Drawing.Point(635, 1005); - cancelBtn.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + cancelBtn.Location = new System.Drawing.Point(826, 1286); + cancelBtn.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); cancelBtn.Name = "cancelBtn"; - cancelBtn.Size = new System.Drawing.Size(124, 45); + cancelBtn.Size = new System.Drawing.Size(161, 58); cancelBtn.TabIndex = 9; cancelBtn.Text = "Cancel"; cancelBtn.UseVisualStyleBackColor = false; @@ -119,18 +119,18 @@ private void InitializeComponent() // // pictureBox1 // - pictureBox1.BackColor = System.Drawing.Color.Transparent; + // BackColor inherited from form pictureBox1.Image = Properties.Resources.Caffeine_Black_96; - pictureBox1.Location = new System.Drawing.Point(17, 20); - pictureBox1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + pictureBox1.Location = new System.Drawing.Point(22, 26); + pictureBox1.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); pictureBox1.Name = "pictureBox1"; - pictureBox1.Size = new System.Drawing.Size(137, 160); + pictureBox1.Size = new System.Drawing.Size(178, 205); pictureBox1.TabIndex = 10; pictureBox1.TabStop = false; // // tableLayoutPanel1 // - tableLayoutPanel1.BackColor = System.Drawing.Color.Transparent; + // BackColor inherited from form tableLayoutPanel1.ColumnCount = 1; tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); tableLayoutPanel1.Controls.Add(tableLayoutPanel2, 0, 5); @@ -139,62 +139,64 @@ private void InitializeComponent() tableLayoutPanel1.Controls.Add(StartupChkBox, 0, 0); tableLayoutPanel1.Controls.Add(tableLayoutPanel3, 0, 7); tableLayoutPanel1.Controls.Add(tableLayoutPanel4, 0, 6); - tableLayoutPanel1.Location = new System.Drawing.Point(186, 223); + tableLayoutPanel1.Location = new System.Drawing.Point(242, 285); + tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); tableLayoutPanel1.Name = "tableLayoutPanel1"; tableLayoutPanel1.RowCount = 9; tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); - tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 60F)); - tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 90F)); - tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 400F)); - tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 83F)); - tableLayoutPanel1.Size = new System.Drawing.Size(401, 748); + tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F)); + tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 77F)); + tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 115F)); + tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 512F)); + tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 106F)); + tableLayoutPanel1.Size = new System.Drawing.Size(521, 957); tableLayoutPanel1.TabIndex = 11; // // tableLayoutPanel2 // tableLayoutPanel2.ColumnCount = 2; - tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 200F)); + tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 260F)); tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); tableLayoutPanel2.Controls.Add(label3, 0, 0); tableLayoutPanel2.Controls.Add(DefaultDurationBox, 1, 0); - tableLayoutPanel2.Location = new System.Drawing.Point(3, 140); + tableLayoutPanel2.Location = new System.Drawing.Point(4, 174); + tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); tableLayoutPanel2.Name = "tableLayoutPanel2"; tableLayoutPanel2.RowCount = 1; tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - tableLayoutPanel2.Size = new System.Drawing.Size(391, 54); + tableLayoutPanel2.Size = new System.Drawing.Size(508, 69); tableLayoutPanel2.TabIndex = 13; // // label3 // label3.AutoSize = true; - label3.Location = new System.Drawing.Point(4, 0); - label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + label3.Location = new System.Drawing.Point(5, 0); + label3.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); label3.Name = "label3"; - label3.Size = new System.Drawing.Size(145, 25); + label3.Size = new System.Drawing.Size(194, 32); label3.TabIndex = 9; label3.Text = "Default duration:"; // // DefaultDurationBox // DefaultDurationBox.FormattingEnabled = true; - DefaultDurationBox.Location = new System.Drawing.Point(204, 5); - DefaultDurationBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + DefaultDurationBox.Location = new System.Drawing.Point(265, 6); + DefaultDurationBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); DefaultDurationBox.Name = "DefaultDurationBox"; - DefaultDurationBox.Size = new System.Drawing.Size(130, 33); + DefaultDurationBox.Size = new System.Drawing.Size(168, 40); DefaultDurationBox.TabIndex = 8; DefaultDurationBox.SelectedIndexChanged += DefaultDurationBox_SelectedIndexChanged; // // SettingsAtLaunchChkBox // SettingsAtLaunchChkBox.AutoSize = true; - SettingsAtLaunchChkBox.Location = new System.Drawing.Point(4, 83); - SettingsAtLaunchChkBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + SettingsAtLaunchChkBox.Location = new System.Drawing.Point(5, 102); + SettingsAtLaunchChkBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); SettingsAtLaunchChkBox.Name = "SettingsAtLaunchChkBox"; - SettingsAtLaunchChkBox.Size = new System.Drawing.Size(352, 29); + SettingsAtLaunchChkBox.Size = new System.Drawing.Size(469, 36); SettingsAtLaunchChkBox.TabIndex = 5; SettingsAtLaunchChkBox.Text = "Show this settings window upon launch"; SettingsAtLaunchChkBox.UseVisualStyleBackColor = true; @@ -203,10 +205,10 @@ private void InitializeComponent() // ActivateChkBox // ActivateChkBox.AutoSize = true; - ActivateChkBox.Location = new System.Drawing.Point(4, 44); - ActivateChkBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + ActivateChkBox.Location = new System.Drawing.Point(5, 54); + ActivateChkBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); ActivateChkBox.Name = "ActivateChkBox"; - ActivateChkBox.Size = new System.Drawing.Size(204, 29); + ActivateChkBox.Size = new System.Drawing.Size(272, 36); ActivateChkBox.TabIndex = 4; ActivateChkBox.Text = "Activate upon launch"; ActivateChkBox.UseVisualStyleBackColor = true; @@ -215,10 +217,10 @@ private void InitializeComponent() // StartupChkBox // StartupChkBox.AutoSize = true; - StartupChkBox.Location = new System.Drawing.Point(4, 5); - StartupChkBox.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + StartupChkBox.Location = new System.Drawing.Point(5, 6); + StartupChkBox.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); StartupChkBox.Name = "StartupChkBox"; - StartupChkBox.Size = new System.Drawing.Size(362, 29); + StartupChkBox.Size = new System.Drawing.Size(481, 36); StartupChkBox.TabIndex = 3; StartupChkBox.Text = "Automatically launch at Windows startup"; StartupChkBox.UseVisualStyleBackColor = true; @@ -227,7 +229,7 @@ private void InitializeComponent() // tableLayoutPanel3 // tableLayoutPanel3.ColumnCount = 3; - tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 150F)); + tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 195F)); tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); tableLayoutPanel3.Controls.Add(OffIconLbl, 1, 0); @@ -241,41 +243,45 @@ private void InitializeComponent() tableLayoutPanel3.Controls.Add(pictureBox5, 2, 2); tableLayoutPanel3.Controls.Add(pictureBox6, 1, 3); tableLayoutPanel3.Controls.Add(pictureBox7, 2, 3); - tableLayoutPanel3.Location = new System.Drawing.Point(3, 290); + tableLayoutPanel3.Location = new System.Drawing.Point(4, 366); + tableLayoutPanel3.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); tableLayoutPanel3.Name = "tableLayoutPanel3"; tableLayoutPanel3.RowCount = 4; tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle()); - tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 110F)); - tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 110F)); - tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 110F)); - tableLayoutPanel3.Size = new System.Drawing.Size(391, 361); + tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 141F)); + tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 141F)); + tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 141F)); + tableLayoutPanel3.Size = new System.Drawing.Size(508, 462); tableLayoutPanel3.TabIndex = 14; // // OffIconLbl // OffIconLbl.AutoSize = true; - OffIconLbl.Location = new System.Drawing.Point(153, 0); + OffIconLbl.Location = new System.Drawing.Point(199, 0); + OffIconLbl.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); OffIconLbl.Name = "OffIconLbl"; - OffIconLbl.Size = new System.Drawing.Size(77, 25); + OffIconLbl.Size = new System.Drawing.Size(100, 32); OffIconLbl.TabIndex = 0; OffIconLbl.Text = "Off Icon"; // // OnIconLbl // OnIconLbl.AutoSize = true; - OnIconLbl.Location = new System.Drawing.Point(253, 0); + OnIconLbl.Location = new System.Drawing.Point(329, 0); + OnIconLbl.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); OnIconLbl.Name = "OnIconLbl"; - OnIconLbl.Size = new System.Drawing.Size(75, 25); + OnIconLbl.Size = new System.Drawing.Size(98, 32); OnIconLbl.TabIndex = 1; OnIconLbl.Text = "On Icon"; // // defaultRDBTN // defaultRDBTN.AutoSize = true; - defaultRDBTN.Location = new System.Drawing.Point(3, 28); + defaultRDBTN.Location = new System.Drawing.Point(4, 36); + defaultRDBTN.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); defaultRDBTN.Name = "defaultRDBTN"; - defaultRDBTN.Padding = new System.Windows.Forms.Padding(0, 25, 0, 0); - defaultRDBTN.Size = new System.Drawing.Size(94, 54); + defaultRDBTN.Padding = new System.Windows.Forms.Padding(0, 32, 0, 0); + defaultRDBTN.Size = new System.Drawing.Size(123, 68); defaultRDBTN.TabIndex = 2; defaultRDBTN.TabStop = true; defaultRDBTN.Text = "Default"; @@ -286,10 +292,11 @@ private void InitializeComponent() // eyeZZZRDBTN // eyeZZZRDBTN.AutoSize = true; - eyeZZZRDBTN.Location = new System.Drawing.Point(3, 138); + eyeZZZRDBTN.Location = new System.Drawing.Point(4, 177); + eyeZZZRDBTN.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); eyeZZZRDBTN.Name = "eyeZZZRDBTN"; - eyeZZZRDBTN.Padding = new System.Windows.Forms.Padding(0, 25, 0, 0); - eyeZZZRDBTN.Size = new System.Drawing.Size(135, 54); + eyeZZZRDBTN.Padding = new System.Windows.Forms.Padding(0, 32, 0, 0); + eyeZZZRDBTN.Size = new System.Drawing.Size(180, 68); eyeZZZRDBTN.TabIndex = 3; eyeZZZRDBTN.TabStop = true; eyeZZZRDBTN.Text = "Eye with zZZ"; @@ -299,10 +306,11 @@ private void InitializeComponent() // mugRDBTN // mugRDBTN.AutoSize = true; - mugRDBTN.Location = new System.Drawing.Point(3, 248); + mugRDBTN.Location = new System.Drawing.Point(4, 318); + mugRDBTN.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); mugRDBTN.Name = "mugRDBTN"; - mugRDBTN.Padding = new System.Windows.Forms.Padding(0, 25, 0, 0); - mugRDBTN.Size = new System.Drawing.Size(74, 54); + mugRDBTN.Padding = new System.Windows.Forms.Padding(0, 32, 0, 0); + mugRDBTN.Size = new System.Drawing.Size(95, 68); mugRDBTN.TabIndex = 4; mugRDBTN.TabStop = true; mugRDBTN.Text = "Mug"; @@ -312,10 +320,10 @@ private void InitializeComponent() // pictureBox2 // pictureBox2.Image = Properties.Resources.SleepEye_Black; - pictureBox2.Location = new System.Drawing.Point(160, 35); - pictureBox2.Margin = new System.Windows.Forms.Padding(10); + pictureBox2.Location = new System.Drawing.Point(208, 45); + pictureBox2.Margin = new System.Windows.Forms.Padding(13, 13, 13, 13); pictureBox2.Name = "pictureBox2"; - pictureBox2.Size = new System.Drawing.Size(80, 80); + pictureBox2.Size = new System.Drawing.Size(104, 102); pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; pictureBox2.TabIndex = 5; pictureBox2.TabStop = false; @@ -323,10 +331,10 @@ private void InitializeComponent() // pictureBox3 // pictureBox3.Image = Properties.Resources.Caffeine_Black_512; - pictureBox3.Location = new System.Drawing.Point(260, 35); - pictureBox3.Margin = new System.Windows.Forms.Padding(10); + pictureBox3.Location = new System.Drawing.Point(338, 45); + pictureBox3.Margin = new System.Windows.Forms.Padding(13, 13, 13, 13); pictureBox3.Name = "pictureBox3"; - pictureBox3.Size = new System.Drawing.Size(80, 80); + pictureBox3.Size = new System.Drawing.Size(104, 102); pictureBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; pictureBox3.TabIndex = 6; pictureBox3.TabStop = false; @@ -334,10 +342,10 @@ private void InitializeComponent() // pictureBox4 // pictureBox4.Image = Properties.Resources.Eye_zzz_Sleep_Black; - pictureBox4.Location = new System.Drawing.Point(160, 145); - pictureBox4.Margin = new System.Windows.Forms.Padding(10); + pictureBox4.Location = new System.Drawing.Point(208, 186); + pictureBox4.Margin = new System.Windows.Forms.Padding(13, 13, 13, 13); pictureBox4.Name = "pictureBox4"; - pictureBox4.Size = new System.Drawing.Size(80, 80); + pictureBox4.Size = new System.Drawing.Size(104, 102); pictureBox4.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; pictureBox4.TabIndex = 7; pictureBox4.TabStop = false; @@ -345,10 +353,10 @@ private void InitializeComponent() // pictureBox5 // pictureBox5.Image = Properties.Resources.Eye_zzz_Active_Black; - pictureBox5.Location = new System.Drawing.Point(260, 145); - pictureBox5.Margin = new System.Windows.Forms.Padding(10); + pictureBox5.Location = new System.Drawing.Point(338, 186); + pictureBox5.Margin = new System.Windows.Forms.Padding(13, 13, 13, 13); pictureBox5.Name = "pictureBox5"; - pictureBox5.Size = new System.Drawing.Size(80, 80); + pictureBox5.Size = new System.Drawing.Size(104, 102); pictureBox5.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; pictureBox5.TabIndex = 8; pictureBox5.TabStop = false; @@ -356,11 +364,11 @@ private void InitializeComponent() // pictureBox6 // pictureBox6.Image = (System.Drawing.Image)resources.GetObject("pictureBox6.Image"); - pictureBox6.Location = new System.Drawing.Point(160, 255); - pictureBox6.Margin = new System.Windows.Forms.Padding(10); + pictureBox6.Location = new System.Drawing.Point(208, 327); + pictureBox6.Margin = new System.Windows.Forms.Padding(13, 13, 13, 13); pictureBox6.Name = "pictureBox6"; - pictureBox6.Padding = new System.Windows.Forms.Padding(10); - pictureBox6.Size = new System.Drawing.Size(80, 80); + pictureBox6.Padding = new System.Windows.Forms.Padding(13, 13, 13, 13); + pictureBox6.Size = new System.Drawing.Size(104, 102); pictureBox6.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; pictureBox6.TabIndex = 9; pictureBox6.TabStop = false; @@ -368,10 +376,10 @@ private void InitializeComponent() // pictureBox7 // pictureBox7.Image = (System.Drawing.Image)resources.GetObject("pictureBox7.Image"); - pictureBox7.Location = new System.Drawing.Point(260, 255); - pictureBox7.Margin = new System.Windows.Forms.Padding(10); + pictureBox7.Location = new System.Drawing.Point(338, 327); + pictureBox7.Margin = new System.Windows.Forms.Padding(13, 13, 13, 13); pictureBox7.Name = "pictureBox7"; - pictureBox7.Size = new System.Drawing.Size(80, 80); + pictureBox7.Size = new System.Drawing.Size(104, 102); pictureBox7.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; pictureBox7.TabIndex = 10; pictureBox7.TabStop = false; @@ -379,41 +387,45 @@ private void InitializeComponent() // tableLayoutPanel4 // tableLayoutPanel4.ColumnCount = 3; - tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 200F)); + tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 260F)); tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 80F)); + tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 104F)); tableLayoutPanel4.Controls.Add(CustomDurationLBL, 0, 0); tableLayoutPanel4.Controls.Add(CustomDurationTXBX, 1, 0); tableLayoutPanel4.Controls.Add(addCustomDurationBTN, 2, 0); - tableLayoutPanel4.Location = new System.Drawing.Point(3, 200); + tableLayoutPanel4.Location = new System.Drawing.Point(4, 251); + tableLayoutPanel4.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); tableLayoutPanel4.Name = "tableLayoutPanel4"; tableLayoutPanel4.RowCount = 1; tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle()); - tableLayoutPanel4.Size = new System.Drawing.Size(391, 58); + tableLayoutPanel4.Size = new System.Drawing.Size(508, 74); tableLayoutPanel4.TabIndex = 15; // // CustomDurationLBL // CustomDurationLBL.AutoSize = true; CustomDurationLBL.Dock = System.Windows.Forms.DockStyle.Top; - CustomDurationLBL.Location = new System.Drawing.Point(3, 0); + CustomDurationLBL.Location = new System.Drawing.Point(4, 0); + CustomDurationLBL.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); CustomDurationLBL.Name = "CustomDurationLBL"; - CustomDurationLBL.Size = new System.Drawing.Size(194, 50); + CustomDurationLBL.Size = new System.Drawing.Size(252, 64); CustomDurationLBL.TabIndex = 0; CustomDurationLBL.Text = "Custom duration in minutes:"; // // CustomDurationTXBX // - CustomDurationTXBX.Location = new System.Drawing.Point(203, 3); + CustomDurationTXBX.Location = new System.Drawing.Point(264, 4); + CustomDurationTXBX.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); CustomDurationTXBX.Name = "CustomDurationTXBX"; - CustomDurationTXBX.Size = new System.Drawing.Size(91, 31); + CustomDurationTXBX.Size = new System.Drawing.Size(117, 39); CustomDurationTXBX.TabIndex = 1; // // addCustomDurationBTN // - addCustomDurationBTN.Location = new System.Drawing.Point(314, 3); + addCustomDurationBTN.Location = new System.Drawing.Point(408, 4); + addCustomDurationBTN.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); addCustomDurationBTN.Name = "addCustomDurationBTN"; - addCustomDurationBTN.Size = new System.Drawing.Size(65, 31); + addCustomDurationBTN.Size = new System.Drawing.Size(84, 40); addCustomDurationBTN.TabIndex = 2; addCustomDurationBTN.Text = "Add"; addCustomDurationBTN.UseVisualStyleBackColor = true; @@ -422,11 +434,11 @@ private void InitializeComponent() // SettingsForm // AcceptButton = okBtn; - AutoScaleDimensions = new System.Drawing.SizeF(10F, 25F); + AutoScaleDimensions = new System.Drawing.SizeF(13F, 32F); AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; AutoSize = true; CancelButton = cancelBtn; - ClientSize = new System.Drawing.Size(778, 1064); + ClientSize = new System.Drawing.Size(1011, 1362); Controls.Add(tableLayoutPanel1); Controls.Add(pictureBox1); Controls.Add(cancelBtn); @@ -435,7 +447,7 @@ private void InitializeComponent() Controls.Add(label1); FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon"); - Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); MaximizeBox = false; Name = "SettingsForm"; Text = "Welcome to Caffeinated"; @@ -488,4 +500,4 @@ private void InitializeComponent() private System.Windows.Forms.TextBox CustomDurationTXBX; private System.Windows.Forms.Button addCustomDurationBTN; } -} \ No newline at end of file +} diff --git a/Forms/SettingsForm.cs b/Forms/SettingsForm.cs index 075cfdf..6225a54 100644 --- a/Forms/SettingsForm.cs +++ b/Forms/SettingsForm.cs @@ -1,9 +1,11 @@ -using System; +using System; using System.ComponentModel; using System.Diagnostics; using System.Linq; using System.Windows.Forms; +using System.Drawing; using Caffeinated.Helpers; +using Caffeinated.Properties; using Windows.ApplicationModel; namespace Caffeinated; @@ -43,6 +45,70 @@ public SettingsForm(AppSettings passedAppSettings) : base() { setRadioButtons(); } + private static Bitmap IconToBitmap(Icon icon, int size) { + Bitmap bitmap = new(size, size, System.Drawing.Imaging.PixelFormat.Format32bppArgb); + using (Graphics g = Graphics.FromImage(bitmap)) { + g.Clear(Color.Transparent); + g.DrawIcon(icon, new Rectangle(0, 0, size, size)); + } + return bitmap; + } + + protected override void UpdateTheme() { + base.UpdateTheme(); + + // Update all labels to use proper foreground color + label1.ForeColor = ForeColor; + label2.ForeColor = ForeColor; + label3.ForeColor = ForeColor; + OffIconLbl.ForeColor = ForeColor; + OnIconLbl.ForeColor = ForeColor; + CustomDurationLBL.ForeColor = ForeColor; + + // Update main icon based on theme - use light colored icons for dark mode + pictureBox1.Image = IsDarkMode ? Resources.cup_coffee_icon_96 : Resources.Caffeine_Black_96; + + // Update default icon set (row 1) + // In dark mode, use light-colored icons; in light mode, use black icons + if (IsDarkMode) { + pictureBox2.Image = IconToBitmap(Resources.cup_coffee_icon_bw, 80); + pictureBox3.Image = Resources.cup_coffee_icon_64; + } else { + pictureBox2.Image = Resources.SleepEye_Black; + pictureBox3.Image = Resources.Caffeine_Black_512; + } + + // Update eye with zzz icon set (row 2) + if (IsDarkMode) { + pictureBox4.Image = IconToBitmap(Resources.Eye_zzz_Sleep_icon, 80); + pictureBox5.Image = IconToBitmap(Resources.Eye_zzz_Active_icon, 80); + } else { + pictureBox4.Image = Resources.Eye_zzz_Sleep_Black; + pictureBox5.Image = Resources.Eye_zzz_Active_Black; + } + + // Update mug icon set (row 3) + if (IsDarkMode) { + pictureBox6.Image = IconToBitmap(Resources.mug_sleep_icon, 80); + pictureBox7.Image = IconToBitmap(Resources.mug_active_icon, 80); + } else { + pictureBox6.Image = Resources.Mug_Sleep_Black; + pictureBox7.Image = Resources.Mug_Active_Black; + } + + // Update TableLayoutPanels background + tableLayoutPanel1.BackColor = BackColor; + tableLayoutPanel2.BackColor = BackColor; + tableLayoutPanel3.BackColor = BackColor; + tableLayoutPanel4.BackColor = BackColor; + + // Update picture boxes background + pictureBox1.BackColor = BackColor; + + // Force refresh + Refresh(); + } + private void setRadioButtons() { switch (appSettings.Icon) { case TrayIcon.Mug: diff --git a/Forms/SettingsForm.resx b/Forms/SettingsForm.resx index e69b98a..2cd0f37 100644 --- a/Forms/SettingsForm.resx +++ b/Forms/SettingsForm.resx @@ -1,7 +1,7 @@  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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/ModernColorTable.cs b/ModernColorTable.cs new file mode 100644 index 0000000..b4ac057 --- /dev/null +++ b/ModernColorTable.cs @@ -0,0 +1,40 @@ +using System.Drawing; +using System.Windows.Forms; + +namespace Caffeinated; + +public class ModernColorTable : ProfessionalColorTable { + private readonly bool isLightTheme; + + public ModernColorTable(bool isLightTheme) { + this.isLightTheme = isLightTheme; + } + + public override Color MenuItemSelected => isLightTheme + ? Color.FromArgb(240, 240, 240) + : Color.FromArgb(50, 50, 50); + + public override Color MenuItemSelectedGradientBegin => MenuItemSelected; + + public override Color MenuItemSelectedGradientEnd => MenuItemSelected; + + public override Color MenuBorder => isLightTheme + ? Color.FromArgb(204, 206, 219) + : Color.FromArgb(60, 60, 60); + + public override Color MenuItemBorder => isLightTheme + ? Color.FromArgb(0, 120, 215) + : Color.FromArgb(0, 120, 215); + + public override Color ImageMarginGradientBegin => isLightTheme + ? Color.FromArgb(250, 250, 250) + : Color.FromArgb(30, 30, 30); + + public override Color ImageMarginGradientMiddle => ImageMarginGradientBegin; + + public override Color ImageMarginGradientEnd => ImageMarginGradientBegin; + + public override Color ToolStripDropDownBackground => isLightTheme + ? Color.FromArgb(255, 255, 255) + : Color.FromArgb(40, 40, 40); +} \ No newline at end of file diff --git a/ModernMenuRenderer.cs b/ModernMenuRenderer.cs new file mode 100644 index 0000000..4906c75 --- /dev/null +++ b/ModernMenuRenderer.cs @@ -0,0 +1,68 @@ +using System.Drawing; +using System.Windows.Forms; + +namespace Caffeinated; + +public class ModernMenuRenderer : ToolStripProfessionalRenderer { + private readonly bool isLightTheme; + + public ModernMenuRenderer(bool isLightTheme) : base(new ModernColorTable(isLightTheme)) { + this.isLightTheme = isLightTheme; + RoundedEdges = false; + } + + protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e) { + if (e.Item.Selected) { + Rectangle rect = new(Point.Empty, e.Item.Size); + Color hoverColor = isLightTheme + ? Color.FromArgb(240, 240, 240) + : Color.FromArgb(50, 50, 50); + + using SolidBrush brush = new(hoverColor); + e.Graphics.FillRectangle(brush, rect); + + Color borderColor = isLightTheme + ? Color.FromArgb(0, 120, 215) + : Color.FromArgb(0, 120, 215); + + using Pen pen = new(borderColor, 1); + Rectangle borderRect = rect; + borderRect.Width -= 1; + borderRect.Height -= 1; + e.Graphics.DrawRectangle(pen, borderRect); + } + else { + base.OnRenderMenuItemBackground(e); + } + } + + protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e) { + if (e.Item is ToolStripSeparator) { + base.OnRenderItemText(e); + return; + } + + e.TextColor = isLightTheme + ? Color.FromArgb(32, 32, 32) + : Color.FromArgb(240, 240, 240); + + e.TextFont = new Font(e.TextFont.FontFamily, e.TextFont.Size, FontStyle.Regular); + + Rectangle adjustedRect = e.TextRectangle; + adjustedRect.Y += 3; + e.TextRectangle = adjustedRect; + + base.OnRenderItemText(e); + } + + protected override void OnRenderSeparator(ToolStripSeparatorRenderEventArgs e) { + Rectangle rect = new(0, e.Item.Height / 2, e.Item.Width, 1); + + Color separatorColor = isLightTheme + ? Color.FromArgb(220, 220, 220) + : Color.FromArgb(60, 60, 60); + + using Pen pen = new(separatorColor); + e.Graphics.DrawLine(pen, rect.Left + 30, rect.Top, rect.Right - 5, rect.Top); + } +} diff --git a/Program.cs b/Program.cs index 1d94c6d..24343c3 100644 --- a/Program.cs +++ b/Program.cs @@ -1,5 +1,4 @@ using Caffeinated.Helpers; -using Caffeinated.Properties; using Humanizer; using Microsoft.Win32; using RegistryUtils; @@ -31,7 +30,7 @@ public partial class AppContext : ApplicationContext { private readonly AppSettings? appSettings; private const string themeKeyPath = "Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; private readonly Lock iconLock = new(); - private static readonly Dictionary symbolCache = new(); + private static readonly Dictionary symbolCache = []; private readonly MessageWindow? messageWindow; private const int WM_QUERYENDSESSION = 0x0011; @@ -180,8 +179,7 @@ public AppContext() { } } - private void UpdateTooltipTimer_Tick(object? sender, EventArgs e) - { + private void UpdateTooltipTimer_Tick(object? sender, EventArgs e) { if (notifyIcon is null) return; @@ -236,8 +234,7 @@ private void setIcons() { onIcon?.Dispose(); offIcon?.Dispose(); - switch (appSettings.Icon) - { + switch (appSettings.Icon) { case TrayIcon.Mug: if (isLightTheme) { offIcon = new Icon( @@ -314,8 +311,7 @@ public void setContextMenu() { return; } - ContextMenuStrip? contextMenu = new() - { + ContextMenuStrip? contextMenu = new() { Renderer = new ModernMenuRenderer(isLightTheme), ShowImageMargin = true, Padding = new Padding(2) @@ -326,8 +322,7 @@ public void setContextMenu() { appSettings.DefaultDuration = 0; } - ToolStripMenuItem? settingsItem = new("&Settings...") - { + ToolStripMenuItem? settingsItem = new("&Settings...") { Image = CreateSymbolImage("⚙", isLightTheme), ImageScaling = ToolStripItemImageScaling.None, Padding = new Padding(4, 6, 4, 6), @@ -337,8 +332,7 @@ public void setContextMenu() { settingsItem.Click += new(settingsItem_Click); contextMenu.Items.Add(settingsItem); - ToolStripMenuItem? aboutItem = new("&About...") - { + ToolStripMenuItem? aboutItem = new("&About...") { Image = CreateSymbolImage("ℹ", isLightTheme), ImageScaling = ToolStripItemImageScaling.None, Padding = new Padding(4, 6, 4, 6), @@ -348,8 +342,7 @@ public void setContextMenu() { aboutItem.Click += new(aboutItem_Click); contextMenu.Items.Add(aboutItem); - ToolStripMenuItem? exitItem = new("E&xit") - { + ToolStripMenuItem? exitItem = new("E&xit") { Image = CreateSymbolImage("✖", isLightTheme), ImageScaling = ToolStripItemImageScaling.None, Padding = new Padding(4, 6, 4, 6), @@ -376,8 +369,7 @@ public void setContextMenu() { } foreach (int time in sortedTimes) { - ToolStripMenuItem? item = new(Duration.ToDescription(time)) - { + ToolStripMenuItem? item = new(Duration.ToDescription(time)) { Tag = time, Image = CreateSymbolImage("⏰", isLightTheme), ImageScaling = ToolStripItemImageScaling.None, @@ -395,7 +387,7 @@ public void setContextMenu() { private static Bitmap CreateSymbolImage(string symbol, bool isLightTheme) { using Graphics g = Graphics.FromHwnd(IntPtr.Zero); float dpiScale = g.DpiX / 96f; - + int baseSize = 16; int size = (int)(baseSize * dpiScale); int padding = (int)(2 * dpiScale); @@ -417,8 +409,7 @@ private static Bitmap CreateSymbolImage(string symbol, bool isLightTheme) { Color textColor = isLightTheme ? Color.FromArgb(32, 32, 32) : Color.FromArgb(240, 240, 240); using SolidBrush brush = new(textColor); - StringFormat format = new() - { + StringFormat format = new() { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }; @@ -480,7 +471,7 @@ private void timer_Tick(object? sender, EventArgs e) { } private void item_Click(object? sender, EventArgs e) { - if (sender is ToolStripMenuItem tsmi && tsmi.Tag is int time) { + if (sender is ToolStripMenuItem toolItem && toolItem.Tag is int time) { activate(time); } } @@ -490,9 +481,9 @@ private void notifyIcon1_Click(object? sender, MouseEventArgs e) { return; } - bool? isactive = isActive(); + bool? isActive = this.isActive(); - if (isactive != null && isactive == true) { + if (isActive is not null and true) { deactivate(); } else { @@ -550,8 +541,7 @@ private void updateNotifyIconText() { if (notifyIcon is null) return; - if (notifyIcon.Icon == offIcon) - { + if (notifyIcon.Icon == offIcon) { notifyIcon.Text = "Caffeinated: sleep allowed"; return; } @@ -570,22 +560,21 @@ private void updateNotifyIconText() { int minutes = remaining.Minutes; int seconds = remaining.Seconds; - List parts = new(); - + List parts = []; + if (hours > 0) { parts.Add($"{hours} hour{(hours != 1 ? "s" : "")}"); } - + if (minutes > 0) { parts.Add($"{minutes} minute{(minutes != 1 ? "s" : "")}"); } - + if (seconds > 0 && hours == 0 && minutes < 5) { parts.Add($"{seconds} second{(seconds != 1 ? "s" : "")}"); } - string timeText = parts.Count switch - { + string timeText = parts.Count switch { 0 => "0 seconds", 1 => parts[0], 2 => $"{parts[0]} and {parts[1]}", @@ -623,167 +612,26 @@ private void exitItem_Click(object? Sender, EventArgs e) { ExitThread(); } - protected override void Dispose(bool disposing) { - if (disposing) { - // Unsubscribe from system events - SystemEvents.SessionEnding -= SystemEvents_SessionEnding; - - lock (iconLock) { - onIcon?.Dispose(); - offIcon?.Dispose(); - } - - // Clear symbol cache - ClearSymbolCache(); - - timer?.Dispose(); - updateTooltipTimer?.Dispose(); - messageWindow?.Dispose(); - - components?.Dispose(); - } - - base.Dispose(disposing); - } - } - - // Hidden window to receive Windows messages for shutdown handling - internal class MessageWindow : Form { - private readonly AppContext appContext; - - public MessageWindow(AppContext context) { - appContext = context; - // Create hidden window - ShowInTaskbar = false; - WindowState = FormWindowState.Minimized; - Opacity = 0; - Width = 0; - Height = 0; - } - - protected override void WndProc(ref Message m) { - switch (m.Msg) { - case 0x0011: // WM_QUERYENDSESSION - // Check if this is from Restart Manager - if (m.LParam.ToInt32() == 0x1) { // ENDSESSION_CLOSEAPP - // Return TRUE - we're ready to shutdown - m.Result = new IntPtr(1); - return; - } - break; - - case 0x0016: // WM_ENDSESSION - // Check if this is from Restart Manager and we should actually close - if (m.LParam.ToInt32() == 0x1 && // ENDSESSION_CLOSEAPP - m.WParam.ToInt32() != 0) { - // Perform quick shutdown - appContext.PerformGracefulShutdown(); - m.Result = IntPtr.Zero; - return; - } - break; - } - - base.WndProc(ref m); - } - } - - public class ModernMenuRenderer : ToolStripProfessionalRenderer { - private readonly bool isLightTheme; - - public ModernMenuRenderer(bool isLightTheme) : base(new ModernColorTable(isLightTheme)) { - this.isLightTheme = isLightTheme; - RoundedEdges = false; - } - - protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e) { - if (e.Item.Selected) { - Rectangle rect = new(Point.Empty, e.Item.Size); - Color hoverColor = isLightTheme - ? Color.FromArgb(240, 240, 240) - : Color.FromArgb(50, 50, 50); - - using SolidBrush brush = new(hoverColor); - e.Graphics.FillRectangle(brush, rect); + protected override void Dispose(bool disposing) { + if (disposing) { + // Unsubscribe from system events + SystemEvents.SessionEnding -= SystemEvents_SessionEnding; - Color borderColor = isLightTheme - ? Color.FromArgb(0, 120, 215) - : Color.FromArgb(0, 120, 215); - - using Pen pen = new(borderColor, 1); - Rectangle borderRect = rect; - borderRect.Width -= 1; - borderRect.Height -= 1; - e.Graphics.DrawRectangle(pen, borderRect); - } - else { - base.OnRenderMenuItemBackground(e); - } - } - - protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e) { - if (e.Item is ToolStripSeparator) { - base.OnRenderItemText(e); - return; + lock (iconLock) { + onIcon?.Dispose(); + offIcon?.Dispose(); } - e.TextColor = isLightTheme - ? Color.FromArgb(32, 32, 32) - : Color.FromArgb(240, 240, 240); - - e.TextFont = new Font(e.TextFont.FontFamily, e.TextFont.Size, FontStyle.Regular); + // Clear symbol cache + ClearSymbolCache(); - Rectangle adjustedRect = e.TextRectangle; - adjustedRect.Y += 3; - e.TextRectangle = adjustedRect; + timer?.Dispose(); + updateTooltipTimer?.Dispose(); + messageWindow?.Dispose(); - base.OnRenderItemText(e); + components?.Dispose(); } - protected override void OnRenderSeparator(ToolStripSeparatorRenderEventArgs e) { - Rectangle rect = new(0, e.Item.Height / 2, e.Item.Width, 1); - - Color separatorColor = isLightTheme - ? Color.FromArgb(220, 220, 220) - : Color.FromArgb(60, 60, 60); - - using Pen pen = new(separatorColor); - e.Graphics.DrawLine(pen, rect.Left + 30, rect.Top, rect.Right - 5, rect.Top); - } + base.Dispose(disposing); } - - public class ModernColorTable : ProfessionalColorTable { - private readonly bool isLightTheme; - - public ModernColorTable(bool isLightTheme) { - this.isLightTheme = isLightTheme; - } - - public override Color MenuItemSelected => isLightTheme - ? Color.FromArgb(240, 240, 240) - : Color.FromArgb(50, 50, 50); - - public override Color MenuItemSelectedGradientBegin => MenuItemSelected; - - public override Color MenuItemSelectedGradientEnd => MenuItemSelected; - - public override Color MenuBorder => isLightTheme - ? Color.FromArgb(204, 206, 219) - : Color.FromArgb(60, 60, 60); - - public override Color MenuItemBorder => isLightTheme - ? Color.FromArgb(0, 120, 215) - : Color.FromArgb(0, 120, 215); - - public override Color ImageMarginGradientBegin => isLightTheme - ? Color.FromArgb(250, 250, 250) - : Color.FromArgb(30, 30, 30); - - public override Color ImageMarginGradientMiddle => ImageMarginGradientBegin; - - public override Color ImageMarginGradientEnd => ImageMarginGradientBegin; - - public override Color ToolStripDropDownBackground => isLightTheme - ? Color.FromArgb(255, 255, 255) - : Color.FromArgb(40, 40, 40); - } \ No newline at end of file +} \ No newline at end of file From 1d3fbf6d6b4eff3409540a132430924958408945 Mon Sep 17 00:00:00 2001 From: Joe Finney Date: Mon, 5 Jan 2026 18:13:59 -0600 Subject: [PATCH 097/101] Add Exception Log feature with UI and centralized logging Added ExceptionLogForm for viewing and managing recent exceptions, integrated ExceptionLogService for centralized exception tracking, and updated exception handling to support logging and user access to exception details. Included resource and UI updates for the new form. --- Forms/ExceptionLogForm.Designer.cs | 163 + Forms/ExceptionLogForm.cs | 80 + Forms/ExceptionLogForm.resx | 4632 ++++++++++++++++++++++++++++ Forms/SettingsForm.Designer.cs | 14 + Forms/SettingsForm.cs | 7 + Helpers/ExceptionLogService.cs | 41 + Program.cs | 11 +- 7 files changed, 4941 insertions(+), 7 deletions(-) create mode 100644 Forms/ExceptionLogForm.Designer.cs create mode 100644 Forms/ExceptionLogForm.cs create mode 100644 Forms/ExceptionLogForm.resx create mode 100644 Helpers/ExceptionLogService.cs diff --git a/Forms/ExceptionLogForm.Designer.cs b/Forms/ExceptionLogForm.Designer.cs new file mode 100644 index 0000000..f2b8808 --- /dev/null +++ b/Forms/ExceptionLogForm.Designer.cs @@ -0,0 +1,163 @@ +namespace Caffeinated { + partial class ExceptionLogForm { + private System.ComponentModel.IContainer components = null; + + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ExceptionLogForm)); + exceptionListView = new System.Windows.Forms.ListView(); + detailsTextBox = new System.Windows.Forms.TextBox(); + clearButton = new System.Windows.Forms.Button(); + closeButton = new System.Windows.Forms.Button(); + refreshButton = new System.Windows.Forms.Button(); + splitContainer = new System.Windows.Forms.SplitContainer(); + panel1 = new System.Windows.Forms.Panel(); + panel2 = new System.Windows.Forms.Panel(); + ((System.ComponentModel.ISupportInitialize)splitContainer).BeginInit(); + splitContainer.Panel1.SuspendLayout(); + splitContainer.Panel2.SuspendLayout(); + splitContainer.SuspendLayout(); + panel1.SuspendLayout(); + panel2.SuspendLayout(); + SuspendLayout(); + // + // exceptionListView + // + exceptionListView.Dock = System.Windows.Forms.DockStyle.Fill; + exceptionListView.FullRowSelect = true; + exceptionListView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None; + exceptionListView.Location = new System.Drawing.Point(0, 0); + exceptionListView.MultiSelect = false; + exceptionListView.Name = "exceptionListView"; + exceptionListView.Size = new System.Drawing.Size(784, 200); + exceptionListView.TabIndex = 0; + exceptionListView.UseCompatibleStateImageBehavior = false; + exceptionListView.View = System.Windows.Forms.View.List; + exceptionListView.SelectedIndexChanged += exceptionListView_SelectedIndexChanged; + // + // detailsTextBox + // + detailsTextBox.Dock = System.Windows.Forms.DockStyle.Fill; + detailsTextBox.Font = new System.Drawing.Font("Consolas", 9F); + detailsTextBox.Location = new System.Drawing.Point(0, 0); + detailsTextBox.Multiline = true; + detailsTextBox.Name = "detailsTextBox"; + detailsTextBox.ReadOnly = true; + detailsTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Both; + detailsTextBox.Size = new System.Drawing.Size(784, 265); + detailsTextBox.TabIndex = 1; + detailsTextBox.WordWrap = false; + // + // clearButton + // + clearButton.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left; + clearButton.Location = new System.Drawing.Point(12, 481); + clearButton.Name = "clearButton"; + clearButton.Size = new System.Drawing.Size(87, 27); + clearButton.TabIndex = 2; + clearButton.Text = "Clear"; + clearButton.UseVisualStyleBackColor = true; + clearButton.Click += clearButton_Click; + // + // closeButton + // + closeButton.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right; + closeButton.Location = new System.Drawing.Point(697, 481); + closeButton.Name = "closeButton"; + closeButton.Size = new System.Drawing.Size(87, 27); + closeButton.TabIndex = 3; + closeButton.Text = "Close"; + closeButton.UseVisualStyleBackColor = true; + closeButton.Click += closeButton_Click; + // + // refreshButton + // + refreshButton.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left; + refreshButton.Location = new System.Drawing.Point(105, 481); + refreshButton.Name = "refreshButton"; + refreshButton.Size = new System.Drawing.Size(87, 27); + refreshButton.TabIndex = 4; + refreshButton.Text = "Refresh"; + refreshButton.UseVisualStyleBackColor = true; + refreshButton.Click += refreshButton_Click; + // + // splitContainer + // + splitContainer.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right; + splitContainer.Location = new System.Drawing.Point(0, 0); + splitContainer.Name = "splitContainer"; + splitContainer.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer.Panel1 + // + splitContainer.Panel1.Controls.Add(panel1); + // + // splitContainer.Panel2 + // + splitContainer.Panel2.Controls.Add(panel2); + splitContainer.Size = new System.Drawing.Size(784, 469); + splitContainer.SplitterDistance = 200; + splitContainer.TabIndex = 5; + // + // panel1 + // + panel1.Controls.Add(exceptionListView); + panel1.Dock = System.Windows.Forms.DockStyle.Fill; + panel1.Location = new System.Drawing.Point(0, 0); + panel1.Name = "panel1"; + panel1.Size = new System.Drawing.Size(784, 200); + panel1.TabIndex = 0; + // + // panel2 + // + panel2.Controls.Add(detailsTextBox); + panel2.Dock = System.Windows.Forms.DockStyle.Fill; + panel2.Location = new System.Drawing.Point(0, 0); + panel2.Name = "panel2"; + panel2.Size = new System.Drawing.Size(784, 265); + panel2.TabIndex = 0; + // + // ExceptionLogForm + // + AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + ClientSize = new System.Drawing.Size(784, 520); + Controls.Add(splitContainer); + Controls.Add(refreshButton); + Controls.Add(closeButton); + Controls.Add(clearButton); + Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon"); + MinimumSize = new System.Drawing.Size(600, 400); + Name = "ExceptionLogForm"; + Text = "Exception Log - Caffeinated"; + splitContainer.Panel1.ResumeLayout(false); + splitContainer.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)splitContainer).EndInit(); + splitContainer.ResumeLayout(false); + panel1.ResumeLayout(false); + panel2.ResumeLayout(false); + panel2.PerformLayout(); + ResumeLayout(false); + } + + #endregion + + private System.Windows.Forms.ListView exceptionListView; + private System.Windows.Forms.TextBox detailsTextBox; + private System.Windows.Forms.Button clearButton; + private System.Windows.Forms.Button closeButton; + private System.Windows.Forms.Button refreshButton; + private System.Windows.Forms.SplitContainer splitContainer; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Panel panel2; + } +} diff --git a/Forms/ExceptionLogForm.cs b/Forms/ExceptionLogForm.cs new file mode 100644 index 0000000..dc45f31 --- /dev/null +++ b/Forms/ExceptionLogForm.cs @@ -0,0 +1,80 @@ +using System; +using System.Drawing; +using System.Linq; +using System.Windows.Forms; +using Caffeinated.Helpers; + +namespace Caffeinated; + +public partial class ExceptionLogForm : BaseForm { + public ExceptionLogForm() : base() { + InitializeComponent(); + LoadExceptions(); + } + + protected override void UpdateTheme() { + base.UpdateTheme(); + + exceptionListView.BackColor = BackColor; + exceptionListView.ForeColor = ForeColor; + detailsTextBox.BackColor = BackColor; + detailsTextBox.ForeColor = ForeColor; + + exceptionListView.Invalidate(); + Refresh(); + } + + private void LoadExceptions() { + exceptionListView.Items.Clear(); + var exceptions = ExceptionLogService.GetExceptions(); + + if (!exceptions.Any()) { + var item = exceptionListView.Items.Add("No exceptions logged"); + item.Tag = null; + } + else { + foreach (var entry in exceptions) { + var item = exceptionListView.Items.Add( + $"{entry.Timestamp:yyyy-MM-dd HH:mm:ss} - {entry.Exception.GetType().Name}" + ); + item.Tag = entry; + } + } + } + + private void exceptionListView_SelectedIndexChanged(object? sender, EventArgs e) { + if (exceptionListView.SelectedItems.Count == 0 || + exceptionListView.SelectedItems[0].Tag is not ExceptionEntry entry) { + detailsTextBox.Text = ""; + return; + } + + detailsTextBox.Text = $"Exception: {entry.Exception.GetType().FullName}\r\n" + + $"Time: {entry.Timestamp:yyyy-MM-dd HH:mm:ss}\r\n" + + $"Message: {entry.Exception.Message}\r\n\r\n" + + $"Stack Trace:\r\n{entry.Exception.StackTrace}"; + } + + private void clearButton_Click(object? sender, EventArgs e) { + var result = MessageBox.Show( + "Clear all exception logs?", + "Caffeinated", + MessageBoxButtons.YesNo, + MessageBoxIcon.Question + ); + + if (result == DialogResult.Yes) { + ExceptionLogService.Clear(); + LoadExceptions(); + detailsTextBox.Text = ""; + } + } + + private void closeButton_Click(object? sender, EventArgs e) { + Close(); + } + + private void refreshButton_Click(object? sender, EventArgs e) { + LoadExceptions(); + } +} diff --git a/Forms/ExceptionLogForm.resx b/Forms/ExceptionLogForm.resx new file mode 100644 index 0000000..fe96ba0 --- /dev/null +++ b/Forms/ExceptionLogForm.resx @@ -0,0 +1,4632 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAAEAAAAAAAEAIAAoIAQAFgAAACgAAAAAAQAAAAIAAAEAIAAAAAAAAAAEACUWAAAlFgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xL///8r////RP// + /13///92////kP///6n///+1////vf///8b////P////2P///+D////p////8v////v////7////8v// + /+n////g////2P///8/////G////vf///7X///+p////kP///3b///9d////RP///yv///8SAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///x7///9H////cf///5z////D////3v////f///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //f////e////w////5z///9x////SP///x4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8Q////Sf///3T///+f////yP////L///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////8v///8n///+f////dP///0n///8QAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8b////Vv// + /5X////Q/////v////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v// + /9D///+V////Vv///xsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8j////Yf///6D////b//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////2////6D///9h////IwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8C////PP///4j////V//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////V////iP///zz///8CAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Df///1L///+h////6/////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////6/// + /6H///9S////DQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///xH///9k////t/////f///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////f///+3////ZP///xEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8F////TP///6v////2//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////2////q////0z///8FAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /zT///+Q////6v////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////6v///5D///80AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8X////eP// + /9T///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /9T///94////FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zj///+m////+P// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////j///+m////OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8J////XP///8r///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////K////XP///wkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xz///+F////6v////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////q////hf///xwAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Lf///6r////8//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////8////qv// + /y0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8y////r/////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////r////zIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zb///+z//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////y////yf///6H///95////UP///zP///8n////HP///xH///8G////Bv// + /xH///8c////J////zP///9Q////ef///6H////J////8v////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////s////zYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////O////7j///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////x////s////3L///8x////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wH///8x////cv///7P////x//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////uP///zsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8x////u/////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////8v// + /6H///9A////BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////BP// + /0D///+h////8v////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////u////zEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///xz///+f//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////+/////Xf// + /w0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///w3///9d////v/////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////n/// + /xwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////D////4P////0//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////7X///85AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///85////tv////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////z////g////w8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8C////av///+f///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////sP///zMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z////sP////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////n////av///wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///9I////1f////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////a////QAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9A////2v// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////V////SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /xr///+q//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////b///9/////CAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /wj///9/////9v////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////+q////GgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /2v////t//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////83///8jAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///yP////N//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////+3///9sAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Kv// + /8X///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////4v///8HAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////B////4v///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /8X///8qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8K////g/// + //n///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////6v///04AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Tv///+r///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////+f///4P///8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9A////3f// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////q////6v////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////3f///yEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8h////3f////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////7////+b///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////3f///0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wv///+N//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /9T///9j////R/////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////1f///xoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xr////V//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////9P////Wv///8b///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////jP///woAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zT////b//////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////tP// + /0UAAAAA////Cf///9v///////////////////////////////////////////////////////////// + ////////////////////////////////////////////xv///xIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Ev// + /8b///////////////////////////////////////////////////////////////////////////// + ////////////////////////////5v///w0AAAAA////Nf///6n///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////Z////MQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Bf///4H////8//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////T///+T////JQAA + AAAAAAAAAAAAAP///4T///////////////////////////////////////////////////////////// + ////////////////////////////////////////////xv///xQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8U////xv////////////////////////////////////////////////////////////////// + //////////////////////////////////////+OAAAAAAAAAAAAAAAA////IP///5D////0//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////r///9+////AwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Kf///8////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////+P///5L///8ZAAAAAAAA + AAAAAAAAAAAAAP///yv////7//////////////////////////////////////////////////////// + ////////////////////////////////////////////1f///xIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///xL////V//////////////////////////////////////////////////////// + /////////////////////////////////////////////P///ywAAAAAAAAAAAAAAAAAAAAA////Gf// + /5L////4//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /8r///8jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////dv////b///////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////8////nP///x0AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///+1//////////////////////////////////////////////////////// + ////////////////////////////////////////////3f///xoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Gv///93///////////////////////////////////////////// + //////////////////////////////////////////////////////+1AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Hf///5z////8//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////8////28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8W////uf////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////+p////JgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8+//////////////////////////////////////////////////////// + ////////////////////////////////////////////6v///yEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8h////6v////////////////////////////////// + /////////////////////////////////////////////////////////////////z4AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Jv///6n///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////rP///xIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///80////4f////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////7j///8uAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////xf////////////////////////////////////////////////// + /////////////////////////////////////////////////04AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///07///////////////////////////// + ///////////////////////////////////////////////////////////////////////FAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Lv///7j///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////d////LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9x////+f////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////4P///04AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Tv////////////////////////////////////////////////// + /////////////////////////////////////////////////4sAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////i/////////////////// + //////////////////////////////////////////////////////////////////////////////// + /04AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Tf///+D///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////X///9oAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///w////+j//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////1////gP///wsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///8f///////////////////////////////////////////// + /////////////////////////////////////////////////83///8HAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wf////N//////// + //////////////////////////////////////////////////////////////////////////////// + ///////HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8L////gP// + //X///////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////5f///8LAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yb////a//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////+z////IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zv///////////////////////////////////////////// + //////////////////////////////////////////////////b///8jAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////I/// + //b///////////////////////////////////////////////////////////////////////////// + /////////////////zsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8g////s/////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////0/// + /yIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///17////x//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////9////9IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///+u//////////////////////////////////////// + //////////////////////////////////////////////////////9/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///9///////////////////////////////////////////////////////////////////////// + //////////////////////+uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///9I////3/////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////t////UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///4D///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////5L///8OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8i/////f////////////////////////////////// + ///////////////////////////////////////////////////////a////CAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////CP///9r///////////////////////////////////////////////////////////// + /////////////////////////////f///yIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///w7///+S//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////92AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Cv///6L///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////4f///0MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////iP////////////////////////////////// + ////////////////////////////////////////////////////////////QAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///9A//////////////////////////////////////////////////////// + //////////////////////////////////////+IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0L////h//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////5P///8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Gv///83///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////l////xEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///+H///////////////////////////// + ////////////////////////////////////////////////////////////sAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///7D///////////////////////////////////////////// + ////////////////////////////////////////////4QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Ef///5f///////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////vP///xMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Kf///+H///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////k////SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///z////////////////////////////// + /////////////////////////////////////////////////////////////////zMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z//////////////////////////////////////// + //////////////////////////////////////////////////////8/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////SP// + /+T///////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////a////IgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////UP////D///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////+q////EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///+c//////////////////////// + /////////////////////////////////////////////////////////////////7YAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///7X///////////////////////////// + ////////////////////////////////////////////////////////////nAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8T////qv////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////+j///84AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////dP////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////b///9vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8I////7v////////////////// + //////////////////////////////////////////////////////////////////////85AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///85//////////////////////// + /////////////////////////////////////////////////////////////////+7///8IAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///9v////9v////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////9/// + /2IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////hv////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////9v///8tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Qf////////////////// + //////////////////////////////////////////////////////////////////////+/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///7////////////// + ////////////////////////////////////////////////////////////////////////////QQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///y3////b//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8C////lv////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////53///8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///4b///////////// + ////////////////////////////////////////////////////////////////////////////XQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9d//////// + //////////////////////////////////////////////////////////////////////////////// + /4YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////D////53///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////+EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8K////rf////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////8v///2cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////L//////// + ////////////////////////////////////////////////////////////////////////////8v// + /w0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Df// + //L///////////////////////////////////////////////////////////////////////////// + ///////KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Zv////L///////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////5T///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8T////xf////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////3P///ycAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8S/////v// + //////////////////////////////////////////////////////////////////////////////// + /6EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///+h//////////////////////////////////////////////////////////////////////// + /////////////v///xIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8n////3P// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////qv///wkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8b////1v////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////tP///xMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////U/// + //////////////////////////////////////////////////////////////////////////////// + //////9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////QP////////////////////////////////////////////////////////////////// + //////////////////////9TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /xP///+0//////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////C////EgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8j////3v////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////gwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /4b///////////////////////////////////////////////////////////////////////////// + ///////x////BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wT////x//////////////////////////////////////////////////////// + ////////////////////////////hgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///4P///////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////9X///8ZAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8j////4v////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////w////VQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///+3//////////////////////////////////////////////////////////////////////// + ////////////swAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////s/////////////////////////////////////////////////// + /////////////////////////////////7cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Vf////D///////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////2f// + /xoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8j////4v////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////c////JgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////5v////////////////////////////////////////////////////////////////// + /////////////////3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///3L///////////////////////////////////////////// + ///////////////////////////////////////mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8m////2/////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////a////GwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8j////4v////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////++////EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////GP////////////////////////////////////////////////////////////////// + //////////////////////8xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8x//////////////////////////////////////// + /////////////////////////////////////////////////xgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xP///++//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////9r///8cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8j////4v////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////+Z////BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///0X///////////////////////////////////////////////////////////// + ///////////////////////y////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Af////L///////////////////////////// + //////////////////////////////////////////////////////9FAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Bv///5n///////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////2////xwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8j////4v////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///9k//////////////////////////////////////////////////////// + ////////////////////////////yQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////J//////////////////////// + ////////////////////////////////////////////////////////////ZAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////gP// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////c////HQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8j////4v////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //r///9nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////hP////////////////////////////////////////////////// + /////////////////////////////////6EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////of////////////////// + /////////////////////////////////////////////////////////////////4QAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///9n////+v////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////93///8eAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8g////4v////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /+3///9CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///6P///////////////////////////////////////////// + //////////////////////////////////////95AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///3n///////////// + //////////////////////////////////////////////////////////////////////+jAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///0L////t//////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////3f///xsAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8a////3P////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /+P///8oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////C//////////////////////////////////////// + ////////////////////////////////////////////UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9Q//////// + ////////////////////////////////////////////////////////////////////////////wgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////KP///+P///////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////X////FAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8T////1v////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /9z///8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////2f////////////////////////////////// + /////////////////////////////////////////////////zMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wv///9P////b////2X///8rAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M/// + //////////////////////////////////////////////////////////////////////////////// + /9kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8h////3v////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /9D///8OAAAAAAAAAAAAAAAAAAAAAAAAAAD///8L////yv////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /9X///8ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///+L///////////////////////////// + //////////////////////////////////////////////////////8nAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zr////f/////////////////////P// + /5b///8GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /yf///////////////////////////////////////////////////////////////////////////// + ///////iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xz////Z//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////v////wcAAAAAAAAAAAAAAAD///8C////tv////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /87///8TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////q//////////////////////// + ////////////////////////////////////////////////////////////HAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yf////w//////////////////////// + ////////////lwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8c//////////////////////////////////////////////////////////////////////// + ////////////6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Fv///9H///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////+s////AAAAAAAAAAAA////o/////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /8H///8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////8v////////////////// + /////////////////////////////////////////////////////////////////xEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///+n//////////////////////// + //////////////////z///8rAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Ef////////////////////////////////////////////////////////////////// + //////////////////IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8O////xP// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////5wAAAAA////kv////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /6////8FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////v///////////// + //////////////////////////////////////////////////////////////////////8GAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////5f////////////////// + ////////////////////////////ZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wb///////////////////////////////////////////////////////////// + ///////////////////////7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /wb///+x//////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////kP///5H///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////+x////BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////7//////// + ////////////////////////////////////////////////////////////////////////////BgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///+////////////// + /////////////////////////////////28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8G//////////////////////////////////////////////////////// + ////////////////////////////+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8F////r/////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////5EAAAAA////n/////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////8T///8OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////8v// + //////////////////////////////////////////////////////////////////////////////// + /xEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////P//////// + //////////////////////////////////////9PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Ef////////////////////////////////////////////////// + //////////////////////////////////IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8M////wf////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////6AAAAAAAAAAAP///wL///+y//////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////0f///xYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /+r///////////////////////////////////////////////////////////////////////////// + //////8cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////a/// + ///////////////////////////////////////g////CwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xz///////////////////////////////////////////// + ///////////////////////////////////////qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8T////zv////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////7D///8AAAAAAAAAAAAAAAAA////Cf// + /8j///////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////Z////HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD////i//////////////////////////////////////////////////////////////////////// + ////////////JwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /wT///+m///////////////////////////////v////OgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8n//////////////////////////////////////// + ////////////////////////////////////////////4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8Z////1f////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////8L///8IAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8R////1P////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////97///8hAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////2f////////////////////////////////////////////////////////////////// + /////////////////zMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////BP///2v////O////7////+T///+n////JwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////M/////////////////////////////////// + /////////////////////////////////////////////////9kAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8g////3P////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////9L///8QAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///xj////b//////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////4////ygAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///8L///////////////////////////////////////////////////////////// + //////////////////////9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///1D///////////////////////////// + ///////////////////////////////////////////////////////CAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8o////4/////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////9j///8WAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////IP///+L///////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////t////QgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///+j//////////////////////////////////////////////////////// + ////////////////////////////eQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///95//////////////////////// + ////////////////////////////////////////////////////////////owAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///9C////7f////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////93///8cAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8j////4v////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //r///9nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////hP////////////////////////////////////////////////// + /////////////////////////////////6EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////of////////////////// + /////////////////////////////////////////////////////////////////4QAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///9n////+v////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////9z///8dAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yL////h//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///2T///////////////////////////////////////////// + ///////////////////////////////////////JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///8n///////////// + //////////////////////////////////////////////////////////////////////9kAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///+A//////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////9r///8cAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////If///+D///////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////mf///wYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9F//////////////////////////////////////// + ////////////////////////////////////////////8v///wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wH////y//////// + ////////////////////////////////////////////////////////////////////////////RQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /wb///+Z//////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////9n///8aAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8g////3/// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////++////EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////GP////////////////////////////////// + //////////////////////////////////////////////////////8xAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8x//////// + //////////////////////////////////////////////////////////////////////////////// + /xgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /xP///++//////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////9f///8ZAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /yD////f//////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////9v///8mAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////m//////////////////////// + ////////////////////////////////////////////////////////////cgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////cv// + //////////////////////////////////////////////////////////////////////////////// + /+YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /yb////c//////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////9b///8XAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////H////97///////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////8P///1UAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////t/////////////////// + /////////////////////////////////////////////////////////////////7MAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /7P///////////////////////////////////////////////////////////////////////////// + //////+3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /1X////w//////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////9X///8WAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8e////2P////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////gwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///4b///////////// + ///////////////////////////////////////////////////////////////////////x////BAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /wT////x//////////////////////////////////////////////////////////////////////// + ////////////hgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /4P///////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////8r///8VAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xX////L//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////+0////EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9T//////// + //////////////////////////////////////////////////////////////////////////////// + /0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///9A//////////////////////////////////////////////////////////////////////// + /////////////////1MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////E/// + /7T///////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////6////8MAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////DP///7D///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////9z///8nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Ev// + //7///////////////////////////////////////////////////////////////////////////// + //////+hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////of////////////////////////////////////////////////////////////////// + //////////////////7///8SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////J/// + /9z///////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////5b///8DAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8D////l/////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////8v///2cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD////K//////////////////////////////////////////////////////////////////////// + ////////////8v///w0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Df////L///////////////////////////////////////////////////////////// + ///////////////////////LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Zv// + //L///////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////4UAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///+F//////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////nf///w8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////hv////////////////////////////////////////////////////////////////// + //////////////////////9dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///13///////////////////////////////////////////////////////////// + ////////////////////////////hgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8P////nf// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /3P///////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////b////LQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///0H///////////////////////////////////////////////////////////// + ////////////////////////////vwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///+///////////////////////////////////////////////////////// + /////////////////////////////////0EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8t////2/// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////+f///18AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Xv////b///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////b///9vAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8I////7v////////////////////////////////////////////////// + //////////////////////////////////////85AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///85//////////////////////////////////////////////////////// + /////////////////////////////////+7///8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9v////9v// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////7f///0MAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///81////5/////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /6r///8TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///5z///////////////////////////////////////////// + ////////////////////////////////////////////tQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////tv////////////////////////////////////////////////// + //////////////////////////////////////+cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xP///+q//////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////3////ycAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yD////Y//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////5P///0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8///////////////////////////////////////// + //////////////////////////////////////////////////////8zAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////M/////////////////////////////////////////////////// + ////////////////////////////////////////////PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0j////k//////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////zf///xkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Ev///7n///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////l////xEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///+H///////////////////////////// + ////////////////////////////////////////////////////////////sAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///7D///////////////////////////////////////////// + ////////////////////////////////////////////4QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Ef///5f///////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////pv///wsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8D////kf////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////h////QgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///+I//////////////////////// + //////////////////////////////////////////////////////////////////////9AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0D///////////////////////////////////////////// + /////////////////////////////////////////////////4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Q////+H///////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////hgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///90//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////+S////DgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Iv////3///////////// + ////////////////////////////////////////////////////////////////////////////2v// + /wgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wj////a//////////////////////////////////////// + //////////////////////////////////////////////////3///8iAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8O////kv////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////6////agAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /03////s//////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////9////9IAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///+u//////// + //////////////////////////////////////////////////////////////////////////////// + //////9/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9///////////////////////////////////////// + //////////////////////////////////////////////////////+uAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9I////3/////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////o////QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////If///9H///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /7P///8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////O/// + //////////////////////////////////////////////////////////////////////////////// + ////////////9v///yMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8j////9v////////////////////////////////// + ////////////////////////////////////////////////////////////OwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yD///+z//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////J////HQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8J////lf////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////9f///4D///8LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD////H//////////////////////////////////////////////////////////////////////// + ///////////////////////N////BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8H////zf////////////////////////////////// + ////////////////////////////////////////////////////////////xwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////C////4D////1//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////+N////BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9l////8/////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////4P///00AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Tv////////////////////////////////////////////////////////////////// + /////////////////////////////////4sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////i/////////////////////////////////// + /////////////////////////////////////////////////////////////////04AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Tv///+D///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////+////9ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yr////c//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////uP///y4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD////F//////////////////////////////////////////////////////// + ////////////////////////////////////////////TgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Tv////////////////////////////////// + /////////////////////////////////////////////////////////////////8UAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8u////uP////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////9f///8kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Ef///6j///////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////qf///yYAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Pv////////////////////////////////////////////////// + /////////////////////////////////////////////////+r///8hAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////If///+r///////////////////////////// + //////////////////////////////////////////////////////////////////////8+AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yb///+p//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////5z///8NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////bP// + //H///////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////8////nP// + /x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///+1//////////////////////////////////////// + ////////////////////////////////////////////////////////////3f///xoAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Gv///93///////////////////////////// + //////////////////////////////////////////////////////////////////////+1AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Hf///5z////8//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////7v///2MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8i////yP////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////4////kv///xkAAAAAAAAAAAAAAAAAAAAA////LP////z///////////////////////////// + ///////////////////////////////////////////////////////////////////////V////EgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Ev///9X///////////////////////////// + ///////////////////////////////////////////////////////////////////////7////KwAA + AAAAAAAAAAAAAAAAAAD///8Z////kv////j///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////wv///x8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wL///98////+v////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////0////kP///yAAAAAAAAAAAAAAAAD///+O//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /8b///8UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////FP///8b///////////////////////////// + ////////////////////////////////////////////////////////////////////////////hAAA + AAAAAAAAAAAAAP///yX///+T////9P////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////4////eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zD////Y//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////qf///zUAAAAA////Df///+b///////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////xv///xIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Ev///8b///////////////////////////// + ////////////////////////////////////////////////////////////////////////////2/// + /wkAAAAA////Rf///7T///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////W////LQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Cv///4z///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////xv///1r///9P//////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////V////GgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Gv///9X///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /0f///9j////1P////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////+L////CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////P////93///////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////5v// + /+////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////93///8hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////If///93///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /+r////q//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////93///8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8K////g/// + //n///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////6v///04AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Tv///+r///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////+f///4P///8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8q////xf////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////i////wcAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8H////i/////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////xf///yoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///9s////7f////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////N////IwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8j////zf////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////t////awAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xr///+q//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //b///9/////CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wj///9/////9v////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////+q////GgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0j////V//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////9r///9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0D////a//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /9X///9IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Av///2r////n//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////7D///8zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////M////7D///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////5/// + /2r///8CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////D/// + /4P////z//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////7b///85AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///85////tf////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////0////g/// + /w8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////HP///5////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////7////9d////DQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Df///13///+///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////+f////HAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Mf///7v///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //L///+h////QP///wQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /wT///9A////of////L///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////7v///8xAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////O////7j///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////x////s////3L///8x////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wH///8x////cv// + /7P////x//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////uP///zsAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Nv///7P///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////L////J////of///3n///9Q////M/// + /yf///8c////Ef///wb///8G////Ef///xz///8n////M////1D///95////of///8n////y//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////+z////NgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Mv// + /6////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////6////8yAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Lf///6r////8//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////8////qv///y0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////HP///4X////q//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////+r///+F////HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Cf///1z////K//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////yv///1z///8JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zj///+m////+P// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////j///+m////OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /xf///94////1P////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////1P///3j///8XAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///80////kP///+r///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /+r///+Q////NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8F////TP///6v////2//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////2////q/// + /0z///8FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Ef///2T///+3////9/// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////9////7f///9k////EQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /w3///9S////of///+v///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////+v///+h////Uv///w0AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8C////PP///4j////V//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////V////iP///zz///8CAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yP///9h////oP///9v///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////b////oP///2H///8jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////G/// + /1b///+V////0P////7///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //7////Q////lf///1b///8bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8Q////Sf///3T///+f////yf////L///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////8v///8j///+f////dP// + /0n///8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Hv///0j///9x////nP// + /8P////e////9/////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////9////97////D////nP///3H///9H////HgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8S////K////0T///9d////dv///5D///+p////tf///73////G////z/// + /9j////g////6f////L////7////+/////L////p////4P///9j////P////xv///73///+1////qf// + /5D///92////Xf///0T///8r////EgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////wAAAAD///////////////////////////////////+A + AAAAAAH/////////////////////////////////4AAAAAAAAAf///////////////////////////// + //4AAAAAAAAAAH//////////////////////////////4AAAAAAAAAAAB/////////////////////// + //////4AAAAAAAAAAAAAf///////////////////////////8AAAAAAAAAAAAAAP//////////////// + //////////+AAAAAAAAAAAAAAAH//////////////////////////AAAAAAAAAAAAAAAAD////////// + ///////////////wAAAAAAAAAAAAAAAAD////////////////////////4AAAAAAAAAAAAAAAAAB//// + ///////////////////+AAAAAAAAAAAAAAAAAAB///////////////////////AAAAAAAAAAAAAAAAAA + AA//////////////////////wAAAAAAAAAAAAAAAAAAAA/////////////////////8AAAAAAAAAAAAA + AAAAAAAA/////////////////////AAAAAAAAAAAAAAAAAAAAAA////////////////////wAAAAAAAA + AAAAAAAAAAAAAA///////////////////8AAAAAAAAAB//+AAAAAAAAAA///////////////////AAAA + AAAAAB////gAAAAAAAAA//////////////////wAAAAAAAAA/////wAAAAAAAAA///////////////// + 8AAAAAAAAAf/////4AAAAAAAAA/////////////////AAAAAAAAAH//////4AAAAAAAAA/////////// + /////4AAAAAAAAB///////4AAAAAAAAB///////////////+AAAAAAAAAP///////wAAAAAAAAB///// + //////////wAAAAAAAAD////////wAAAAAAAAD//////////////8AAAAAAAAAf////////gAAAAAAAA + D//////////////AAAAAAAAAH/////////gAAAAAAAAD/////////////4AAAAAAAAA//////////AAA + AAAAAAH////////////+AAAAAAAAAH/////////+AAAAAAAAAH////////////wAAAAAgAAA//////// + //8AAAEAAAAAP///////////8AAAAAOAAAH//////////4AAAcAAAAAP///////////gAAAADwAAA/// + ////////wAAA8AAAAAf//////////8AAAAA/AAAH///////////gAAD8AAAAA///////////AAAAAP4A + AA////////////AAAH8AAAAA//////////4AAAAD/gAAH///////////+AAAf8AAAAB//////////AAA + AA/8AAA////////////8AAA/8AAAAD/////////wAAAAH/wAAD////////////wAAD/4AAAAD/////// + /+AAAAB/+AAAf////////////gAAH/4AAAAH////////wAAAAf/4AAD/////////////AAAf/4AAAAP/ + //////+AAAAD//AAAP////////////8AAA//wAAAAf///////gAAAA//8AAB/////////////4AAD//w + AAAAf//////8AAAAH//wAAP/////////////wAAP//gAAAA///////gAAAB//+AAA//////////////A + AAf//gAAAB//////8AAAAP//4AAH/////////////+AAB///AAAAD//////gAAAD///AAAf///////// + ////4AAD///AAAAH/////8AAAAf//8AAD//////////////wAAP//+AAAAP/////AAAAD///wAAP//// + //////////AAA///8AAAAf////4AAAA////AAA//////////////8AAD///8AAAAf////AAAAH///4AA + H//////////////4AAH///4AAAA////4AAAA////gAAf//////////////gAAf///wAAAB////AAAAP/ + //+AAB//////////////+AAB////wAAAD///4AAAB////4AAP//////////////8AAH////gAAAH///A + AAAP////gAA///////////////wAAf////AAAAP//4AAAB////8AAD///////////////AAA////+AAA + Af//AAAAP////wAAP//////////////8AAD////8AAAA//4AAAD/////AAB///////////////4AAP// + //8AAAB//AAAAf////8AAH///////////////gAA/////4AAAD/4AAAD/////wAAf//////////////+ + AAD/////wAAAH/AAAAf/////AAB///////////////4AAP/////gAAAP4AAAD/////8AAH//////+D// + /////gAA//////AAAAfAAAAf/////wAAf//////wD//////+AAD/////+AAAA4AAAD//////AAB///// + /+AP//////4AAP/////8AAADgAAAf/////8AAH//////4Af//////gAA//////4AAAEAAAD//////wAA + f//////gB//////+AAD//////wAAAAAAAP//////AAB//////+AH//////4AAP//////AAAAgAAAf/// + //8AAH//////4Af//////gAA//////4AAAGAAAA//////wAAf//////gB//////+AAD//////AAAA8AA + AB//////AAB//////+AP//////4AAP/////4AAAD4AAAD/////8AAH//////8B///////gAA//////AA + AAfwAAAH/////wAAf//////////////+AAD/////4AAAD/gAAAP/////AAB///////////////4AAP// + ///AAAAf/AAAAf////8AAH///////////////gAA/////4AAAD/+AAAA/////wAAf//////////////+ + AAD/////AAAAf/8AAAA/////AAA///////////////wAAP////wAAAD//4AAAB////8AAD////////// + /////AAA////+AAAAf//wAAAD////4AAP//////////////8AAH////wAAAD///gAAAH////gAA///// + //////////wAAf///+AAAAf///AAAAP///+AAB//////////////+AAB////wAAAD///+AAAAP///4AA + H//////////////4AAH///8AAAAf///8AAAAf///gAAf//////////////gAAf///gAAAD////4AAAA/ + ///AAA//////////////8AAD///8AAAA/////4AAAA///8AAD//////////////wAAP///AAAAH///// + wAAAB///wAAP//////////////AAA///4AAAA//////gAAAD///AAAf/////////////4AAD///AAAAH + //////AAAAD//+AAB//////////////gAAf//wAAAA//////+AAAAH//4AAD/////////////8AAB//+ + AAAAH//////8AAAAH//wAAP/////////////wAAP//gAAAA///////4AAAAP//AAAf////////////+A + AA//8AAAAP///////4AAAAP/8AAA/////////////wAAD//AAAAB////////wAAAAf/4AAD///////// + ////AAAf/4AAAAP////////gAAAAf/gAAH////////////4AAB/+AAAAB/////////AAAAAf/AAAP/// + /////////AAAP/gAAAAP/////////AAAAA/8AAA////////////8AAA/8AAAAD/////////+AAAAA/4A + AB////////////gAAH/AAAAAf/////////8AAAAA/gAAD///////////8AAAfwAAAAD//////////8AA + AAA/AAAH///////////gAAD8AAAAA///////////4AAAAA8AAAP//////////8AAAPAAAAAH//////// + ///wAAAAA4AAAf//////////gAABwAAAAB////////////wAAAAAgAAA//////////8AAAEAAAAAP/// + /////////gAAAAAAAAB//////////gAAAAAAAAB/////////////gAAAAAAAAD/////////8AAAAAAAA + Af/////////////AAAAAAAAAH/////////gAAAAAAAAD//////////////AAAAAAAAAH////////4AAA + AAAAAA///////////////AAAAAAAAAP////////AAAAAAAAAP//////////////+AAAAAAAAAP////// + /wAAAAAAAAB///////////////+AAAAAAAAAf//////+AAAAAAAAAf///////////////8AAAAAAAAAf + //////gAAAAAAAAD////////////////8AAAAAAAAAf/////4AAAAAAAAA/////////////////8AAAA + AAAAAP////8AAAAAAAAAP/////////////////8AAAAAAAAAH///+AAAAAAAAAD///////////////// + /8AAAAAAAAAB//+AAAAAAAAAA///////////////////8AAAAAAAAAAAAAAAAAAAAAAP//////////// + ///////8AAAAAAAAAAAAAAAAAAAAAD////////////////////8AAAAAAAAAAAAAAAAAAAAA//////// + /////////////8AAAAAAAAAAAAAAAAAAAAP/////////////////////8AAAAAAAAAAAAAAAAAAAD/// + ///////////////////+AAAAAAAAAAAAAAAAAAB///////////////////////+AAAAAAAAAAAAAAAAA + Af////////////////////////AAAAAAAAAAAAAAAAAP/////////////////////////AAAAAAAAAAA + AAAAAD//////////////////////////gAAAAAAAAAAAAAAB///////////////////////////wAAAA + AAAAAAAAAA////////////////////////////4AAAAAAAAAAAAAf/////////////////////////// + /+AAAAAAAAAAAAf//////////////////////////////gAAAAAAAAAAf/////////////////////// + ////////4AAAAAAAAAf/////////////////////////////////gAAAAAAB//////////////////// + ////////////////AAAAAP////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////8= + + + \ No newline at end of file diff --git a/Forms/SettingsForm.Designer.cs b/Forms/SettingsForm.Designer.cs index b9290d3..1b90bd5 100644 --- a/Forms/SettingsForm.Designer.cs +++ b/Forms/SettingsForm.Designer.cs @@ -63,6 +63,7 @@ private void InitializeComponent() specificTooltipRDBTN = new System.Windows.Forms.RadioButton(); okBtn = new System.Windows.Forms.Button(); cancelBtn = new System.Windows.Forms.Button(); + exceptionLogBtn = new System.Windows.Forms.Button(); tooltipProvider = new System.Windows.Forms.ToolTip(components); scrollablePanel.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit(); @@ -559,6 +560,17 @@ private void InitializeComponent() cancelBtn.UseVisualStyleBackColor = false; cancelBtn.Click += cancelBtn_Click; // + // exceptionLogBtn + // + exceptionLogBtn.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left; + exceptionLogBtn.Location = new System.Drawing.Point(12, 721); + exceptionLogBtn.Name = "exceptionLogBtn"; + exceptionLogBtn.Size = new System.Drawing.Size(120, 27); + exceptionLogBtn.TabIndex = 10; + exceptionLogBtn.Text = "Exception Log..."; + exceptionLogBtn.UseVisualStyleBackColor = true; + exceptionLogBtn.Click += exceptionLogBtn_Click; + // // SettingsForm // AcceptButton = okBtn; @@ -566,6 +578,7 @@ private void InitializeComponent() AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; CancelButton = cancelBtn; ClientSize = new System.Drawing.Size(545, 756); + Controls.Add(exceptionLogBtn); Controls.Add(cancelBtn); Controls.Add(okBtn); Controls.Add(scrollablePanel); @@ -639,5 +652,6 @@ private void InitializeComponent() private System.Windows.Forms.RadioButton generalTooltipRDBTN; private System.Windows.Forms.RadioButton specificTooltipRDBTN; private System.Windows.Forms.ToolTip tooltipProvider; + private System.Windows.Forms.Button exceptionLogBtn; } } diff --git a/Forms/SettingsForm.cs b/Forms/SettingsForm.cs index 1bf8dd7..250ea6a 100644 --- a/Forms/SettingsForm.cs +++ b/Forms/SettingsForm.cs @@ -418,4 +418,11 @@ private void generalTooltipRDBTN_Click(object sender, EventArgs e) { private void specificTooltipRDBTN_Click(object sender, EventArgs e) { appSettings.TooltipFormat = TooltipFormat.Specific; } + + private void exceptionLogBtn_Click(object? sender, EventArgs e) { + if (Application.OpenForms.OfType().Any() == false) { + var exceptionLogForm = new ExceptionLogForm(); + exceptionLogForm.Show(); + } + } } diff --git a/Helpers/ExceptionLogService.cs b/Helpers/ExceptionLogService.cs new file mode 100644 index 0000000..01feab1 --- /dev/null +++ b/Helpers/ExceptionLogService.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Caffeinated.Helpers; + +public class ExceptionLogService { + private static readonly object lockObject = new(); + private static readonly List exceptions = []; + private const int MaxExceptions = 10; + + public static void LogException(Exception exception) { + lock (lockObject) { + exceptions.Insert(0, new ExceptionEntry { + Exception = exception, + Timestamp = DateTime.Now + }); + + if (exceptions.Count > MaxExceptions) { + exceptions.RemoveAt(exceptions.Count - 1); + } + } + } + + public static List GetExceptions() { + lock (lockObject) { + return [.. exceptions]; + } + } + + public static void Clear() { + lock (lockObject) { + exceptions.Clear(); + } + } +} + +public class ExceptionEntry { + public required Exception Exception { get; init; } + public DateTime Timestamp { get; init; } +} diff --git a/Program.cs b/Program.cs index 24343c3..d57bf04 100644 --- a/Program.cs +++ b/Program.cs @@ -67,17 +67,14 @@ private static void Main() { private static void Application_ThreadException(object? sender, ThreadExceptionEventArgs e) { Debug.WriteLine($"UI Thread Exception: {e.Exception}"); - MessageBox.Show( - $"An error occurred: {e.Exception.Message}\n\nThe application will continue running.", - "Caffeinated - Error", - MessageBoxButtons.OK, - MessageBoxIcon.Error - ); + ExceptionLogService.LogException(e.Exception); } private static void CurrentDomain_UnhandledException(object? sender, UnhandledExceptionEventArgs e) { Debug.WriteLine($"Unhandled Exception: {e.ExceptionObject}"); - // Log to file or event log in production + if (e.ExceptionObject is Exception exception) { + ExceptionLogService.LogException(exception); + } } internal void PerformGracefulShutdown() { From 9332a110e937908cd3dda040e02d220401158665 Mon Sep 17 00:00:00 2001 From: Joe Finney Date: Wed, 21 Jan 2026 11:10:58 -0600 Subject: [PATCH 098/101] Improve tray menu font, spacing, and icon rendering Standardize menu font and padding, and simplify icon rendering for better visual consistency and clarity. --- ModernMenuRenderer.cs | 5 +++-- Program.cs | 30 ++++++++++++------------------ 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/ModernMenuRenderer.cs b/ModernMenuRenderer.cs index 4906c75..fd1603c 100644 --- a/ModernMenuRenderer.cs +++ b/ModernMenuRenderer.cs @@ -46,10 +46,11 @@ protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e) { ? Color.FromArgb(32, 32, 32) : Color.FromArgb(240, 240, 240); - e.TextFont = new Font(e.TextFont.FontFamily, e.TextFont.Size, FontStyle.Regular); + e.TextFont = new Font("Segoe UI", 10.5f, FontStyle.Regular); Rectangle adjustedRect = e.TextRectangle; - adjustedRect.Y += 3; + adjustedRect.Y += 4; + adjustedRect.Height += 4; e.TextRectangle = adjustedRect; base.OnRenderItemText(e); diff --git a/Program.cs b/Program.cs index d57bf04..abb4f0e 100644 --- a/Program.cs +++ b/Program.cs @@ -319,10 +319,12 @@ public void setContextMenu() { appSettings.DefaultDuration = 0; } + Padding itemPadding = new(6, 14, 6, 6); + ToolStripMenuItem? settingsItem = new("&Settings...") { Image = CreateSymbolImage("⚙", isLightTheme), ImageScaling = ToolStripItemImageScaling.None, - Padding = new Padding(4, 6, 4, 6), + Padding = itemPadding, ImageAlign = ContentAlignment.MiddleLeft, TextImageRelation = TextImageRelation.ImageBeforeText }; @@ -332,7 +334,7 @@ public void setContextMenu() { ToolStripMenuItem? aboutItem = new("&About...") { Image = CreateSymbolImage("ℹ", isLightTheme), ImageScaling = ToolStripItemImageScaling.None, - Padding = new Padding(4, 6, 4, 6), + Padding = itemPadding, ImageAlign = ContentAlignment.MiddleLeft, TextImageRelation = TextImageRelation.ImageBeforeText }; @@ -342,7 +344,7 @@ public void setContextMenu() { ToolStripMenuItem? exitItem = new("E&xit") { Image = CreateSymbolImage("✖", isLightTheme), ImageScaling = ToolStripItemImageScaling.None, - Padding = new Padding(4, 6, 4, 6), + Padding = itemPadding, ImageAlign = ContentAlignment.MiddleLeft, TextImageRelation = TextImageRelation.ImageBeforeText, }; @@ -370,7 +372,7 @@ public void setContextMenu() { Tag = time, Image = CreateSymbolImage("⏰", isLightTheme), ImageScaling = ToolStripItemImageScaling.None, - Padding = new Padding(4, 6, 4, 6), + Padding = itemPadding, ImageAlign = ContentAlignment.MiddleLeft, TextImageRelation = TextImageRelation.ImageBeforeText }; @@ -382,27 +384,19 @@ public void setContextMenu() { } private static Bitmap CreateSymbolImage(string symbol, bool isLightTheme) { - using Graphics g = Graphics.FromHwnd(IntPtr.Zero); - float dpiScale = g.DpiX / 96f; - - int baseSize = 16; - int size = (int)(baseSize * dpiScale); - int padding = (int)(2 * dpiScale); - int totalSize = size + (padding * 2); - - string cacheKey = $"{symbol}_{isLightTheme}_{dpiScale:F2}"; + int size = 24; + string cacheKey = $"{symbol}_{isLightTheme}"; if (symbolCache.TryGetValue(cacheKey, out Bitmap? cached)) { return cached; } - Bitmap bitmap = new(totalSize, totalSize); + Bitmap bitmap = new(size, size); using Graphics graphics = Graphics.FromImage(bitmap); graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; - graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; + graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; - float fontSize = 10f * dpiScale; - using Font font = new("Segoe UI Symbol", fontSize, FontStyle.Regular); + using Font font = new("Segoe UI Symbol", 11f, FontStyle.Regular); Color textColor = isLightTheme ? Color.FromArgb(32, 32, 32) : Color.FromArgb(240, 240, 240); using SolidBrush brush = new(textColor); @@ -411,7 +405,7 @@ private static Bitmap CreateSymbolImage(string symbol, bool isLightTheme) { LineAlignment = StringAlignment.Center }; - graphics.DrawString(symbol, font, brush, new RectangleF(padding, padding, size, size), format); + graphics.DrawString(symbol, font, brush, new RectangleF(0, 0, size, size), format); symbolCache[cacheKey] = bitmap; From ad8082e88130171c6a2db65773595d825c4ee516 Mon Sep 17 00:00:00 2001 From: Joe Finney Date: Wed, 21 Jan 2026 14:20:31 -0600 Subject: [PATCH 099/101] Improve durations UI and position forms near tray icon Modernize Settings durations UI with TableLayoutPanel and ensure forms open near the system tray icon for better UX. Includes theming and designer adjustments. --- Forms/BaseForm.cs | 97 ++++++++++++ Forms/SettingsForm.Designer.cs | 43 +++--- Forms/SettingsForm.cs | 267 ++++++++++++++++++++------------- Forms/SettingsForm.resx | 3 - Helpers/NativeMethods.cs | 26 ++++ Program.cs | 2 + 6 files changed, 309 insertions(+), 129 deletions(-) diff --git a/Forms/BaseForm.cs b/Forms/BaseForm.cs index c9db115..ee13443 100644 --- a/Forms/BaseForm.cs +++ b/Forms/BaseForm.cs @@ -1,6 +1,7 @@ using System.Windows.Forms; using System.Drawing; using System.ComponentModel; +using System.Reflection; namespace Caffeinated; @@ -31,6 +32,102 @@ protected virtual void UpdateTheme() { ForeColor = IsDarkMode ? Color.FromArgb(255, 255, 255) : SystemColors.ControlText; } + public void PositionNearTrayIcon(NotifyIcon? notifyIcon) { + if (notifyIcon == null) + return; + + Rectangle iconRect = GetNotifyIconRect(notifyIcon); + + if (iconRect.IsEmpty) { + // Fallback to taskbar positioning + PositionNearTaskbar(); + return; + } + + PositionFormNearRect(iconRect); + } + + private Rectangle GetNotifyIconRect(NotifyIcon notifyIcon) { + try { + FieldInfo? windowField = typeof(NotifyIcon).GetField( + "window", + BindingFlags.NonPublic | BindingFlags.Instance); + + if (windowField?.GetValue(notifyIcon) is NativeWindow window) { + NativeMethods.NOTIFYICONIDENTIFIER identifier = new() { + cbSize = System.Runtime.InteropServices.Marshal.SizeOf(), + hWnd = window.Handle, + uID = (uint)notifyIcon.GetHashCode() + }; + + int result = NativeMethods.Shell_NotifyIconGetRect( + ref identifier, + out NativeMethods.RECT rect); + + if (result == 0) { + return rect.ToRectangle(); + } + } + } + catch { + // Fall through to return empty rectangle + } + + return Rectangle.Empty; + } + + private void PositionNearTaskbar() { + Taskbar taskbar = new(); + Rectangle taskbarBounds = taskbar.Bounds; + + // Position based on taskbar location + PositionFormNearRect(taskbarBounds); + } + + private void PositionFormNearRect(Rectangle targetRect) { + Taskbar taskbar = new(); + Screen screen = Screen.FromRectangle(targetRect); + Rectangle workingArea = screen.WorkingArea; + + // Form dimensions are already DPI-scaled by WinForms + int formWidth = Width; + int formHeight = Height; + + int x, y; + const int margin = 5; + + switch (taskbar.Position) { + case TaskbarPosition.Bottom: + x = targetRect.Right - formWidth; + y = targetRect.Top - formHeight - margin; + break; + case TaskbarPosition.Top: + x = targetRect.Right - formWidth; + y = targetRect.Bottom + margin; + break; + case TaskbarPosition.Left: + x = targetRect.Right + margin; + y = targetRect.Bottom - formHeight; + break; + case TaskbarPosition.Right: + x = targetRect.Left - formWidth - margin; + y = targetRect.Bottom - formHeight; + break; + default: + // Fallback to bottom-right + x = workingArea.Right - formWidth - margin; + y = workingArea.Bottom - formHeight - margin; + break; + } + + // Ensure form stays within screen bounds + x = System.Math.Max(workingArea.Left, System.Math.Min(x, workingArea.Right - formWidth)); + y = System.Math.Max(workingArea.Top, System.Math.Min(y, workingArea.Bottom - formHeight)); + + StartPosition = FormStartPosition.Manual; + Location = new Point(x, y); + } + private void InitializeComponent() { ComponentResourceManager resources = new(typeof(BaseForm)); diff --git a/Forms/SettingsForm.Designer.cs b/Forms/SettingsForm.Designer.cs index 1b90bd5..e31fe04 100644 --- a/Forms/SettingsForm.Designer.cs +++ b/Forms/SettingsForm.Designer.cs @@ -22,8 +22,7 @@ protected override void Dispose(bool disposing) { /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// - private void InitializeComponent() - { + private void InitializeComponent() { components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SettingsForm)); scrollablePanel = new System.Windows.Forms.Panel(); @@ -91,7 +90,7 @@ private void InitializeComponent() scrollablePanel.Controls.Add(tableLayoutPanel1); scrollablePanel.Location = new System.Drawing.Point(0, 0); scrollablePanel.Name = "scrollablePanel"; - scrollablePanel.Size = new System.Drawing.Size(545, 685); + scrollablePanel.Size = new System.Drawing.Size(545, 390); scrollablePanel.TabIndex = 0; // // label1 @@ -122,7 +121,7 @@ private void InitializeComponent() // // tableLayoutPanel1 // - tableLayoutPanel1.AutoScroll = true; + tableLayoutPanel1.AutoScroll = false; tableLayoutPanel1.AutoSize = true; tableLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; tableLayoutPanel1.ColumnCount = 1; @@ -135,7 +134,7 @@ private void InitializeComponent() tableLayoutPanel1.Controls.Add(tableLayoutPanel4, 0, 6); tableLayoutPanel1.Controls.Add(tableLayoutPanel5, 0, 3); tableLayoutPanel1.Location = new System.Drawing.Point(130, 134); - tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(2); tableLayoutPanel1.Name = "tableLayoutPanel1"; tableLayoutPanel1.RowCount = 8; tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); @@ -158,12 +157,11 @@ private void InitializeComponent() tableLayoutPanel2.Controls.Add(label3, 0, 0); tableLayoutPanel2.Controls.Add(DurationsListView, 0, 1); tableLayoutPanel2.Location = new System.Drawing.Point(2, 119); - tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(2); tableLayoutPanel2.Name = "tableLayoutPanel2"; tableLayoutPanel2.RowCount = 2; tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle()); tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle()); - tableLayoutPanel2.Size = new System.Drawing.Size(174, 96); tableLayoutPanel2.TabIndex = 13; // // label3 @@ -184,7 +182,7 @@ private void InitializeComponent() DurationsListView.Name = "DurationsListView"; DurationsListView.OwnerDraw = true; DurationsListView.Scrollable = false; - DurationsListView.Size = new System.Drawing.Size(168, 75); + DurationsListView.Size = new System.Drawing.Size(200, 75); DurationsListView.TabIndex = 8; DurationsListView.UseCompatibleStateImageBehavior = false; DurationsListView.View = System.Windows.Forms.View.Details; @@ -244,7 +242,7 @@ private void InitializeComponent() tableLayoutPanel3.Controls.Add(pictureBox6, 1, 3); tableLayoutPanel3.Controls.Add(pictureBox7, 2, 3); tableLayoutPanel3.Location = new System.Drawing.Point(2, 273); - tableLayoutPanel3.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + tableLayoutPanel3.Margin = new System.Windows.Forms.Padding(2); tableLayoutPanel3.Name = "tableLayoutPanel3"; tableLayoutPanel3.RowCount = 4; tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle()); @@ -278,7 +276,7 @@ private void InitializeComponent() // defaultRDBTN.AutoSize = true; defaultRDBTN.Location = new System.Drawing.Point(2, 17); - defaultRDBTN.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + defaultRDBTN.Margin = new System.Windows.Forms.Padding(2); defaultRDBTN.Name = "defaultRDBTN"; defaultRDBTN.Padding = new System.Windows.Forms.Padding(0, 15, 0, 0); defaultRDBTN.Size = new System.Drawing.Size(63, 34); @@ -293,7 +291,7 @@ private void InitializeComponent() // eyeZZZRDBTN.AutoSize = true; eyeZZZRDBTN.Location = new System.Drawing.Point(2, 83); - eyeZZZRDBTN.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + eyeZZZRDBTN.Margin = new System.Windows.Forms.Padding(2); eyeZZZRDBTN.Name = "eyeZZZRDBTN"; eyeZZZRDBTN.Padding = new System.Windows.Forms.Padding(0, 15, 0, 0); eyeZZZRDBTN.Size = new System.Drawing.Size(91, 34); @@ -307,7 +305,7 @@ private void InitializeComponent() // mugRDBTN.AutoSize = true; mugRDBTN.Location = new System.Drawing.Point(2, 149); - mugRDBTN.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + mugRDBTN.Margin = new System.Windows.Forms.Padding(2); mugRDBTN.Name = "mugRDBTN"; mugRDBTN.Padding = new System.Windows.Forms.Padding(0, 15, 0, 0); mugRDBTN.Size = new System.Drawing.Size(50, 34); @@ -393,7 +391,7 @@ private void InitializeComponent() tableLayoutPanel4.Controls.Add(durationEntryFlowPanel, 1, 0); tableLayoutPanel4.Controls.Add(addCustomDurationBTN, 1, 1); tableLayoutPanel4.Location = new System.Drawing.Point(2, 219); - tableLayoutPanel4.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + tableLayoutPanel4.Margin = new System.Windows.Forms.Padding(2); tableLayoutPanel4.Name = "tableLayoutPanel4"; tableLayoutPanel4.RowCount = 2; tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle()); @@ -422,7 +420,7 @@ private void InitializeComponent() durationEntryFlowPanel.Controls.Add(minutesLabel); durationEntryFlowPanel.Dock = System.Windows.Forms.DockStyle.Fill; durationEntryFlowPanel.Location = new System.Drawing.Point(142, 2); - durationEntryFlowPanel.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + durationEntryFlowPanel.Margin = new System.Windows.Forms.Padding(2); durationEntryFlowPanel.Name = "durationEntryFlowPanel"; durationEntryFlowPanel.Size = new System.Drawing.Size(130, 27); durationEntryFlowPanel.TabIndex = 1; @@ -472,7 +470,7 @@ private void InitializeComponent() // addCustomDurationBTN.Anchor = System.Windows.Forms.AnchorStyles.Left; addCustomDurationBTN.Location = new System.Drawing.Point(142, 33); - addCustomDurationBTN.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + addCustomDurationBTN.Margin = new System.Windows.Forms.Padding(2); addCustomDurationBTN.Name = "addCustomDurationBTN"; addCustomDurationBTN.Size = new System.Drawing.Size(46, 19); addCustomDurationBTN.TabIndex = 2; @@ -490,7 +488,7 @@ private void InitializeComponent() tableLayoutPanel5.Controls.Add(generalTooltipRDBTN, 1, 0); tableLayoutPanel5.Controls.Add(specificTooltipRDBTN, 2, 0); tableLayoutPanel5.Location = new System.Drawing.Point(2, 77); - tableLayoutPanel5.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + tableLayoutPanel5.Margin = new System.Windows.Forms.Padding(2); tableLayoutPanel5.Name = "tableLayoutPanel5"; tableLayoutPanel5.RowCount = 1; tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle()); @@ -511,7 +509,7 @@ private void InitializeComponent() // generalTooltipRDBTN.AutoSize = true; generalTooltipRDBTN.Location = new System.Drawing.Point(107, 2); - generalTooltipRDBTN.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + generalTooltipRDBTN.Margin = new System.Windows.Forms.Padding(2); generalTooltipRDBTN.Name = "generalTooltipRDBTN"; generalTooltipRDBTN.Size = new System.Drawing.Size(65, 19); generalTooltipRDBTN.TabIndex = 1; @@ -525,7 +523,7 @@ private void InitializeComponent() // specificTooltipRDBTN.AutoSize = true; specificTooltipRDBTN.Location = new System.Drawing.Point(176, 2); - specificTooltipRDBTN.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + specificTooltipRDBTN.Margin = new System.Windows.Forms.Padding(2); specificTooltipRDBTN.Name = "specificTooltipRDBTN"; specificTooltipRDBTN.Size = new System.Drawing.Size(66, 19); specificTooltipRDBTN.TabIndex = 2; @@ -539,7 +537,7 @@ private void InitializeComponent() // okBtn.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right; okBtn.FlatStyle = System.Windows.Forms.FlatStyle.System; - okBtn.Location = new System.Drawing.Point(351, 721); + okBtn.Location = new System.Drawing.Point(351, 426); okBtn.Name = "okBtn"; okBtn.Size = new System.Drawing.Size(87, 27); okBtn.TabIndex = 8; @@ -552,7 +550,7 @@ private void InitializeComponent() cancelBtn.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right; cancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; cancelBtn.FlatStyle = System.Windows.Forms.FlatStyle.System; - cancelBtn.Location = new System.Drawing.Point(444, 721); + cancelBtn.Location = new System.Drawing.Point(444, 426); cancelBtn.Name = "cancelBtn"; cancelBtn.Size = new System.Drawing.Size(87, 27); cancelBtn.TabIndex = 9; @@ -563,7 +561,7 @@ private void InitializeComponent() // exceptionLogBtn // exceptionLogBtn.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left; - exceptionLogBtn.Location = new System.Drawing.Point(12, 721); + exceptionLogBtn.Location = new System.Drawing.Point(12, 426); exceptionLogBtn.Name = "exceptionLogBtn"; exceptionLogBtn.Size = new System.Drawing.Size(120, 27); exceptionLogBtn.TabIndex = 10; @@ -577,7 +575,7 @@ private void InitializeComponent() AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; CancelButton = cancelBtn; - ClientSize = new System.Drawing.Size(545, 756); + ClientSize = new System.Drawing.Size(545, 461); Controls.Add(exceptionLogBtn); Controls.Add(cancelBtn); Controls.Add(okBtn); @@ -609,7 +607,6 @@ private void InitializeComponent() tableLayoutPanel5.ResumeLayout(false); tableLayoutPanel5.PerformLayout(); ResumeLayout(false); - PerformLayout(); } #endregion diff --git a/Forms/SettingsForm.cs b/Forms/SettingsForm.cs index 250ea6a..c8d6eea 100644 --- a/Forms/SettingsForm.cs +++ b/Forms/SettingsForm.cs @@ -99,10 +99,24 @@ protected override void UpdateTheme() { // Update picture boxes background pictureBox1.BackColor = BackColor; - // Update ListView colors - DurationsListView.BackColor = BackColor; - DurationsListView.ForeColor = ForeColor; - DurationsListView.Invalidate(); + // Update durations table colors + if (durationsTable != null) { + durationsTable.BackColor = BackColor; + foreach (Control control in durationsTable.Controls) { + if (control is Label label) { + label.ForeColor = ForeColor; + label.BackColor = BackColor; + } + else if (control is Button button) { + button.ForeColor = ForeColor; + button.BackColor = BackColor; + } + else if (control is RadioButton radio) { + radio.ForeColor = ForeColor; + radio.BackColor = BackColor; + } + } + } // Force refresh Refresh(); @@ -131,124 +145,154 @@ private void setRadioButtons() { } } + private TableLayoutPanel? durationsTable; + private void SetupDurationsListView() { - DurationsListView.Columns.Add("Default", 60); - DurationsListView.Columns.Add("Duration", 200); - DurationsListView.Columns.Add("", 40); + // Hide the old ListView + DurationsListView.Visible = false; + + // Create new TableLayoutPanel for durations + durationsTable = new TableLayoutPanel { + AutoSize = true, + AutoSizeMode = AutoSizeMode.GrowAndShrink, + ColumnCount = 3, + Location = DurationsListView.Location, + Name = "durationsTable", + Padding = new Padding(0), + Margin = new Padding(0), + RowCount = 0, + AutoScroll = false, // CRITICAL: No scrolling on inner table + Dock = DockStyle.None, // Don't dock, let it auto-size + Anchor = AnchorStyles.Top | AnchorStyles.Left // Anchor to top-left + }; + + durationsTable.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize)); + durationsTable.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize)); + durationsTable.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize)); + + // Add header row + Label headerDefault = new() { + Text = "Default", + AutoSize = true, + Font = new Font(Font, FontStyle.Bold), + Padding = new Padding(5), + Margin = new Padding(0) + }; + + Label headerDuration = new() { + Text = "Duration", + AutoSize = true, + Font = new Font(Font, FontStyle.Bold), + Padding = new Padding(5), + Margin = new Padding(0) + }; + + Label headerDelete = new() { + Text = "", + AutoSize = true, + Font = new Font(Font, FontStyle.Bold), + Padding = new Padding(5), + Margin = new Padding(0) + }; + + durationsTable.Controls.Add(headerDefault, 0, 0); + durationsTable.Controls.Add(headerDuration, 1, 0); + durationsTable.Controls.Add(headerDelete, 2, 0); + durationsTable.RowCount = 1; + durationsTable.RowStyles.Add(new RowStyle(SizeType.AutoSize)); + + // Add to parent container + Control? parent = DurationsListView.Parent; + if (parent != null) { + parent.Controls.Add(durationsTable); + } RefreshDurationsListView(); } private void RefreshDurationsListView() { - DurationsListView.BeginUpdate(); - DurationsListView.Items.Clear(); + if (durationsTable == null) + return; + + durationsTable.SuspendLayout(); + + // Remove all rows except header + while (durationsTable.RowCount > 1) { + for (int col = 0; col < durationsTable.ColumnCount; col++) { + Control? control = durationsTable.GetControlFromPosition(col, durationsTable.RowCount - 1); + if (control != null) { + durationsTable.Controls.Remove(control); + control.Dispose(); + } + } + durationsTable.RowCount--; + durationsTable.RowStyles.RemoveAt(durationsTable.RowStyles.Count - 1); + } var sortedDurations = Durations.OrderByDescending(d => d.Minutes).ToList(); + int row = 1; foreach (Duration duration in sortedDurations) { - ListViewItem item = new(); - item.SubItems.Add(duration.Description); - item.SubItems.Add("🗑"); - item.Tag = duration; - item.UseItemStyleForSubItems = false; - DurationsListView.Items.Add(item); + // Radio button for default + RadioButton radioBtn = new() { + AutoSize = true, + Checked = duration.Minutes == appSettings.DefaultDuration, + Tag = duration, + Margin = new Padding(5), + Text = "" + }; + radioBtn.CheckedChanged += DurationRadio_CheckedChanged; + + // Duration label + Label durationLabel = new() { + Text = duration.Description, + AutoSize = true, + Padding = new Padding(5), + Margin = new Padding(0), + Anchor = AnchorStyles.Left + }; + + // Delete button + Button deleteBtn = new() { + Text = "🗑", + AutoSize = true, + Tag = duration, + Margin = new Padding(5), + FlatStyle = FlatStyle.Flat, + Cursor = Cursors.Hand + }; + deleteBtn.FlatAppearance.BorderSize = 0; + deleteBtn.Click += DeleteDuration_Click; + + durationsTable.Controls.Add(radioBtn, 0, row); + durationsTable.Controls.Add(durationLabel, 1, row); + durationsTable.Controls.Add(deleteBtn, 2, row); + + durationsTable.RowCount++; + durationsTable.RowStyles.Add(new RowStyle(SizeType.AutoSize)); + row++; } - int itemHeight = 30; - int headerHeight = 26; - int borderHeight = 4; - int totalHeight = headerHeight + (sortedDurations.Count * itemHeight) + borderHeight; - DurationsListView.Height = totalHeight; - DurationsListView.Width = 310; - - DurationsListView.EndUpdate(); - } - - private void DurationsListView_DrawColumnHeader(object? sender, DrawListViewColumnHeaderEventArgs e) { - e.Graphics.FillRectangle(new SolidBrush(BackColor), e.Bounds); - - TextRenderer.DrawText( - e.Graphics, - e.Header.Text, - DurationsListView.Font, - e.Bounds, - ForeColor, - TextFormatFlags.Left | TextFormatFlags.VerticalCenter - ); - } - - private void DurationsListView_DrawItem(object? sender, DrawListViewItemEventArgs e) { - e.DrawDefault = false; + durationsTable.ResumeLayout(); } - private void DurationsListView_DrawSubItem(object? sender, DrawListViewSubItemEventArgs e) { - if (e.Item.Tag is not Duration duration) - return; - - e.Graphics.FillRectangle( - new SolidBrush(e.Item.Selected ? SystemColors.Highlight : BackColor), - e.Bounds - ); - - if (e.ColumnIndex == 0) { - bool isDefault = duration.Minutes == appSettings.DefaultDuration; - int centerX = e.Bounds.X + e.Bounds.Width / 2; - int centerY = e.Bounds.Y + e.Bounds.Height / 2; - int radioSize = 16; - - e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; - e.Graphics.DrawEllipse( - new Pen(ForeColor, 2), - centerX - radioSize / 2, - centerY - radioSize / 2, - radioSize, - radioSize - ); + private void DurationRadio_CheckedChanged(object? sender, EventArgs e) { + if (sender is RadioButton radio && radio.Checked && radio.Tag is Duration duration) { + appSettings.DefaultDuration = duration.Minutes; - if (isDefault) { - e.Graphics.FillEllipse( - new SolidBrush(ForeColor), - centerX - radioSize / 4, - centerY - radioSize / 4, - radioSize / 2, - radioSize / 2 - ); + // Uncheck all other radio buttons + if (durationsTable != null) { + foreach (Control control in durationsTable.Controls) { + if (control is RadioButton otherRadio && otherRadio != radio) { + otherRadio.Checked = false; + } + } } } - else if (e.ColumnIndex == 1) { - TextRenderer.DrawText( - e.Graphics, - e.SubItem.Text, - DurationsListView.Font, - e.Bounds, - e.Item.Selected ? SystemColors.HighlightText : ForeColor, - TextFormatFlags.Left | TextFormatFlags.VerticalCenter - ); - } - else if (e.ColumnIndex == 2) { - using Font emojiFont = new("Segoe UI Emoji", 11); - TextRenderer.DrawText( - e.Graphics, - "🗑️", - emojiFont, - e.Bounds, - e.Item.Selected ? SystemColors.HighlightText : ForeColor, - TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter - ); - } } - private void DurationsListView_MouseClick(object? sender, MouseEventArgs e) { - ListViewHitTestInfo hit = DurationsListView.HitTest(e.Location); - - if (hit.Item?.Tag is not Duration duration) - return; - - if (hit.SubItem == hit.Item.SubItems[0]) { - appSettings.DefaultDuration = duration.Minutes; - DurationsListView.Invalidate(); - } - else if (hit.SubItem == hit.Item.SubItems[2]) { + private void DeleteDuration_Click(object? sender, EventArgs e) { + if (sender is Button button && button.Tag is Duration duration) { DialogResult result = MessageBox.Show( $"Delete {duration.Description}?", "Caffeinated", @@ -263,6 +307,23 @@ private void DurationsListView_MouseClick(object? sender, MouseEventArgs e) { } } + private void DurationsListView_DrawColumnHeader(object? sender, DrawListViewColumnHeaderEventArgs e) { + // No longer needed + } + + private void DurationsListView_DrawItem(object? sender, DrawListViewItemEventArgs e) { + // No longer needed + } + + private void DurationsListView_DrawSubItem(object? sender, DrawListViewSubItemEventArgs e) { + // No longer needed + } + + + private void DurationsListView_MouseClick(object? sender, MouseEventArgs e) { + // No longer needed + } + private async void setStartupCheckBox() { try { StartupTask startupTask = await StartupTask.GetAsync("StartCaffeinated"); diff --git a/Forms/SettingsForm.resx b/Forms/SettingsForm.resx index f81e8f0..e23d04e 100644 --- a/Forms/SettingsForm.resx +++ b/Forms/SettingsForm.resx @@ -252,9 +252,6 @@ 17, 17 - - 17, 17 - AAABAAEAAAAAAAEAIAAoIAQAFgAAACgAAAAAAQAAAAIAAAEAIAAAAAAAAAAEACUWAAAlFgAAAAAAAAAA diff --git a/Helpers/NativeMethods.cs b/Helpers/NativeMethods.cs index 7b6b955..597ff5c 100644 --- a/Helpers/NativeMethods.cs +++ b/Helpers/NativeMethods.cs @@ -1,4 +1,5 @@ using System.Runtime.InteropServices; +using System.Drawing; namespace Caffeinated; @@ -18,4 +19,29 @@ public static extern int RegisterApplicationRestart( public const int RESTART_NO_HANG = 2; public const int RESTART_NO_PATCH = 4; public const int RESTART_NO_REBOOT = 8; + + [StructLayout(LayoutKind.Sequential)] + public struct NOTIFYICONIDENTIFIER { + public int cbSize; + public nint hWnd; + public uint uID; + public System.Guid guidItem; + } + + [DllImport("shell32.dll", SetLastError = true)] + public static extern int Shell_NotifyIconGetRect( + [In] ref NOTIFYICONIDENTIFIER identifier, + [Out] out RECT iconLocation); + + [StructLayout(LayoutKind.Sequential)] + public struct RECT { + public int left; + public int top; + public int right; + public int bottom; + + public Rectangle ToRectangle() { + return Rectangle.FromLTRB(left, top, right, bottom); + } + } } diff --git a/Program.cs b/Program.cs index abb4f0e..1e54a8a 100644 --- a/Program.cs +++ b/Program.cs @@ -422,6 +422,7 @@ private static void ClearSymbolCache() { private void aboutItem_Click(object? sender, EventArgs e) { if (Application.OpenForms.OfType().Any() == false) { aboutForm = new(); + aboutForm.PositionNearTrayIcon(notifyIcon); aboutForm.Show(); } } @@ -438,6 +439,7 @@ private void showSettings() { } settingsForm = new(appSettings); + settingsForm.PositionNearTrayIcon(notifyIcon); settingsForm.FormClosing += SettingsForm_FormClosing; settingsForm.Show(); } From c81c0825707b33e014c0bf47d0ea7fdecb4cbaa1 Mon Sep 17 00:00:00 2001 From: Joe Finney Date: Sun, 22 Feb 2026 22:06:36 -0600 Subject: [PATCH 100/101] Update NuGet packages and DPI awareness settings Updated Microsoft.Windows.Compatibility, System.Formats.Asn1, and System.IO.Packaging to version 10.0.2 in project files. Changed app.manifest DPI awareness setting to "permonitorV2" and adjusted its position. Updated assets cache to reflect package changes. --- Caffeinated.csproj | 6 +++--- app.manifest | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Caffeinated.csproj b/Caffeinated.csproj index f6a684e..2553c0d 100644 --- a/Caffeinated.csproj +++ b/Caffeinated.csproj @@ -41,9 +41,9 @@ - + - - + + \ No newline at end of file diff --git a/app.manifest b/app.manifest index d14924d..0bcfff6 100644 --- a/app.manifest +++ b/app.manifest @@ -52,8 +52,8 @@ + permonitorV2 true - permonitorv2,permonitor From 41c785aad9cbdb0cbf2eb4d15c867b458dfe8536 Mon Sep 17 00:00:00 2001 From: Joe Finney Date: Sun, 22 Feb 2026 22:06:56 -0600 Subject: [PATCH 101/101] Add DPI awareness for tray icons and symbol images Implement DPI-aware tray icon and symbol image rendering. - Use new P/Invoke methods to get window DPI and DPI-specific system metrics. - Track and update taskbar DPI on display changes. - Generate and cache icons and symbols at correct DPI scaling. - Ensure crisp, properly sized icons on high-DPI displays. --- Helpers/NativeMethods.cs | 9 +++++ Program.cs | 86 ++++++++++++++++++++++++++++++++-------- 2 files changed, 79 insertions(+), 16 deletions(-) diff --git a/Helpers/NativeMethods.cs b/Helpers/NativeMethods.cs index 597ff5c..de8d4c6 100644 --- a/Helpers/NativeMethods.cs +++ b/Helpers/NativeMethods.cs @@ -33,6 +33,15 @@ public static extern int Shell_NotifyIconGetRect( [In] ref NOTIFYICONIDENTIFIER identifier, [Out] out RECT iconLocation); + [DllImport("user32.dll")] + public static extern uint GetDpiForWindow(nint hwnd); + + [DllImport("user32.dll")] + public static extern int GetSystemMetricsForDpi(int nIndex, uint dpi); + + public const int SM_CXSMICON = 49; + public const int SM_CYSMICON = 50; + [StructLayout(LayoutKind.Sequential)] public struct RECT { public int left; diff --git a/Program.cs b/Program.cs index 1e54a8a..19bebcf 100644 --- a/Program.cs +++ b/Program.cs @@ -32,6 +32,7 @@ public partial class AppContext : ApplicationContext { private readonly Lock iconLock = new(); private static readonly Dictionary symbolCache = []; private readonly MessageWindow? messageWindow; + private uint cachedTaskbarDpi; private const int WM_QUERYENDSESSION = 0x0011; private const int WM_ENDSESSION = 0x0016; @@ -117,6 +118,51 @@ private void SystemEvents_SessionEnding(object? sender, SessionEndingEventArgs e PerformGracefulShutdown(); } + private void SystemEvents_DisplaySettingsChanged(object? sender, EventArgs e) { + uint newDpi = GetTaskbarDpi(); + if (newDpi != cachedTaskbarDpi) { + cachedTaskbarDpi = newDpi; + ClearSymbolCache(); + setIcons(); + setContextMenu(); + if (notifyIcon != null) { + notifyIcon.Icon = isActivated ? onIcon : offIcon; + } + } + } + + internal void OnDpiChanged() { + uint newDpi = GetTaskbarDpi(); + if (newDpi != cachedTaskbarDpi) { + cachedTaskbarDpi = newDpi; + ClearSymbolCache(); + setIcons(); + setContextMenu(); + if (notifyIcon != null) { + notifyIcon.Icon = isActivated ? onIcon : offIcon; + } + } + } + + private static uint GetTaskbarDpi() { + nint taskbarHandle = User32.FindWindow("Shell_TrayWnd", string.Empty); + if (taskbarHandle != 0) { + uint dpi = NativeMethods.GetDpiForWindow(taskbarHandle); + if (dpi > 0) + return dpi; + } + return 96; + } + + private Size GetDpiAwareSmallIconSize() { + uint dpi = cachedTaskbarDpi; + int cx = NativeMethods.GetSystemMetricsForDpi(NativeMethods.SM_CXSMICON, dpi); + int cy = NativeMethods.GetSystemMetricsForDpi(NativeMethods.SM_CYSMICON, dpi); + if (cx > 0 && cy > 0) + return new Size(cx, cy); + return SystemInformation.SmallIconSize; + } + public AppContext() { // Caffeinated.exe if (IsAnotherInstanceRunning()) { @@ -130,6 +176,9 @@ public AppContext() { // Subscribe to session ending events SystemEvents.SessionEnding += SystemEvents_SessionEnding; + // Subscribe to display settings changes (DPI changes) + SystemEvents.DisplaySettingsChanged += SystemEvents_DisplaySettingsChanged; + components = new Container(); timer = new System.Windows.Forms.Timer(components); timer.Tick += new EventHandler(timer_Tick); @@ -141,6 +190,8 @@ public AppContext() { appSettings = new AppSettings(); + cachedTaskbarDpi = GetTaskbarDpi(); + SetIsLightTheme(); if (Registry.CurrentUser.OpenSubKey(themeKeyPath) is RegistryKey key) { @@ -231,26 +282,28 @@ private void setIcons() { onIcon?.Dispose(); offIcon?.Dispose(); + Size iconSize = GetDpiAwareSmallIconSize(); + switch (appSettings.Icon) { case TrayIcon.Mug: if (isLightTheme) { offIcon = new Icon( Resources.Mug_Sleep_Black_icon, - SystemInformation.SmallIconSize + iconSize ); onIcon = new Icon( Resources.Mug_Active_Black_icon, - SystemInformation.SmallIconSize + iconSize ); } else { offIcon = new Icon( Resources.mug_sleep_icon, - SystemInformation.SmallIconSize + iconSize ); onIcon = new Icon( Resources.mug_active_icon, - SystemInformation.SmallIconSize + iconSize ); } @@ -259,21 +312,21 @@ private void setIcons() { if (isLightTheme) { offIcon = new Icon( Resources.Eye_zzz_Sleep_Black_icon, - SystemInformation.SmallIconSize + iconSize ); onIcon = new Icon( Resources.Eye_zzz_Active_Black_icon, - SystemInformation.SmallIconSize + iconSize ); } else { offIcon = new Icon( Resources.Eye_zzz_Sleep_icon, - SystemInformation.SmallIconSize + iconSize ); onIcon = new Icon( Resources.Eye_zzz_Active_icon, - SystemInformation.SmallIconSize + iconSize ); } break; @@ -281,21 +334,21 @@ private void setIcons() { if (isLightTheme) { offIcon = new Icon( Resources.Caffeine_Black_icon, - SystemInformation.SmallIconSize + iconSize ); onIcon = new Icon( Resources.SleepEye_Black_icon, - SystemInformation.SmallIconSize + iconSize ); } else { offIcon = new Icon( Resources.cup_coffee_icon_bw, - SystemInformation.SmallIconSize + iconSize ); onIcon = new Icon( Resources.cup_coffee_icon, - SystemInformation.SmallIconSize + iconSize ); } break; @@ -383,9 +436,10 @@ public void setContextMenu() { notifyIcon.ContextMenuStrip = contextMenu; } - private static Bitmap CreateSymbolImage(string symbol, bool isLightTheme) { - int size = 24; - string cacheKey = $"{symbol}_{isLightTheme}"; + private static Bitmap CreateSymbolImage(string symbol, bool isLightTheme, uint dpi = 96) { + float scale = dpi / 96f; + int size = (int)(24 * scale); + string cacheKey = $"{symbol}_{isLightTheme}_{dpi}"; if (symbolCache.TryGetValue(cacheKey, out Bitmap? cached)) { return cached; @@ -396,7 +450,7 @@ private static Bitmap CreateSymbolImage(string symbol, bool isLightTheme) { graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; - using Font font = new("Segoe UI Symbol", 11f, FontStyle.Regular); + using Font font = new("Segoe UI Symbol", 11f * scale, FontStyle.Regular); Color textColor = isLightTheme ? Color.FromArgb(32, 32, 32) : Color.FromArgb(240, 240, 240); using SolidBrush brush = new(textColor);