List:Commits« Previous MessageNext Message »
From:Mike Lischke Date:March 28 2011 11:56am
Subject:bzr commit into wex-installer-1.0 branch (mike.lischke:392)
View as plain text  
#At file:///D:/Work/MySQL/installer/ based on revid:mike.lischke@stripped

  392 Mike Lischke	2011-03-28
      - Product: moved state to string conversion from Installer page to the product itself where it belongs.
      - AllConfigOverview + InstallProgress: adjusted design simplify details text switching, better listview borders, non-jumping switch button.
      - InstallType: apply new installation path and data dir to all products in the active catalog (data dir only to the server package).
      - InstallType: reset ProposedInstalled only for those products not already installed.
      - Package: update only products for which an existing product was found.

    modified:
      WexInstaller.Core/InstallerPanel.Designer.cs
      WexInstaller.Core/InstallerPanel.resx
      WexInstaller.Core/Product.cs
      WexInstaller/InstallWizard/AllConfigOverview.Designer.cs
      WexInstaller/InstallWizard/AllConfigOverview.cs
      WexInstaller/InstallWizard/AllConfigOverview.resx
      WexInstaller/InstallWizard/Features.Designer.cs
      WexInstaller/InstallWizard/Features.cs
      WexInstaller/InstallWizard/Features.resx
      WexInstaller/InstallWizard/InstallProgressPanel.Designer.cs
      WexInstaller/InstallWizard/InstallProgressPanel.cs
      WexInstaller/InstallWizard/InstallProgressPanel.resx
      WexInstaller/InstallWizard/InstallType.cs
=== modified file 'WexInstaller.Core/InstallerPanel.Designer.cs'
=== modified file 'WexInstaller.Core/InstallerPanel.Designer.cs'
--- a/WexInstaller.Core/InstallerPanel.Designer.cs	2011-03-25 17:32:28 +0000
+++ b/WexInstaller.Core/InstallerPanel.Designer.cs	2011-03-28 11:56:39 +0000
@@ -31,11 +31,11 @@
         {
           System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(InstallerPanel));
           this.captionLabel = new System.Windows.Forms.Label();
-          this.pictureBox1 = new System.Windows.Forms.PictureBox();
+          this.topDivider = new System.Windows.Forms.PictureBox();
           this.subCaptionLabel = new System.Windows.Forms.Label();
-          this.pictureBox2 = new System.Windows.Forms.PictureBox();
-          ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
-          ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
+          this.bottomDivider = new System.Windows.Forms.PictureBox();
+          ((System.ComponentModel.ISupportInitialize)(this.topDivider)).BeginInit();
+          ((System.ComponentModel.ISupportInitialize)(this.bottomDivider)).BeginInit();
           this.SuspendLayout();
           // 
           // captionLabel
@@ -43,37 +43,37 @@
           resources.ApplyResources(this.captionLabel, "captionLabel");
           this.captionLabel.Name = "captionLabel";
           // 
-          // pictureBox1
+          // topDivider
           // 
-          this.pictureBox1.Image = global::WexInstaller.Core.Properties.Resources.linkpanel_divider;
-          resources.ApplyResources(this.pictureBox1, "pictureBox1");
-          this.pictureBox1.Name = "pictureBox1";
-          this.pictureBox1.TabStop = false;
+          this.topDivider.Image = global::WexInstaller.Core.Properties.Resources.linkpanel_divider;
+          resources.ApplyResources(this.topDivider, "topDivider");
+          this.topDivider.Name = "topDivider";
+          this.topDivider.TabStop = false;
           // 
           // subCaptionLabel
           // 
           resources.ApplyResources(this.subCaptionLabel, "subCaptionLabel");
           this.subCaptionLabel.Name = "subCaptionLabel";
           // 
-          // pictureBox2
+          // bottomDivider
           // 
-          resources.ApplyResources(this.pictureBox2, "pictureBox2");
-          this.pictureBox2.Image = global::WexInstaller.Core.Properties.Resources.BottomDivider;
-          this.pictureBox2.Name = "pictureBox2";
-          this.pictureBox2.TabStop = false;
+          resources.ApplyResources(this.bottomDivider, "bottomDivider");
+          this.bottomDivider.Image = global::WexInstaller.Core.Properties.Resources.BottomDivider;
+          this.bottomDivider.Name = "bottomDivider";
+          this.bottomDivider.TabStop = false;
           // 
           // InstallerPanel
           // 
           resources.ApplyResources(this, "$this");
           this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
           this.BackColor = System.Drawing.SystemColors.Window;
-          this.Controls.Add(this.pictureBox2);
+          this.Controls.Add(this.bottomDivider);
           this.Controls.Add(this.subCaptionLabel);
-          this.Controls.Add(this.pictureBox1);
+          this.Controls.Add(this.topDivider);
           this.Controls.Add(this.captionLabel);
           this.Name = "InstallerPanel";
-          ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
-          ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
+          ((System.ComponentModel.ISupportInitialize)(this.topDivider)).EndInit();
+          ((System.ComponentModel.ISupportInitialize)(this.bottomDivider)).EndInit();
           this.ResumeLayout(false);
           this.PerformLayout();
 
@@ -82,8 +82,8 @@
         #endregion
 
         public System.Windows.Forms.Label captionLabel;
-        private System.Windows.Forms.PictureBox pictureBox1;
+        private System.Windows.Forms.PictureBox topDivider;
         public System.Windows.Forms.Label subCaptionLabel;
-        private System.Windows.Forms.PictureBox pictureBox2;
+        private System.Windows.Forms.PictureBox bottomDivider;
     }
 }

=== modified file 'WexInstaller.Core/InstallerPanel.resx'
--- a/WexInstaller.Core/InstallerPanel.resx	2011-03-25 17:32:28 +0000
+++ b/WexInstaller.Core/InstallerPanel.resx	2011-03-28 11:56:39 +0000
@@ -156,31 +156,31 @@
   <data name="&gt;&gt;captionLabel.ZOrder" xml:space="preserve">
     <value>3</value>
   </data>
-  <metadata name="pictureBox1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+  <metadata name="topDivider.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
-  <data name="pictureBox1.Location" type="System.Drawing.Point, System.Drawing">
+  <data name="topDivider.Location" type="System.Drawing.Point, System.Drawing">
     <value>26, 56</value>
   </data>
-  <data name="pictureBox1.Size" type="System.Drawing.Size, System.Drawing">
+  <data name="topDivider.Size" type="System.Drawing.Size, System.Drawing">
     <value>520, 7</value>
   </data>
-  <data name="pictureBox1.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
+  <data name="topDivider.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
     <value>StretchImage</value>
   </data>
-  <data name="pictureBox1.TabIndex" type="System.Int32, mscorlib">
+  <data name="topDivider.TabIndex" type="System.Int32, mscorlib">
     <value>1</value>
   </data>
-  <data name="&gt;&gt;pictureBox1.Name" xml:space="preserve">
-    <value>pictureBox1</value>
+  <data name="&gt;&gt;topDivider.Name" xml:space="preserve">
+    <value>topDivider</value>
   </data>
-  <data name="&gt;&gt;pictureBox1.Type" xml:space="preserve">
+  <data name="&gt;&gt;topDivider.Type" xml:space="preserve">
     <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="&gt;&gt;pictureBox1.Parent" xml:space="preserve">
+  <data name="&gt;&gt;topDivider.Parent" xml:space="preserve">
     <value>$this</value>
   </data>
-  <data name="&gt;&gt;pictureBox1.ZOrder" xml:space="preserve">
+  <data name="&gt;&gt;topDivider.ZOrder" xml:space="preserve">
     <value>2</value>
   </data>
   <metadata name="subCaptionLabel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
@@ -219,37 +219,37 @@
   <data name="&gt;&gt;subCaptionLabel.ZOrder" xml:space="preserve">
     <value>1</value>
   </data>
-  <metadata name="pictureBox2.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+  <metadata name="bottomDivider.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
-  <data name="pictureBox2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
+  <data name="bottomDivider.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
     <value>Bottom</value>
   </data>
-  <data name="pictureBox2.Location" type="System.Drawing.Point, System.Drawing">
+  <data name="bottomDivider.Location" type="System.Drawing.Point, System.Drawing">
     <value>0, 502</value>
   </data>
-  <data name="pictureBox2.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
+  <data name="bottomDivider.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
     <value>28, 0, 0, 0</value>
   </data>
-  <data name="pictureBox2.Size" type="System.Drawing.Size, System.Drawing">
+  <data name="bottomDivider.Size" type="System.Drawing.Size, System.Drawing">
     <value>566, 1</value>
   </data>
-  <data name="pictureBox2.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
+  <data name="bottomDivider.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
     <value>AutoSize</value>
   </data>
-  <data name="pictureBox2.TabIndex" type="System.Int32, mscorlib">
+  <data name="bottomDivider.TabIndex" type="System.Int32, mscorlib">
     <value>3</value>
   </data>
-  <data name="&gt;&gt;pictureBox2.Name" xml:space="preserve">
-    <value>pictureBox2</value>
+  <data name="&gt;&gt;bottomDivider.Name" xml:space="preserve">
+    <value>bottomDivider</value>
   </data>
-  <data name="&gt;&gt;pictureBox2.Type" xml:space="preserve">
+  <data name="&gt;&gt;bottomDivider.Type" xml:space="preserve">
     <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="&gt;&gt;pictureBox2.Parent" xml:space="preserve">
+  <data name="&gt;&gt;bottomDivider.Parent" xml:space="preserve">
     <value>$this</value>
   </data>
-  <data name="&gt;&gt;pictureBox2.ZOrder" xml:space="preserve">
+  <data name="&gt;&gt;bottomDivider.ZOrder" xml:space="preserve">
     <value>0</value>
   </data>
   <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">

=== modified file 'WexInstaller.Core/Product.cs'
--- a/WexInstaller.Core/Product.cs	2011-03-25 17:32:28 +0000
+++ b/WexInstaller.Core/Product.cs	2011-03-28 11:56:39 +0000
@@ -95,7 +95,7 @@
         {
           CurrentState = ProductState.CurrentlyInstalled;
           string path = GetInstalledProductRegistryKey("Location");
-          if (path.EndsWith("\\") || path.EndsWith("/"))
+          if (!string.IsNullOrEmpty(path) && (path.EndsWith("\\") || path.EndsWith("/")))
             path = path.Remove(path.Length - 1);
 
           InstallationPath = Path.GetDirectoryName(path);
@@ -235,6 +235,90 @@
     [XmlIgnore]
     public ProductState CurrentState { get; private set; }
 
+    public static string StateAsString(ProductState s)
+    {
+      string result = null;
+
+      switch (s)
+      {
+        case ProductState.Unknown:
+          result = String.Empty;
+          break;
+        case ProductState.WebRemote:
+          result = "To be downloaded.";
+          break;
+        case ProductState.FoundLocal:
+          result = "To be installed.";
+          break;
+        case ProductState.WillPerformUpgrade:
+          result = "To be upgraded.";
+          break;
+        case ProductState.CurrentlyInstalled:
+          result = "Installed locally.";
+          break;
+        case ProductState.DownloadStarted:
+          result = "Download started.";
+          break;
+        case ProductState.DownloadInProgress:
+          result = "Downloading.";
+          break;
+        case ProductState.DownloadSuccess:
+          result = "Download success.";
+          break;
+        case ProductState.DownloadError:
+          result = "Download failed.";
+          break;
+        case ProductState.DownloadNoMirror:
+          result = "No Mirror Found";
+          break;
+        case ProductState.InstallStarted:
+          result = "Install started.";
+          break;
+        case ProductState.InstallInProgress:
+          result = "Installing.";
+          break;
+        case ProductState.InstallSuccess:
+          result = "Install success.";
+          break;
+        case ProductState.InstallError:
+          result = "Install error.";
+          break;
+        case ProductState.RemoveStarted:
+          result = "Remove started.";
+          break;
+        case ProductState.RemoveInProgress:
+          result = "Removing.";
+          break;
+        case ProductState.RemoveSuccess:
+          result = "Successfully removed.";
+          break;
+        case ProductState.RemoveFailed:
+          result = "Failed to remove.";
+          break;
+        case ProductState.UpdateStarted:
+          result = "Update started.";
+          break;
+        case ProductState.UpdateInProgress:
+          result = "Updating.";
+          break;
+        case ProductState.UpdateSuccess:
+          result = "Update success.";
+          break;
+        case ProductState.UpdateFailed:
+          result = "Update failed.";
+          break;
+        case ProductState.DownloadCancelled:
+          result = "Download canceled";
+          break;
+        default:
+          result = "Wrong product state";
+          break;
+      }
+
+      return result;
+    }
+
+
     [XmlIgnore]
     private Queue<string> MirrorList { get; set; }
 
@@ -556,7 +640,11 @@
       {
         if (Installed)
           if (ProposedInstalled)
-            type = ChangeType.Update;
+          {
+            // Upgrade only if there is a related product which we actually can upgrade.
+            if (CurrentState == ProductState.WillPerformUpgrade)
+              type = ChangeType.Update;
+          }
           else
             type = ChangeType.Removal;
         else

=== modified file 'WexInstaller/InstallWizard/AllConfigOverview.Designer.cs'
--- a/WexInstaller/InstallWizard/AllConfigOverview.Designer.cs	2011-03-25 17:32:28 +0000
+++ b/WexInstaller/InstallWizard/AllConfigOverview.Designer.cs	2011-03-28 11:56:39 +0000
@@ -30,17 +30,20 @@
         {
           this.components = new System.ComponentModel.Container();
           System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AllConfigOverview));
+          this.configStateImages = new System.Windows.Forms.ImageList(this.components);
+          this.enableDetails = new System.Windows.Forms.Button();
+          this.detailsText = new System.Windows.Forms.TextBox();
+          this.lastError = new System.Windows.Forms.Label();
+          this.detailsPanel = new System.Windows.Forms.Panel();
+          this.spacer = new System.Windows.Forms.Label();
+          this.borderPanel = new System.Windows.Forms.Panel();
           this.productList = new WexInstaller.Core.ListViewWex();
           this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
           this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
           this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
           this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
-          this.configStateImages = new System.Windows.Forms.ImageList(this.components);
-          this.enableDetails = new System.Windows.Forms.Button();
-          this.detailsText = new System.Windows.Forms.TextBox();
-          this.lastError = new System.Windows.Forms.Label();
-          this.detailsPanel = new System.Windows.Forms.Panel();
           this.detailsPanel.SuspendLayout();
+          this.borderPanel.SuspendLayout();
           this.SuspendLayout();
           // 
           // subCaptionLabel
@@ -50,51 +53,6 @@
           this.subCaptionLabel.Text = "The install is going to configure the following products.  Press [Next>] to start" +
               " the configuration of the highlighted product.";
           // 
-          // productList
-          // 
-          this.productList.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                      | System.Windows.Forms.AnchorStyles.Left)
-                      | System.Windows.Forms.AnchorStyles.Right)));
-          this.productList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
-            this.columnHeader1,
-            this.columnHeader2,
-            this.columnHeader3,
-            this.columnHeader4});
-          this.productList.GhostProductImages = true;
-          this.productList.Location = new System.Drawing.Point(3, 3);
-          this.productList.Name = "productList";
-          this.productList.OwnerDraw = true;
-          this.productList.ProgressBar = null;
-          this.productList.ProgressBarCol = 0;
-          this.productList.ProgressBarRow = 0;
-          this.productList.Scrollable = false;
-          this.productList.Size = new System.Drawing.Size(507, 335);
-          this.productList.StateImageList = this.configStateImages;
-          this.productList.TabIndex = 3;
-          this.productList.UseCompatibleStateImageBehavior = false;
-          this.productList.View = System.Windows.Forms.View.Details;
-          this.productList.LinkActivate += new System.EventHandler<WexInstaller.Core.LinkActivationEventArgs>(this.productList_LinkActivate);
-          // 
-          // columnHeader1
-          // 
-          this.columnHeader1.Text = "";
-          this.columnHeader1.Width = 22;
-          // 
-          // columnHeader2
-          // 
-          this.columnHeader2.Text = "Product";
-          this.columnHeader2.Width = 131;
-          // 
-          // columnHeader3
-          // 
-          this.columnHeader3.Text = "Action to be performed";
-          this.columnHeader3.Width = 268;
-          // 
-          // columnHeader4
-          // 
-          this.columnHeader4.Text = "Progress";
-          this.columnHeader4.Width = 79;
-          // 
           // configStateImages
           // 
           this.configStateImages.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("configStateImages.ImageStream")));
