Browse Source

Massive code clean-up

hellzerg 7 years ago
parent
commit
97dbef4ed7

+ 5 - 329
Optimizer/CleanHelper.cs

@@ -13,7 +13,7 @@ using System.Diagnostics;
 
 namespace Optimizer
 {
-    public static class CleanHelper
+    internal static class CleanHelper
     {
         [DllImport("Shell32.dll")]
         static extern int SHEmptyRecycleBin(IntPtr hwnd, string pszRootPath, RecycleFlag dwFlags);
@@ -26,16 +26,7 @@ namespace Optimizer
         internal static readonly string ProfileAppDataLocalLow = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "Low";
         internal static readonly string OSDrive = System32Folder.Substring(0, 3);
         internal static readonly string OSDriveWindows = Environment.GetEnvironmentVariable("WINDIR", EnvironmentVariableTarget.Machine);
-        internal static readonly string uTorrentCache = ProfileAppDataRoaming + "\\uTorrent\\dlimagecache";
-
-        internal static readonly string LocalMachineRun = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
-        internal static readonly string LocalMachineRunOnce = "Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce";
-        internal static readonly string LocalMachineRunWoW = "Software\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Run";
-        internal static readonly string LocalMachineRunOnceWow = "Software\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\RunOnce";
-        internal static readonly string CurrentUserRun = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
-        internal static readonly string CurrentUserRunOnce = "Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce";
-        internal static readonly string LocalMachineStartupFolder = ProgramData + "\\Microsoft\\Windows\\Start Menu\\Programs\\Startup";
-        internal static readonly string CurrentUserStartupFolder = ProfileAppDataRoaming + "\\Microsoft\\Windows\\Start Menu\\Programs\\Startup";
+        internal static readonly string UTorrentCache = ProfileAppDataRoaming + "\\uTorrent\\dlimagecache";
 
         internal static void EmptyFolder(string path)
         {
@@ -70,14 +61,14 @@ namespace Optimizer
             SHEmptyRecycleBin(IntPtr.Zero, null, RecycleFlag.SHERB_NOSOUND | RecycleFlag.SHERB_NOCONFIRMATION);
         }
 
-        internal static void CleanTemp()
+        internal static void CleanTemporaries()
         {
             EmptyFolder(TempFolder);
         }
        
         internal static void CleanUTorrent()
         {
-            EmptyFolder(uTorrentCache);
+            EmptyFolder(UTorrentCache);
         }
       
         internal static void CleanFileZilla()
@@ -86,7 +77,7 @@ namespace Optimizer
             {
                 File.Delete(ProfileAppDataRoaming + "\\FileZilla\\recentservers.xml");
             }
-            catch (Exception error) { MessageBox.Show(error.Message); }
+            catch { }
         }
 
         internal static void CleanMiniDumps()
@@ -129,320 +120,5 @@ namespace Optimizer
             EmptyFolder(System32Folder + "\\LogFiles");
             EmptyFolder(OSDrive + "\\inetpub\\logs\\LogFiles");
         }
-       
-        internal static List<StartupItem> GetStartupItems()
-        {
-            List<StartupItem> collection = new List<StartupItem>();
-            RegistryKey registryKey = null;
-
-            // Get Local Machine Run startup items
-            try
-            {
-                registryKey = Registry.LocalMachine.OpenSubKey(LocalMachineRun, true);
-                string[] valueNames = registryKey.GetValueNames();
-
-                foreach (string s in valueNames)
-                {
-                    RegistryStartupItem item = new RegistryStartupItem();
-                    item.Name = s;
-                    item.Location = registryKey.GetValue(s).ToString();
-                    item.Key = registryKey;
-                    item.RegistryLocation = StartupItemLocation.HKLM;
-                    item.RegistryType = StartupItemType.Run;
-
-                    collection.Add(item);
-                }
-            }
-            catch { }
-
-            // Get Local Machine Run Once startup items
-            try
-            {
-                registryKey = Registry.LocalMachine.OpenSubKey(LocalMachineRunOnce, true);
-                string[] valueNames = registryKey.GetValueNames();
-
-                foreach (string s in valueNames)
-                {
-                    RegistryStartupItem item = new RegistryStartupItem();
-                    item.Name = s;
-                    item.Location = registryKey.GetValue(s).ToString();
-                    item.Key = registryKey;
-                    item.RegistryLocation = StartupItemLocation.HKLM;
-                    item.RegistryType = StartupItemType.RunOnce;
-
-                    collection.Add(item);
-                }
-            }
-            catch { }
-
-            // Get Local Machine Run WoW startup items
-            try
-            {
-                registryKey = Registry.LocalMachine.OpenSubKey(LocalMachineRunWoW, true);
-                string[] valueNames2 = registryKey.GetValueNames();
-
-                foreach (string s in valueNames2)
-                {
-                    RegistryStartupItem item = new RegistryStartupItem();
-                    item.Name = s;
-                    item.Location = registryKey.GetValue(s).ToString();
-                    item.Key = registryKey;
-                    item.RegistryLocation = StartupItemLocation.HKLMWoW;
-                    item.RegistryType = StartupItemType.Run;
-
-                    collection.Add(item);
-                }
-            }
-            catch { }
-
-            // Get Local Machine Run Once WoW startup items
-            try
-            {
-                registryKey = Registry.LocalMachine.OpenSubKey(LocalMachineRunOnceWow, true);
-                string[] valueNames2 = registryKey.GetValueNames();
-
-                foreach (string s in valueNames2)
-                {
-                    RegistryStartupItem item = new RegistryStartupItem();
-                    item.Name = s;
-                    item.Location = registryKey.GetValue(s).ToString();
-                    item.Key = registryKey;
-                    item.RegistryLocation = StartupItemLocation.HKLMWoW;
-                    item.RegistryType = StartupItemType.RunOnce;
-
-                    collection.Add(item);
-                }
-            }
-            catch { }
-
-            // Get Current User Run startup items
-            try
-            {
-                registryKey = Registry.CurrentUser.OpenSubKey(CurrentUserRun, true);
-                string[] valueNames3 = registryKey.GetValueNames();
-
-                foreach (string s in valueNames3)
-                {
-                    RegistryStartupItem item = new RegistryStartupItem();
-                    item.Name = s;
-                    item.Location = registryKey.GetValue(s).ToString();
-                    item.Key = registryKey;
-                    item.RegistryLocation = StartupItemLocation.HKCU;
-                    item.RegistryType = StartupItemType.Run;
-
-                    collection.Add(item);
-                }
-            }
-            catch { }
-
-            // Get Current User Run Once startup items
-            try
-            {
-                registryKey = Registry.CurrentUser.OpenSubKey(CurrentUserRunOnce, true);
-                string[] valueNames3 = registryKey.GetValueNames();
-
-                foreach (string s in valueNames3)
-                {
-                    RegistryStartupItem item = new RegistryStartupItem();
-                    item.Name = s;
-                    item.Location = registryKey.GetValue(s).ToString();
-                    item.Key = registryKey;
-                    item.RegistryLocation = StartupItemLocation.HKCU;
-                    item.RegistryType = StartupItemType.RunOnce;
-
-                    collection.Add(item);
-                }
-            }
-            catch { }
-
-            // Get Current User Startup folder startup items
-            try
-            {
-                // get shortcuts to files
-                string[] shortcuts = Directory.GetFiles(CurrentUserStartupFolder, "*.lnk", SearchOption.AllDirectories);
-
-                // get executables
-                string[] files = Directory.GetFiles(CurrentUserStartupFolder, "*.exe", SearchOption.AllDirectories);
-
-                foreach (string shortcut in shortcuts)
-                {
-                    FolderStartupItem item = new FolderStartupItem();
-                    item.Name = Path.GetFileNameWithoutExtension(shortcut);
-                    item.Location = GetShortcutTargetFile(shortcut);
-                    item.Shortcut = shortcut;
-                    item.RegistryLocation = StartupItemLocation.Folder;
-
-                    collection.Add(item);
-                }
-
-                foreach (string file in files)
-                {
-                    FolderStartupItem item2 = new FolderStartupItem();
-                    item2.Name = Path.GetFileNameWithoutExtension(file);
-                    item2.Location = file;
-                    item2.Shortcut = file;
-                    item2.RegistryLocation = StartupItemLocation.Folder;
-
-                    collection.Add(item2);
-                }
-            }
-            catch { }
-
-            // Get Local Machine Startup folder startup items
-            try
-            {
-                // get shortcuts to files
-                string[] shortcuts = Directory.GetFiles(LocalMachineStartupFolder, "*.lnk", SearchOption.AllDirectories);
-
-                // get executables
-                string[] files = Directory.GetFiles(LocalMachineStartupFolder, "*.exe", SearchOption.AllDirectories);
-
-                foreach (string shortcut in shortcuts)
-                {
-                    FolderStartupItem item = new FolderStartupItem();
-                    item.Name = Path.GetFileNameWithoutExtension(shortcut);
-                    item.Location = GetShortcutTargetFile(shortcut);
-                    item.Shortcut = shortcut;
-                    item.RegistryLocation = StartupItemLocation.Folder;
-
-                    collection.Add(item);
-                }
-
-                foreach (string file in files)
-                {
-                    FolderStartupItem item2 = new FolderStartupItem();
-                    item2.Name = Path.GetFileNameWithoutExtension(file);
-                    item2.Location = file;
-                    item2.Shortcut = file;
-                    item2.RegistryLocation = StartupItemLocation.Folder;
-
-                    collection.Add(item2);
-                }
-            }
-            catch { }
-
-            return collection;
-        }
-
-        internal static void EnableFirewall()
-        {
-            RunCommand("netsh advfirewall set currentprofile state on");
-        }
-
-        internal static void EnableCommandPrompt()
-        {
-            RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Policies\\Microsoft\\Windows\\System");
-            key.SetValue("DisableCMD", 0, RegistryValueKind.DWord);
-            key.Close();
-        }
-
-        internal static void EnableControlPanel()
-        {
-            RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer");
-            key.SetValue("NoControlPanel", 0, RegistryValueKind.DWord);
-            key.Close();
-        }
-
-        internal static void EnableFolderOptions()
-        {
-            RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer");
-            key.SetValue("NoFolderOptions", 0, RegistryValueKind.DWord);
-            key.Close();
-        }
-
-        internal static void EnableRunDialog()
-        {
-            RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer");
-            key.SetValue("NoRun", 0, RegistryValueKind.DWord);
-            key.Close();
-        }
-
-        internal static void EnableContextMenu()
-        {
-            RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer");
-            key.SetValue("NoViewContextMenu", 0, RegistryValueKind.DWord);
-            key.Close();
-        }
-
-        internal static void EnableTaskManager()
-        {
-            RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System");
-            key.SetValue("DisableTaskMgr", 0, RegistryValueKind.DWord);
-            key.Close();
-        }
-
-        internal static void EnableRegistryEditor()
-        {
-            RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System");
-            key.SetValue("DisableRegistryTools", 0, RegistryValueKind.DWord);
-            key.Close();
-        }
-
-        internal static void RunCommand(string cmd)
-        {
-            new Process
-            {
-                StartInfo = new ProcessStartInfo
-                {
-                    WindowStyle = ProcessWindowStyle.Hidden,
-                    FileName = "cmd.exe",
-                    Arguments = "/C" + cmd
-                }
-            }.Start();
-        }
-
-        internal static void FindFile(string filename)
-        {
-            if (File.Exists(filename))
-            {
-                Process.Start("explorer.exe", "/select, " + filename);
-            }
-        }
-
-        internal static string GetShortcutTargetFile(string shortcutFilename)
-        {
-            string pathOnly = Path.GetDirectoryName(shortcutFilename);
-            string filenameOnly = System.IO.Path.GetFileName(shortcutFilename);
-
-            Shell32.Shell shell = new Shell32.Shell();
-            Shell32.Folder folder = shell.NameSpace(pathOnly);
-            Shell32.FolderItem folderItem = folder.ParseName(filenameOnly);
-
-            if (folderItem != null)
-            {
-                Shell32.ShellLinkObject link = (Shell32.ShellLinkObject)folderItem.GetLink;
-                return link.Path;
-            }
-
-            return string.Empty; // not found
-        }
-
-        internal static void RestartExplorer()
-        {
-            const string explorer = "explorer.exe";
-            string explorerPath = string.Format("{0}\\{1}", Environment.GetEnvironmentVariable("WINDIR"), explorer);
-            foreach (Process process in Process.GetProcesses())
-            {
-                try
-                {
-                    if (string.Compare(process.MainModule.FileName, explorerPath, StringComparison.OrdinalIgnoreCase) == 0)
-                    {
-                        process.Kill();
-                    }
-                }
-                catch { }
-            }
-            Process.Start(explorer);
-        }
-
-        internal static void FindKeyInRegistry(string key)
-        {
-            try
-            {
-                Registry.SetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit", "LastKey", key);
-                Process.Start("regedit");
-            }
-            catch { }
-        }
     }
 }

+ 4 - 4
Optimizer/EdgeForm.cs