@@ -107,24 +65,27 @@
           // 
           this.enableDetails.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
           this.enableDetails.BackColor = System.Drawing.SystemColors.Control;
-          this.enableDetails.Location = new System.Drawing.Point(0, 346);
+          this.enableDetails.Location = new System.Drawing.Point(26, 465);
           this.enableDetails.Name = "enableDetails";
           this.enableDetails.Size = new System.Drawing.Size(89, 23);
           this.enableDetails.TabIndex = 4;
-          this.enableDetails.Text = "Show Details";
+          this.enableDetails.Text = "&Show Details >";
           this.enableDetails.UseVisualStyleBackColor = false;
           this.enableDetails.Click += new System.EventHandler(this.enableDetails_Click);
           // 
           // detailsText
           // 
           this.detailsText.BackColor = System.Drawing.SystemColors.ControlLightLight;
-          this.detailsText.Location = new System.Drawing.Point(3, 192);
+          this.detailsText.Dock = System.Windows.Forms.DockStyle.Bottom;
+          this.detailsText.Location = new System.Drawing.Point(0, 170);
+          this.detailsText.Margin = new System.Windows.Forms.Padding(0);
           this.detailsText.Multiline = true;
           this.detailsText.Name = "detailsText";
           this.detailsText.ReadOnly = true;
           this.detailsText.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
-          this.detailsText.Size = new System.Drawing.Size(513, 174);
+          this.detailsText.Size = new System.Drawing.Size(520, 174);
           this.detailsText.TabIndex = 10;
+          this.detailsText.Visible = false;
           // 
           // lastError
           // 
@@ -132,34 +93,105 @@
                       | System.Windows.Forms.AnchorStyles.Right)));
           this.lastError.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
           this.lastError.ForeColor = System.Drawing.Color.Red;
-          this.lastError.Location = new System.Drawing.Point(95, 346);
+          this.lastError.Location = new System.Drawing.Point(121, 465);
           this.lastError.Name = "lastError";
-          this.lastError.Size = new System.Drawing.Size(415, 23);
+          this.lastError.Size = new System.Drawing.Size(419, 23);
           this.lastError.TabIndex = 11;
           // 
           // detailsPanel
           // 
+          this.detailsPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+                      | System.Windows.Forms.AnchorStyles.Left)
+                      | System.Windows.Forms.AnchorStyles.Right)));
           this.detailsPanel.BackColor = System.Drawing.SystemColors.Window;
-          this.detailsPanel.Controls.Add(this.enableDetails);
+          this.detailsPanel.Controls.Add(this.borderPanel);
+          this.detailsPanel.Controls.Add(this.spacer);
           this.detailsPanel.Controls.Add(this.detailsText);
-          this.detailsPanel.Controls.Add(this.productList);
-          this.detailsPanel.Controls.Add(this.lastError);
-          this.detailsPanel.Location = new System.Drawing.Point(28, 115);
+          this.detailsPanel.Location = new System.Drawing.Point(26, 115);
           this.detailsPanel.Name = "detailsPanel";
-          this.detailsPanel.Size = new System.Drawing.Size(513, 372);
+          this.detailsPanel.Size = new System.Drawing.Size(520, 344);
           this.detailsPanel.TabIndex = 12;
           // 
+          // spacer
+          // 
+          this.spacer.Dock = System.Windows.Forms.DockStyle.Bottom;
+          this.spacer.Location = new System.Drawing.Point(0, 164);
+          this.spacer.Name = "spacer";
+          this.spacer.Size = new System.Drawing.Size(520, 6);
+          this.spacer.TabIndex = 13;
+          this.spacer.Visible = false;
+          // 
+          // borderPanel
+          // 
+          this.borderPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(165)))), ((int)(((byte)(165)))), ((int)(((byte)(165)))));
+          this.borderPanel.Controls.Add(this.productList);
+          this.borderPanel.Dock = System.Windows.Forms.DockStyle.Fill;
+          this.borderPanel.Location = new System.Drawing.Point(0, 0);
+          this.borderPanel.Name = "borderPanel";
+          this.borderPanel.Padding = new System.Windows.Forms.Padding(1);
+          this.borderPanel.Size = new System.Drawing.Size(520, 164);
+          this.borderPanel.TabIndex = 14;
+          // 
+          // productList
+          // 
+          this.productList.BorderStyle = System.Windows.Forms.BorderStyle.None;
+          this.productList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+            this.columnHeader1,
+            this.columnHeader2,
+            this.columnHeader3,
+            this.columnHeader4});
+          this.productList.Dock = System.Windows.Forms.DockStyle.Fill;
+          this.productList.GhostProductImages = true;
+          this.productList.Location = new System.Drawing.Point(1, 1);
+          this.productList.Name = "productList";
+          this.productList.OwnerDraw = true;
+          this.productList.ProgressBar = null;
+          this.productList.ProgressBarCol = 0;
+          this.productList.ProgressBarRow = 0;
+          this.productList.Scrollable = false;
+          this.productList.Size = new System.Drawing.Size(518, 162);
+          this.productList.StateImageList = this.configStateImages;
+          this.productList.TabIndex = 3;
+          this.productList.UseCompatibleStateImageBehavior = false;
+          this.productList.View = System.Windows.Forms.View.Details;
+          this.productList.LinkActivate += new System.EventHandler<WexInstaller.Core.LinkActivationEventArgs>(this.productList_LinkActivate);
+          // 
+          // columnHeader1
+          // 
+          this.columnHeader1.Text = "";
+          this.columnHeader1.Width = 22;
+          // 
+          // columnHeader2
+          // 
+          this.columnHeader2.Text = "Product";
+          this.columnHeader2.Width = 131;
+          // 
+          // columnHeader3
+          // 
+          this.columnHeader3.Text = "Action to be performed";
+          this.columnHeader3.Width = 268;
+          // 
+          // columnHeader4
+          // 
+          this.columnHeader4.Text = "Progress";
+          this.columnHeader4.Width = 79;
+          // 
           // AllConfigOverview
           // 
           this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
           this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+          this.Controls.Add(this.enableDetails);
+          this.Controls.Add(this.lastError);
           this.Controls.Add(this.detailsPanel);
           this.Name = "AllConfigOverview";
           this.Controls.SetChildIndex(this.captionLabel, 0);
           this.Controls.SetChildIndex(this.subCaptionLabel, 0);
           this.Controls.SetChildIndex(this.detailsPanel, 0);
+          this.Controls.SetChildIndex(this.lastError, 0);
+          this.Controls.SetChildIndex(this.enableDetails, 0);
           this.detailsPanel.ResumeLayout(false);
           this.detailsPanel.PerformLayout();
+          this.borderPanel.ResumeLayout(false);
           this.ResumeLayout(false);
           this.PerformLayout();
 
@@ -177,5 +209,7 @@
         private System.Windows.Forms.ColumnHeader columnHeader4;
         private System.Windows.Forms.Label lastError;
         private System.Windows.Forms.Panel detailsPanel;
+        private System.Windows.Forms.Label spacer;
+        private System.Windows.Forms.Panel borderPanel;
     }
 }

=== modified file 'WexInstaller/InstallWizard/AllConfigOverview.cs'
--- a/WexInstaller/InstallWizard/AllConfigOverview.cs	2011-03-10 18:30:35 +0000
+++ b/WexInstaller/InstallWizard/AllConfigOverview.cs	2011-03-28 11:56:39 +0000
@@ -9,7 +9,6 @@
 {
   public partial class AllConfigOverview : InstallerPanel
   {
-    private bool showingDetails;
     private ListViewItem configuringItem;
     private ConfigurationEventHandler configuringItemHandler;
 
@@ -165,14 +164,9 @@
 
     private void enableDetails_Click(object sender, EventArgs e)
     {
-      showingDetails = !showingDetails;
-      enableDetails.Text = showingDetails ? "Hide Details" : "Show Details";
-      if (showingDetails)
-        detailsPanel.SetBounds(detailsPanel.Left, detailsPanel.Top,
-          detailsPanel.Width, detailsText.Top-detailsPanel.Top-5);
-      else
-        detailsPanel.SetBounds(detailsPanel.Left, detailsPanel.Top,
-          detailsPanel.Width, detailsText.Bottom - detailsPanel.Top + 2);
+      detailsText.Visible = !detailsText.Visible;
+      spacer.Visible = detailsText.Visible;
+      enableDetails.Text = detailsText.Visible ? "Hide Details" : "Show Details";
     }
 
     #region Event handling

=== modified file 'WexInstaller/InstallWizard/AllConfigOverview.resx'
--- a/WexInstaller/InstallWizard/AllConfigOverview.resx	2011-03-25 17:32:28 +0000
+++ b/WexInstaller/InstallWizard/AllConfigOverview.resx	2011-03-28 11:56:39 +0000
@@ -125,7 +125,7 @@
         AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
         LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
         ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADU
-        CgAAAk1TRnQBSQFMAgEBAwEAAXQBAAF0AQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+        CgAAAk1TRnQBSQFMAgEBAwEAAawBAAGsAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
         AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
         AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
         AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -175,6 +175,6 @@
 </value>
   </data>
   <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>73</value>
+    <value>47</value>
   </metadata>
 </root>
\ No newline at end of file

=== modified file 'WexInstaller/InstallWizard/Features.Designer.cs'
--- a/WexInstaller/InstallWizard/Features.Designer.cs	2011-03-25 17:32:28 +0000
+++ b/WexInstaller/InstallWizard/Features.Designer.cs	2011-03-28 11:56:39 +0000
@@ -186,10 +186,10 @@
           this.driveSpace.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
           this.driveSpace.BackColor = System.Drawing.Color.Transparent;
           this.driveSpace.Font = new System.Drawing.Font("Tahoma", 7F);
-          this.driveSpace.Location = new System.Drawing.Point(132, 456);
+          this.driveSpace.Location = new System.Drawing.Point(132, 452);
           this.driveSpace.Margin = new System.Windows.Forms.Padding(2);
           this.driveSpace.Name = "driveSpace";
-          this.driveSpace.Size = new System.Drawing.Size(373, 43);
+          this.driveSpace.Size = new System.Drawing.Size(373, 35);
           this.driveSpace.TabIndex = 9;
           // 
           // FeatureSelection

=== modified file 'WexInstaller/InstallWizard/Features.cs'
--- a/WexInstaller/InstallWizard/Features.cs	2011-03-25 17:32:28 +0000
+++ b/WexInstaller/InstallWizard/Features.cs	2011-03-28 11:56:39 +0000
@@ -207,6 +207,11 @@
           path = product.InstallationPath;
           break;
         }
+
+      // If no product is currently marked for installation use the normal program files folder.
+      if (string.IsNullOrEmpty(path))
+        path = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
+
       driveSpace.Calculate(path);
     }
 

=== modified file 'WexInstaller/InstallWizard/Features.resx'
--- a/WexInstaller/InstallWizard/Features.resx	2011-03-25 17:32:28 +0000
+++ b/WexInstaller/InstallWizard/Features.resx	2011-03-28 11:56:39 +0000
@@ -125,7 +125,7 @@
         AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
         LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
         ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAA4
-        KAAAAk1TRnQBSQFMAgEBBAEAAXgBAAF4AQABGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg
+        KAAAAk1TRnQBSQFMAgEBBAEAAYABAAGAAQABGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg
         AwABMAMAAQEBAAEgBgABSP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
         /wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/ADYAA+oB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
         AZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
@@ -137,165 +137,165 @@
         Af8BzAKZAf8BzAKZAf8BzAKZAf8BzAKZAf8DzAH/A+oB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
         AZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
         AZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wPMAf8BzAKZAf8BzAGZ
-        ASQB/wLMAVcB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
-        AZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
-        AZkB/wLMAVcB/wHMAZkBJAH/AcwCmQH/AcwBmQEkAf8CzAFXAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZ
-        Af8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZ
-        Af8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAFXAf8BzAGZASQB/wGkAqAB/wHMAZkBJAH/
-        AswBVwH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBVwH/AcwBmQEkAf8CzAFXAf8CzAGZ
-        Af8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZ
-        Af8CzAFXAf8CmQEkAf8CzAGZAf8BzAGZASQB/wLMAVcB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
-        AZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
-        AZkB/wLMAZkB/wLMAZkB/wLMAVcB/wLMAVcB/wLMAVcB/wHMAZkBJAH/ApkBVwH/AswBVwL/AewBzAH/
+        ASMB/wLMAVYB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
+        AZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
+        AZkB/wLMAVYB/wHMAZkBIwH/AcwCmQH/AcwBmQEjAf8CzAFWAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZ
+        Af8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZ
+        Af8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAFWAf8BzAGZASMB/wGkAqAB/wHMAZkBIwH/
+        AswBVgH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBVgH/AcwBmQEjAf8CzAFWAf8CzAGZ
+        Af8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZ
+        Af8CzAFWAf8CmQEjAf8CzAGZAf8BzAGZASMB/wLMAVYB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
+        AZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
+        AZkB/wLMAZkB/wLMAZkB/wLMAVYB/wLMAVYB/wLMAVYB/wHMAZkBIwH/ApkBVgH/AswBVgL/AewBzAH/
         AfABygGmAf8D6gH/AfABygGmAv8B7AHMAf8D6gX/AfABygGmBf8B8AHKAaYB/wPqAf8D6iL/AewBzAH/
-        AcwBmQEkAf8CmQFXAf8CzAFXBf8B8AHKAaYC/wHsAcwB/wHwAcoBpgL/AewBzAH/A/EC/wHsAcwB/wPq
+        AcwBmQEjAf8CmQFWAf8CzAFWBf8B8AHKAaYC/wHsAcwB/wHwAcoBpgL/AewBzAH/A/EC/wHsAcwB/wPq
         Av8B7AHMAf8D8QL/AewBzAL/AewBzAH/A+oB/wHwAcoBpgH/A/EC/wHsAcwC/wHsAcwB/wHwAcoBpgL/
-        AewBzAb/AewBzAH/AcwBmQEkAf8CmQFXAf8CzAFXAf8D6gn/A/EC/wHsAcwB/wHwAcoBpgL/AewBzAH/
-        AcwBmQFXAf8B8AHKAaYB/wPqAv8B7AHMAf8D6iL/AewBzAH/AcwBmQEkAf8CmQFXAf8CzAFXAf8D6gH/
+        AewBzAb/AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWAf8D6gn/A/EC/wHsAcwB/wHwAcoBpgL/AewBzAH/
+        AcwBmQFWAf8B8AHKAaYB/wPqAv8B7AHMAf8D6iL/AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWAf8D6gH/
         AfABygGmAf8D6gL/AewBzAH/AfABygGmAf8D8QH/AfABygGmAv8B7AHMAf8B8AHKAaYC/wHsAcwB/wPq
-        Af8B8AHKAaYC/wHsAcwB/wPqAf8D6gH/AfABygGmAv8B7AHMAf8D8QH/AfABygGmAf8CzAFXAv8B7AHM
-        Af8BzAGZASQB/wKZAVcB/wLMAVcC/wHsAcwB/wLMAVcB/wLMAVcB/wLMAVcB/wLMAVcB/wLMAVcC/wHs
-        AcwB/wHMAZkBJAH/AswBVwH/AswBVwH/AswBmQH/AswBVwH/A/Ee/wHsAcwB/wHMAZkBJAH/ApkBVwH/
-        AswBVwH/AswBmQH/AfABygGmAf8B8AHKAaYB/wLMAVcB/wLMAVcB/wLMAVcB/wLMAVcB/wLMAZkB/wLM
-        AVcB/wLMAZkB/wHMAZkBJAH/AswBVwH/AswBVwH/AfABygGmAf8B8AHKAaYB/wHwAcoBpgH/AswBVwH/
-        AswBVwH/AswBVwH/AfABygGmAv8B7AHMAf8BzAGZASQB/wKZAVcB/wLMAVcB/wLMAZkB/wLMAVcB/wHw
-        AcoBpgH/AswBmQH/AswBVwH/AswBVwH/AswBVwH/AswBmQH/AswBVwH/AswBmQH/AswBVwH/AswBmQL/
-        AewBzB7/AewBzAH/AcwBmQEkAf8CmQFXAf8CzAFXAf8CzAGZAf8B8AHKAaYB/wLMAVcB/wLMAVcB/wLM
-        AVcB/wLMAVcB/wHwAcoBpgH/AswBVwH/AfABygGmAf8CzAGZAf8CzAFXAf8CzAFXAf8CzAFXAf8CzAFX
-        Af8B8AHKAaYB/wHMAZkBJAH/AswBVwH/AswBmQH/AfABygGmAf8CzAFXAv8B7AHMAf8BzAGZAVcB/wKZ
-        AVcB/wLMAVcB/wHwAcoBpgH/AswBVwL/AewBzAH/AfABygGmAv8B7AHMAv8B7AHMAv8B7AHMAf8D8QL/
-        AewBzAH/AfABygGmAv8B7AHMAv8B7AHMAf8D8R7/AewBzAH/AcwBmQEkAf8CmQFXAf8CzAFXAf8B8AHK
+        Af8B8AHKAaYC/wHsAcwB/wPqAf8D6gH/AfABygGmAv8B7AHMAf8D8QH/AfABygGmAf8CzAFWAv8B7AHM
+        Af8BzAGZASMB/wKZAVYB/wLMAVYC/wHsAcwB/wLMAVYB/wLMAVYB/wLMAVYB/wLMAVYB/wLMAVYC/wHs
+        AcwB/wHMAZkBIwH/AswBVgH/AswBVgH/AswBmQH/AswBVgH/A/Ee/wHsAcwB/wHMAZkBIwH/ApkBVgH/
+        AswBVgH/AswBmQH/AfABygGmAf8B8AHKAaYB/wLMAVYB/wLMAVYB/wLMAVYB/wLMAVYB/wLMAZkB/wLM
+        AVYB/wLMAZkB/wHMAZkBIwH/AswBVgH/AswBVgH/AfABygGmAf8B8AHKAaYB/wHwAcoBpgH/AswBVgH/
+        AswBVgH/AswBVgH/AfABygGmAv8B7AHMAf8BzAGZASMB/wKZAVYB/wLMAVYB/wLMAZkB/wLMAVYB/wHw
+        AcoBpgH/AswBmQH/AswBVgH/AswBVgH/AswBVgH/AswBmQH/AswBVgH/AswBmQH/AswBVgH/AswBmQL/
+        AewBzB7/AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWAf8CzAGZAf8B8AHKAaYB/wLMAVYB/wLMAVYB/wLM
+        AVYB/wLMAVYB/wHwAcoBpgH/AswBVgH/AfABygGmAf8CzAGZAf8CzAFWAf8CzAFWAf8CzAFWAf8CzAFW
+        Af8B8AHKAaYB/wHMAZkBIwH/AswBVgH/AswBmQH/AfABygGmAf8CzAFWAv8B7AHMAf8BzAGZAVYB/wKZ
+        AVYB/wLMAVYB/wHwAcoBpgH/AswBVgL/AewBzAH/AfABygGmAv8B7AHMAv8B7AHMAv8B7AHMAf8D8QL/
+        AewBzAH/AfABygGmAv8B7AHMAv8B7AHMAf8D8R7/AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWAf8B8AHK
         AaYB/wLMAZkC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwB/wPxAf8B8AHKAaYC/wHsAcwC/wHs
         AcwC/wHsAcwC/wHsAcwC/wHsAcwB/wHwAcoBpgH/AfABygGmAv8B7AHMAv8B7AHMAv8B7AHMAf8B8AHK
-        AaYC/wHsAcwB/wHMAZkBJAH/ApkBVwH/AswBVwH/AfABygGmAf8CzAFXAf8CzAFXAf8B8AHKAaYC/wHs
+        AaYC/wHsAcwB/wHMAZkBIwH/ApkBVgH/AswBVgH/AfABygGmAf8CzAFWAf8CzAFWAf8B8AHKAaYC/wHs
         AcwB/wPqAv8B7AHMAv8B7AHMAf8B8AHKAaYB/wHwAcoBpgH/AfABygGmAv8B7AHMIv8B7AHMAf8BzAGZ
-        ASQB/wKZAVcB/wLMAVcB/wHwAcoBpgH/AswBVwH/AswBmQL/AewBzAL/AewBzAL/AewBzAL/AewBzAH/
-        AswBVwL/AewBzAH/AfABygGmAf8CzAGZAf8CzAGZAv8B7AHMAf8B8AHKAaYC/wHsAcwB/wHwAcoBpgH/
-        A+oB/wHwAcoBpgL/AewBzAL/AewBzAL/AewBzAH/AcwBmQEkAf8CmQFXAf8CzAFXAf8D8QL/AewBzAL/
-        AewBzAH/AfABygGmAf8BzAP/AcwD/wHGAdYB7wH/AcwD/wHWAucu/wHsAcwB/wHMAZkBJAH/ApkBVwH/
-        AswBVwX/A+MC/wHsAcwB/wHwAcoBpgH/AcwD/wHMA/8BxgHWAe8B/wHMA/8BzDD/AewBzAH/AcwBmQEk
-        Af8CmQFXAf8CzAFXAf8D8QH/A+MB/wPjAf8B8AHKAaYB/wHMA/8BzAP/AcYB1gHvAf8BzAP/AdYC5wH/
-        A/Eq/wHsAcwB/wHMAZkBJAH/ApkBVwH/AswBVwH/A/EB/wPjAv8B7AHMAf8B8AHKAaYB/wHMA/8BzAP/
-        AcYB1gHvAf8B1gLnAf8BzAP/A/Eq/wHsAcwB/wHMAZkBJAH/ApkBVwH/AswBVwH/AfABygGmAf8CzAGZ
+        ASMB/wKZAVYB/wLMAVYB/wHwAcoBpgH/AswBVgH/AswBmQL/AewBzAL/AewBzAL/AewBzAL/AewBzAH/
+        AswBVgL/AewBzAH/AfABygGmAf8CzAGZAf8CzAGZAv8B7AHMAf8B8AHKAaYC/wHsAcwB/wHwAcoBpgH/
+        A+oB/wHwAcoBpgL/AewBzAL/AewBzAL/AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWAf8D8QL/AewBzAL/
+        AewBzAH/AfABygGmAf8BzAP/AcwD/wHGAdYB7wH/AcwD/wHWAucu/wHsAcwB/wHMAZkBIwH/ApkBVgH/
+        AswBVgX/A+MC/wHsAcwB/wHwAcoBpgH/AcwD/wHMA/8BxgHWAe8B/wHMA/8BzDD/AewBzAH/AcwBmQEj
+        Af8CmQFWAf8CzAFWAf8D8QH/A+MB/wPjAf8B8AHKAaYB/wHMA/8BzAP/AcYB1gHvAf8BzAP/AdYC5wH/
+        A/Eq/wHsAcwB/wHMAZkBIwH/ApkBVgH/AswBVgH/A/EB/wPjAv8B7AHMAf8B8AHKAaYB/wHMA/8BzAP/
+        AcYB1gHvAf8B1gLnAf8BzAP/A/Eq/wHsAcwB/wHMAZkBIwH/ApkBVgH/AswBVgH/AfABygGmAf8CzAGZ
         Af8CzAGZAf8D1wH/AZkBzAL/AZkBzAL/AZkBzAL/AcYB1gHvAf8B8AH7Hv8D8QL/AewBzAr/AewBzAH/