@@ -13,7 +13,7 @@ namespace Optimizer
 {
     public partial class EdgeForm : System.Windows.Forms.Form
     {
-        string errormsg = "This folder does not exist, choose a new one!";
+        string _errorMessage = "This folder does not exist, choose a new one!";
 
         public EdgeForm()
         {
@@ -25,7 +25,7 @@ namespace Optimizer
         {
             CheckForIllegalCrossThreadCalls = false;
 
-            textBox1.Text = Optimize.GetEdgeDownloadFolder();
+            textBox1.Text = Utilities.GetEdgeDownloadFolder();
             textBox1.Select(textBox1.Text.Length, 0);
         }
 
@@ -33,12 +33,12 @@ namespace Optimizer
         {
             if (Directory.Exists(textBox1.Text))
             {
-                Optimize.SetEdgeDownloadFolder(textBox1.Text);
+                Utilities.SetEdgeDownloadFolder(textBox1.Text);
                 this.Close();
             }
             else
             {
-                MessagerForm f = new MessagerForm(null, MessagerType.Error, errormsg);
+                MessagerForm f = new MessagerForm(null, MessageType.Error, _errorMessage);
                 f.ShowDialog();
             }
         }

+ 26 - 30
Optimizer/EmbeddedAssembly.cs

@@ -6,50 +6,48 @@ using System.Security.Cryptography;
 
 namespace Optimizer
 {
-    public class EmbeddedAssembly
+    internal class EmbeddedAssembly
     {
-        private static Dictionary<string, Assembly> dic;
+        static Dictionary<string, Assembly> _dictionary;
 
-        public static void Load(string embeddedResource, string fileName)
+        internal static void Load(string embeddedResource, string fileName)
         {
-            if (dic == null)
-                dic = new Dictionary<string, Assembly>();
+            if (_dictionary == null) _dictionary = new Dictionary<string, Assembly>();
 
-            byte[] ba = null;
-            Assembly asm = null;
-            var curAsm = Assembly.GetExecutingAssembly();
+            byte[] bytes = null;
+            Assembly assembly = null;
+            Assembly currentAssembly = Assembly.GetExecutingAssembly();
 
-            using (var stm = curAsm.GetManifestResourceStream(embeddedResource))
+            using (Stream stream = currentAssembly.GetManifestResourceStream(embeddedResource))
             {
-                if (stm == null)
-                    throw new Exception(embeddedResource + " is not found in Embedded Resources.");
+                if (stream == null) throw new Exception(embeddedResource + " is not found in Embedded Resources.");
+
+                bytes = new byte[(int)stream.Length];
+                stream.Read(bytes, 0, (int)stream.Length);
 
-                ba = new byte[(int)stm.Length];
-                stm.Read(ba, 0, (int)stm.Length);
                 try
                 {
-                    asm = Assembly.Load(ba);
+                    assembly = Assembly.Load(bytes);
 
-                    dic.Add(asm.FullName, asm);
+                    _dictionary.Add(assembly.FullName, assembly);
                     return;
                 }
                 catch { }
             }
 
-            var fileOk = false;
-            var tempFile = "";
+            bool fileOk = false;
+            string tempFile = string.Empty;
 
-            using (var sha1 = new SHA1CryptoServiceProvider())
+            using (SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider())
             {
-                var fileHash = BitConverter.ToString(sha1.ComputeHash(ba)).Replace("-", string.Empty);
-                ;
+                string fileHash = BitConverter.ToString(sha1.ComputeHash(bytes)).Replace("-", string.Empty);
 
                 tempFile = Path.GetTempPath() + fileName;
 
                 if (File.Exists(tempFile))
                 {
-                    var bb = File.ReadAllBytes(tempFile);
-                    var fileHash2 = BitConverter.ToString(sha1.ComputeHash(bb)).Replace("-", string.Empty);
+                    byte[] byteArray = File.ReadAllBytes(tempFile);
+                    string fileHash2 = BitConverter.ToString(sha1.ComputeHash(byteArray)).Replace("-", string.Empty);
 
                     if (fileHash == fileHash2)
                     {
@@ -64,21 +62,19 @@ namespace Optimizer
 
             if (!fileOk)
             {
-                File.WriteAllBytes(tempFile, ba);
+                File.WriteAllBytes(tempFile, bytes);
             }
 
-            asm = Assembly.LoadFile(tempFile);
+            assembly = Assembly.LoadFile(tempFile);
 
-            dic.Add(asm.FullName, asm);
+            _dictionary.Add(assembly.FullName, assembly);
         }
 
-        public static Assembly Get(string assemblyFullName)
+        internal static Assembly Get(string assemblyFullName)
         {
-            if (dic == null || dic.Count == 0)
-                return null;
+            if (_dictionary == null || _dictionary.Count == 0) return null;
 
-            if (dic.ContainsKey(assemblyFullName))
-                return dic[assemblyFullName];
+            if (_dictionary.ContainsKey(assemblyFullName)) return _dictionary[assemblyFullName];
 
             return null;
         }

+ 13 - 16
Optimizer/Enums.cs

@@ -6,24 +6,21 @@ using System.Threading.Tasks;
 
 namespace Optimizer
 {
-    public enum LogType
+    internal enum LogType
     {
         Information,
         Error,
     }
 
-    public enum WindowsVersion
+    internal enum WindowsVersion
     {
         Unsupported,
         Windows7,
         Windows8,
-        Windows10,
-        WindowsServer2008,
-        WindowsServer2012,
-        WindowsServer2016
+        Windows10
     }
 
-    public enum StartupItemLocation
+    internal enum StartupItemLocation
     {
         Folder,
         HKLM,
@@ -31,14 +28,14 @@ namespace Optimizer
         HKCU
     }
 
-    public enum StartupItemType
+    internal enum StartupItemType
     {
         None,
         Run,
         RunOnce
     }
 
-    public enum MessagerType
+    internal enum MessageType
     {
         Error,
         Optimize,
@@ -48,7 +45,7 @@ namespace Optimizer
         Integrator
     }
 
-    public enum DesktopItemType
+    internal enum DesktopItemType
     {
         Program,
         Folder,
@@ -57,14 +54,14 @@ namespace Optimizer
         Command
     }
 
-    public enum DesktopTypePosition
+    internal enum DesktopTypePosition
     {
         Top,
         Middle,
         Bottom
     }
 
-    public enum Theme
+    internal enum Theme
     {
         Zerg,
         Ocean,
@@ -74,10 +71,10 @@ namespace Optimizer
         Minimal
     }
 
-    public enum RecycleFlag : int
+    internal enum RecycleFlag : int
     {
-        SHERB_NOCONFIRMATION = 0x00000001, // No confirmation, when emptying
-        SHERB_NOPROGRESSUI = 0x00000001, // No progress tracking window during the emptying of the recycle bin
-        SHERB_NOSOUND = 0x00000004 // No sound when the emptying of the recycle bin is complete
+        SHERB_NOCONFIRMATION = 0x00000001,
+        SHERB_NOPROGRESSUI = 0x00000001,
+        SHERB_NOSOUND = 0x00000004
     }
 }

+ 4 - 4
Optimizer/HostsEditorForm.cs

@@ -12,7 +12,7 @@ namespace Optimizer
 {
     public partial class HostsEditorForm : Form
     {
-        string[] toSave = null;
+        string[] _toSave = null;
 
         public HostsEditorForm()
         {
@@ -24,7 +24,7 @@ namespace Optimizer
         {
             foreach (string line in HostsHelper.ReadHosts())
             {
-                textBox1.Text += line + HostsHelper.nl;
+                textBox1.Text += line + HostsHelper.NewLine;
             }
 
             textBox1.Focus();
@@ -37,8 +37,8 @@ namespace Optimizer
 
         private void button7_Click(object sender, EventArgs e)
         {
-            toSave = textBox1.Lines;
-            HostsHelper.SaveHosts(toSave);
+            _toSave = textBox1.Lines;
+            HostsHelper.SaveHosts(_toSave);
 
             this.Close();
         }

+ 8 - 8
Optimizer/HostsHelper.cs

@@ -9,9 +9,9 @@ using System.Text.RegularExpressions;
 
 namespace Optimizer
 {
-    public static class HostsHelper
+    internal static class HostsHelper
     {
-        internal static string nl = Environment.NewLine;
+        internal static string NewLine = Environment.NewLine;
         internal static readonly string HostsFile = CleanHelper.System32Folder + "\\drivers\\etc\\hosts";
 
         internal static void RestoreDefaultHosts()
@@ -35,7 +35,7 @@ namespace Optimizer
 
         internal static void LocateHosts()
         {
-            CleanHelper.FindFile(HostsFile);
+            Utilities.FindFile(HostsFile);
         }
 
         internal static void SaveHosts(string[] lines)
@@ -52,7 +52,7 @@ namespace Optimizer
             File.WriteAllLines(HostsFile, lines);
         }
 
-        internal static List<string> GetEntries()
+        internal static List<string> GetHostsEntries()
         {
             List<string> entries = new List<string>();
 
@@ -69,20 +69,20 @@ namespace Optimizer
             return entries;
         }
 
-        internal static void AddEntry(string ipdomain)
+        internal static void AddEntry(string entry)
         {
             try
             {
-                File.AppendAllText(HostsFile, nl + ipdomain);
+                File.AppendAllText(HostsFile, NewLine + entry);
             }
             catch { }
         }
 
-        internal static void RemoveEntry(string ipdomain)
+        internal static void RemoveEntry(string entry)
         {
             try
             {
-                File.WriteAllLines(HostsFile, File.ReadLines(HostsFile).Where(l => l != ipdomain).ToList());
+                File.WriteAllLines(HostsFile, File.ReadLines(HostsFile).Where(x => x != entry).ToList());
             }
             catch { }
         }

+ 24 - 25
Optimizer/InfoForm.Designer.cs

@@ -28,29 +28,28 @@
         /// </summary>
         private void InitializeComponent()
         {
-            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(InfoForm));
-            this.yesbtn = new System.Windows.Forms.Button();
+            this.btnOK = new System.Windows.Forms.Button();
             this.msg = new System.Windows.Forms.Label();
             this.SuspendLayout();
             // 
-            // yesbtn
+            // btnOK
             // 
-            this.yesbtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-            this.yesbtn.BackColor = System.Drawing.Color.DodgerBlue;
-            this.yesbtn.DialogResult = System.Windows.Forms.DialogResult.Yes;
-            this.yesbtn.FlatAppearance.BorderColor = System.Drawing.Color.DodgerBlue;
-            this.yesbtn.FlatAppearance.MouseDownBackColor = System.Drawing.Color.RoyalBlue;
-            this.yesbtn.FlatAppearance.MouseOverBackColor = System.Drawing.Color.RoyalBlue;
-            this.yesbtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
-            this.yesbtn.ForeColor = System.Drawing.Color.White;
-            this.yesbtn.Location = new System.Drawing.Point(379, 512);
-            this.yesbtn.Name = "yesbtn";
-            this.yesbtn.Size = new System.Drawing.Size(120, 39);
-            this.yesbtn.TabIndex = 32;
-            this.yesbtn.Tag = "themeable";
-            this.yesbtn.Text = "OK";
-            this.yesbtn.UseVisualStyleBackColor = false;
-            this.yesbtn.Click += new System.EventHandler(this.yesbtn_Click);
+            this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+            this.btnOK.BackColor = System.Drawing.Color.DodgerBlue;
+            this.btnOK.DialogResult = System.Windows.Forms.DialogResult.Yes;
+            this.btnOK.FlatAppearance.BorderColor = System.Drawing.Color.DodgerBlue;
+            this.btnOK.FlatAppearance.MouseDownBackColor = System.Drawing.Color.RoyalBlue;
+            this.btnOK.FlatAppearance.MouseOverBackColor = System.Drawing.Color.RoyalBlue;
+            this.btnOK.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+            this.btnOK.ForeColor = System.Drawing.Color.White;
+            this.btnOK.Location = new System.Drawing.Point(379, 512);
+            this.btnOK.Name = "btnOK";
+            this.btnOK.Size = new System.Drawing.Size(120, 39);
+            this.btnOK.TabIndex = 32;
+            this.btnOK.Tag = "themeable";
+            this.btnOK.Text = "OK";
+            this.btnOK.UseVisualStyleBackColor = false;
+            this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
             // 
             // msg
             // 
@@ -61,23 +60,23 @@
             this.msg.TabIndex = 33;
             this.msg.Text = "Integrator info";
             // 
-            // Info
+            // InfoForm
             // 
-            this.AcceptButton = this.yesbtn;
+            this.AcceptButton = this.btnOK;
             this.AutoScaleDimensions = new System.Drawing.SizeF(120F, 120F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
             this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
-            this.CancelButton = this.yesbtn;
+            this.CancelButton = this.btnOK;
             this.ClientSize = new System.Drawing.Size(511, 563);
             this.Controls.Add(this.msg);
-            this.Controls.Add(this.yesbtn);
+            this.Controls.Add(this.btnOK);
             this.Font = new System.Drawing.Font("Segoe UI Semibold", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.ForeColor = System.Drawing.Color.White;
             this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
             this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
             this.MaximizeBox = false;
             this.MinimizeBox = false;
-            this.Name = "Info";
+            this.Name = "InfoForm";
             this.ShowIcon = false;
             this.ShowInTaskbar = false;
             this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
@@ -88,7 +87,7 @@
 
         #endregion
 
-        private System.Windows.Forms.Button yesbtn;
+        private System.Windows.Forms.Button btnOK;
         private System.Windows.Forms.Label msg;
     }
 }

+ 2 - 2
Optimizer/InfoForm.cs

@@ -10,7 +10,7 @@ using System.Windows.Forms;
 
 namespace Optimizer
 {
-    public partial class InfoForm : System.Windows.Forms.Form
+    public partial class InfoForm : Form
     {
         public InfoForm(string info)
         {
@@ -20,7 +20,7 @@ namespace Optimizer
             msg.Text = info;
         }
 
-        private void yesbtn_Click(object sender, EventArgs e)
+        private void btnOK_Click(object sender, EventArgs e)
         {
             this.Close();
         }

+ 0 - 1133
Optimizer/InfoForm.resx

@@ -117,1137 +117,4 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
-  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAABABILAAASCwAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAD/kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+QHv//kB7//5Ae//+Q
-        Hv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAA/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAA/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAA/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7/f39/Av+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/39/fwIAAAAAAAAAAP+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv9/f38CAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7/f39/AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/39/
-        fwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv9/f38CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7/f39/AgAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAA/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae/39/fwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv9/f38CAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7/f39/AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/39/fwIAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv9/f38CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAA/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7/f39/AgAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae/39/fwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv9/f38CAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7/f39/AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/39/fwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAA/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv9/f38CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7/f39/AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/39/
-        fwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv9/f38CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+QHv//kB7//5Ae//+QHv//kB7/f39/AgAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAA/5Ae//+QHv//kB7//5Ae/39/fwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5Ae//+QHv9/f38CAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/wAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/wAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7/AAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae/wAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7/AAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7//5Ae/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv//kB7//5Ae//+QHv8AAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+Q
-        Hv//kB7//5Ae//+QHv//kB7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7//5Ae//+QHv//kB7//5Ae/wAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+Q
-        Hv//kB7//5Ae//+QHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+QHv//kB7/AAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAA////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///////////////////////////////////////////////H////////////////////g///////////
-        /////////wH///////////////////4A///////////////////8AH//////////////////+AA/////
-        //////////////AAH//////////////////gAA//////////////////wAAH/////////////////4AA
-        A/////////////////8AAAH////////////////+AAAA/////////////////AAAAH//////////////
-        //gAAAA////////////////wAAAAH///////////////4AAAAA///////////////8AAAAAH////////
-        //////+AAAAAA///////////////AAAAAAH//////////////gAAAAAA//////////////wAAAAAAH//
-        ///////////4AAAAAAA/////////////8AAAAAAAH////////////+AAAAAAAA/////////////AAAAA
-        AAAH////////////gAAAAAAAA////////////wAAAAAAAAH///////////4AAAAAAAAA///////////8
-        AAAAAAAAAH//////////+AAAAAAAAAA///////////AAAAAAAAAAH//////////gAAAAAAAAAA//////
-        ////wAAAAAAAAAAH/////////4AAAAAAAAAAA/////////8AAAAAAAAAAAH////////+AAAAAAAAAAAA
-        /////////AAAAAAAAAAAAH////////gAAAAAAAAAAAA////////wAAAAAAAAAAAAH///////4AAAAAAA
-        AAAAAA///////8AAAAAAGAAAAAAH//////+AAAAAADwAAAAAA///////AAAAAAB+AAAAAAH//////wAA
-        AAAA/wAAAAAA//////8AAAAAAf+AAAAAAH//////gAAAAAP/wAAAAAA//////8AAAAAH/+AAAAAAH///
-        ///gAAAAD//wAAAAAA//////8AAAAB//+AAAAAAH//////gAAAA///wAAAAAA//////8AAAAf//+AAAA
-        AAH//////gAAAP///wAAAAAA//////8AAAH///+AAAAAAH//////gAAD////wAAAAAA//////8AAB///
-        /+AAAAAAH//////gAA/////wAAAAAA//////8AAf////+AAAAAAH//////gAP/////wAAAAAA//////8
-        AH/////+AAAAAAH//////gD//////wAAAAAA//////8B//////+AAAAAAH//////g///////wAAAAAA/
-        /////8f//////+AAAAAAH//////////////wAAAAAA//////////////+AAAAAAH//////////////wA
-        AAAAA//////////////+AAAAAAH//////////////wAAAAAA//////////////+AAAAAAH//////////
-        ////wAAAAAA//////////////+AAAAAAH//////////////wAAAAAA//////////////+AAAAAAH////
-        //////////wAAAAAA//////////////+AAAAAAH//////////////wAAAAAA//////////////+AAAAA
-        AH//////////////wAAAAAA//////////////+AAAAAAH//////////////wAAAAAA//////////////
-        +AAAAAAH//////////////wAAAAAA//////////////+AAAAAAH//////////////wAAAAAA////////
-        //////+AAAAAAP//////////////wAAAAAD//////////////+AAAAAB///////////////wAAAAA///
-        ////////////+AAAAAf///////////////wAAAAP///////////////+AAAAH////////////////wAA
-        AD////////////////+AAAB/////////////////wAAA/////////////////+AAAf//////////////
-        ///wAAP/////////////////+AAH//////////////////wAD//////////////////+AB//////////
-        /////////wA///////////////////+Af///////////////////wP///////////////////+H/////
-        ///////////////z////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////////////////////////8=
-</value>
-  </data>
 </root>

+ 74 - 72
Optimizer/Integrator.cs

@@ -14,13 +14,17 @@ namespace Optimizer
 {
     public static class Integrator
     {
-        private static string nl = Environment.NewLine;
+        static string _newLine = Environment.NewLine;
 
-        internal static string powerinfo = "Power Menu contains the following:" + nl + nl + "Lock" + nl + "Sign out" + nl + "Switch User" + nl + "Sleep" + nl + "Hibernate" + nl + "Restart" + nl + "Restart with Boot Options Menu" + nl + "Shut down" + nl + "Shut down (Hybrid)";
-        internal static string systemtoolsinfo = "System Tools Menu contains the following:" + nl + nl + "Control Panel" + nl + "Disk Cleanup" + nl + "Device Manager" + nl + "Event Viewer" + nl + "Registry Editor" + nl + "Security Center" + nl + "System Configuration" + nl + "Task Manager" + nl + "Task Scheduler" + nl + "Windows Update";
-        internal static string systemshortcutsinfo = "System Shortcuts Menu contains the following:" + nl + nl + "Administrative Tools" + nl + "Change Date and Time" + nl + "Change Regional Settings" + nl + "Folder Options" + nl + "God Mode" + nl + "Internet Options" + nl + "Network Connections" + nl + "Power Options" + nl + "Programs and Features" + nl + "Recycle Bin" + nl + "Run" + nl + "Search" + nl + "Services" + nl + "System Properties" + nl + "User Accounts" + nl + "User Accounts Classic" + nl + "Window Switcher";
-        internal static string desktopshortcutsinfo = "Desktop Shortcuts Menu contains the following:" + nl + nl + "Change Theme" + nl + "Change Wallpaper" + nl + "Change Screen Saver" + nl + "Change Desktop Icons" + nl + "Change Sound Scheme" + nl + "Change Mouse Pointers" + nl + "Change DPI Scaling" + nl + "Change Window Color and Appearance";
-        internal static string windowsappsinfo = "Windows Apps Menu contains the following:" + nl + nl + "Calculator" + nl + "Character Map" + nl + "Command Prompt" + nl + "Disk Defragmenter" + nl + "Internet Explorer" + nl + "Notepad" + nl + "Paint" + nl + "Problem Steps Recorder" + nl + "Snipping Tool" + nl + "Sound Recorder" + nl + "System Restore" + nl + "Task Scheduler" + nl + "Windows Media Player" + nl + "Wordpad";
+        internal static string powerinfo = "Power Menu contains the following:" + _newLine + _newLine + "Lock" + _newLine + "Sign out" + _newLine + "Switch User" + _newLine + "Sleep" + _newLine + "Hibernate" + _newLine + "Restart" + _newLine + "Restart with Boot Options Menu" + _newLine + "Shut down" + _newLine + "Shut down (Hybrid)";
+
+        internal static string systemtoolsinfo = "System Tools Menu contains the following:" + _newLine + _newLine + "Control Panel" + _newLine + "Disk Cleanup" + _newLine + "Device Manager" + _newLine + "Event Viewer" + _newLine + "Registry Editor" + _newLine + "Security Center" + _newLine + "System Configuration" + _newLine + "Task Manager" + _newLine + "Task Scheduler" + _newLine + "Windows Update";
+
+        internal static string systemshortcutsinfo = "System Shortcuts Menu contains the following:" + _newLine + _newLine + "Administrative Tools" + _newLine + "Change Date and Time" + _newLine + "Change Regional Settings" + _newLine + "Folder Options" + _newLine + "God Mode" + _newLine + "Internet Options" + _newLine + "Network Connections" + _newLine + "Power Options" + _newLine + "Programs and Features" + _newLine + "Recycle Bin" + _newLine + "Run" + _newLine + "Search" + _newLine + "Services" + _newLine + "System Properties" + _newLine + "User Accounts" + _newLine + "User Accounts Classic" + _newLine + "Window Switcher";
+
+        internal static string desktopshortcutsinfo = "Desktop Shortcuts Menu contains the following:" + _newLine + _newLine + "Change Theme" + _newLine + "Change Wallpaper" + _newLine + "Change Screen Saver" + _newLine + "Change Desktop Icons" + _newLine + "Change Sound Scheme" + _newLine + "Change Mouse Pointers" + _newLine + "Change DPI Scaling" + _newLine + "Change Window Color and Appearance";
+
+        internal static string windowsappsinfo = "Windows Apps Menu contains the following:" + _newLine + _newLine + "Calculator" + _newLine + "Character Map" + _newLine + "Command Prompt" + _newLine + "Disk Defragmenter" + _newLine + "Internet Explorer" + _newLine + "Notepad" + _newLine + "Paint" + _newLine + "Problem Steps Recorder" + _newLine + "Snipping Tool" + _newLine + "Sound Recorder" + _newLine + "System Restore" + _newLine + "Task Scheduler" + _newLine + "Windows Media Player" + _newLine + "Wordpad";
 
         internal static string FolderDefaultIcon = @"%systemroot%\system32\imageres.dll,-112";
 
@@ -36,11 +40,11 @@ namespace Optimizer
                 keyword = keyword + ".exe";
             }
 
-            string regkey = @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\" + keyword;
+            string key = @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\" + keyword;
             
             Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\" + keyword);
-            Registry.SetValue(regkey, "", file);
-            Registry.SetValue(regkey, "Path", file.Substring(0, file.LastIndexOf("\\")));
+            Registry.SetValue(key, "", file);
+            Registry.SetValue(key, "Path", file.Substring(0, file.LastIndexOf("\\")));
         }
 
         internal static List<string> GetCustomCommands()
@@ -48,9 +52,9 @@ namespace Optimizer
             List<string> items = new List<string>();
             RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\");
 
-            foreach (string cmd in key.GetSubKeyNames())
+            foreach (string command in key.GetSubKeyNames())
             {
-                items.Add(cmd);
+                items.Add(command);
             }
 
             key.Close();
@@ -58,14 +62,14 @@ namespace Optimizer
             return items;
         }
 
-        internal static void DeleteCustomCommand(string name)
+        internal static void DeleteCustomCommand(string command)
         {
-            Registry.LocalMachine.DeleteSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\" + name);
+            Registry.LocalMachine.DeleteSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\" + command, false);
         }
 
-        private static void CreateDefaultCommand(string itemnick)
+        private static void CreateDefaultCommand(string itemName)
         {
-            RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell\" + itemnick, true);
+            RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell\" + itemName, true);
             key.CreateSubKey("command", RegistryKeyPermissionCheck.Default);
             key.Close();
         }
@@ -77,14 +81,14 @@ namespace Optimizer
 
             foreach (string item in key.GetSubKeyNames())
             {
+                // filter the list, so the default items will not be visible
+                if (item.Contains("Gadgets")) continue;
+                if (item.Contains("Display")) continue;
+                if (item.Contains("Personalize")) continue;
+
                 items.Add(item);
             }
 
-            // filter the list, so the default items will not be visible
-            if (items.Contains("Gadgets")) { items.Remove("Gadgets"); }
-            if (items.Contains("Display")) { items.Remove("Display"); }
-            if (items.Contains("Personalize")) { items.Remove("Personalize"); }
-
             key.Close();
             return items;
         }
@@ -124,24 +128,25 @@ namespace Optimizer
             }
         }
 
-        internal static string ExtractIconFromExecutable(string itemnick, string exe)
+        internal static string ExtractIconFromExecutable(string itemName, string fileName)
         {
-            string iconpath = string.Empty;
+            string iconPath = string.Empty;
 
-            if (File.Exists(exe))
+            if (File.Exists(fileName))
             {
-                Icon ico = Icon.ExtractAssociatedIcon(exe);
+                Icon ico = Icon.ExtractAssociatedIcon(fileName);
+
                 Clipboard.SetImage(ico.ToBitmap());
-                Clipboard.GetImage().Save(Required.ExtractedIcons + "\\" + itemnick + ".ico", System.Drawing.Imaging.ImageFormat.Bmp);
+                Clipboard.GetImage().Save(Required.ExtractedIcons + "\\" + itemName + ".ico", ImageFormat.Bmp);
                 Clipboard.Clear();
 
-                iconpath = Required.ExtractedIcons + "\\" + itemnick + ".ico";
+                iconPath = Required.ExtractedIcons + "\\" + itemName + ".ico";
             }
 
-            return iconpath;
+            return iconPath;
         }
 
-        internal static string DownloadFavicon(string link, string nick)
+        internal static string DownloadFavicon(string link, string name)
         {
             string favicon = string.Empty;
 
@@ -150,39 +155,36 @@ namespace Optimizer
                 Uri url = new Uri(link);
                 if (url.HostNameType == UriHostNameType.Dns)
                 {
-                    Image.FromStream(((HttpWebResponse)WebRequest.Create("http://" + url.Host + "/favicon.ico").GetResponse()).GetResponseStream()).Save(Required.FavIcons + nick + ".ico", ImageFormat.Bmp);
-                    favicon = Required.FavIcons + nick + ".ico";
+                    Image.FromStream(((HttpWebResponse)WebRequest.Create("http://" + url.Host + "/favicon.ico").GetResponse()).GetResponseStream()).Save(Required.FavIcons + name + ".ico", ImageFormat.Bmp);
+                    favicon = Required.FavIcons + name + ".ico";
                 }
             }
-            catch
-            {
-                
-            }
+            catch { }
 
             return favicon;
         }
 
-        internal static void AddItem(string nick, string item, string icon, DesktopTypePosition position, bool shift, DesktopItemType type)
+        internal static void AddItem(string name, string item, string icon, DesktopTypePosition position, bool shift, DesktopItemType type)
         {
             switch (type)
             {
                 case DesktopItemType.Program:
                     RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell", true);
-                    key.CreateSubKey(nick, RegistryKeyPermissionCheck.Default);
+                    key.CreateSubKey(name, RegistryKeyPermissionCheck.Default);
                     key.Close();
-                    CreateDefaultCommand(nick);
+                    CreateDefaultCommand(name);
 
-                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + nick + "\\command", "", item);
-                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + nick, "Icon", icon);
-                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + nick, "Position", position.ToString());
+                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + name + "\\command", "", item);
+                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + name, "Icon", icon);
+                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + name, "Position", position.ToString());
 
                     if (shift)
                     {
-                        Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + nick, "Extended", "");
+                        Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + name, "Extended", "");
                     }
                     else
                     {
-                        RegistryKey key2 = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell\" + nick, true);
+                        RegistryKey key2 = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell\" + name, true);
                         key2.DeleteValue("Extended", false);
                         key2.Close();
                     }
@@ -190,21 +192,21 @@ namespace Optimizer
                     break;
                 case DesktopItemType.Folder:
                     RegistryKey key3 = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell", true);
-                    key3.CreateSubKey(nick, RegistryKeyPermissionCheck.Default);
+                    key3.CreateSubKey(name, RegistryKeyPermissionCheck.Default);
                     key3.Close();
-                    CreateDefaultCommand(nick);
+                    CreateDefaultCommand(name);
 
-                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + nick + "\\command", "", "explorer " + item);
-                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + nick, "Icon", icon);
-                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + nick, "Position", position.ToString());
+                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + name + "\\command", "", "explorer " + item);
+                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + name, "Icon", icon);
+                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + name, "Position", position.ToString());
 
                     if (shift)
                     {
-                        Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + nick, "Extended", "");
+                        Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + name, "Extended", "");
                     }
                     else
                     {
-                        RegistryKey key2 = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell\" + nick, true);
+                        RegistryKey key2 = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell\" + name, true);
                         key2.DeleteValue("Extended", false);
                         key2.Close();
                     }