-        AcwBmQEkAf8CmQFXAf8CzAFXAf8B8AHKAaYB/wLMAZkB/wLMAZkB/wPXAf8BmQHMAv8BmQHMAv8BmQHM
-        Av8BxgHWAe8B/wHwAfsv/wHsAcwB/wHMAZkBJAH/ApkBVwH/AswBVwH/AfABygGmAf8CzAGZAf8CzAGZ
-        Af8D1wH/AZkBzAL/AZkBzAL/AZkBzAL/AcYB1gHvAf8B8AH7L/8B7AHMAf8BzAGZASQB/wHMAZkBVwH/
-        AswBVwH/AfABygGmAf8CzAGZAf8CzAGZAf8D1wH/AZkBzAL/AZkBzAL/AZkBzAL/AcYB1gHvAf8B8AH7
-        L/8B7AHMAf8BzAGZASQB/wKZAVcB/wLMAVcR/wHwAfsC/wHwAfsC/wHwAfsC/wHwAfse/wHwAcoBpgH/
-        AfABygGmAf8D8Qr/AewBzAH/AcwBmQEkAf8CmQFXAf8CzAFXEf8B8AH7Av8B8AH7Av8B8AH7Av8B8AH7
-        M/8B7AHMAf8BzAGZASQB/wKZAVcB/wLMAVcR/wHwAfsC/wHwAfsC/wHwAfsC/wHwAfsz/wHsAcwB/wHM
-        AZkBJAH/AcwBmQFXAf8CzAFXEf8B8AH7Av8B8AH7Av8B8AH7Av8B8AH7M/8B7AHMAf8BzAGZASQB/wKZ
-        AVcC/wHMAVc5/wHwAcoBpgH/AfABygGmEv8B7AHMAf8BzAGZASQB/wKZAVcC/wHMAVdS/wHsAcwB/wHM
-        AZkBJAH/ApkBVwL/AcwBVxn/A90B/wHwAcoBpgH/AfABygGmAf8D6gX/A9cB/wPdAf8D6hr/AewBzAH/
-        AcwBmQEkAf8BzAGZAVcC/wHMAVcJ/wPxAv8B7AHMAf8D6hH/A/EC/wHsAcwB/wPxEf8D6gL/AewBzAH/
-        A/EG/wHsAcwB/wHMAZkBJAH/AcwBmQFXAv8BzAFXIv8B7AHMAf8D8RL/AewBzAH/AfABygGmAf8CzAGZ
-        Af8D6gr/AewBzAH/AcwBmQEkAf8BzAGZAVcC/wHMAVcB/wPxAf8D8Sn/A/EC/wHsAcwC/wHsAcwC/wHs
-        AcwC/wHsAcwB/wPxCv8B7AHMAf8BzAGZASQB/wKZAVcC/wHMAVcV/wLMAZkB/wLMAZkB/wLMAZkB/wLM
-        AVcC/wHsAcwB/wPqAf8CzAFXAf8CzAGZAf8CzAGZAf8CzAGZAf8D6hL/AewBzAH/AcwBmQEkAf8BzAGZ
-        AVcC/wHMAVcK/wHsAcwB/wHMAZkBVwH/AcwBmQFXAf8BzAGZAVcB/wLMAZkB/wPjAf8D4wH/AswBmQH/
-        AcwBmQEkAf8CzAFXAf8D4wH/A+MB/wLMAZkB/wHMAZkBVwH/AcwBmQFXAf8BzAGZAVcC/wHsAcwG/wHs
-        AcwB/wHMAZkBJAH/ApkBVwL/AcwBVxX/AfABygGmAf8B8AHKAaYB/wHwAcoBpgL/AewBzBX/A+MB/wHw
-        AcoBpgL/AewBzA7/AewBzAH/AcwBmQEkAf8CmQFXAv8BzAFXAf8B8AHKAaYB/wLMAZkB/wHwAcoBpiL/
-        AewBzAH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBVwH/AfABygGmAv8B7AHMAf8D6gL/AewBzAH/
-        AcwBmQEkAf8CmQFXAv8BzAFXFf8CzAGZAf8CzAFXAf8CzAFXAf8CzAFXAf8D4wX/AswBVwH/AswBVwH/
-        AswBVwH/AswBVwH/A+MS/wHsAcwB/wHMAZkBJAH/AcwBmQFXAv8BzAFXDv8B7AHMAf8B8AHKAaYB/wHM
-        AZkBVwH/AZkBVwEkAf8BmQFXASQB/wKZASQB/wGZAVcBJAH/AcwBmQFXAf8BmQFXASQB/wGZAVcBJAH/
-        AZkBVwEkAf8BmQFXASQB/wHMAZkBVwH/AfABygGmAv8B7AHMCv8B7AHMAf8BzAGZASQB/wKZAVcC/wHM
-        AVcR/wPqAf8CzAGZAf8BzAGZAVcB/wLMAZkR/wPxAf8BzAGZAVcB/wLMAZkB/wPxEv8B7AHMAf8BzAGZ
-        ASQB/wKZAVcC/wHMAVcB/wPqAf8B8AHKAaYB/wHMAZkBVwH/A90Z/wPxAf8CzAFXAf8BzAGZAVcB/wHM
-        AZkBVwH/AcwBmQFXAf8BzAGZAVcB/wHMAZkBVwH/AcwBmQFXAf8BzAGZAVcB/wHMAZkBVwL/AewBzAH/
-        AcwBmQEkAf8CmQFXAv8BzAFXFf8B8AHKAaYB/wHMAZkBVwH/AcwBmQFXAf8BzAGZAVcB/wHMAZkBVwH/
-        AswBmQH/AcwBmQFXAf8BzAGZAVcB/wLMAVcB/wLMAVcB/wPxEv8B7AHMAf8BzAGZASQB/wHMAZkBVwL/
-        AcwBVxn/A+MB/wHMAZkBVwH/AcwBmQFXAf8B8AHKAaYF/wHwAcoBpgH/AcwBmQFXAf8BzAGZAVcB/wPj
-        Bf8D6gH/A/EK/wHsAcwB/wHMAZkBJAH/ApkBVwH/AswBVxH/AswBmQH/AfABygGmAf8CzAGZAf8D8RH/
-        AswBmQH/AfABygGmGv8B7AHMAf8BzAGZASQB/wKZAVcB/wLMAVcJ/wLMAZkB/wHMAZkBVwH/A/EN/wHw
-        AcoBpgH/AcwBmQFXAf8BzAGZAVcB/wHMAZkBJAH/AcwBmQEkAf8BzAGZASQB/wHMAZkBJAH/AcwBmQEk
-        Af8BzAGZASQB/wLMAZkB/wHwAcoBpgL/AewBzAL/AewBzAH/AcwBmQEkAf8CmQFXAf8CzAFXDf8D6gH/
-        A+oB/wHwAcoBpgH/AcwBmQEkAf8BzAGZASQB/wHMAZkBJAH/AcwBmQEkAf8BzAGZASQB/wHMAZkBJAH/
-        AcwBmQEkAf8BzAGZASQB/wHMAZkBVwH/A+MB/wPjAf8D8Qr/AewBzAH/AcwBmQEkAf8BzAGZAVcB/wLM
-        AVc5/wPxAf8B8AHKAaYC/wHsAcwO/wHsAcwB/wHMAZkBJAH/ApkBVwH/AswBVxH/AswBmQH/A9cB/wPx
-        Ef8D6gH/AswBVx7/AewBzAH/AcwBmQEkAf8CmQFXAf8CzAFXCf8D6gH/AcwBmQEkAf8BzAGZAVcJ/wHw
-        AcoBpgH/AcwBmQEkAf8CzAGZAv8B7AHMAf8BzAGZAVcB/wHMAZkBJAH/AcwBmQEkAf8BzAGZASQB/wHM
-        AZkBJAH/AcwBmQEkAf8BzAGZAVcB/wHMAZkBVwH/AswBmQL/AewBzAH/AcwBmQEkAf8CmQFXAf8CzAFX
-        Cf8D4wH/AcwBmQFXAf8BzAGZAVcB/wHMAZkBVwH/AcwBmQEkAf8BzAGZASQB/wHMAZkBJAH/AcwBmQEk
-        Af8BzAGZASQB/wHMAZkBJAH/AcwBmQEkAf8BzAGZASQB/wHMAZkBJAH/AcwBmQFXAf8BzAGZASQB/wLM
-        AZkK/wHsAcwB/wHMAZkBJAH/AcwBmQFXAf8CzAFXKf8D8QH/A+oJ/wPxAf8B8AHKAaYB/wHwAcoBpg7/
-        AewBzAH/AcwBmQEkAf8CmQFXAf8CzAFXEv8B7AHMAf8CzAGZFf8CzAGZAf8B8AHKAaYe/wHsAcwB/wHM
-        AZkBJAH/ApkBVwH/AswBVw3/AfABygGmAf8BmQFXAQAB/wHMAZkBVwH/AcwBmQFXAf8BmQFXASQB/wHM
-        AZkBVwr/AewBzAH/AcwBmQFXAf8CmQEkAf8CmQEkAf8CmQEkAf8CmQEkAf8CzAGZAv8B7AHMAf8D8QL/
-        AewBzAH/AcwBmQEkAf8CmQFXAf8CzAFXCv8B7AHMAf8BzAGZAVcB/wHMAZkBVwH/AcwBmQFXAf8BzAGZ
-        AVcB/wHMAZkBJAH/AcwBmQEkAf8BzAGZASQB/wHMAZkBJAH/ApkBJAH/ApkBJAH/ApkBJAH/ApkBJAH/
-        ApkBJAH/ApkBAAH/AcwBmQFXCv8B7AHMAf8BzAGZASQB/wKZAVcB/wLMAVci/wHsAcwB/wLMAZkB/wLM
-        AZkB/wPxCv8B7AHMAf8B8AHKAaYB/wPxDv8B7AHMAf8BzAGZASQB/wKZAVcB/wLMAVcR/wHwAcoBpgH/
-        AswBmRH/A/EB/wHMAZkBVwL/AewBzB7/AewBzAH/AcwBmQEkAf8CmQFXAf8CzAFXEf8B8AHKAaYB/wHM
-        AZkBVwH/AcwBmQFXAf8CzAGZAf8D8Q3/A/EC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwB/wPxCv8B7AHM
-        Af8BzAGZASQB/wKZAVcB/wLMAVcJ/wPqAf8CzAGZAf8CzAFXAf8BzAGZAVcB/wHMAZkBVwH/AcwBmQFX
-        Af8BzAGZAVcB/wHMAZkBVwH/AcwBmQFXAf8BzAGZAVcB/wHMAZkBVwH/AcwBmQFXAf8BzAGZAVcB/wHM
-        AZkBVwH/AcwBmQFXAf8B8AHKAaYK/wHsAcwB/wHMAZkBJAH/ApkBVwH/AswBVyH/AfABygGmAf8CzAGZ
-        Av8B7AHMCf8B8AHKAaYB/wHwAcoBpgH/A/ES/wHsAcwB/wHMAZkBJAH/ApkBVwH/AswBVwH/A/EJ/wPx
-        Af8BzAGZAVcB/wPqEf8CzAGZAf8CzAGZIv8B7AHMAf8BzAGZASQB/wKZAVcB/wLMAVcB/wPxEf8D8QH/
-        A/E2/wHsAcwB/wHMAZkBJAH/ApkBVwH/AswBVwH/A/EJ/wPqAf8D6gH/AfABygGmAf8BzAGZAVcB/wHM
-        AZkBJAH/AcwBmQEkAf8BzAGZASQB/wHMAZkBJAH/AcwBmQEkAf8BzAGZASQB/wHMAZkBJAH/AcwBmQFX
-        Av8B7AHMAv8B7AHMAf8D8Qr/AewBzAH/AcwBmQEkAf8CmQFXAf8CzAFXAf8D8R3/AfABygGmAv8B7AHM
-        Cf8D6gH/AcwBmQFXAf8D8Rb/AewBzAH/AcwBmQEkAf8CmQFXAf8CzAFXAf8D8QH/A/EF/wHwAcoBpgH/
-        AswBVwH/A/EC/wHsAcwJ/wLMAZkB/wLMAZkF/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QL/
-        AewBzAH/AcwBmQEkAf8CmQFXAf8CzAFXAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPx
-        Af8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EC/wHsAcwB/wHMAZkBJAH/
-        ApkBVwH/AswBVwH/A/EB/wPxAf8D8QH/A/EF/wLMAZkB/wKZASQB/wKZASQB/wKZASQB/wHMAZkBVwH/
-        AcwBmQFXAf8BzAGZASQB/wKZASQB/wKZASQB/wHMAZkBVwH/A+oF/wPxAf8D8QH/A/EC/wHsAcwB/wHM
-        AZkBJAH/ApkBVwH/AswBVwH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EF/wHwAcoBpgL/AewBzAn/
-        AswBmQH/AfABygGmBf8D8QH/A/EB/wPxAf8D8QH/A/EC/wHsAcwB/wHMAZkBJAH/ApkBVwH/AswBVwH/
+        AcwBmQEjAf8CmQFWAf8CzAFWAf8B8AHKAaYB/wLMAZkB/wLMAZkB/wPXAf8BmQHMAv8BmQHMAv8BmQHM
+        Av8BxgHWAe8B/wHwAfsv/wHsAcwB/wHMAZkBIwH/ApkBVgH/AswBVgH/AfABygGmAf8CzAGZAf8CzAGZ
+        Af8D1wH/AZkBzAL/AZkBzAL/AZkBzAL/AcYB1gHvAf8B8AH7L/8B7AHMAf8BzAGZASMB/wHMAZkBVgH/
+        AswBVgH/AfABygGmAf8CzAGZAf8CzAGZAf8D1wH/AZkBzAL/AZkBzAL/AZkBzAL/AcYB1gHvAf8B8AH7
+        L/8B7AHMAf8BzAGZASMB/wKZAVYB/wLMAVYR/wHwAfsC/wHwAfsC/wHwAfsC/wHwAfse/wHwAcoBpgH/
+        AfABygGmAf8D8Qr/AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWEf8B8AH7Av8B8AH7Av8B8AH7Av8B8AH7
+        M/8B7AHMAf8BzAGZASMB/wKZAVYB/wLMAVYR/wHwAfsC/wHwAfsC/wHwAfsC/wHwAfsz/wHsAcwB/wHM
+        AZkBIwH/AcwBmQFWAf8CzAFWEf8B8AH7Av8B8AH7Av8B8AH7Av8B8AH7M/8B7AHMAf8BzAGZASMB/wKZ
+        AVYC/wHMAVY5/wHwAcoBpgH/AfABygGmEv8B7AHMAf8BzAGZASMB/wKZAVYC/wHMAVZS/wHsAcwB/wHM
+        AZkBIwH/ApkBVgL/AcwBVhn/A90B/wHwAcoBpgH/AfABygGmAf8D6gX/A9cB/wPdAf8D6hr/AewBzAH/
+        AcwBmQEjAf8BzAGZAVYC/wHMAVYJ/wPxAv8B7AHMAf8D6hH/A/EC/wHsAcwB/wPxEf8D6gL/AewBzAH/
+        A/EG/wHsAcwB/wHMAZkBIwH/AcwBmQFWAv8BzAFWIv8B7AHMAf8D8RL/AewBzAH/AfABygGmAf8CzAGZ
+        Af8D6gr/AewBzAH/AcwBmQEjAf8BzAGZAVYC/wHMAVYB/wPxAf8D8Sn/A/EC/wHsAcwC/wHsAcwC/wHs
+        AcwC/wHsAcwB/wPxCv8B7AHMAf8BzAGZASMB/wKZAVYC/wHMAVYV/wLMAZkB/wLMAZkB/wLMAZkB/wLM
+        AVYC/wHsAcwB/wPqAf8CzAFWAf8CzAGZAf8CzAGZAf8CzAGZAf8D6hL/AewBzAH/AcwBmQEjAf8BzAGZ
+        AVYC/wHMAVYK/wHsAcwB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wLMAZkB/wPjAf8D4wH/AswBmQH/
+        AcwBmQEjAf8CzAFWAf8D4wH/A+MB/wLMAZkB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYC/wHsAcwG/wHs
+        AcwB/wHMAZkBIwH/ApkBVgL/AcwBVhX/AfABygGmAf8B8AHKAaYB/wHwAcoBpgL/AewBzBX/A+MB/wHw
+        AcoBpgL/AewBzA7/AewBzAH/AcwBmQEjAf8CmQFWAv8BzAFWAf8B8AHKAaYB/wLMAZkB/wHwAcoBpiL/
+        AewBzAH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBVgH/AfABygGmAv8B7AHMAf8D6gL/AewBzAH/
+        AcwBmQEjAf8CmQFWAv8BzAFWFf8CzAGZAf8CzAFWAf8CzAFWAf8CzAFWAf8D4wX/AswBVgH/AswBVgH/
+        AswBVgH/AswBVgH/A+MS/wHsAcwB/wHMAZkBIwH/AcwBmQFWAv8BzAFWDv8B7AHMAf8B8AHKAaYB/wHM
+        AZkBVgH/AZkBVgEjAf8BmQFWASMB/wKZASMB/wGZAVYBIwH/AcwBmQFWAf8BmQFWASMB/wGZAVYBIwH/
+        AZkBVgEjAf8BmQFWASMB/wHMAZkBVgH/AfABygGmAv8B7AHMCv8B7AHMAf8BzAGZASMB/wKZAVYC/wHM
+        AVYR/wPqAf8CzAGZAf8BzAGZAVYB/wLMAZkR/wPxAf8BzAGZAVYB/wLMAZkB/wPxEv8B7AHMAf8BzAGZ
+        ASMB/wKZAVYC/wHMAVYB/wPqAf8B8AHKAaYB/wHMAZkBVgH/A90Z/wPxAf8CzAFWAf8BzAGZAVYB/wHM
+        AZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgL/AewBzAH/
+        AcwBmQEjAf8CmQFWAv8BzAFWFf8B8AHKAaYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/
+        AswBmQH/AcwBmQFWAf8BzAGZAVYB/wLMAVYB/wLMAVYB/wPxEv8B7AHMAf8BzAGZASMB/wHMAZkBVgL/
+        AcwBVhn/A+MB/wHMAZkBVgH/AcwBmQFWAf8B8AHKAaYF/wHwAcoBpgH/AcwBmQFWAf8BzAGZAVYB/wPj
+        Bf8D6gH/A/EK/wHsAcwB/wHMAZkBIwH/ApkBVgH/AswBVhH/AswBmQH/AfABygGmAf8CzAGZAf8D8RH/
+        AswBmQH/AfABygGmGv8B7AHMAf8BzAGZASMB/wKZAVYB/wLMAVYJ/wLMAZkB/wHMAZkBVgH/A/EN/wHw
+        AcoBpgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBIwH/AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/AcwBmQEj
+        Af8BzAGZASMB/wLMAZkB/wHwAcoBpgL/AewBzAL/AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWDf8D6gH/
+        A+oB/wHwAcoBpgH/AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/
+        AcwBmQEjAf8BzAGZASMB/wHMAZkBVgH/A+MB/wPjAf8D8Qr/AewBzAH/AcwBmQEjAf8BzAGZAVYB/wLM
+        AVY5/wPxAf8B8AHKAaYC/wHsAcwO/wHsAcwB/wHMAZkBIwH/ApkBVgH/AswBVhH/AswBmQH/A9cB/wPx
+        Ef8D6gH/AswBVh7/AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWCf8D6gH/AcwBmQEjAf8BzAGZAVYJ/wHw
+        AcoBpgH/AcwBmQEjAf8CzAGZAv8B7AHMAf8BzAGZAVYB/wHMAZkBIwH/AcwBmQEjAf8BzAGZASMB/wHM
+        AZkBIwH/AcwBmQEjAf8BzAGZAVYB/wHMAZkBVgH/AswBmQL/AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFW
+        Cf8D4wH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/AcwBmQEj
+        Af8BzAGZASMB/wHMAZkBIwH/AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/AcwBmQFWAf8BzAGZASMB/wLM
+        AZkK/wHsAcwB/wHMAZkBIwH/AcwBmQFWAf8CzAFWKf8D8QH/A+oJ/wPxAf8B8AHKAaYB/wHwAcoBpg7/
+        AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWEv8B7AHMAf8CzAGZFf8CzAGZAf8B8AHKAaYe/wHsAcwB/wHM
+        AZkBIwH/ApkBVgH/AswBVg3/AfABygGmAf8BmQFWAQAB/wHMAZkBVgH/AcwBmQFWAf8BmQFWASMB/wHM
+        AZkBVgr/AewBzAH/AcwBmQFWAf8CmQEjAf8CmQEjAf8CmQEjAf8CmQEjAf8CzAGZAv8B7AHMAf8D8QL/
+        AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWCv8B7AHMAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZ
+        AVYB/wHMAZkBIwH/AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/ApkBIwH/ApkBIwH/ApkBIwH/ApkBIwH/
+        ApkBIwH/ApkBAAH/AcwBmQFWCv8B7AHMAf8BzAGZASMB/wKZAVYB/wLMAVYi/wHsAcwB/wLMAZkB/wLM
+        AZkB/wPxCv8B7AHMAf8B8AHKAaYB/wPxDv8B7AHMAf8BzAGZASMB/wKZAVYB/wLMAVYR/wHwAcoBpgH/
+        AswBmRH/A/EB/wHMAZkBVgL/AewBzB7/AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWEf8B8AHKAaYB/wHM
+        AZkBVgH/AcwBmQFWAf8CzAGZAf8D8Q3/A/EC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwB/wPxCv8B7AHM
+        Af8BzAGZASMB/wKZAVYB/wLMAVYJ/wPqAf8CzAGZAf8CzAFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFW
+        Af8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHM
+        AZkBVgH/AcwBmQFWAf8B8AHKAaYK/wHsAcwB/wHMAZkBIwH/ApkBVgH/AswBViH/AfABygGmAf8CzAGZ
+        Av8B7AHMCf8B8AHKAaYB/wHwAcoBpgH/A/ES/wHsAcwB/wHMAZkBIwH/ApkBVgH/AswBVgH/A/EJ/wPx
+        Af8BzAGZAVYB/wPqEf8CzAGZAf8CzAGZIv8B7AHMAf8BzAGZASMB/wKZAVYB/wLMAVYB/wPxEf8D8QH/
+        A/E2/wHsAcwB/wHMAZkBIwH/ApkBVgH/AswBVgH/A/EJ/wPqAf8D6gH/AfABygGmAf8BzAGZAVYB/wHM
+        AZkBIwH/AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/AcwBmQFW
+        Av8B7AHMAv8B7AHMAf8D8Qr/AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWAf8D8R3/AfABygGmAv8B7AHM
+        Cf8D6gH/AcwBmQFWAf8D8Rb/AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWAf8D8QH/A/EF/wHwAcoBpgH/
+        AswBVgH/A/EC/wHsAcwJ/wLMAZkB/wLMAZkF/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QL/
+        AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPx
+        Af8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EC/wHsAcwB/wHMAZkBIwH/
+        ApkBVgH/AswBVgH/A/EB/wPxAf8D8QH/A/EF/wLMAZkB/wKZASMB/wKZASMB/wKZASMB/wHMAZkBVgH/
+        AcwBmQFWAf8BzAGZASMB/wKZASMB/wKZASMB/wHMAZkBVgH/A+oF/wPxAf8D8QH/A/EC/wHsAcwB/wHM
+        AZkBIwH/ApkBVgH/AswBVgH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EF/wHwAcoBpgL/AewBzAn/
+        AswBmQH/AfABygGmBf8D8QH/A/EB/wPxAf8D8QH/A/EC/wHsAcwB/wHMAZkBIwH/ApkBVgH/AswBVgH/
         A/EB/wPxAv8B7AHMAf8CzAGZAv8B7AHMAf8B8AHKAaYB/wHwAcoBpgH/A+oB/wHwAcoBpgH/AswBmQH/
-        A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EC/wHsAcwB/wHMAZkBJAH/ApkBVwH/
-        AswBVwH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPx
-        Af8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAv8B7AHMAf8BzAGZASQB/wKZAVcB/wLMAVcB/wPxAf8D8QH/
-        A/EB/wPxAf8D8QH/AcwBmQFXAf8CmQEkAf8CmQEkAf8CmQEkAf8B8AHKAaYB/wPxAf8BzAGZAVcB/wKZ
-        ASQB/wKZASQB/wKZASQC/wHsAcwB/wPxAf8D8QH/A/EB/wPxAv8B7AHMAf8BzAGZASQB/wKZAVcB/wLM
-        AVcB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/AswBmQL/AewBzAb/AewBzAH/AswBmQH/
-        A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EC/wHsAcwB/wHMAZkBJAH/ApkBVwH/AswBVwH/A/EB/wPx
+        A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EC/wHsAcwB/wHMAZkBIwH/ApkBVgH/
+        AswBVgH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPx
+        Af8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAv8B7AHMAf8BzAGZASMB/wKZAVYB/wLMAVYB/wPxAf8D8QH/
+        A/EB/wPxAf8D8QH/AcwBmQFWAf8CmQEjAf8CmQEjAf8CmQEjAf8B8AHKAaYB/wPxAf8BzAGZAVYB/wKZ
+        ASMB/wKZASMB/wKZASMC/wHsAcwB/wPxAf8D8QH/A/EB/wPxAv8B7AHMAf8BzAGZASMB/wKZAVYB/wLM
+        AVYB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/AswBmQL/AewBzAb/AewBzAH/AswBmQH/
+        A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EC/wHsAcwB/wHMAZkBIwH/ApkBVgH/AswBVgH/A/EB/wPx
         Af8B8AHKAaYB/wPXAv8B7AHMAf8B8AHKAaYB/wHwAcoBpgH/AswBmQH/AfABygGmAv8B7AHMAf8D8QH/
-        A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QL/AewBzAH/ApkBJAH/ApkBVwH/AswBVwH/
+        A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QL/AewBzAH/ApkBIwH/ApkBVgH/AswBVgH/
         A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/
-        A/EB/wPxAf8D8QH/A/EB/wPxAv8B7AHMAf8BzAGZASQB/wKZAVcB/wLMAVcB/wPxAf8D8QH/A/EB/wPx
-        Av8B7AHMAf8BzAGZAVcB/wKZASQB/wGZAVcBJAH/AZkBVwEkAf8CzAGZAv8B7AHMAf8BmQFXASQB/wGZ
-        AVcBJAH/ApkBJAH/ApkBJAH/AfABygGmAf8D8QH/A/EB/wPxAf8D8QL/AewBzAH/ApkBJAH/ApkBVwH/
-        AswBVwH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wHwAcoBpgH/AfABygGmAf8B8AHKAaYB/wHw
-        AcoBpgH/AfABygGmAv8B7AHMAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QL/AewBzAH/ApkBJAH/
-        ApkBVwH/AswBVwL/AewBzAH/A/EB/wHwAcoBpgH/AswBmQH/AswBmQH/AfABygGmAv8B7AHMAf8D8QH/
+        A/EB/wPxAf8D8QH/A/EB/wPxAv8B7AHMAf8BzAGZASMB/wKZAVYB/wLMAVYB/wPxAf8D8QH/A/EB/wPx
+        Av8B7AHMAf8BzAGZAVYB/wKZASMB/wGZAVYBIwH/AZkBVgEjAf8CzAGZAv8B7AHMAf8BmQFWASMB/wGZ
+        AVYBIwH/ApkBIwH/ApkBIwH/AfABygGmAf8D8QH/A/EB/wPxAf8D8QL/AewBzAH/ApkBIwH/ApkBVgH/
+        AswBVgH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wHwAcoBpgH/AfABygGmAf8B8AHKAaYB/wHw
+        AcoBpgH/AfABygGmAv8B7AHMAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QL/AewBzAH/ApkBIwH/
+        ApkBVgH/AswBVgL/AewBzAH/A/EB/wHwAcoBpgH/AswBmQH/AswBmQH/AfABygGmAv8B7AHMAf8D8QH/
         A/EC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHs
-        AcwC/wHsAcwC/wHsAcwB/wKZASQB/wKZAVcB/wLMAVcC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHs
+        AcwC/wHsAcwC/wHsAcwB/wKZASMB/wKZAVYB/wLMAVYC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHs
         AcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHs
-        AcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwB/wKZASQB/wKZAVcB/wLMAVcC/wHs
+        AcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwB/wKZASMB/wKZAVYB/wLMAVYC/wHs
         AcwC/wHsAcwC/wHsAcwC/wHsAcwB/wPxAf8D8QL/AewBzAH/AfABygGmAf8CzAGZAv8B7AHMAv8B7AHM
         Af8CzAGZAf8CzAGZAf8B8AHKAaYC/wHsAcwB/wPxAv8B7AHMAv8B7AHMAv8B7AHMAv8B7AHMAv8B7AHM
-        Af8CmQEkAf8CmQFXAf8CzAFXAv8B7AHMAv8B7AHMAv8B7AHMAv8B7AHMAv8B7AHMAf8D8QL/AewBzAH/
+        Af8CmQEjAf8CmQFWAf8CzAFWAv8B7AHMAv8B7AHMAv8B7AHMAv8B7AHMAv8B7AHMAf8D8QL/AewBzAH/
         AswBmQH/AfABygGmAf8CzAGZAf8B8AHKAaYB/wPxAf8D8QL/AewBzAL/AewBzAL/AewBzAL/AewBzAL/
-        AewBzAL/AewBzAL/AewBzAL/AewBzAH/ApkBJAH/ApkBVwH/AcwBmQFXAf8D8Qb/AewBzAL/AewBzAL/
-        AewBzD7/AewBzAH/ApkBJAH/ApkBVwH/AcwBmQFXAf8D8U7/AewBzAH/ApkBJAH/ApkBVwH/AcwBmQFX
-        Af8D8U7/AewBzAH/ApkBJAH/ApkBVwH/AcwBmQFXAf8D8RX/A/EB/wPjAv8B7AHMLv8B7AHMAf8CmQEk
-        Af8BpAKgAf8CmQEkAf8BzAGZAVcB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
+        AewBzAL/AewBzAL/AewBzAL/AewBzAH/ApkBIwH/ApkBVgH/AcwBmQFWAf8D8Qb/AewBzAL/AewBzAL/
+        AewBzD7/AewBzAH/ApkBIwH/ApkBVgH/AcwBmQFWAf8D8U7/AewBzAH/ApkBIwH/ApkBVgH/AcwBmQFW
+        Af8D8U7/AewBzAH/ApkBIwH/ApkBVgH/AcwBmQFWAf8D8RX/A/EB/wPjAv8B7AHMLv8B7AHMAf8CmQEj
+        Af8BpAKgAf8CmQEjAf8BzAGZAVYB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
         AZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
-        AZkB/wLMAZkB/wLMAZkB/wHMAZkBVwH/ApkBJAH/AaQCoAH/ApkBJAH/AcwBmQFXAf8CzAGZAf8CzAGZ
+        AZkB/wLMAZkB/wLMAZkB/wHMAZkBVgH/ApkBIwH/AaQCoAH/ApkBIwH/AcwBmQFWAf8CzAGZAf8CzAGZ
         Af8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZ
-        Af8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8BzAGZAVcB/wKZASQB/wGk
-        AqAB/wKZASQB/wHMAZkBVwH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/
+        Af8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8BzAGZAVYB/wKZASMB/wGk
+        AqAB/wKZASMB/wHMAZkBVgH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/
         AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/
-        AswBmQH/AswBmQH/AcwBmQFXAf8CmQEkAf8BpAKgAf8CmQEkAf8BzAGZAVcB/wLMAZkB/wLMAZkB/wLM
+        AswBmQH/AswBmQH/AcwBmQFWAf8CmQEjAf8BpAKgAf8CmQEjAf8BzAGZAVYB/wLMAZkB/wLMAZkB/wLM
         AZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
-        AZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wHMAZkBVwH/ApkBJAX/AswBVwH/
-        AcwBmQFXAf8BzAGZAVcB/wHMAZkBVwH/AcwBmQFXAf8BzAGZAVcB/wHMAZkBVwH/AcwBmQFXAf8BzAGZ
-        AVcB/wHMAZkBVwH/AcwBmQFXAf8BzAGZAVcB/wHMAZkBVwH/AcwBmQFXAf8BzAGZAVcB/wHMAZkBVwH/
-        AcwBmQFXAf8BzAGZAVcB/wHMAZkBVwH/AcwBmQFXAf8BzAGZAVcB/wHMAZkBVwH/A8wF/wLMAVcB/wHM
-        AZkBVwH/AcwBmQFXAf8BzAGZAVcB/wHMAZkBVwH/AcwBmQFXAf8BzAGZAVcB/wHMAZkBVwH/AcwBmQFX
-        Af8BzAGZAVcB/wHMAZkBVwH/AcwBmQFXAf8BzAGZAVcB/wHMAZkBVwH/AcwBmQFXAf8BzAGZAVcB/wHM
-        AZkBVwH/AcwBmQFXAf8BzAGZAVcB/wHMAZkBVwH/AcwBmQFXAf8BzAGZAVcB/wHwAcoBpgH/A/EB/wLM
-        AVcB/wHMAZkBJAH/AcwBmQEkAf8BzAGZASQB/wHMAZkBJAH/AcwBmQEkAf8BzAGZASQB/wHMAZkBJAH/
-        AcwBmQEkAf8BzAGZASQB/wHMAZkBJAH/AcwBmQEkAf8BzAGZASQB/wHMAZkBJAH/AcwBmQEkAf8BzAGZ
-        ASQB/wHMAZkBJAH/AcwBmQEkAf8BzAGZASQB/wHMAZkBJAH/AcwBmQEkAf8BzAGZAVcB/wPMBf8CzAFX
-        Af8BzAGZAVcB/wHMAZkBVwH/AcwBmQFXAf8BzAGZAVcB/wHMAZkBVwH/AcwBmQFXAf8BzAGZAVcB/wHM
-        AZkBVwH/AcwBmQFXAf8BzAGZAVcB/wHMAZkBVwH/AcwBmQFXAf8BzAGZAVcB/wHMAZkBVwH/AcwBmQFX
-        Af8BzAGZAVcB/wHMAZkBVwH/AcwBmQFXAf8BzAGZAVcB/wHMAZkBVwH/AcwBmQFXAf8DzAH/AUIBTQE+
+        AZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wHMAZkBVgH/ApkBIwX/AswBVgH/
+        AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZ
+        AVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/
+        AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/A8wF/wLMAVYB/wHM
+        AZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFW
+        Af8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHM
+        AZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHwAcoBpgH/A/EB/wLM
+        AVYB/wHMAZkBIwH/AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/
+        AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/AcwBmQEjAf8BzAGZ
+        ASMB/wHMAZkBIwH/AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/AcwBmQEjAf8BzAGZAVYB/wPMBf8CzAFW
+        Af8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHM
+        AZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFW
+        Af8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8DzAH/AUIBTQE+
         BwABPgMAASgDAAFgAwABMAMAAQEBAAEBBQABQAECFgAD//8A/wBDAAs=
 </value>
   </data>
@@ -306,111 +306,108 @@
     <value>
         AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
         LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
-        ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABE
-        FgAAAk1TRnQBSQFMAgEBBAEAAWgBAAFoAQABFQEAARQBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFU
+        ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABC
+        FgAAAk1TRnQBSQFMAgEBBAEAAXABAAFwAQABFQEAARQBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFU
         AwABKAMAAQEBAAEgBQABgAE0/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
-        /wD/AP8A/wD/AP8A/wD/ADcAAwQBBVAAAwQBBUQAAzcBWgFYAlwB0QFSAV0BZwHtAVUBXQFnAe0DWwHI
-        A0cBgAMfASyUAANAAXABSwFMAUsBkAMFAQdIAANAAXABSwFMAUsBkAMFAQc8AAM2AVkBGAFHAYUB/wEA
-        ATsBhwH/ARUBTQGVAf8BFwFPAZkB/wEOAUgBlAH/AQ8BRAGMAf8BSAFiAWsB9gNOAZUDIwEziAABPwFA
-        AT8BbwFeAWEBXgHdAWEBZAFiAeABSwFMAUsBkAMFAQdAAAE/AUABPwFvAV4BYQFeAd0BYQFkAWIB4AFL
-        AUwBSwGQAwUBBzAAAwgBCwNHAYIBGwFJAYYB/wECAT4BiAH/AQoBQwGKAf8BFAFMAZQB/wEZAU8BmAH/
-        ARgBTgGWAf8BFwFNAZYB/wEPAUkBlQH/AQ0BQwGMAf8BMgFfAYAB+wNTAaUDNAFUAwcBCSsABAEBAgMD
-        AQQDHQEqAwABATwAAT8BQAE/AW4DYQHcAbAB1gG4Af0BvwH+AdQB/wFgAWQBYQHgAUsBTAFLAZADBQEH
-        OAABPwFAAT8BbgNhAdwBsAHWAbgB/QG/Af4B1AH/AWABZAFhAeABSwFMAUsBkAMFAQcoAAMHAQkDVAGm
-        AQABNgFxAf8BBAE/AYgB/wELAUMBiQH/AQoBQgGKAf8BFAFLAZQB/wEaAVABmQH/ARUBSAGNAf8BDAE5
-        AWoB/wERAUIBhQH/ARQBSwGUAf8BEAFIAZUB/wEIAUEBjQH/AQ4BQQGGAf8DOwFlIAADCwEPAzIBUQNJ
-        AYgDWgHAA2UB9AOWAf8DYQHiA0QBeTQAAz4BawNhAdoBpQHQAbAB/QGVAfgBtAH/AZcB+gG3Af8BqwH9
-        AcYB/wFgAWQBYQHgAUsBTAFLAY8DBQEHMAADPgFrA2EB2gGlAdABsAH9AZUB+AG0Af8BlwH6AbcB/wGr
-        Af0BxgH/AWABZAFhAeABUQFSAVEBoQNHAYIBTQJOAZYDQwF4AxYBHxgAAzoBYQEBATkBcgH/AQQBPAGC
-        Af8BCQE/AYUB/wEKAUMBigH/AQkBQgGJAf8BFAFLAZQB/wEXAUwBkwH/ARwBTgGSAf8BLwFfAaQB/wEd
-        AUsBiwH/ARABPQFuAf8BDQE9AXIB/wETAUgBkAH/AQ0BRgGRAf8DQAFwFAADFAEbAz8BbANXAbcClwGW
+        /wD/AP8A/wD/AP8A/wD/ADcAAwQBBVAAAwQBBUQAAzcBWgFYAlwB0QFTAV0BZgHtAVYBXQFmAe0DWwHI
+        A0cBgAMfASyUAANAAXABSwFMAUsBkAMFAQdIAANAAXABSwFMAUsBkAMFAQc8AAM2AVkBFwFGAYUB/wEA
+        AToBhwH/ARQBTAGVAf8BFgFOAZkB/wENAUcBlAH/AQ4BQwGMAf8BSAFiAWgB9gNOAZUDIwEziAABPwFA
+        AT8BbwFeAV8BXgHdAWABYwFhAeABSwFMAUsBkAMFAQdAAAE/AUABPwFvAV4BXwFeAd0BYAFjAWEB4AFL
+        AUwBSwGQAwUBBzAAAwgBCwNHAYIBGgFIAYYB/wEBAT0BiAH/AQkBQgGKAf8BEwFLAZQB/wEYAU4BmAH/
+        ARcBTQGWAf8BFgFMAZYB/wEOAUgBlQH/AQwBQgGMAf8BMgFfAX8B+wNTAaUDNAFUAwcBCSsABAEBAgMD
+        AQQDHQEqAwABATwAAT8BQAE/AW4DYQHcAa8B0wG3Af0BvwH+AdQB/wFfAWMBYAHgAUsBTAFLAZADBQEH
+        OAABPwFAAT8BbgNhAdwBrwHTAbcB/QG/Af4B1AH/AV8BYwFgAeABSwFMAUsBkAMFAQcoAAMHAQkDVAGm
+        AQABNQFwAf8BAwE+AYgB/wEKAUIBiQH/AQkBQQGKAf8BEwFKAZQB/wEZAU8BmQH/ARQBRwGNAf8BCwE4
+        AWkB/wEQAUEBhQH/ARMBSgGUAf8BDwFHAZUB/wEHAUABjQH/AQ0BQAGGAf8DOwFlIAADCwEPAzIBUQNJ
+        AYgDWgHAA2UB9AOWAf8DYQHiA0QBeTQAAz4BawNhAdoBpQHNAa8B/QGVAfgBtAH/AZcB+gG3Af8BqwH9
+        AcYB/wFfAWMBYAHgAUsBTAFLAY8DBQEHMAADPgFrA2EB2gGlAc0BrwH9AZUB+AG0Af8BlwH6AbcB/wGr
+        Af0BxgH/AV8BYwFgAeABUQFSAVEBoQNHAYIBTQJOAZYDQwF4AxYBHxgAAzoBYQEAATgBcQH/AQMBOwGC
+        Af8BCAE+AYUB/wEJAUIBigH/AQgBQQGJAf8BEwFKAZQB/wEWAUsBkwH/ARsBTQGSAf8BLgFeAaQB/wEc
+        AUoBiwH/AQ8BPAFtAf8BDAE8AXEB/wESAUcBkAH/AQwBRQGRAf8DQAFwFAADFAEbAz8BbANXAbcClwGW
         Af8DvQH/AdEC0AH/AdUB1AHVAf8BrQHKAasB/wHHAdcBxQH/Ab0BrwGtAf8BpAGbAZgB/wNWAbEDLgFI