@@ -212,21 +214,21 @@ namespace Optimizer
                     break;
                 case DesktopItemType.Link:
                     RegistryKey key4 = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell", true);
-                    key4.CreateSubKey(nick, RegistryKeyPermissionCheck.Default);
+                    key4.CreateSubKey(name, RegistryKeyPermissionCheck.Default);
                     key4.Close();
-                    CreateDefaultCommand(nick);
+                    CreateDefaultCommand(name);
 
-                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + nick + "\\command", "", "explorer " + item);
-                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + nick, "Icon", icon);
-                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + nick, "Position", position.ToString());
+                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + name + "\\command", "", "explorer " + item);
+                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + name, "Icon", icon);
+                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + name, "Position", position.ToString());
 
                     if (shift)
                     {
-                        Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + nick, "Extended", "");
+                        Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + name, "Extended", "");
                     }
                     else
                     {
-                        RegistryKey key2 = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell\" + nick, true);
+                        RegistryKey key2 = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell\" + name, true);
                         key2.DeleteValue("Extended", false);
                         key2.Close();
                     }
@@ -234,23 +236,23 @@ namespace Optimizer
                     break;
                 case DesktopItemType.File:
                     RegistryKey key5 = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell", true);
-                    key5.CreateSubKey(nick, RegistryKeyPermissionCheck.Default);
+                    key5.CreateSubKey(name, RegistryKeyPermissionCheck.Default);
                     key5.Close();