-        KAADPQFpA10B1wGgAcoBqAH9AYEB7wGgAf8BZwHxAZgB/wFsAfMBnQH/AYsB9gGsAf8BqgH6AcMB/wFc
-        AWABXQHfA0oBjQMFAQcoAAM9AWkDXQHXAaABygGoAf0BgQHvAaAB/wFnAfEBmAH/AWwB8wGdAf8BiwH2
-        AawB/wFxAcEBmwH/AUABugG8Af0BMQHvAv8BJQHhAv8BHgHiAv8BWwFlAWoB5QMmATgUAANAAXABAgE6
-        AYAB/wEFATIBYgH/AQABKgFYAf8BBAE8AYEB/wEIAUIBiQH/ARQBSgGTAf8BFAFEAYgB/wE7AW8BuQH/
-        AUsBkAHSAf8BRwGNAc4B/wE7AW8BuQH/ASMBUQGSAf8BDQE5AWkB/wEAATIBawH/Az8BbRAAA0wBkAKn
-        AaYB/wHNAssB/wHcAtkB/wHdAtoB/wHVAdABzwH/AdMBzQHMAf8B1wHVAdYB/wGGAcQBcgH/AbIB1wGr
-        Af8BvQGtAakB/wGlAYoBgwH/Aa4BmwGXAf8BlwGUAZIB/wNJAYcgAAM9AWkDYAHWAXIBhAF3AfIBgAHn
-        AZoB/wFYAeUBhgH/AU8B5gGBAf8BVAHoAYcB/wFlAe4BlQH/AZEB9AGtAf8BewGPAYAB9QFeAWEBXgHd
-        A0oBiwMFAQcgAAM9AWkDYAHWAXIBhAF3AfIBgAHnAZoB/wFYAeUBhgH/AU8B5gGBAf8BVAHoAYcB/wFF
-        AbQBbQH/AUYB3AHmAf8BPwHyAv8BMQHlAf0B/wEnAd8B/QH/ASAB2wL/ARwB4wL/AVgBYQFkAeQDFAEb
-        EAADPwFsARMBRAGIAf8BUgGNAckB/wFFAW8BswH/ARgBRAGDAf8BCQE+AYQB/wERAUIBiQH/ATYBZgGu
-        Af8BTwGSAdMB/wFJAYwBzAH/AUgBiwHLAf8BSAGNAc4B/wFIAY4B0AH/AT0BcgG9Af8BGQFKAY0B/wNJ
+        KAADPQFpA10B1wGgAccBqAH9AYEB7wGgAf8BZgHxAZgB/wFrAfMBnQH/AYsB9gGsAf8BqgH6AcMB/wFc
+        AV8BXAHfA0oBjQMFAQcoAAM9AWkDXQHXAaABxwGoAf0BgQHvAaAB/wFmAfEBmAH/AWsB8wGdAf8BiwH2
+        AawB/wFwAcEBmwH/AUABuQG7Af0BMAHvAv8BJAHhAv8BHQHiAv8BXQFlAWcB5QMmATgUAANAAXABAQE5
+        AYAB/wEEATEBYQH/AQABKQFXAf8BAwE7AYEB/wEHAUEBiQH/ARMBSQGTAf8BEwFDAYgB/wE6AW4BuQH/
+        AUoBkAHSAf8BRgGNAc4B/wE6AW4BuQH/ASIBUAGSAf8BDAE4AWgB/wEAATEBagH/Az8BbRAAA0wBkAKn
+        AaYB/wHNAssB/wHcAtkB/wHdAtoB/wHVAdABzwH/AdMBzQHMAf8B1wHVAdYB/wGGAcQBcQH/AbIB1wGr
+        Af8BvQGtAakB/wGlAYoBgwH/Aa4BmwGXAf8BlwGUAZIB/wNJAYcgAAM9AWkDYAHWAW8BgAF1AfIBgAHn
+        AZoB/wFXAeUBhgH/AU4B5gGBAf8BUwHoAYcB/wFkAe4BlQH/AZEB9AGtAf8BdwGKAX4B9QFeAV8BXgHd
+        A0oBiwMFAQcgAAM9AWkDYAHWAW8BgAF1AfIBgAHnAZoB/wFXAeUBhgH/AU4B5gGBAf8BUwHoAYcB/wFE
+        AbQBbAH/AUUB3AHmAf8BPgHyAv8BMAHlAf0B/wEmAd8B/QH/AR8B2wL/ARsB4wL/AVkBYQFiAeQDFAEb
+        EAADPwFsARIBQwGIAf8BUQGNAckB/wFEAW4BswH/ARcBQwGDAf8BCAE9AYQB/wEQAUEBiQH/ATUBZQGu
+        Af8BTgGSAdMB/wFIAYwBzAH/AUcBiwHLAf8BRwGNAc4B/wFHAY4B0AH/ATwBcQG9Af8BGAFJAY0B/wNJ
         AYgMAAMLAQ8CpgGnAf8B0gHMAcsB/wHBAbkBtwH/AcwBxgHFAf8BzwLKAf8BzgHIAcYB/wHNAccBxQH/
         Ac4CyQH/AdICzwH/Ad4C3AH/AdoB1AHVAf8BsQGdAZgB/wGlAYoBgwH/AagBjgGIAf8BqgGgAZ4B/wNX
-        AbcDMQFOFAADDwEUAy8BSgMvAUoBUwFVAVMBrQFgAaQBdAH6AUYB2QFkAf8BPAHaAV8B/wFBAd4BZQH/
-        AVUB5AGDAf8BggHsAZ8B/wNfAdsDNAFUATABMQEwAU0DGAEiHAADKwFCA1EBoAMvAUoBWAFcAVgB0QE3
-        AX0BYwH8ATwBwAFYAf8BNAHEAVUB/wEhAZ8BWQH/ARIBwAHlAf8BSgHuAv8BOgHlAfwB/wE2AegB/QH/
-        ASsB5AH+Af8BTgF2AXkB8ANeAdUBQwHkAv8BRAJFAXwQAANOAZUBVQGUAdUB/wFmAaUB4wH/AWoBqAHk
-        Af8BbgGmAeEB/wFcAY8ByAH/ATEBgAGyAf8BUQGVAdIB/wFWAZAB0QH/AVEBjwHQAf8BTQGOAc4B/wFL
-        AY4BzQH/AUgBjAHMAf8BSAGNAc0B/wFHAY4BzwH/AU0BdgGeAfoDWgHFAyMBNAQAAxgBIQO4Af8BzQHG
+        AbcDMQFOFAADDwEUAy8BSgMvAUoBUwFVAVMBrQFeAaIBcwH6AUUB2QFjAf8BOwHaAV4B/wFAAd4BZAH/
+        AVQB5AGDAf8BggHsAZ8B/wNfAdsDNAFUATABMQEwAU0DGAEiHAADKwFCA1EBoAMvAUoBWAFcAVgB0QE2
+        AXwBYgH8ATsBwAFXAf8BMwHEAVQB/wEgAZ8BWAH/AREBwAHlAf8BSQHuAv8BOQHlAfwB/wE1AegB/QH/
+        ASoB5AH+Af8BTgFyAXYB8ANeAdUBQgHkAv8BRAJFAXwQAANOAZUBVAGUAdUB/wFlAaUB4wH/AWkBqAHk
+        Af8BbQGmAeEB/wFbAY8ByAH/ATABgAGyAf8BUAGVAdIB/wFVAZAB0QH/AVABjwHQAf8BTAGOAc4B/wFK
+        AY4BzQH/AUcBjAHMAf8BRwGNAc0B/wFGAY4BzwH/AU0BdQGcAfoDWgHFAyMBNAQAAxgBIQO4Af8BzQHG
         AcUB/wG3Aa4BrAH/AbsBtAGxAf8BxgHBAb8B/wHMAcgBxgH/AdcB0wHUAf8B4gHgAd8B/wHmAuIB/wHp
         AeMB4gH/AeIB2wHaAf8B5gLhAf8ByQG+Ab0B/wGnAY4BhwH/AaUBigGDAf8BrwGbAZcB/wGiAp4B/wM3
-        AVocAAFQAVIBUAGkAW0BlgFtAfcBQgHTAVwB/wEuAdEBTgH/ATAB0gFQAf8BRwHaAWYB/wFvAeUBlQH/
-        AVYBWAFWAcEDCAELIAABIQIiATEBVQFpAWwB6gE+AfMC/wFVAlcBtwElAeAB+gH/AR4B2AH2Af8BGQHI
-        AeQB/wETAcEB3QH/AQwB1wL/ARYB0AL/AU0B6AH8Af8BPgHnAfwB/wE6AeoB/QH/ATEB7wL/AT0CPgFq
-        BAABVgG6AcIB/QNRAaIMAANGAX4BXgGeAd8B/wFhAaAB4AH/AWQBoQHeAf8BbAGjAd8B/wFsAaUB3QH/
-        ATEBrQHXAf8BAgG+AeEB/wEBAa8B1wH/ASYBoAHPAf8BSAGVAc8B/wFRAZEBzwH/AVQBjwHPAf8BUAGP
-        Ac8B/wFLAY4BzQH/AUkBjQHMAf8BQgGJAcsB/wFbAWsBhQH2AxkBIwQAAwIBAwOyAf8B6ALnAf8B5wHj
+        AVocAAFQAVIBUAGkAW0BkgFtAfcBQQHTAVsB/wEtAdEBTQH/AS8B0gFPAf8BRgHaAWUB/wFuAeUBlQH/
+        AVYBWAFWAcEDCAELIAABIQIiATEBVQFmAWkB6gE9AfMC/wFVAlcBtwEkAeAB+gH/AR0B2AH2Af8BGAHI
+        AeQB/wESAcEB3QH/AQsB1wL/ARUB0AL/AUwB6AH8Af8BPQHnAfwB/wE5AeoB/QH/ATAB7wL/AT0CPgFq
+        BAABVAG5Ab8B/QNRAaIMAANGAX4BXQGeAd8B/wFgAaAB4AH/AWMBoQHeAf8BawGjAd8B/wFrAaUB3QH/
+        ATABrQHXAf8BAQG+AeEB/wEAAa8B1wH/ASUBoAHPAf8BRwGVAc8B/wFQAZEBzwH/AVMBjwHPAf8BTwGP
+        Ac8B/wFKAY4BzQH/AUgBjQHMAf8BQQGJAcsB/wFbAWgBgQH2AxkBIwQAAwIBAwOyAf8B6ALnAf8B5wHj
         AeQB/wHqAecB6AH/AekB5QHmAf8B6wHlAeYB/wHuAucB/wHzAe4B7QH/Ae0C5gH/AdcBzAHLAf8B0QHF
         AcQB/wHUAcsBygH/Ad0C1gH/AeAC2wH/AbUBoQGeAf8BpQGKAYMB/wGuAZoBlAH/A1sBwxwAAVABUgFQ
-        AaQBbQGTAW0B9wE/Ac0BVwH/AScByQFEAf8BJwHLAUUB/wE/AdIBWgH/AWwB3wGOAf8BVwFZAVcBvwMI
-        AQsgAANKAYsBZgP/AVAB/AL/AUID/wE0AfUC/wEqAfAC/wEiAewC/wEbAeYC/wESAdwC/wEbAdwC/wFT
-        AeoB/gH/AUIB5wH8Af8BPwHsAf0B/wEwAegB/gH/AVkCXQHXA1MBqgE4AeYC/wNIAYYEAAMXASADVgGx
-        AVYBlwHaAf8BXgGdAd4B/wFjAaAB3gH/AW8BowHgAf8BWQGjAdcB/wEIAbAB2AH/AQABuwHiAf8BAAHB
-        AecB/wEAAb0B5QH/AQABvQHkAf8BAAG4AeAB/wEHAa4B2QH/AScBngHNAf8BRQGUAcwB/wFUAY8BzwH/
-        AVEBjwHQAf8BRQGLAcwB/wM6AWAMAAMwAUsDVgG0AccBxgHFAf8B4wHgAeEB/wHzAe0B7gH/Ae4B5wHo
+        AaQBbQGPAW0B9wE+Ac0BVgH/ASYByQFDAf8BJgHLAUQB/wE+AdIBWQH/AWsB3wGOAf8BVwFZAVcBvwMI
+        AQsgAANKAYsBZQP/AU8B/AL/AUED/wEzAfUC/wEpAfAC/wEhAewC/wEaAeYC/wERAdwC/wEaAdwC/wFS
+        AeoB/gH/AUEB5wH8Af8BPgHsAf0B/wEvAegB/gH/AVkCXQHXA1MBqgE3AeYC/wNIAYYEAAMXASADVgGx
+        AVUBlwHaAf8BXQGdAd4B/wFiAaAB3gH/AW4BowHgAf8BWAGjAdcB/wEHAbAB2AH/AQABuwHiAf8BAAHB
+        AecB/wEAAb0B5QH/AQABvQHkAf8BAAG4AeAB/wEGAa4B2QH/ASYBngHNAf8BRAGUAcwB/wFTAY8BzwH/
+        AVABjwHQAf8BRAGLAcwB/wM6AWAMAAMwAUsDVgG0AccBxgHFAf8B4wHgAeEB/wHzAe0B7gH/Ae4B5wHo
         Af8B8gLuAf8B+AL1Af8B9ALxAf8B8QLsAf8B7AHoAecB/wHpAeMB4gH/AeMB3QHcAf8B2ALUAf8B8QHr
-        AewB/wHSAckByAH/AbEBngGZAf8DWwHDHAABTwFTAU8BpQFtAZIBbQH3ATwByAFRAf8BIQHCATsB/wEg
-        AcMBOwH/ATsBywFSAf8BbQHcAYwB/wFWAVkBVgG+AwgBCyQAAT0CPgFqAUgCSQGHAUgCSQGHAVoBXgFa
-        AdUBQwGKAV8B+wEgAZUBXgH/ARIBkQFTAf8BEAGQAVMB/wEfAZMBYgH/AV8B5wHzAf8BUwHzAv8BQgHs
-        Af0B/wE1AecB/QH/ASsB5gL/AScB7gL/AVEBewGDAfEDHAEoBAADRwGBAVQBlwHbAf8BWgGcAd4B/wFi
-        AZ8B3gH/AWwBoQHeAf8BSAGjAdQB/wEAAbEB2AH/AQABvQHlAf8BAAG7AeQB/wEAAb8B5QH/AQABugHj
-        Af8BAAG8AeUB/wEAAb0B5gH/AQABvQHlAf8BAAG8AeMB/wEAAbQB2wH/ARUBpAHRAf8BNAGSAcoB/wNd
+        AewB/wHSAckByAH/AbEBngGZAf8DWwHDHAABTwFTAU8BpQFtAY4BbQH3ATsByAFQAf8BIAHCAToB/wEf
+        AcMBOgH/AToBywFRAf8BbAHcAYwB/wFWAVkBVgG+AwgBCyQAAT0CPgFqAUgCSQGHAUgCSQGHAVoBXgFa
+        AdUBQwGJAV8B+wEfAZUBXQH/AREBkQFSAf8BDwGQAVIB/wEeAZMBYQH/AV4B5wHzAf8BUgHzAv8BQQHs
+        Af0B/wE0AecB/QH/ASoB5gL/ASYB7gL/AVMBdwGAAfEDHAEoBAADRwGBAVMBlwHbAf8BWQGcAd4B/wFh
+        AZ8B3gH/AWsBoQHeAf8BRwGjAdQB/wEAAbEB2AH/AQABvQHlAf8BAAG7AeQB/wEAAb8B5QH/AQABugHj
+        Af8BAAG8AeUB/wEAAb0B5gH/AQABvQHlAf8BAAG8AeMB/wEAAbQB2wH/ARQBpAHRAf8BMwGSAcoB/wNd
         AcoYAAMcAScDTAGQAb4CvQH/AdoB1wHZAf8B8gHtAe4B/wH4AvUB/wHzAu4B/wHrAuQB/wHmAeAB3wH/
         AeIC2gH/AeQC3QH/AfQB7QHuAf8B+AHyAfQB/wHsAecB6QH/AcEBvwHAAf8DNwFaHAABTwFTAU8BpQFt
-        AZIBbQH3ATYBwgFJAf8BGgG7ATIB/wEZAbwBMgH/ATUBxgFLAf8BagHXAYcB/wFWAVkBVgG+AwgBCzAA
-        AU8BUwFPAaUBbQGSAW0B9wE2AcIBSQH/ARoBuwEyAf8BGQG8ATIB/wE1AcYBSwH/AUsBogFmAf8BWwHx
-        AfcB/wFMAfsC/wE6Ae4C/wEyAfIC/wFAAZYBoQH3AzEBTwgAAwEBAgMeASsDUwGlAV4BfQGkAfoBJwGl
-        AdMB/wEAAbcB3gH/AQABvAHkAf8BAAG6AeMB/wEKAcEB5gH/AS0BxwHoAf8BGAHEAecB/wEBAcAB5gH/
-        AQABvAHlAf8BAAG6AeMB/wEAAbsB5AH/AQABvAHlAf8BAAG8AeUB/wECAb4B6AH/AV4BYQFiAd0DFAEb
+        AY4BbQH3ATUBwgFIAf8BGQG7ATEB/wEYAbwBMQH/ATQBxgFKAf8BaQHXAYcB/wFWAVkBVgG+AwgBCzAA
+        AU8BUwFPAaUBbQGOAW0B9wE1AcIBSAH/ARkBuwExAf8BGAG8ATEB/wE0AcYBSgH/AUoBogFlAf8BWgHx
+        AfcB/wFLAfsC/wE5Ae4C/wExAfIC/wFCAZIBngH3AzEBTwgAAwEBAgMeASsDUwGlAVwBfAGiAfoBJgGl
+        AdMB/wEAAbcB3gH/AQABvAHkAf8BAAG6AeMB/wEJAcEB5gH/ASwBxwHoAf8BFwHEAecB/wEAAcAB5gH/
+        AQABvAHlAf8BAAG6AeMB/wEAAbsB5AH/AQABvAHlAf8BAAG8AeUB/wEBAb4B6AH/AV4BXwFhAd0DFAEb
         HAADBwEJAzoBYANbAcYBzQHMAc0B/wHqAeYB6AH/AesB5QHnAf8B6gHmAegB/wHgAd4B3wH/AdoB1wHZ
-        Af8ByQLIAf8DYQHhA1EBnAMoATwgAAFPAVMBTwGlAW0BkgF9AfcBSwHGAVsB/wEwAb4BQQH/AS8BvgFB
-        Af8BSAHHAVoB/wGIAdkBlQH/AVYBWQFWAb4DCAELMAABTwFTAU8BpQFtAZIBfQH3AUsBxgFbAf8BMAG+
-        AUEB/wEvAb4BQQH/AUgBxwFaAf8BiAHZAZUB/wFaAV0BWgHKAU4CTwGXAVUCVgGxAUkCSgGJAxoBJRQA
-        AwIBAwFeAV8BYgHdAQABvwHpAf8BAAG7AeUB/wEAAboB4gH/ARwBwwHlAf8BOAHFAeUB/wEuAcAB4wH/
-        ATIBwgHkAf8BNQHGAecB/wEoAccB6QH/AQ8BwgHmAf8BAAG7AeMB/wEAAbwB5gH/AQgBywH1Af8BIAHW
-        Av8BiAHKAv8DWAHBAwcBCiQAAyEBMANOAZYDWgG9A04BmQM9AWkDMAFLAxYBHiwAAU8BUwFPAaUBhgGa
-        AYgB9wGIAdMBkgH/AWMBzAFuAf8BYQHNAW4B/wGGAdUBkQH/AbMB5AG6Af8BVwFZAVcBvwMIAQswAAFP
-        AVMBTwGlAYYBmgGIAfcBiAHTAZIB/wFjAcwBbgH/AWEBzQFuAf8BhgHVAZEB/wGzAeQBugH/AVcBWQFX
-        Ab8DCAELIAADOgFgAVMBsgHzAf8BDAHRAf4B/wEdAdAB+QH/ATgB0QH1Af8BQAHNAfAB/wEvAcQB6AH/
-        ASoBwAHjAf8BKAG+AeEB/wErAcAB5AH/ATABwQHkAf8BNQHEAeYB/wE7AdEB8wH/ATsB2AH7Af8BNQHb
-        Av8BJQHXAf4B/wGHAccB+wH/AZMBxwL/A1ABnmwAAU8BUwFPAaUBVgFYAVYBuwFWAVgBVgG7AVYBWAFW
-        AbsBVgFYAVYBuwFWAVgBVgG7AVYBWAFWAbsBVgFYAVYBuwMIAQswAAFPAVMBTwGlAVYBWAFWAbsBVgFY
-        AVYBuwFWAVgBVgG7AVYBWAFWAbsBVgFYAVYBuwFWAVgBVgG7AVYBWAFWAbsDCAELIAADVQGyAU4BsgH1
-        Af8BJgHWAf4B/wFLAdoB/gH/AUYB1gH9Af8BQwHVAfwB/wFEAdUB/AH/AT4B0QH3Af8BNgHKAe8B/wEx
-        AcUB6AH/ATUByQHsAf8BQQHTAfgB/wFJAdkB/gH/AUkB2gH9Af8BTAHcAf4B/wFbAdUB/gH/AY8BxQH7
-        Af8DVAGvAyYBOP8ABQADFgEfAzEBTgNIAYMDXAHNAT4BswHCAfwBPgHVAf0B/wE+AdUB/QH/AUIB1QH8
-        Af8BRQHWAf0B/wFFAdYB+wH/AUcB2AH8Af8BRgHYAf0B/wFBAdkB/QH/AU0B0wH8Af8BaQHHAfgB/wNW
-        AbYDMAFL/wAdAAMgAS8DRwGCA1sBywFFAdQB+gH/AUEB1gH8Af8BQgHYAf0B/wFBAdgB/QH/AUkBugHU
-        Af0BZQF/AY4B9AFhAWYBbQHqAzgBXf8AMQADKQE+A0cBgQNUAa4DVAGvAy4BRwMgAS4DGgElaAABQgFN
-        AT4HAAE+AwABKAMAAVQDAAEoAwABAQEAAQEFAAHgAQEWAAP/8QAK/wHwAQAK/wHwAQAB/wHfAf8B/gL/
-        AYAD/wHwAQAB/wGPAf8B/AF/Af8BAAE/Av8B8AEAAf8BBwH/AfgBPwH8AQABBwH+AQ8B8AEAAf4BAwH/
-        AfABHwH4AQABBwH4AQcB8AEAAfwBAQH/AeABAQH4AQABBwHAAQEB8AEAAfgBAAH/AcABAAH4AQABBwGA
-        AQAB8AEAAfABAAF/AYABAAF4AQABBwIAATABAAHgAQABfwIAAXgBAAEBAgABEAEAAfwBAQH+AQABAgFw
-        AQABAQIAARABAAH8AQEB/gIAAUABAAEDAYABAAEQAQAB/AEBAf8CAAFAAQABBwHgAQABEAEAAfwBAQH/
-        AeABAAHAAQABAwH4AQABMAEAAfwBAQH/AeABAQHwAQABAQH/AQEB8AEAAfwBAQH/AeABDwHwAQABAQL/
-        AfABAAH8AQEB/wHgAQ8B8AEAAQEC/wHwAQAF/wHwAQABBwL/AfABAAb/AQABHwL/AfABAAb/AeABPwL/
-        AfABAAs=
+        Af8ByQLIAf8DYQHhA1EBnAMoATwgAAFPAVMBTwGlAW0BjgF6AfcBSgHGAVoB/wEvAb4BQAH/AS4BvgFA
+        Af8BRwHHAVkB/wGIAdkBlQH/AVYBWQFWAb4DCAELMAABTwFTAU8BpQFtAY4BegH3AUoBxgFaAf8BLwG+
+        AUAB/wEuAb4BQAH/AUcBxwFZAf8BiAHZAZUB/wFaAV0BWgHKAU4CTwGXAVUCVgGxAUkCSgGJAxoBJRQA
+        AwIBAwJeAWEB3QEAAb8B6QH/AQABuwHlAf8BAAG6AeIB/wEbAcMB5QH/ATcBxQHlAf8BLQHAAeMB/wEx
+        AcIB5AH/ATQBxgHnAf8BJwHHAekB/wEOAcIB5gH/AQABuwHjAf8BAAG8AeYB/wEHAcsB9QH/AR8B1gL/
+        AYgBygL/A1gBwQMHAQokAAMhATADTgGWA1oBvQNOAZkDPQFpAzABSwMWAR4sAAFPAVMBTwGlAYUBlgGH
+        AfcBiAHTAZIB/wFiAcwBbQH/AWABzQFtAf8BhgHVAZEB/wGzAeQBugH/AVcBWQFXAb8DCAELMAABTwFT
+        AU8BpQGFAZYBhwH3AYgB0wGSAf8BYgHMAW0B/wFgAc0BbQH/AYYB1QGRAf8BswHkAboB/wFXAVkBVwG/
+        AwgBCyAAAzoBYAFSAbIB8wH/AQsB0QH+Af8BHAHQAfkB/wE3AdEB9QH/AT8BzQHwAf8BLgHEAegB/wEp
+        AcAB4wH/AScBvgHhAf8BKgHAAeQB/wEvAcEB5AH/ATQBxAHmAf8BOgHRAfMB/wE6AdgB+wH/ATQB2wL/
+        ASQB1wH+Af8BhwHHAfsB/wGTAccC/wNQAZ5sAAFPAVMBTwGlAVYBWAFWAbsBVgFYAVYBuwFWAVgBVgG7
+        AVYBWAFWAbsBVgFYAVYBuwFWAVgBVgG7AVYBWAFWAbsDCAELMAABTwFTAU8BpQFWAVgBVgG7AVYBWAFW
+        AbsBVgFYAVYBuwFWAVgBVgG7AVYBWAFWAbsBVgFYAVYBuwFWAVgBVgG7AwgBCyAAA1UBsgFNAbIB9QH/
+        ASUB1gH+Af8BSgHaAf4B/wFFAdYB/QH/AUIB1QH8Af8BQwHVAfwB/wE9AdEB9wH/ATUBygHvAf8BMAHF
+        AegB/wE0AckB7AH/AUAB0wH4Af8BSAHZAf4B/wFIAdoB/QH/AUsB3AH+Af8BWgHVAf4B/wGPAcUB+wH/
+        A1QBrwMmATj/AAUAAxYBHwMxAU4DSAGDA1wBzQE9AbEBvwH8AT0B1QH9Af8BPQHVAf0B/wFBAdUB/AH/
+        AUQB1gH9Af8BRAHWAfsB/wFGAdgB/AH/AUUB2AH9Af8BQAHZAf0B/wFMAdMB/AH/AWgBxwH4Af8DVgG2
+        AzABS/8AHQADIAEvA0cBggNbAcsBRAHUAfoB/wFAAdYB/AH/AUEB2AH9Af8BQAHYAf0B/wFIAbkB0QH9
+        AWUBfQGLAfQBXwFlAWoB6gM4AV3/ADEAAykBPgNHAYEDVAGuA1QBrwMuAUcDIAEuAxoBJWgAAUIBTQE+
+        BwABPgMAASgDAAFUAwABKAMAAQEBAAEBBQAB4AEBFgAD//EACv8B8AEACv8B8AEAAf8B3wH/Af4C/wGA
+        A/8B8AEAAf8BjwH/AfwBfwH/AQABPwL/AfABAAH/AQcB/wH4AT8B/AEAAQcB/gEPAfABAAH+AQMB/wHw
+        AR8B+AEAAQcB+AEHAfABAAH8AQEB/wHgAQEB+AEAAQcBwAEBAfABAAH4AQAB/wHAAQAB+AEAAQcBgAEA
+        AfABAAHwAQABfwGAAQABeAEAAQcCAAEwAQAB4AEAAX8CAAF4AQABAQIAARABAAH8AQEB/gEAAQIBcAEA
+        AQECAAEQAQAB/AEBAf4CAAFAAQABAwGAAQABEAEAAfwBAQH/AgABQAEAAQcB4AEAARABAAH8AQEB/wHg
+        AQABwAEAAQMB+AEAATABAAH8AQEB/wHgAQEB8AEAAQEB/wEBAfABAAH8AQEB/wHgAQ8B8AEAAQEC/wHw
+        AQAB/AEBAf8B4AEPAfABAAEBAv8B8AEABf8B8AEAAQcC/wHwAQAG/wEAAR8C/wHwAQAG/wHgAT8C/wHw
+        AQAL
 </value>
   </data>
   <metadata name="featureToolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>255, 18</value>
   </metadata>
-  <metadata name="featureToolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>255, 18</value>
-  </metadata>
   <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>62</value>
   </metadata>

=== modified file 'WexInstaller/InstallWizard/InstallProgressPanel.Designer.cs'
--- a/WexInstaller/InstallWizard/InstallProgressPanel.Designer.cs	2011-03-25 17:32:28 +0000
+++ b/WexInstaller/InstallWizard/InstallProgressPanel.Designer.cs	2011-03-28 11:56:39 +0000
@@ -36,13 +36,16 @@
           this.enableDetails = new System.Windows.Forms.Button();
           this.detailsText = new System.Windows.Forms.TextBox();
           this.detailsPanel = new System.Windows.Forms.Panel();
+          this.borderPanel = new System.Windows.Forms.Panel();
           this.productList = new WexInstaller.Core.ListViewWex();
           this.stateHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
           this.productColumn = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
           this.statusColumn = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
           this.progressColumn = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
           this.notesColumn = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+          this.spacer = new System.Windows.Forms.Label();
           this.detailsPanel.SuspendLayout();
+          this.borderPanel.SuspendLayout();
           this.SuspendLayout();
           // 
           // subCaptionLabel
@@ -62,21 +65,20 @@
           // 
           // actionLabel
           // 
-          this.actionLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-          this.actionLabel.AutoSize = true;
           this.actionLabel.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-          this.actionLabel.Location = new System.Drawing.Point(3, 359);
+          this.actionLabel.Location = new System.Drawing.Point(23, 463);
           this.actionLabel.Name = "actionLabel";
-          this.actionLabel.Size = new System.Drawing.Size(337, 16);
+          this.actionLabel.Size = new System.Drawing.Size(523, 26);
           this.actionLabel.TabIndex = 5;
           this.actionLabel.Text = "Click [Execute] to install or update the following packages";
+          this.actionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
           // 
           // enableDetails
           // 
           this.enableDetails.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
           this.enableDetails.AutoSize = true;
           this.enableDetails.BackColor = System.Drawing.SystemColors.Control;
-          this.enableDetails.Location = new System.Drawing.Point(3, 356);
+          this.enableDetails.Location = new System.Drawing.Point(26, 465);
           this.enableDetails.Name = "enableDetails";
           this.enableDetails.Size = new System.Drawing.Size(89, 23);
           this.enableDetails.TabIndex = 1;
@@ -88,39 +90,51 @@
           // detailsText
           // 
           this.detailsText.BackColor = System.Drawing.SystemColors.ControlLightLight;
-          this.detailsText.Location = new System.Drawing.Point(26, 297);
+          this.detailsText.Dock = System.Windows.Forms.DockStyle.Bottom;
+          this.detailsText.Location = new System.Drawing.Point(0, 177);
           this.detailsText.Multiline = true;
           this.detailsText.Name = "detailsText";
           this.detailsText.ReadOnly = true;
           this.detailsText.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
-          this.detailsText.Size = new System.Drawing.Size(504, 193);
+          this.detailsText.Size = new System.Drawing.Size(520, 174);
           this.detailsText.TabIndex = 9;