-                    CreateDefaultCommand(nick);
+                    CreateDefaultCommand(name);
                     string def = @"""";
                     string def2 = "explorer.exe";
 
-                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + nick + "\\command", "", def2 + " " + def + item + def);
-                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + nick, "Icon", icon);
-                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + nick, "Position", position.ToString());
+                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + name + "\\command", "", def2 + " " + def + item + def);
+                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + name, "Icon", icon);
+                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + name, "Position", position.ToString());
 
                     if (shift)
                     {
-                        Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + nick, "Extended", "");
+                        Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + name, "Extended", "");
                     }
                     else
                     {
-                        RegistryKey key2 = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell\" + nick, true);
+                        RegistryKey key2 = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell\" + name, true);
                         key2.DeleteValue("Extended", false);
                         key2.Close();
                     }
@@ -258,21 +260,21 @@ namespace Optimizer
                     break;
                 case DesktopItemType.Command:
                     RegistryKey key6 = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell", true);
-                    key6.CreateSubKey(nick, RegistryKeyPermissionCheck.Default);
+                    key6.CreateSubKey(name, RegistryKeyPermissionCheck.Default);
                     key6.Close();
-                    CreateDefaultCommand(nick);
+                    CreateDefaultCommand(name);
 
-                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + nick + "\\command", "", item);
-                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + nick, "Icon", icon);
-                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + nick, "Position", position.ToString());
+                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + name + "\\command", "", item);
+                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + name, "Icon", icon);
+                    Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + name, "Position", position.ToString());
 
                     if (shift)
                     {
-                        Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + nick, "Extended", "");
+                        Registry.SetValue(@"HKEY_CLASSES_ROOT\DesktopBackground\Shell\" + name, "Extended", "");
                     }
                     else
                     {
-                        RegistryKey key2 = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell\" + nick, true);
+                        RegistryKey key2 = Registry.ClassesRoot.OpenSubKey(@"DesktopBackground\Shell\" + name, true);
                         key2.DeleteValue("Extended", false);
                         key2.Close();
                     }
@@ -302,11 +304,11 @@ namespace Optimizer
             
             if (!remove)
             {
-                Optimize.ImportRegistryScript(Required.ReadyMadeMenus + "\\InstallTakeOwnership.reg");
+                Utilities.ImportRegistryScript(Required.ReadyMadeMenus + "\\InstallTakeOwnership.reg");
             }
             else
             {
-                Optimize.ImportRegistryScript(Required.ReadyMadeMenus + "\\RemoveTakeOwnership.reg");
+                Utilities.ImportRegistryScript(Required.ReadyMadeMenus + "\\RemoveTakeOwnership.reg");
             }
         }
     }

+ 19 - 73
Optimizer/ListViewColumnSorter.cs

@@ -8,111 +8,57 @@ using System.Threading.Tasks;
 
 namespace Optimizer
 {
-    public class ListViewColumnSorter : IComparer
+    internal class ListViewColumnSorter : IComparer
     {
-        /// <summary>
-        /// Specifies the column to be sorted
-        /// </summary>
-        private int columnToSort;
+        int _columnToSort;
+        SortOrder _sortOrder;
+        CaseInsensitiveComparer _comparer;
 
-        /// <summary>
-        /// Specifies the order in which to sort (i.e. 'Ascending').
-        /// </summary>
-        private SortOrder orderOfSort;
-
-        /// <summary>
-        /// Case insensitive comparer object
-        /// </summary>
-        private CaseInsensitiveComparer objectCompare;
-
-        /// <summary>
-        /// Initializes a new instance of the ListViewColumnSorter class
-        /// </summary>
         public ListViewColumnSorter()
         {
-            // Initialize the column to '0'
-            this.columnToSort = 0;
-
-            // Initialize the sort order to 'none'
-            this.orderOfSort = SortOrder.None;
-
-            // Initialize the CaseInsensitiveComparer object
-            this.objectCompare = new CaseInsensitiveComparer();
+            _columnToSort = 0;
+            _sortOrder = SortOrder.None;
+            _comparer = new CaseInsensitiveComparer();
         }
 
-        /// <summary>
-        /// Gets or sets the number of the column to which to apply the sorting operation (Defaults to '0').
-        /// </summary>
-        public int SortColumn
+        public int CurrentColumn
         {
-            get
-            {
-                return this.columnToSort;
-            }
-
-            set
-            {
-                this.columnToSort = value;
-            }
+            get { return _columnToSort; }
+            set { _columnToSort = value; }
         }
 
-        /// <summary>
-        /// Gets or sets the order of sorting to apply (for example, 'Ascending' or 'Descending').
-        /// </summary>
-        public SortOrder Order
+        public SortOrder SortOrder
         {
-            get
-            {
-                return this.orderOfSort;
-            }
-
-            set
-            {
-                this.orderOfSort = value;
-            }
+            get { return _sortOrder; }
+            set { _sortOrder = value; }
         }
 
-        /// <summary>
-        /// This method is inherited from the IComparer interface.  It compares the two objects passed using a case insensitive comparison.
-        /// </summary>
-        /// <param name="x">First object to be compared</param>
-        /// <param name="y">Second object to be compared</param>
-        /// <returns>The result of the comparison. "0" if equal, negative if 'x' is less than 'y' and positive if 'x' is greater than 'y'</returns>
         public int Compare(object x, object y)
         {
             int compareResult;
-            ListViewItem listviewX, listviewY;
 
-            // Cast the objects to be compared to ListViewItem objects
-            listviewX = (ListViewItem)x;
-            listviewY = (ListViewItem)y;
+            ListViewItem listViewX = (ListViewItem)x;
+            ListViewItem listViewY = (ListViewItem)y;
 
-            // Compare the two items
             try
             {
-                // if the numeric sort (try) fails, then we want
-                // to do the text sort (catch)
-                compareResult = this.objectCompare.Compare(Convert.ToInt64(listviewX.SubItems[this.columnToSort].Text), Convert.ToInt64(listviewY.SubItems[this.columnToSort].Text));
+                compareResult = _comparer.Compare(Convert.ToInt64(listViewX.SubItems[_columnToSort].Text), Convert.ToInt64(listViewY.SubItems[_columnToSort].Text));
             }
             catch
             {
-                compareResult = this.objectCompare.Compare(listviewX.SubItems[this.columnToSort].Text, listviewY.SubItems[this.columnToSort].Text);
+                compareResult = _comparer.Compare(listViewX.SubItems[_columnToSort].Text, listViewY.SubItems[_columnToSort].Text);
             }
 
-            // Calculate correct return value based on object comparison
-            if (this.orderOfSort == SortOrder.Ascending)
+            if (_sortOrder == SortOrder.Ascending)
             {
-                // Ascending sort is selected, return normal result of compare operation
                 return compareResult;
             }
-            else if (this.orderOfSort == SortOrder.Descending)
+            else if (_sortOrder == SortOrder.Descending)
             {
-                // Descending sort is selected, return negative result of compare operation
                 return -compareResult;
             }
             else
             {
-                // Return '0' to indicate they are equal
                 return 0;
             }
         }

File diff suppressed because it is too large
+ 425 - 408
Optimizer/MainForm.Designer.cs


File diff suppressed because it is too large
+ 254 - 367
Optimizer/MainForm.cs


+ 7 - 7
Optimizer/MainForm.resx

@@ -139,16 +139,16 @@
         VUrZey8AAAAASUVORK5CYII=
 </value>
   </data>
-  <metadata name="DefineCmdDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+  <metadata name="defineCommandDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>17, 17</value>
   </metadata>
-  <metadata name="DefineProgramDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+  <metadata name="defineProgramDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>184, 17</value>
   </metadata>
-  <metadata name="DefineFolderDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+  <metadata name="defineFolderDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>388, 17</value>
   </metadata>
-  <metadata name="DefineFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+  <metadata name="defineFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>571, 17</value>
   </metadata>
   <metadata name="DefineProgramIconDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
@@ -166,14 +166,14 @@
   <metadata name="DefineCommandIconDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>415, 60</value>
   </metadata>
-  <metadata name="SynapseValidator.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+  <metadata name="integratorTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>660, 60</value>
   </metadata>
-  <metadata name="iRunValidator.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+  <metadata name="runDialogTime.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>860, 58</value>
   </metadata>
   <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>25</value>
+    <value>86</value>
   </metadata>
   <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>

+ 66 - 66
Optimizer/MessagerForm.Designer.cs

@@ -28,62 +28,62 @@
         /// </summary>
         private void InitializeComponent()
         {
-            this.msg = new System.Windows.Forms.Label();
-            this.yesbtn = new System.Windows.Forms.Button();
-            this.nobtn = new System.Windows.Forms.Button();
+            this.lblMessage = new System.Windows.Forms.Label();
+            this.btnYes = new System.Windows.Forms.Button();
+            this.btnNo = new System.Windows.Forms.Button();
             this.chkPrint = new System.Windows.Forms.CheckBox();
             this.chkSensors = new System.Windows.Forms.CheckBox();
             this.SuspendLayout();
             // 
-            // msg
+            // lblMessage
             // 
-            this.msg.Font = new System.Drawing.Font("Segoe UI Semibold", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(161)));
-            this.msg.Location = new System.Drawing.Point(10, 7);
-            this.msg.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
-            this.msg.Name = "msg";
-            this.msg.Size = new System.Drawing.Size(432, 69);
-            this.msg.TabIndex = 0;
-            this.msg.Text = "Restart to apply changes?";
+            this.lblMessage.Font = new System.Drawing.Font("Segoe UI Semibold", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(161)));
+            this.lblMessage.Location = new System.Drawing.Point(12, 9);
+            this.lblMessage.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+            this.lblMessage.Name = "lblMessage";
+            this.lblMessage.Size = new System.Drawing.Size(540, 86);
+            this.lblMessage.TabIndex = 0;
+            this.lblMessage.Text = "Restart to apply changes?";
             // 
-            // yesbtn
+            // btnYes
             // 
-            this.yesbtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-            this.yesbtn.BackColor = System.Drawing.Color.DodgerBlue;
-            this.yesbtn.DialogResult = System.Windows.Forms.DialogResult.Yes;
-            this.yesbtn.FlatAppearance.BorderColor = System.Drawing.Color.DodgerBlue;
-            this.yesbtn.FlatAppearance.MouseDownBackColor = System.Drawing.Color.RoyalBlue;
-            this.yesbtn.FlatAppearance.MouseOverBackColor = System.Drawing.Color.RoyalBlue;
-            this.yesbtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
-            this.yesbtn.ForeColor = System.Drawing.Color.White;
-            this.yesbtn.Location = new System.Drawing.Point(346, 128);
-            this.yesbtn.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
-            this.yesbtn.Name = "yesbtn";
-            this.yesbtn.Size = new System.Drawing.Size(96, 31);
-            this.yesbtn.TabIndex = 31;
-            this.yesbtn.Tag = "themeable";
-            this.yesbtn.Text = "Yes";
-            this.yesbtn.UseVisualStyleBackColor = false;
-            this.yesbtn.Click += new System.EventHandler(this.button39_Click);
+            this.btnYes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+            this.btnYes.BackColor = System.Drawing.Color.DodgerBlue;
+            this.btnYes.DialogResult = System.Windows.Forms.DialogResult.Yes;
+            this.btnYes.FlatAppearance.BorderColor = System.Drawing.Color.DodgerBlue;
+            this.btnYes.FlatAppearance.MouseDownBackColor = System.Drawing.Color.RoyalBlue;
+            this.btnYes.FlatAppearance.MouseOverBackColor = System.Drawing.Color.RoyalBlue;
+            this.btnYes.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+            this.btnYes.ForeColor = System.Drawing.Color.White;
+            this.btnYes.Location = new System.Drawing.Point(432, 160);
+            this.btnYes.Margin = new System.Windows.Forms.Padding(2);
+            this.btnYes.Name = "btnYes";
+            this.btnYes.Size = new System.Drawing.Size(120, 39);
+            this.btnYes.TabIndex = 31;
+            this.btnYes.Tag = "themeable";
+            this.btnYes.Text = "Yes";
+            this.btnYes.UseVisualStyleBackColor = false;
+            this.btnYes.Click += new System.EventHandler(this.btnYes_Click);
             // 
-            // nobtn
+            // btnNo
             // 
-            this.nobtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-            this.nobtn.BackColor = System.Drawing.Color.DodgerBlue;
-            this.nobtn.DialogResult = System.Windows.Forms.DialogResult.No;
-            this.nobtn.FlatAppearance.BorderColor = System.Drawing.Color.DodgerBlue;
-            this.nobtn.FlatAppearance.MouseDownBackColor = System.Drawing.Color.RoyalBlue;
-            this.nobtn.FlatAppearance.MouseOverBackColor = System.Drawing.Color.RoyalBlue;
-            this.nobtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
-            this.nobtn.ForeColor = System.Drawing.Color.White;
-            this.nobtn.Location = new System.Drawing.Point(245, 128);
-            this.nobtn.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
-            this.nobtn.Name = "nobtn";
-            this.nobtn.Size = new System.Drawing.Size(96, 31);
-            this.nobtn.TabIndex = 32;
-            this.nobtn.Tag = "themeable";
-            this.nobtn.Text = "No";
-            this.nobtn.UseVisualStyleBackColor = false;
-            this.nobtn.Click += new System.EventHandler(this.button1_Click);
+            this.btnNo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+            this.btnNo.BackColor = System.Drawing.Color.DodgerBlue;
+            this.btnNo.DialogResult = System.Windows.Forms.DialogResult.No;
+            this.btnNo.FlatAppearance.BorderColor = System.Drawing.Color.DodgerBlue;
+            this.btnNo.FlatAppearance.MouseDownBackColor = System.Drawing.Color.RoyalBlue;
+            this.btnNo.FlatAppearance.MouseOverBackColor = System.Drawing.Color.RoyalBlue;
+            this.btnNo.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+            this.btnNo.ForeColor = System.Drawing.Color.White;
+            this.btnNo.Location = new System.Drawing.Point(306, 160);
+            this.btnNo.Margin = new System.Windows.Forms.Padding(2);
+            this.btnNo.Name = "btnNo";
+            this.btnNo.Size = new System.Drawing.Size(120, 39);
+            this.btnNo.TabIndex = 32;
+            this.btnNo.Tag = "themeable";
+            this.btnNo.Text = "No";
+            this.btnNo.UseVisualStyleBackColor = false;
+            this.btnNo.Click += new System.EventHandler(this.btnNo_Click);
             // 
             // chkPrint
             // 
@@ -92,10 +92,10 @@
             this.chkPrint.Checked = true;
             this.chkPrint.CheckState = System.Windows.Forms.CheckState.Checked;
             this.chkPrint.Font = new System.Drawing.Font("Segoe UI Semibold", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(161)));
-            this.chkPrint.Location = new System.Drawing.Point(10, 117);
-            this.chkPrint.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
+            this.chkPrint.Location = new System.Drawing.Point(12, 146);
+            this.chkPrint.Margin = new System.Windows.Forms.Padding(2);
             this.chkPrint.Name = "chkPrint";
-            this.chkPrint.Size = new System.Drawing.Size(211, 19);
+            this.chkPrint.Size = new System.Drawing.Size(271, 24);
             this.chkPrint.TabIndex = 33;
             this.chkPrint.Text = "I use Print Service, do not disable it";
             this.chkPrint.UseVisualStyleBackColor = true;
@@ -106,39 +106,39 @@
             this.chkSensors.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
             this.chkSensors.AutoSize = true;
             this.chkSensors.Font = new System.Drawing.Font("Segoe UI Semibold", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(161)));
-            this.chkSensors.Location = new System.Drawing.Point(10, 140);
+            this.chkSensors.Location = new System.Drawing.Point(12, 175);
             this.chkSensors.Margin = new System.Windows.Forms.Padding(2);
             this.chkSensors.Name = "chkSensors";
-            this.chkSensors.Size = new System.Drawing.Size(226, 19);
+            this.chkSensors.Size = new System.Drawing.Size(288, 24);
             this.chkSensors.TabIndex = 34;
             this.chkSensors.Text = "This is a tablet, do not disable Sensors";
             this.chkSensors.UseVisualStyleBackColor = true;
             this.chkSensors.Visible = false;
             // 
-            // Messager
+            // MessagerForm
             // 
-            this.AcceptButton = this.yesbtn;
-            this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
+            this.AcceptButton = this.btnYes;
+            this.AutoScaleDimensions = new System.Drawing.SizeF(120F, 120F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
             this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
-            this.CancelButton = this.nobtn;
-            this.ClientSize = new System.Drawing.Size(451, 169);
+            this.CancelButton = this.btnNo;
+            this.ClientSize = new System.Drawing.Size(564, 211);
             this.Controls.Add(this.chkSensors);
             this.Controls.Add(this.chkPrint);
-            this.Controls.Add(this.nobtn);
-            this.Controls.Add(this.yesbtn);
-            this.Controls.Add(this.msg);
+            this.Controls.Add(this.btnNo);
+            this.Controls.Add(this.btnYes);
+            this.Controls.Add(this.lblMessage);
             this.Font = new System.Drawing.Font("Segoe UI Semibold", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(161)));
             this.ForeColor = System.Drawing.Color.White;
             this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
-            this.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
+            this.Margin = new System.Windows.Forms.Padding(2, 4, 2, 4);
             this.MaximizeBox = false;
             this.MinimizeBox = false;
-            this.Name = "Messager";
+            this.Name = "MessagerForm";
             this.ShowIcon = false;
             this.ShowInTaskbar = false;
             this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
-            this.Load += new System.EventHandler(this.Restarter_Load);
+            this.Load += new System.EventHandler(this.Messager_Load);
             this.ResumeLayout(false);
             this.PerformLayout();
 
@@ -146,9 +146,9 @@
 
         #endregion
 
-        private System.Windows.Forms.Label msg;
-        private System.Windows.Forms.Button yesbtn;
-        private System.Windows.Forms.Button nobtn;
+        private System.Windows.Forms.Label lblMessage;
+        private System.Windows.Forms.Button btnYes;
+        private System.Windows.Forms.Button btnNo;
         private System.Windows.Forms.CheckBox chkPrint;
         private System.Windows.Forms.CheckBox chkSensors;
     }

+ 24 - 23
Optimizer/MessagerForm.cs

@@ -13,59 +13,60 @@ namespace Optimizer
     public partial class MessagerForm : System.Windows.Forms.Form
     {
         MainForm _main;
-        MessagerType mode;
+        MessageType _type;
 
         private void Confirm()
         {
-            if (mode == MessagerType.Error)
+            if (_type == MessageType.Error)
             {
                 this.Close();
             }
-            if (mode == MessagerType.Optimize)
+            if (_type == MessageType.Optimize)
             {
-                this.Hide();
                 OptimizeForm f = new OptimizeForm(!chkPrint.Checked, !chkSensors.Checked);
                 f.ShowDialog();
                 f.BringToFront();
+                this.Close();
             }
-            if (mode == MessagerType.Startup)
+            if (_type == MessageType.Startup)
             {
                 _main.RemoveAllStartupItems();
             }
-            if (mode == MessagerType.Restart)
+            if (_type == MessageType.Restart)
             {
-                Optimize.RebootPC();
+                Utilities.Reboot();
             }
-            if (mode == MessagerType.Hosts)
+            if (_type == MessageType.Hosts)
             {
                 _main.RemoveAllHostsEntries();
             }
-            if (mode == MessagerType.Integrator)
+            if (_type == MessageType.Integrator)
             {
                 _main.RemoveAllDesktopItems();
             }
         }
 
-        public MessagerForm(MainForm main, MessagerType m, string s)
+        internal MessagerForm(MainForm main, MessageType m, string text)
         {
             InitializeComponent();
             Options.ApplyTheme(this);
 
             _main = main;
-            mode = m;
-            msg.Text = s;
+            _type = m;
+
+            lblMessage.Text = text;
 
-            if (mode == MessagerType.Error)
+            if (_type == MessageType.Error)
             {
-                nobtn.Visible = false;
-                yesbtn.Text = "OK";
+                btnNo.Visible = false;
+                btnYes.Text = "OK";
 
-                this.AcceptButton = nobtn;
-                this.AcceptButton = yesbtn;
-                this.CancelButton = nobtn;
-                this.CancelButton = yesbtn;
+                this.AcceptButton = btnNo;
+                this.AcceptButton = btnYes;
+                this.CancelButton = btnNo;
+                this.CancelButton = btnYes;
             }
-            if (mode == MessagerType.Optimize)
+            if (_type == MessageType.Optimize)
             {
                 chkPrint.Checked = true;
                 chkPrint.Visible = true;
@@ -74,18 +75,18 @@ namespace Optimizer
             }
         }
 
-        private void button1_Click(object sender, EventArgs e)
+        private void btnNo_Click(object sender, EventArgs e)
         {
             this.Close();
         }
 
-        private void button39_Click(object sender, EventArgs e)
+        private void btnYes_Click(object sender, EventArgs e)
         {
             Confirm();
             this.Close();
         }
 
-        private void Restarter_Load(object sender, EventArgs e)
+        private void Messager_Load(object sender, EventArgs e)
         {
             CheckForIllegalCrossThreadCalls = false;
             this.BringToFront();

+ 46 - 154
Optimizer/Optimize.cs

@@ -20,26 +20,8 @@ namespace Optimizer
 {
     public static class Optimize
     {
-        internal readonly static string CompatTelRunnerFile = Path.GetPathRoot(Environment.SystemDirectory) + @"Windows\System32\CompatTelRunner.exe";
-        internal readonly static string CompatTelRunnerFileOff = "CompatTelRunner.exe.OFF";
-        internal readonly static string DefaultEdgeDownloadFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Downloads");
-
-        internal static string GetEdgeDownloadFolder()
-        {
-            string current = "";
-
-            try
-            {
-                current = Registry.GetValue(@"HKEY_CURRENT_USER\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\microsoft.microsoftedge_8wekyb3d8bbwe\MicrosoftEdge\Main", "Default Download Directory", DefaultEdgeDownloadFolder).ToString();
-            }
-            catch
-            {
-                current = DefaultEdgeDownloadFolder;
-                //MessageBox.Show("Registry key is missing!", "Windows Optimizer", MessageBoxButtons.OK, MessageBoxIcon.Information);
-            }
-
-            return current;
-        }
+        readonly static string CompatTelRunnerFile = Path.GetPathRoot(Environment.SystemDirectory) + @"Windows\System32\CompatTelRunner.exe";
+        readonly static string CompatTelRunnerFileOff = "CompatTelRunner.exe.OFF";
 
         internal static void DisableTelemetryRunner()
         {
@@ -47,8 +29,8 @@ namespace Optimizer
             {
                 if (File.Exists(CompatTelRunnerFile))
                 {
-                    CleanHelper.RunCommand(string.Format("takeown /F {0}", CompatTelRunnerFile));
-                    CleanHelper.RunCommand(string.Format("icacls \"{0}\" /grant administrators:F", CompatTelRunnerFile));
+                    Utilities.RunCommand(string.Format("takeown /F {0}", CompatTelRunnerFile));
+                    Utilities.RunCommand(string.Format("icacls \"{0}\" /grant administrators:F", CompatTelRunnerFile));
 
                     FileSystem.RenameFile(CompatTelRunnerFile, CompatTelRunnerFileOff);
                 }
@@ -56,89 +38,6 @@ namespace Optimizer
             catch { }
         }
 
-        internal static void RunBatchFile(string file)
-        {
-            try
-            {
-                Process cmd = new Process();
-
-                cmd.StartInfo.CreateNoWindow = true;
-                cmd.StartInfo.FileName = file;
-                cmd.StartInfo.UseShellExecute = false;
-
-                cmd.Start();
-                cmd.WaitForExit();
-                cmd.Close();
-            }
-            catch { }
-        }
-
-        internal static void SetEdgeDownloadFolder(string path)
-        {
-            Registry.SetValue(@"HKEY_CURRENT_USER\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\microsoft.microsoftedge_8wekyb3d8bbwe\MicrosoftEdge\Main", "Default Download Directory", path, RegistryValueKind.String);
-        }
-
-        internal static void ImportRegistryScript(string file)
-        {
-            string path = "\"" + file + "\"";
-
-            Process proc = new Process();
-            try
-            {
-                proc.StartInfo.FileName = "regedit.exe";
-                proc.StartInfo.UseShellExecute = false;
-
-                proc = Process.Start("regedit.exe", "/s " + path);
-
-                proc.WaitForExit();
-            }
-            catch (Exception)
-            {
-                proc.Dispose();
-            }
-        }
-
-        internal static bool DoesServiceExist(string sn)
-        {
-            return ServiceController.GetServices().Any(serviceController => serviceController.ServiceName.Equals(sn));
-        }
-
-        internal static void RebootPC()
-        {
-            Process.Start("shutdown", "/r /t 0");
-        }
-
-        internal static void ActivateMain()
-        {
-            Program.main.Activate();
-        }
-
-        internal static void StopService(string servicename)
-        {
-            if (DoesServiceExist(servicename) == true)
-            {
-                ServiceController sc = new ServiceController(servicename);
-                if (sc.CanStop)
-                {
-                    sc.Stop();
-                }
-            }
-        }
-
-        internal static void StartService(string servicename)
-        {
-            if (DoesServiceExist(servicename) == true)
-            {
-                ServiceController sc = new ServiceController(servicename);
-
-                try
-                {
-                    sc.Start();
-                }
-                catch { }
-            }
-        }
-
         internal static void PerformanceTweaks()
         {
             Registry.SetValue("HKEY_CLASSES_ROOT\\AllFilesystemObjects\\shellex\\ContextMenuHandlers\\Copy To", "", "{C2FBB630-2971-11D1-A18C-00C04FD75D13}");
@@ -156,9 +55,9 @@ namespace Optimizer
             Registry.SetValue("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer", "NoInternetOpenWith", "00000001", RegistryValueKind.DWord);
             Registry.SetValue("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control", "WaitToKillServiceTimeout", "2000");
 
-            StopService("DiagTrack");
-            StopService("diagnosticshub.standardcollector.service");
-            StopService("dmwappushservice");
+            Utilities.StopService("DiagTrack");
+            Utilities.StopService("diagnosticshub.standardcollector.service");
+            Utilities.StopService("dmwappushservice");
 
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DiagTrack", "Start", "4", RegistryValueKind.DWord);
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\diagnosticshub.standardcollector.service", "Start", "4", RegistryValueKind.DWord);
@@ -171,7 +70,7 @@ namespace Optimizer
 
         internal static void DisableMediaPlayerSharing()
         {
-            StopService("WMPNetworkSvc");
+            Utilities.StopService("WMPNetworkSvc");
 
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WMPNetworkSvc", "Start", "4", RegistryValueKind.DWord);
         }
@@ -180,7 +79,6 @@ namespace Optimizer
         {
             Int32 tempInt = Convert.ToInt32("ffffffff", 16);
             Registry.SetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Multimedia\\SystemProfile", "NetworkThrottlingIndex", tempInt, RegistryValueKind.DWord);
-            //CleanHelper.RunCommand("netsh interface tcp set heuristics disabled");
         }
 
         internal static void BlockSkypeAds()
@@ -191,8 +89,8 @@ namespace Optimizer
 
         internal static void DisableHomeGroup()
         {
-            StopService("HomeGroupListener");
-            StopService("HomeGroupProvider");
+            Utilities.StopService("HomeGroupListener");
+            Utilities.StopService("HomeGroupProvider");
 
             Registry.SetValue("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\HomeGroupListener", "Start", "4", RegistryValueKind.DWord);
             Registry.SetValue("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\HomeGroupProvider", "Start", "4", RegistryValueKind.DWord);
@@ -200,22 +98,19 @@ namespace Optimizer
 
         internal static void DisablePrintSpooler()
         {
-            StopService("Spooler");
-
+            Utilities.StopService("Spooler");
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler", "Start", "3", RegistryValueKind.DWord);
         }
 
         internal static void EnablePrintSpooler()
         {
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler", "Start", "2", RegistryValueKind.DWord);
-
-            StartService("Spooler");
+            Utilities.StartService("Spooler");
         }
 
         internal static void DisableSuperfetch()
         {
-            StopService("SysMain");
-
+            Utilities.StopService("SysMain");
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SysMain", "Start", "4", RegistryValueKind.DWord);
         }
 
@@ -223,27 +118,26 @@ namespace Optimizer
         {
             try
             {
-                Process cmd = new Process();
-                cmd.StartInfo.CreateNoWindow = true;
-                cmd.StartInfo.FileName = "vssadmin";
-                cmd.StartInfo.Arguments = "delete shadows /for=c: /all /quiet";
-                cmd.StartInfo.UseShellExecute = false;
-                //cmd.StartInfo.RedirectStandardOutput = true;
-                cmd.Start();
-                //MessageBox.Show(cmd.StandardOutput.ReadToEnd());
-                cmd.WaitForExit();
-                cmd.Close();
+                using (Process p = new Process())
+                {
+                    p.StartInfo.CreateNoWindow = true;
+                    p.StartInfo.FileName = "vssadmin";
+                    p.StartInfo.Arguments = "delete shadows /for=c: /all /quiet";
+                    p.StartInfo.UseShellExecute = false;
+                    
+                    p.Start();
+                    p.WaitForExit();
+                    p.Close();
+                }     
             }
             catch //(Exception ex)
             {
                 //MessageBox.Show(ex.Message, "Optimizer", MessageBoxButtons.OK, MessageBoxIcon.Information);
             }
 
-            StopService("VSS");
+            Utilities.StopService("VSS");
 
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\SystemRestore", "DisableConfig", "00000001", RegistryValueKind.DWord);
-            //Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS", "Start", "4", RegistryValueKind.DWord);
-
         }
 
         internal static void DisableDefender()
@@ -257,7 +151,7 @@ namespace Optimizer
 
         internal static void DisableErrorReporting()
         {
-            StopService("WerSvc");
+            Utilities.StopService("WerSvc");
 
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WerSvc", "Start", "4", RegistryValueKind.DWord);
         }
@@ -285,7 +179,7 @@ namespace Optimizer
 
         internal static void UninstallOneDrive()
         {
-            RunBatchFile(Required.RequiredFolder + "\\OneDrive_Uninstaller.cmd");
+            Utilities.RunBatchFile(Required.RequiredFolder + "\\OneDrive_Uninstaller.cmd");
 
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\OneDrive", "DisableFileSyncNGSC", "1", RegistryValueKind.DWord);
         }
@@ -306,9 +200,9 @@ namespace Optimizer
 
         internal static void DisableDiagnosticsTracking()
         {
-            StopService("DiagTrack");
-            StopService("diagnosticshub.standardcollector.service");
-            StopService("dmwappushservice");
+            Utilities.StopService("DiagTrack");
+            Utilities.StopService("diagnosticshub.standardcollector.service");
+            Utilities.StopService("dmwappushservice");
 
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DiagTrack", "Start", "4", RegistryValueKind.DWord);
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\diagnosticshub.standardcollector.service", "Start", "4", RegistryValueKind.DWord);
@@ -317,18 +211,18 @@ namespace Optimizer
 
         internal static void DisableWAPPush()
         {
-            StopService("dmwappushservice");
+            Utilities.StopService("dmwappushservice");
 
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dmwappushservice", "Start", "4", RegistryValueKind.DWord);
         }
 
         internal static void DisableXboxLive()
         {
-            StopService("XboxNetApiSvc");
-            StopService("XblAuthManager");
-            StopService("XblGameSave");
-            StopService("XboxGipSvc");
-            StopService("xbgm");
+            Utilities.StopService("XboxNetApiSvc");
+            Utilities.StopService("XblAuthManager");
+            Utilities.StopService("XblGameSave");
+            Utilities.StopService("XboxGipSvc");
+            Utilities.StopService("xbgm");
 
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\XboxNetApiSvc", "Start", "4", RegistryValueKind.DWord);
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\XblAuthManager", "Start", "4", RegistryValueKind.DWord);
@@ -336,7 +230,7 @@ namespace Optimizer
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\XboxGipSvc", "Start", "4", RegistryValueKind.DWord);
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\xbgm", "Start", "4", RegistryValueKind.DWord);
 
-            RunBatchFile(Required.RequiredFolder + "\\DisableXboxTasks.bat");
+            Utilities.RunBatchFile(Required.RequiredFolder + "\\DisableXboxTasks.bat");
         }
 
         internal static void DisableAutomaticUpdates()
@@ -365,16 +259,16 @@ namespace Optimizer
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SensrSvc", "Start", "2", RegistryValueKind.DWord);
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SensorService", "Start", "2", RegistryValueKind.DWord);
 
-            StartService("DcpSvc");
-            StartService("SensrSvc");
-            StartService("SensorService");
+            Utilities.StartService("DcpSvc");
+            Utilities.StartService("SensrSvc");
+            Utilities.StartService("SensorService");
         }
 
         internal static void DisableSensorServices()
         {
-            StopService("DcpSvc");
-            StopService("SensrSvc");
-            StopService("SensorService");
+            Utilities.StopService("DcpSvc");
+            Utilities.StopService("SensrSvc");
+            Utilities.StopService("SensorService");
 
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DcpSvc", "Start", "4", RegistryValueKind.DWord);
             Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SensrSvc", "Start", "4", RegistryValueKind.DWord);
@@ -384,15 +278,13 @@ namespace Optimizer
         internal static void DisableTelemetryTasks()
         {
             DisableTelemetryRunner();
-
-            RunBatchFile(Required.RequiredFolder + "\\DisableTelemetryTasks.bat");
+            Utilities.RunBatchFile(Required.RequiredFolder + "\\DisableTelemetryTasks.bat");
         }
 
         internal static void DisableOfficeTelemetryTasks()
         {
-            RunBatchFile(Required.RequiredFolder + "\\DisableOfficeTelemetryTasks.bat");
-
-            ImportRegistryScript(Required.RequiredFolder + "\\DisableOfficeTelemetryTasks.reg");
+            Utilities.RunBatchFile(Required.RequiredFolder + "\\DisableOfficeTelemetryTasks.bat");
+            Utilities.ImportRegistryScript(Required.RequiredFolder + "\\DisableOfficeTelemetryTasks.reg");
         }
 
         internal static void DisablePrivacyOptions()

+ 8 - 8
Optimizer/OptimizeForm.Designer.cs

@@ -31,7 +31,7 @@
             this.components = new System.ComponentModel.Container();
             this.label1 = new System.Windows.Forms.Label();
             this.label2 = new System.Windows.Forms.Label();
-            this.dotter = new System.Windows.Forms.Timer(this.components);
+            this.dotTimer = new System.Windows.Forms.Timer(this.components);
             this.SuspendLayout();
             // 
             // label1
@@ -57,17 +57,17 @@
             this.label2.TabIndex = 1;
             this.label2.Text = "...";
             // 
-            // dotter
+            // dotTimer
             // 
-            this.dotter.Interval = 500;
-            this.dotter.Tick += new System.EventHandler(this.dotter_Tick);
+            this.dotTimer.Interval = 500;
+            this.dotTimer.Tick += new System.EventHandler(this.dotTimer_Tick);
             // 
-            // OptimizeHelper
+            // OptimizeForm
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(120F, 120F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
             this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
-            this.ClientSize = new System.Drawing.Size(340, 115);
+            this.ClientSize = new System.Drawing.Size(336, 111);
             this.ControlBox = false;
             this.Controls.Add(this.label2);
             this.Controls.Add(this.label1);
@@ -77,7 +77,7 @@
             this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
             this.MaximizeBox = false;
             this.MinimizeBox = false;
-            this.Name = "OptimizeHelper";
+            this.Name = "OptimizeForm";
             this.ShowIcon = false;
             this.ShowInTaskbar = false;
             this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
@@ -91,6 +91,6 @@
 
         private System.Windows.Forms.Label label1;
         private System.Windows.Forms.Label label2;
-        private System.Windows.Forms.Timer dotter;
+        private System.Windows.Forms.Timer dotTimer;
     }
 }

+ 18 - 13
Optimizer/OptimizeForm.cs

@@ -12,19 +12,20 @@ namespace Optimizer
 {
     public partial class OptimizeForm : Form
     {
-        bool DisablePrintServices = false;
-        bool DisableSensorServices = false;
+        bool _disablePrintServices = false;
+        bool _disableSensorServices = false;
 
-        public OptimizeForm(bool flag, bool flag2)
+        public OptimizeForm(bool disablePrintServices, bool disableSensorServices)
         {
             InitializeComponent();
-            DisablePrintServices = flag;
-            DisableSensorServices = flag;
+
+            _disablePrintServices = disablePrintServices;
+            _disableSensorServices = disableSensorServices;
         }
 
         private void ApplyAll()
         {
-            if (MainForm.wv != WindowsVersion.Unsupported)
+            if (Utilities.CurrentWindowsVersion != WindowsVersion.Unsupported)
             {
                 try
                 {
@@ -34,7 +35,7 @@ namespace Optimizer
                     Optimize.DisableDefender();
                     Optimize.DisableSystemRestore();
 
-                    if (DisablePrintServices)
+                    if (_disablePrintServices)
                     {
                         Optimize.DisablePrintSpooler();
                     }
@@ -52,18 +53,22 @@ namespace Optimizer
                     Optimize.DisableOfficeTelemetryTasks();
 
                     // Windows-specific
-                    if ((MainForm.wv == WindowsVersion.Windows7) || (MainForm.wv == WindowsVersion.WindowsServer2008))
+
+                    // Windows 7
+                    if ((Utilities.CurrentWindowsVersion == WindowsVersion.Windows7))
                     {
                         Optimize.RemoveWindows10Icon();
                     }
 
-                    if ((MainForm.wv == WindowsVersion.Windows8) || (MainForm.wv == WindowsVersion.WindowsServer2012))
+                    // Windows 8 / 8.1
+                    if ((Utilities.CurrentWindowsVersion == WindowsVersion.Windows8))
                     {
                         Optimize.RemoveWindows10Icon();
                         Optimize.DisableOneDrive();
                     }
 
-                    if ((MainForm.wv == WindowsVersion.Windows10) || (MainForm.wv == WindowsVersion.WindowsServer2016))
+                    // Windows 10
+                    if ((Utilities.CurrentWindowsVersion == WindowsVersion.Windows10))
                     {
                         Optimize.RestoreLegacyVolumeSlider();
                         Optimize.DisableCortana();
@@ -73,7 +78,7 @@ namespace Optimizer
                         Optimize.DisableWAPPush();
                         Optimize.DisableDataTelemetry();
 
-                        if (DisableSensorServices)
+                        if (_disableSensorServices)
                         {
                             Optimize.DisableSensorServices();
                         }
@@ -112,13 +117,13 @@ namespace Optimizer
             CheckForIllegalCrossThreadCalls = false;
             Options.ApplyTheme(this);
 
-            dotter.Start();
+            dotTimer.Start();
 
             Task t = new Task(() => ApplyAll());
             t.Start();
         }
 
-        private void dotter_Tick(object sender, EventArgs e)
+        private void dotTimer_Tick(object sender, EventArgs e)
         {
             switch (label2.Text)
             {

+ 1 - 1
Optimizer/OptimizeForm.resx

@@ -117,7 +117,7 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
-  <metadata name="dotter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+  <metadata name="dotTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>17, 17</value>
   </metadata>
 </root>

+ 1 - 0
Optimizer/Optimizer.csproj

@@ -131,6 +131,7 @@
     </Compile>
     <Compile Include="Required.cs" />
     <Compile Include="StartupItem.cs" />
+    <Compile Include="Utilities.cs" />
     <EmbeddedResource Include="AboutForm.resx">
       <DependentUpon>AboutForm.cs</DependentUpon>
     </EmbeddedResource>

+ 12 - 28
Optimizer/Options.cs

@@ -10,12 +10,12 @@ using Newtonsoft.Json;
 
 namespace Optimizer
 {
-    public class SettingsJson
+    internal class SettingsJson
     {
-        public Theme Color { get; set; }
+        internal Theme Color { get; set; }
     }
 
-    public static class Options
+    internal static class Options
     {
         readonly static string flag = "themeable";
         internal readonly static string SettingsFile = Required.CoreFolder + "\\Optimizer.json";
@@ -23,20 +23,7 @@ namespace Optimizer
         internal static SettingsJson CurrentOptions = new SettingsJson();
 
         // use this to determine if changes have been made
-        private static SettingsJson Flag = new SettingsJson();
-
-        internal static IEnumerable<Control> GetSelfAndChildrenRecursive(Control parent)
-        {
-            List<Control> controls = new List<Control>();
-
-            foreach (Control child in parent.Controls)
-            {
-                controls.AddRange(GetSelfAndChildrenRecursive(child));
-            }
-
-            controls.Add(parent);
-            return controls;
-        }
+        static SettingsJson Flag = new SettingsJson();
 
         internal static void ApplyTheme(Form f)
         {
@@ -65,19 +52,19 @@ namespace Optimizer
 
         private static void SetTheme(Form f, Color c1, Color c2)
         {
-            GetSelfAndChildrenRecursive(f).OfType<Button>().ToList().ForEach(b => b.BackColor = c1);
-            GetSelfAndChildrenRecursive(f).OfType<Button>().ToList().ForEach(b => b.FlatAppearance.BorderColor = c1);
-            GetSelfAndChildrenRecursive(f).OfType<Button>().ToList().ForEach(b => b.FlatAppearance.MouseDownBackColor = c2);
-            GetSelfAndChildrenRecursive(f).OfType<Button>().ToList().ForEach(b => b.FlatAppearance.MouseOverBackColor = c2);
+            Utilities.GetSelfAndChildrenRecursive(f).OfType<Button>().ToList().ForEach(b => b.BackColor = c1);
+            Utilities.GetSelfAndChildrenRecursive(f).OfType<Button>().ToList().ForEach(b => b.FlatAppearance.BorderColor = c1);
+            Utilities.GetSelfAndChildrenRecursive(f).OfType<Button>().ToList().ForEach(b => b.FlatAppearance.MouseDownBackColor = c2);
+            Utilities.GetSelfAndChildrenRecursive(f).OfType<Button>().ToList().ForEach(b => b.FlatAppearance.MouseOverBackColor = c2);
 
-            foreach (Label tmp in GetSelfAndChildrenRecursive(f).OfType<Label>().ToList())
+            foreach (Label tmp in Utilities.GetSelfAndChildrenRecursive(f).OfType<Label>().ToList())
             {
                 if ((string)tmp.Tag == flag)
                 {
                     tmp.ForeColor = c1;
                 }
             }
-            foreach (LinkLabel tmp in GetSelfAndChildrenRecursive(f).OfType<LinkLabel>().ToList())
+            foreach (LinkLabel tmp in Utilities.GetSelfAndChildrenRecursive(f).OfType<LinkLabel>().ToList())
             {
                 if ((string)tmp.Tag == flag)
                 {
@@ -86,7 +73,7 @@ namespace Optimizer
                     tmp.ActiveLinkColor = c2;
                 }
             }
-            foreach (CheckBox tmp in GetSelfAndChildrenRecursive(f).OfType<CheckBox>().ToList())
+            foreach (CheckBox tmp in Utilities.GetSelfAndChildrenRecursive(f).OfType<CheckBox>().ToList())
             {
                 if ((string)tmp.Tag == flag)
                 {
@@ -99,6 +86,7 @@ namespace Optimizer
         {
             if (File.Exists(SettingsFile))
             {
+                // compare with flag to determine if changes have been made
                 if (Flag.Color != CurrentOptions.Color)
                 {
                     using (FileStream fs = File.Open(SettingsFile, FileMode.OpenOrCreate))
@@ -111,10 +99,6 @@ namespace Optimizer
                         serializer.Serialize(jw, CurrentOptions);
                     }
                 }
-                else
-                {
-                    // no changes have been made, no need to save
-                }
             }
         }
 

+ 9 - 37
Optimizer/Program.cs

@@ -20,45 +20,17 @@ namespace Optimizer
         internal readonly static float Major = 3;
         internal readonly static float Minor = 3;
 
-        /* END OF VERSION PROPERTIES */
-
-        internal static MainForm main;
-
-        private readonly static string noadminmsg = "Optimizer needs to be run as administrator!\nApp will now close...";
-        private readonly static string unsupportedmsg = "Optimizer works in Windows 7 or higher!\nApp will now close...";
-
-        internal static string GetCurrentVersionToString()
+        internal static string GetCurrentVersion()
         {
             return Major.ToString() + "." + Minor.ToString();
         }
 
-        internal static float GetCurrentVersion()
-        {
-            return float.Parse(GetCurrentVersionToString());
-        }
-
-        private static bool IsAdmin()
-        {
-            var identity = WindowsIdentity.GetCurrent();
-            var principal = new WindowsPrincipal(identity);
-            return principal.IsInRole(WindowsBuiltInRole.Administrator);
-        }
+        /* END OF VERSION PROPERTIES */
 
-        private static bool IsSevenOrHigher()
-        {
-            string os = (string)Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", "ProductName", "");
-            bool legit;
+        internal static MainForm MainForm;
 
-            if ((os.Contains("XP")) || (os.Contains("Vista")) || os.Contains("Server 2003"))
-            {
-                legit = false;
-            }
-            else
-            {
-                legit = true;
-            }
-            return legit;
-        }
+        readonly static string _adminMissingMessage = "Optimizer needs to be run as administrator!\nApp will now close...";
+        readonly static string _unsupportedMessage = "Optimizer works in Windows 7 or higher!\nApp will now close...";
 
         [STAThread]
         static void Main()
@@ -66,16 +38,16 @@ namespace Optimizer
             Application.EnableVisualStyles();
             Application.SetCompatibleTextRenderingDefault(false);
 
-            if (IsAdmin() == false)
+            if (!Utilities.IsAdmin())
             {
-                MessagerForm f = new MessagerForm(null, MessagerType.Error, noadminmsg);
+                MessagerForm f = new MessagerForm(null, MessageType.Error, _adminMissingMessage);
                 f.ShowDialog();
 
                 Application.Exit();
             }
             else
             {
-                if (IsSevenOrHigher() == true)
+                if (Utilities.IsCompatible())
                 {
                     string resource = "Optimizer.Newtonsoft.Json.dll";
                     EmbeddedAssembly.Load(resource, "Newtonsoft.Json.dll");
@@ -102,7 +74,7 @@ namespace Optimizer
                 }
                 else
                 {
-                    MessagerForm f = new MessagerForm(null, MessagerType.Error, unsupportedmsg);
+                    MessagerForm f = new MessagerForm(null, MessageType.Error, _unsupportedMessage);
                     f.ShowDialog();
 
                     Application.Exit();

+ 0 - 2
Optimizer/Required.cs

@@ -11,8 +11,6 @@ namespace Optimizer
 {
     public static class Required
     {
-        internal readonly static string LogFile = Application.StartupPath + "\\Optimizer.log";
-
         internal readonly static string CoreFolder = CleanHelper.ProgramData + "\\Optimizer\\";
         internal readonly static string ReadyMadeMenus = CleanHelper.ProgramData + "\\Optimizer\\ReadyMadeMenus\\";
         internal readonly static string RequiredFolder = CleanHelper.ProgramData + "\\Optimizer\\Required\\";

+ 22 - 54
Optimizer/StartupItem.cs

@@ -10,29 +10,29 @@ using System.Windows.Forms;
 
 namespace Optimizer
 {
-    public class StartupItem
+    internal class StartupItem
     {
-        public string Name { get; set; }
-        public string Location { get; set; }
-        public StartupItemLocation RegistryLocation { get; set; }
-        public StartupItemType RegistryType { get; set; }
+        internal string Name { get; set; }
+        internal string FileLocation { get; set; }
+        internal StartupItemLocation RegistryLocation { get; set; }
+        internal StartupItemType StartupType { get; set; }
 
-        public virtual void Remove() { }
-        public virtual void LocateFile() { }
-        public virtual void LocateKey() { }
+        internal virtual void Remove() { }
+        internal virtual void LocateFile() { }
+        internal virtual void LocateKey() { }
 
         public override string ToString()
         {
             if (RegistryLocation == StartupItemLocation.Folder) return RegistryLocation.ToString();
-            return string.Format("{0}:{1}", RegistryLocation, RegistryType);
+            return string.Format("{0}:{1}", RegistryLocation, StartupType);
         }
     }
 
-    public class FolderStartupItem : StartupItem
+    internal class FolderStartupItem : StartupItem
     {
-        public string Shortcut { get; set; }
+        internal string Shortcut { get; set; }
 
-        public override void Remove()
+        internal override void Remove()
         {
             try
             {
@@ -44,31 +44,30 @@ namespace Optimizer
             catch { }
         }
 
-        public override void LocateFile()
+        internal override void LocateFile()
         {
             try
             {
-                CleanHelper.FindFile(Location);
+                Utilities.FindFile(FileLocation);
             }
             catch { }
         }
     }
 
-    public class RegistryStartupItem : StartupItem
+    internal class RegistryStartupItem : StartupItem
     {
-        public RegistryKey Key { get; set; }
+        internal RegistryKey Key { get; set; }
 
-        public override void LocateKey()
+        internal override void LocateKey()
         {
             try
             {
-                CleanHelper.FindKeyInRegistry(Key.ToString());
+                Utilities.FindKeyInRegistry(Key.ToString());
             }
             catch { }
-            //finally { Key.Close(); }
         }
 
-        public override void Remove()
+        internal override void Remove()
         {
             try
             {
@@ -78,16 +77,16 @@ namespace Optimizer
             finally { Key.Close(); }
         }
 
-        public override void LocateFile()
+        internal override void LocateFile()
         {
             try
             {
-                CleanHelper.FindFile(SanitizePath(Location));
+                Utilities.FindFile(SanitizePath(FileLocation));
             }
             catch { }
         }
 
-        private string SanitizePath(string s)
+        internal string SanitizePath(string s)
         {
             s = s.Replace("\"", string.Empty);
             int i;
@@ -103,36 +102,5 @@ namespace Optimizer
 
             return s.Trim();
         }
-
-        //private int CountOccurences(string data, string occurence)
-        //{
-        //    return (data.Length - data.Replace(occurence, string.Empty).Length) / occurence.Length;
-        //}
-
-        //private string SanitizePath(string s)
-        //{
-        //    string n = "";
-
-        //    Regex r = new Regex("\".*?\"");
-        //    var matches = r.Matches(s);
-
-        //    if (matches.Count > 0)
-        //    {
-        //        s = matches[0].ToString();
-        //    }
-
-        //    foreach (char c in s)
-        //    {
-        //        if (c != '"')
-        //        {
-        //            n += c;
-        //        }
-        //    }
-
-        //    int i = n.LastIndexOf(".exe");
-        //    n = n.Substring(0, i + 4);
-
-        //    return n;
-        //}
     }
 }

+ 541 - 0
Optimizer/Utilities.cs

@@ -0,0 +1,541 @@
+using Microsoft.Win32;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Security.Principal;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using System.IO;
+using System.Diagnostics;
+using System.ServiceProcess;
+
+namespace Optimizer
+{
+    internal static class Utilities
+    {
+        internal static readonly string LocalMachineRun = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
+        internal static readonly string LocalMachineRunOnce = "Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce";
+        internal static readonly string LocalMachineRunWoW = "Software\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Run";
+        internal static readonly string LocalMachineRunOnceWow = "Software\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\RunOnce";
+        internal static readonly string CurrentUserRun = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
+        internal static readonly string CurrentUserRunOnce = "Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce";
+        internal static readonly string LocalMachineStartupFolder = CleanHelper.ProgramData + "\\Microsoft\\Windows\\Start Menu\\Programs\\Startup";
+        internal static readonly string CurrentUserStartupFolder = CleanHelper.ProfileAppDataRoaming + "\\Microsoft\\Windows\\Start Menu\\Programs\\Startup";
+
+        internal readonly static string DefaultEdgeDownloadFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Downloads");
+
+        internal static WindowsVersion CurrentWindowsVersion = WindowsVersion.Unsupported;
+
+        internal delegate void SetControlPropertyThreadSafeDelegate(Control control, string propertyName, object propertyValue);
+
+        internal static void SetControlPropertyThreadSafe(Control control, string propertyName, object propertyValue)
+        {
+            if (control.InvokeRequired)
+            {
+                control.Invoke(new SetControlPropertyThreadSafeDelegate(SetControlPropertyThreadSafe), new object[] { control, propertyName, propertyValue });
+            }
+            else
+            {
+                control.GetType().InvokeMember(propertyName, BindingFlags.SetProperty, null, control, new object[] { propertyValue });
+            }
+        }
+
+        internal static IEnumerable<Control> GetSelfAndChildrenRecursive(Control parent)
+        {
+            List<Control> controls = new List<Control>();
+
+            foreach (Control child in parent.Controls)
+            {
+                controls.AddRange(GetSelfAndChildrenRecursive(child));
+            }
+
+            controls.Add(parent);
+            return controls;
+        }
+
+        internal static string GetOS()
+        {
+            string os = (string)Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", "ProductName", "");
+
+            if (os.Contains("Windows 7"))
+            {
+                CurrentWindowsVersion = WindowsVersion.Windows7;
+            }
+            if ((os.Contains("Windows 8")) || (os.Contains("Windows 8.1")))
+            {
+                CurrentWindowsVersion = WindowsVersion.Windows8;
+            }
+            if (os.Contains("Windows 10"))
+            {
+                CurrentWindowsVersion = WindowsVersion.Windows10;
+            }
+
+            return os;
+        }
+
+        internal static string GetBitness()
+        {
+            string bitness = string.Empty;
+
+            if (Environment.Is64BitOperatingSystem)
+            {
+                bitness = "You are working with 64-bit architecture";
+            }
+            else
+            {
+                bitness = "You are working with 32-bit architecture";
+            }
+
+            return bitness;
+        }
+
+        internal static bool IsAdmin()
+        {
+            var identity = WindowsIdentity.GetCurrent();
+            var principal = new WindowsPrincipal(identity);
+            return principal.IsInRole(WindowsBuiltInRole.Administrator);
+        }
+
+        internal static bool IsCompatible()
+        {
+            bool legit;
+            string os = GetOS();
+
+            if ((os.Contains("XP")) || (os.Contains("Vista")) || os.Contains("Server 2003"))
+            {
+                legit = false;
+            }
+            else
+            {
+                legit = true;
+            }
+            return legit;
+        }
+
+        internal static string GetEdgeDownloadFolder()
+        {
+            string current = string.Empty;
+
+            try
+            {
+                current = Registry.GetValue(@"HKEY_CURRENT_USER\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\microsoft.microsoftedge_8wekyb3d8bbwe\MicrosoftEdge\Main", "Default Download Directory", DefaultEdgeDownloadFolder).ToString();
+            }
+            catch
+            {
+                current = DefaultEdgeDownloadFolder;
+            }
+
+            return current;
+        }
+
+        internal static void SetEdgeDownloadFolder(string path)
+        {
+            Registry.SetValue(@"HKEY_CURRENT_USER\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\microsoft.microsoftedge_8wekyb3d8bbwe\MicrosoftEdge\Main", "Default Download Directory", path, RegistryValueKind.String);
+        }
+
+        internal static void RunBatchFile(string batchFile)
+        {
+            try
+            {
+                using (Process p = new Process())
+                {
+                    p.StartInfo.CreateNoWindow = true;
+                    p.StartInfo.FileName = batchFile;
+                    p.StartInfo.UseShellExecute = false;
+
+                    p.Start();
+                    p.WaitForExit();
+                    p.Close();
+                }
+            }
+            catch { }
+        }
+
+        internal static void ImportRegistryScript(string scriptFile)
+        {
+            string path = "\"" + scriptFile + "\"";
+
+            Process p = new Process();
+            try
+            {
+                p.StartInfo.FileName = "regedit.exe";
+                p.StartInfo.UseShellExecute = false;
+
+                p = Process.Start("regedit.exe", "/s " + path);
+
+                p.WaitForExit();
+            }
+            catch (Exception)
+            {
+                p.Dispose();
+            }
+            finally
+            {
+                p.Dispose();
+            }
+        }
+
+        internal static void Reboot()
+        {
+            Process.Start("shutdown", "/r /t 0");
+        }
+
+        internal static void ActivateMainForm()
+        {
+            Program.MainForm.Activate();
+        }
+
+        internal static bool ServiceExists(string serviceName)
+        {
+            return ServiceController.GetServices().Any(serviceController => serviceController.ServiceName.Equals(serviceName));
+        }
+
+        internal static void StopService(string serviceName)
+        {
+            if (ServiceExists(serviceName))
+            {
+                ServiceController sc = new ServiceController(serviceName);
+                if (sc.CanStop)
+                {
+                    sc.Stop();
+                }
+            }
+        }
+
+        internal static void StartService(string serviceName)
+        {
+            if (ServiceExists(serviceName))
+            {
+                ServiceController sc = new ServiceController(serviceName);
+
+                try
+                {
+                    sc.Start();
+                }
+                catch { }
+            }
+        }
+
+        internal static List<StartupItem> GetStartupItems()
+        {
+            List<StartupItem> collection = new List<StartupItem>();
+            RegistryKey registryKey = null;
+
+            // Get Local Machine Run startup items
+            try
+            {
+                registryKey = Registry.LocalMachine.OpenSubKey(LocalMachineRun, true);
+                string[] valueNames = registryKey.GetValueNames();
+
+                foreach (string s in valueNames)
+                {
+                    RegistryStartupItem item = new RegistryStartupItem();
+                    item.Name = s;
+                    item.FileLocation = registryKey.GetValue(s).ToString();
+                    item.Key = registryKey;
+                    item.RegistryLocation = StartupItemLocation.HKLM;
+                    item.StartupType = StartupItemType.Run;
+
+                    collection.Add(item);
+                }
+            }
+            catch { }
+
+            // Get Local Machine Run Once startup items
+            try
+            {
+                registryKey = Registry.LocalMachine.OpenSubKey(LocalMachineRunOnce, true);
+                string[] valueNames = registryKey.GetValueNames();
+
+                foreach (string s in valueNames)
+                {
+                    RegistryStartupItem item = new RegistryStartupItem();
+                    item.Name = s;
+                    item.FileLocation = registryKey.GetValue(s).ToString();
+                    item.Key = registryKey;
+                    item.RegistryLocation = StartupItemLocation.HKLM;
+                    item.StartupType = StartupItemType.RunOnce;
+
+                    collection.Add(item);
+                }
+            }
+            catch { }
+
+            // Get Local Machine Run WoW startup items
+            try
+            {
+                registryKey = Registry.LocalMachine.OpenSubKey(LocalMachineRunWoW, true);
+                string[] valueNames2 = registryKey.GetValueNames();
+
+                foreach (string s in valueNames2)
+                {
+                    RegistryStartupItem item = new RegistryStartupItem();
+                    item.Name = s;
+                    item.FileLocation = registryKey.GetValue(s).ToString();
+                    item.Key = registryKey;
+                    item.RegistryLocation = StartupItemLocation.HKLMWoW;
+                    item.StartupType = StartupItemType.Run;
+
+                    collection.Add(item);
+                }
+            }
+            catch { }
+
+            // Get Local Machine Run Once WoW startup items
+            try
+            {
+                registryKey = Registry.LocalMachine.OpenSubKey(LocalMachineRunOnceWow, true);
+                string[] valueNames2 = registryKey.GetValueNames();
+
+                foreach (string s in valueNames2)
+                {
+                    RegistryStartupItem item = new RegistryStartupItem();
+                    item.Name = s;
+                    item.FileLocation = registryKey.GetValue(s).ToString();
+                    item.Key = registryKey;
+                    item.RegistryLocation = StartupItemLocation.HKLMWoW;
+                    item.StartupType = StartupItemType.RunOnce;
+
+                    collection.Add(item);
+                }
+            }
+            catch { }
+
+            // Get Current User Run startup items
+            try
+            {
+                registryKey = Registry.CurrentUser.OpenSubKey(CurrentUserRun, true);
+                string[] valueNames3 = registryKey.GetValueNames();
+
+                foreach (string s in valueNames3)
+                {
+                    RegistryStartupItem item = new RegistryStartupItem();
+                    item.Name = s;
+                    item.FileLocation = registryKey.GetValue(s).ToString();
+                    item.Key = registryKey;
+                    item.RegistryLocation = StartupItemLocation.HKCU;
+                    item.StartupType = StartupItemType.Run;
+
+                    collection.Add(item);
+                }
+            }
+            catch { }
+
+            // Get Current User Run Once startup items
+            try
+            {
+                registryKey = Registry.CurrentUser.OpenSubKey(CurrentUserRunOnce, true);
+                string[] valueNames3 = registryKey.GetValueNames();
+
+                foreach (string s in valueNames3)
+                {
+                    RegistryStartupItem item = new RegistryStartupItem();
+                    item.Name = s;
+                    item.FileLocation = registryKey.GetValue(s).ToString();
+                    item.Key = registryKey;
+                    item.RegistryLocation = StartupItemLocation.HKCU;
+                    item.StartupType = StartupItemType.RunOnce;
+
+                    collection.Add(item);
+                }
+            }
+            catch { }
+
+            registryKey.Dispose();
+
+            // Get Current User Startup folder startup items
+            try
+            {
+                // get shortcuts to files
+                string[] shortcuts = Directory.GetFiles(CurrentUserStartupFolder, "*.lnk", SearchOption.AllDirectories);
+
+                // get executables
+                string[] files = Directory.GetFiles(CurrentUserStartupFolder, "*.exe", SearchOption.AllDirectories);
+
+                foreach (string shortcut in shortcuts)
+                {
+                    FolderStartupItem item = new FolderStartupItem();
+                    item.Name = Path.GetFileNameWithoutExtension(shortcut);
+                    item.FileLocation = GetShortcutTargetFile(shortcut);
+                    item.Shortcut = shortcut;
+                    item.RegistryLocation = StartupItemLocation.Folder;
+
+                    collection.Add(item);
+                }
+
+                foreach (string file in files)
+                {
+                    FolderStartupItem item2 = new FolderStartupItem();
+                    item2.Name = Path.GetFileNameWithoutExtension(file);
+                    item2.FileLocation = file;
+                    item2.Shortcut = file;
+                    item2.RegistryLocation = StartupItemLocation.Folder;
+
+                    collection.Add(item2);
+                }
+            }
+            catch { }
+
+            // Get Local Machine Startup folder startup items
+            try
+            {
+                // get shortcuts to files
+                string[] shortcuts = Directory.GetFiles(LocalMachineStartupFolder, "*.lnk", SearchOption.AllDirectories);
+
+                // get executables
+                string[] files = Directory.GetFiles(LocalMachineStartupFolder, "*.exe", SearchOption.AllDirectories);
+
+                foreach (string shortcut in shortcuts)
+                {
+                    FolderStartupItem item = new FolderStartupItem();
+                    item.Name = Path.GetFileNameWithoutExtension(shortcut);
+                    item.FileLocation = GetShortcutTargetFile(shortcut);
+                    item.Shortcut = shortcut;
+                    item.RegistryLocation = StartupItemLocation.Folder;
+
+                    collection.Add(item);
+                }
+
+                foreach (string file in files)
+                {
+                    FolderStartupItem item2 = new FolderStartupItem();
+                    item2.Name = Path.GetFileNameWithoutExtension(file);
+                    item2.FileLocation = file;
+                    item2.Shortcut = file;
+                    item2.RegistryLocation = StartupItemLocation.Folder;
+
+                    collection.Add(item2);
+                }
+            }
+            catch { }
+
+            return collection;
+        }
+
+        internal static void EnableFirewall()
+        {
+            RunCommand("netsh advfirewall set currentprofile state on");
+        }
+
+        internal static void EnableCommandPrompt()
+        {
+            RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Policies\\Microsoft\\Windows\\System");
+            key.SetValue("DisableCMD", 0, RegistryValueKind.DWord);
+            key.Close();
+        }
+
+        internal static void EnableControlPanel()
+        {
+            RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer");
+            key.SetValue("NoControlPanel", 0, RegistryValueKind.DWord);
+            key.Close();
+        }
+
+        internal static void EnableFolderOptions()
+        {
+            RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer");
+            key.SetValue("NoFolderOptions", 0, RegistryValueKind.DWord);
+            key.Close();
+        }
+
+        internal static void EnableRunDialog()
+        {
+            RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer");
+            key.SetValue("NoRun", 0, RegistryValueKind.DWord);
+            key.Close();
+        }
+
+        internal static void EnableContextMenu()
+        {
+            RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer");
+            key.SetValue("NoViewContextMenu", 0, RegistryValueKind.DWord);
+            key.Close();
+        }
+
+        internal static void EnableTaskManager()
+        {
+            RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System");
+            key.SetValue("DisableTaskMgr", 0, RegistryValueKind.DWord);
+            key.Close();
+        }
+
+        internal static void EnableRegistryEditor()
+        {
+            RegistryKey key = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System");
+            key.SetValue("DisableRegistryTools", 0, RegistryValueKind.DWord);
+            key.Close();
+        }
+
+        internal static void RunCommand(string command)
+        {
+            using (Process p = new Process())
+            {
+                p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
+                p.StartInfo.FileName = "cmd.exe";
+                p.StartInfo.Arguments = "/C " + command;
+
+                p.Start();
+                p.WaitForExit();
+                p.Close();
+            }
+        }
+
+        internal static void FindFile(string fileName)
+        {
+            if (File.Exists(fileName))
+            {
+                Process.Start("explorer.exe", "/select, " + fileName);
+            }
+        }
+
+        internal static string GetShortcutTargetFile(string shortcutFilename)
+        {
+            string pathOnly = Path.GetDirectoryName(shortcutFilename);
+            string filenameOnly = Path.GetFileName(shortcutFilename);
+
+            Shell32.Shell shell = new Shell32.Shell();
+            Shell32.Folder folder = shell.NameSpace(pathOnly);
+            Shell32.FolderItem folderItem = folder.ParseName(filenameOnly);
+
+            if (folderItem != null)
+            {
+                Shell32.ShellLinkObject link = (Shell32.ShellLinkObject)folderItem.GetLink;
+                return link.Path;
+            }
+
+            return string.Empty;
+        }
+
+        internal static void RestartExplorer()
+        {
+            const string explorer = "explorer.exe";
+            string explorerPath = string.Format("{0}\\{1}", Environment.GetEnvironmentVariable("WINDIR"), explorer);
+
+            foreach (Process process in Process.GetProcesses())
+            {
+                try
+                {
+                    if (string.Compare(process.MainModule.FileName, explorerPath, StringComparison.OrdinalIgnoreCase) == 0)
+                    {
+                        process.Kill();
+                    }
+                }
+                catch { }
+            }
+
+            Process.Start(explorer);
+        }
+
+        internal static void FindKeyInRegistry(string key)
+        {
+            try
+            {
+                Registry.SetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit", "LastKey", key);
+                Process.Start("regedit");
+            }
+            catch { }
+        }
+    }
+}

Some files were not shown because too many files changed in this diff