+          this.detailsText.Visible = false;
           // 
           // detailsPanel
           // 
-          this.detailsPanel.Controls.Add(this.productList);
-          this.detailsPanel.Controls.Add(this.enableDetails);
-          this.detailsPanel.Controls.Add(this.actionLabel);
+          this.detailsPanel.Controls.Add(this.borderPanel);
+          this.detailsPanel.Controls.Add(this.spacer);
+          this.detailsPanel.Controls.Add(this.detailsText);
           this.detailsPanel.Location = new System.Drawing.Point(26, 108);
           this.detailsPanel.Name = "detailsPanel";
-          this.detailsPanel.Size = new System.Drawing.Size(504, 382);
+          this.detailsPanel.Size = new System.Drawing.Size(520, 351);
           this.detailsPanel.TabIndex = 10;
           // 
+          // borderPanel
+          // 
+          this.borderPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(165)))), ((int)(((byte)(165)))), ((int)(((byte)(165)))));
+          this.borderPanel.Controls.Add(this.productList);
+          this.borderPanel.Dock = System.Windows.Forms.DockStyle.Fill;
+          this.borderPanel.Location = new System.Drawing.Point(0, 0);
+          this.borderPanel.Name = "borderPanel";
+          this.borderPanel.Padding = new System.Windows.Forms.Padding(1);
+          this.borderPanel.Size = new System.Drawing.Size(520, 171);
+          this.borderPanel.TabIndex = 12;
+          // 
           // productList
           // 
-          this.productList.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                      | System.Windows.Forms.AnchorStyles.Left)
-                      | System.Windows.Forms.AnchorStyles.Right)));
+          this.productList.BorderStyle = System.Windows.Forms.BorderStyle.None;
           this.productList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
             this.stateHeader,
             this.productColumn,
             this.statusColumn,
             this.progressColumn,
             this.notesColumn});
+          this.productList.Dock = System.Windows.Forms.DockStyle.Fill;
           this.productList.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
           this.productList.GhostProductImages = false;
           this.productList.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
-          this.productList.Location = new System.Drawing.Point(3, 3);
+          this.productList.Location = new System.Drawing.Point(1, 1);
           this.productList.MultiSelect = false;
           this.productList.Name = "productList";
           this.productList.OwnerDraw = true;
@@ -128,7 +142,7 @@
           this.productList.ProgressBarCol = 0;
           this.productList.ProgressBarRow = 0;
           this.productList.ShowGroups = false;
-          this.productList.Size = new System.Drawing.Size(498, 347);
+          this.productList.Size = new System.Drawing.Size(518, 169);
           this.productList.StateImageList = this.stateImages;
           this.productList.TabIndex = 2;
           this.productList.UseCompatibleStateImageBehavior = false;
@@ -163,21 +177,33 @@
           this.notesColumn.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
           this.notesColumn.Width = 65;
           // 
+          // spacer
+          // 
+          this.spacer.Dock = System.Windows.Forms.DockStyle.Bottom;
+          this.spacer.Location = new System.Drawing.Point(0, 171);
+          this.spacer.Name = "spacer";
+          this.spacer.Size = new System.Drawing.Size(520, 6);
+          this.spacer.TabIndex = 11;
+          this.spacer.Visible = false;
+          // 
           // InstallProgress
           // 
           this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
           this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+          this.Controls.Add(this.enableDetails);
+          this.Controls.Add(this.actionLabel);
           this.Controls.Add(this.detailsPanel);
-          this.Controls.Add(this.detailsText);
           this.DoubleBuffered = true;
           this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
           this.Name = "InstallProgress";
           this.Controls.SetChildIndex(this.captionLabel, 0);
           this.Controls.SetChildIndex(this.subCaptionLabel, 0);
-          this.Controls.SetChildIndex(this.detailsText, 0);
           this.Controls.SetChildIndex(this.detailsPanel, 0);
+          this.Controls.SetChildIndex(this.actionLabel, 0);
+          this.Controls.SetChildIndex(this.enableDetails, 0);
           this.detailsPanel.ResumeLayout(false);
           this.detailsPanel.PerformLayout();
+          this.borderPanel.ResumeLayout(false);
           this.ResumeLayout(false);
           this.PerformLayout();
 
@@ -196,5 +222,7 @@
         private System.Windows.Forms.TextBox detailsText;
         private System.Windows.Forms.ColumnHeader stateHeader;
         private System.Windows.Forms.Panel detailsPanel;
+        private System.Windows.Forms.Label spacer;
+        private System.Windows.Forms.Panel borderPanel;
     }
 }

=== modified file 'WexInstaller/InstallWizard/InstallProgressPanel.cs'
--- a/WexInstaller/InstallWizard/InstallProgressPanel.cs	2011-03-21 16:38:32 +0000
+++ b/WexInstaller/InstallWizard/InstallProgressPanel.cs	2011-03-28 11:56:39 +0000
@@ -26,7 +26,6 @@
     private int downloadErrorCount;
 
     ListViewItem installingItem;
-    private bool showingDetails;
 
     enum InstallProgressState : int
     {
@@ -69,6 +68,7 @@
       productList.Items.Clear();
       leftToDownload = 0;
       leftToInstall = 0;
+      downloadErrorCount = 0;
       foreach (ProductCategory pc in ProductManager.ProductCategories)
       {
         foreach (Product p in pc.Products)
@@ -91,7 +91,7 @@
               (p.CurrentState == ProductState.DownloadNoMirror) ||
               (p.CurrentState == ProductState.DownloadStarted))
               p.PostInitialize(false); // Reset to initial state.
-            item.SubItems.Add(GetProductStateString(p.CurrentState));
+            item.SubItems.Add(Product.StateAsString(p.CurrentState));
             item.SubItems.Add(String.Empty);
             item.SubItems.Add(String.Empty);
             productList.Items.Add(item);
@@ -144,7 +144,7 @@
         {
           // Check if we are not yet finished because of errors for all remaining operations.
           // If so just allow to go back. Otherwise ask to stop ongoing processes.
-          if (leftToDownload == 0 && (downloadErrorCount == leftToInstall))
+          if (leftToDownload == 0 && leftToInstall == 0)
             return base.Back();
 
           // Stop all remaining actions.
@@ -159,7 +159,6 @@
           {
             Cancel();
             NextButton.Text = Properties.Resources.NextButtonDefaultText;
-            leftToInstall = 0;
           }
           else
             return false;
@@ -181,89 +180,6 @@
       return base.Cancel();
     }
 
-    private string GetProductStateString(ProductState s)
-    {
-      string textStatus = null;
-
-      switch (s)
-      {
-        case ProductState.Unknown:
-          textStatus = String.Empty;
-          break;
-        case ProductState.WebRemote:
-          textStatus = "To be downloaded.";
-          break;
-        case ProductState.FoundLocal:
-          textStatus = "To be installed.";
-          break;
-        case ProductState.WillPerformUpgrade:
-          textStatus = "To be upgraded.";
-          break;
-        case ProductState.CurrentlyInstalled:
-          textStatus = "Installed locally.";
-          break;
-        case ProductState.DownloadStarted:
-          textStatus = "Download started.";
-          break;
-        case ProductState.DownloadInProgress:
-          textStatus = "Downloading.";
-          break;
-        case ProductState.DownloadSuccess:
-          textStatus = "Download success.";
-          break;
-        case ProductState.DownloadError:
-          textStatus = "Download failed.";
-          break;
-        case ProductState.DownloadNoMirror:
-          textStatus = "No Mirror Found";
-          break;
-        case ProductState.InstallStarted:
-          textStatus = "Install started.";
-          break;
-        case ProductState.InstallInProgress:
-          textStatus = "Installing.";
-          break;
-        case ProductState.InstallSuccess:
-          textStatus = "Install success.";
-          break;
-        case ProductState.InstallError:
-          textStatus = "Install error.";
-          break;
-        case ProductState.RemoveStarted:
-          textStatus = "Remove started.";
-          break;
-        case ProductState.RemoveInProgress:
-          textStatus = "Removing.";
-          break;
-        case ProductState.RemoveSuccess:
-          textStatus = "Successfully removed.";
-          break;
-        case ProductState.RemoveFailed:
-          textStatus = "Failed to remove.";
-          break;
-        case ProductState.UpdateStarted:
-          textStatus = "Update started.";
-          break;
-        case ProductState.UpdateInProgress:
-          textStatus = "Updating.";
-          break;
-        case ProductState.UpdateSuccess:
-          textStatus = "Update success.";
-          break;
-        case ProductState.UpdateFailed:
-          textStatus = "Update failed.";
-          break;
-        case ProductState.DownloadCancelled:
-          textStatus = "Download canceled";
-          break;
-        default:
-          textStatus = "Wrong product state";
-          break;
-      }
-
-      return textStatus;
-    }
-
     private void AddToDetailsText(int index, string message)
     {
         detailsText.AppendText(String.Format("{0}: {1}{2}", 
@@ -299,7 +215,7 @@
 
       ListViewItem currentItem = items[0];
       currentItem.StateImageIndex = (int)InstallProgressState.None;
-      currentItem.SubItems[2].Text = GetProductStateString(p.CurrentState);
+      currentItem.SubItems[2].Text = Product.StateAsString(p.CurrentState);
       if ((p.CurrentState == ProductState.DownloadError) ||
         (p.CurrentState == ProductState.DownloadCancelled) ||
         (p.CurrentState == ProductState.DownloadNoMirror))
@@ -322,26 +238,23 @@
         {
           // After all downloads finished check if we got errors and ask back if the user
           // still wants to install anything if there were any.
-          if (downloadErrorCount < leftToInstall)
+          DialogResult answer = MessageBox.Show(
+            Resources.ContinueAfterDownloadErrorText, Resources.ConfirmContinueTitle,
+            MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);
+          if (answer == DialogResult.Yes)
           {
-            DialogResult answer = MessageBox.Show(
-              Resources.ContinueAfterDownloadErrorText, Resources.ConfirmContinueTitle,
-              MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);
-            if (answer == DialogResult.Yes)
+            // Disable all try-again links before starting the installation.
+            foreach (ListViewItem item in productList.Items)
             {
-              // Disable all try-again links before starting the installation.
-              foreach (ListViewItem item in productList.Items)
+              Product product = item.Tag as Product;
+              if ((product.CurrentState == ProductState.DownloadError) ||
+                (product.CurrentState == ProductState.DownloadCancelled) ||
+                (product.CurrentState == ProductState.DownloadNoMirror))
               {
-                Product product = item.Tag as Product;
-                if ((product.CurrentState == ProductState.DownloadError) ||
-                  (product.CurrentState == ProductState.DownloadCancelled) ||
-                  (product.CurrentState == ProductState.DownloadNoMirror))
-                {
-                  item.SubItems[3].Text = "--";
-                }
+                item.SubItems[3].Text = "--";
               }
-              BeginInvoke(new MethodInvoker(InstallNextPackage));
             }
+            BeginInvoke(new MethodInvoker(InstallNextPackage));
           }
         }
       }
@@ -369,7 +282,7 @@
 
       if (item.StateImageIndex != (int)InstallProgressState.Download && e.BytesReceived > 0)
         item.StateImageIndex = (int)InstallProgressState.Download;
-      item.SubItems[2].Text = GetProductStateString(p.CurrentState);
+      item.SubItems[2].Text = Product.StateAsString(p.CurrentState);
       item.SubItems[3].Text = String.Format(Resources.StatusPercentage, e.ProgressPercentage);
     }
 
@@ -420,7 +333,7 @@
         if (pe.ProgressPercentage == 0)
         {
             installingItem.StateImageIndex = (int)InstallProgressState.Installing;
-            installingItem.SubItems[2].Text = GetProductStateString(p.CurrentState);
+            installingItem.SubItems[2].Text = Product.StateAsString(p.CurrentState);
         }
         installingItem.SubItems[3].Text = String.Format(Resources.StatusPercentage, pe.ProgressPercentage);
       }
@@ -438,7 +351,7 @@
       lock (installingItem)
       {
         installingItem.StateImageIndex = (int)InstallProgressState.Ok;
-        installingItem.SubItems[2].Text = GetProductStateString(p.CurrentState);
+        installingItem.SubItems[2].Text = Product.StateAsString(p.CurrentState);
         installingItem.SubItems[3].Text = String.Empty;
       }
       AddToDetailsText(item.Index, installingItem.SubItems[2].Text);
@@ -461,14 +374,9 @@
 
     private void enableDetails_Click(object sender, EventArgs e)
     {
-        showingDetails = !showingDetails;
-        enableDetails.Text = showingDetails ? "< &Hide Details" : "&Show Details >";
-        if (showingDetails)
-            detailsPanel.SetBounds(detailsPanel.Left, detailsPanel.Top,
-                detailsPanel.Width, detailsText.Top - detailsPanel.Top - 5);
-        else
-            detailsPanel.SetBounds(detailsPanel.Left, detailsPanel.Top,
-                detailsPanel.Width, detailsText.Bottom - detailsPanel.Top + 2);
+      detailsText.Visible = !detailsText.Visible;
+      spacer.Visible = detailsText.Visible;
+      enableDetails.Text = detailsText.Visible ? "< &Hide Details" : "&Show Details >";
     }
 
     /// <summary>

=== modified file 'WexInstaller/InstallWizard/InstallProgressPanel.resx'
--- a/WexInstaller/InstallWizard/InstallProgressPanel.resx	2011-03-25 17:32:28 +0000
+++ b/WexInstaller/InstallWizard/InstallProgressPanel.resx	2011-03-28 11:56:39 +0000
@@ -125,7 +125,7 @@
         AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
         LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
         ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADy
-        EQAAAk1TRnQBSQFMAgEBBQEAAfgBAAH4AQABEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA
+        EQAAAk1TRnQBSQFMAgEBBQEAATABAQEwAQEBEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA
         AwABIAMAAQEBAAEYBgABGBIAMP+QAAP/AQcBfAGYAQUBdgGSAQUBdgGSAQUBdgGSAQUBdgGSAQUBegGW
         AQUBegGWAQUBegGWAQUBdgGSAQUBdgGSAQUBdgGSAQUBdgGSAQUBegGWASkBiAGgA/+QAAEPAZcBtwEL
         AbwB4gEGAcMB6AECAbsB5AECAbsB5AECAcEB5QECAYsBpwFGAWQBegE2AawBzwECAbsB5AEBAbQB3AEB
@@ -205,6 +205,6 @@
 </value>
   </data>
   <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>52</value>
+    <value>48</value>
   </metadata>
 </root>
\ No newline at end of file

=== modified file 'WexInstaller/InstallWizard/InstallType.cs'
--- a/WexInstaller/InstallWizard/InstallType.cs	2011-03-28 07:17:22 +0000
+++ b/WexInstaller/InstallWizard/InstallType.cs	2011-03-28 11:56:39 +0000
@@ -15,6 +15,7 @@
     private SetupType currentType;
     private string defaultInstallationPath = "";
     private string defaultDataPath = "";
+    private Product server = null;
     
     public InstallType()
     {
@@ -26,7 +27,6 @@
     public override void Activate()
     {
       base.Activate();
-      Product server = null;
       Product candidate = null; // Non-server product.
 
       // Get the server product from the currently active catalog (if there is any).
@@ -147,12 +147,19 @@
         ProductManager.ActiveCatalog = ProductManager.DefaultCatalog;
 
         foreach (Product product in ProductManager.Products)
-          product.ProposedInstalled = false;
+          if (!product.Installed)
+            product.ProposedInstalled = false;
 
         foreach (CatalogProduct product in ProductManager.ActiveCatalog.Products)
           product.ReferencedProduct.ProposedInstalled = currentType.Includes(product);
       }
 
+      if (server != null && server.Controller is ServerProductConfigurationController)
+        (server.Controller as ServerProductConfigurationController).DataDir = dataPathEdit.Text.Trim();
+
+      foreach (CatalogProduct product in ProductManager.ActiveCatalog.Products)
+        product.ReferencedProduct.InstallationPath = installPathEdit.Text.Trim();
+
       return base.Next();
     }
 


Attachment: [text/bzr-bundle] bzr/mike.lischke@oracle.com-20110328115639-r00zw5a8lszptiqn.bundle
Thread
bzr commit into wex-installer-1.0 branch (mike.lischke:392) Mike Lischke28 Mar