diff --git a/Build/Configurations/Hexen.cfg b/Build/Configurations/Hexen.cfg
index c5d28ccb..5abc4aa2 100644
--- a/Build/Configurations/Hexen.cfg
+++ b/Build/Configurations/Hexen.cfg
@@ -3686,8 +3686,8 @@ enums
{
yesno
{
- 0 = "No";
1 = "Yes";
+ 0 = "No";
}
noyes
@@ -3704,8 +3704,8 @@ enums
offon
{
- 0 = "Off";
1 = "On";
+ 0 = "Off";
}
updown
diff --git a/Build/Configurations/Skulltag_DoomHexen.cfg b/Build/Configurations/Skulltag_DoomHexen.cfg
index d0aa69cb..8a95a3ce 100644
--- a/Build/Configurations/Skulltag_DoomHexen.cfg
+++ b/Build/Configurations/Skulltag_DoomHexen.cfg
@@ -6408,8 +6408,8 @@ enums
{
yesno
{
- 0 = "No";
1 = "Yes";
+ 0 = "No";
}
noyes
@@ -6426,8 +6426,8 @@ enums
offon
{
- 0 = "Off";
1 = "On";
+ 0 = "Off";
}
updown
@@ -6450,8 +6450,8 @@ enums
backfront
{
- 0 = "Back";
1 = "Front";
+ 0 = "Back";
}
keys
diff --git a/Build/Configurations/ZDoom_DoomHexen.cfg b/Build/Configurations/ZDoom_DoomHexen.cfg
index 245bcf60..7672665d 100644
--- a/Build/Configurations/ZDoom_DoomHexen.cfg
+++ b/Build/Configurations/ZDoom_DoomHexen.cfg
@@ -6393,8 +6393,8 @@ enums
{
yesno
{
- 0 = "No";
1 = "Yes";
+ 0 = "No";
}
noyes
@@ -6411,8 +6411,8 @@ enums
offon
{
- 0 = "Off";
1 = "On";
+ 0 = "Off";
}
updown
@@ -6435,8 +6435,8 @@ enums
backfront
{
- 0 = "Back";
1 = "Front";
+ 0 = "Back";
}
keys
diff --git a/Build/Configurations/ZDoom_HereticHexen.cfg b/Build/Configurations/ZDoom_HereticHexen.cfg
index 8e3df183..73dc99f3 100644
--- a/Build/Configurations/ZDoom_HereticHexen.cfg
+++ b/Build/Configurations/ZDoom_HereticHexen.cfg
@@ -5534,8 +5534,8 @@ enums
{
yesno
{
- 0 = "No";
1 = "Yes";
+ 0 = "No";
}
noyes
@@ -5552,8 +5552,8 @@ enums
offon
{
- 0 = "Off";
1 = "On";
+ 0 = "Off";
}
updown
@@ -5576,8 +5576,8 @@ enums
backfront
{
- 0 = "Back";
1 = "Front";
+ 0 = "Back";
}
keys
diff --git a/Build/Configurations/ZDoom_Hexen.cfg b/Build/Configurations/ZDoom_Hexen.cfg
index 871a0818..c81ebc7f 100644
--- a/Build/Configurations/ZDoom_Hexen.cfg
+++ b/Build/Configurations/ZDoom_Hexen.cfg
@@ -6490,8 +6490,8 @@ enums
{
yesno
{
- 0 = "No";
1 = "Yes";
+ 0 = "No";
}
noyes
@@ -6508,8 +6508,8 @@ enums
offon
{
- 0 = "Off";
1 = "On";
+ 0 = "Off";
}
updown
@@ -6532,8 +6532,8 @@ enums
backfront
{
- 0 = "Back";
1 = "Front";
+ 0 = "Back";
}
keys
diff --git a/Build/Configurations/ZDoom_StrifeHexen.cfg b/Build/Configurations/ZDoom_StrifeHexen.cfg
index 047b7555..de3e69d8 100644
--- a/Build/Configurations/ZDoom_StrifeHexen.cfg
+++ b/Build/Configurations/ZDoom_StrifeHexen.cfg
@@ -5944,8 +5944,8 @@ enums
{
yesno
{
- 0 = "No";
1 = "Yes";
+ 0 = "No";
}
noyes
@@ -5962,8 +5962,8 @@ enums
offon
{
- 0 = "Off";
1 = "On";
+ 0 = "Off";
}
updown
@@ -5986,8 +5986,8 @@ enums
backfront
{
- 0 = "Back";
1 = "Front";
+ 0 = "Back";
}
keys
diff --git a/Source/Builder.csproj b/Source/Builder.csproj
index bae94b44..8a169a08 100644
--- a/Source/Builder.csproj
+++ b/Source/Builder.csproj
@@ -68,6 +68,12 @@
+
+ UserControl
+
+
+ ArgumentBox.cs
+
@@ -118,9 +124,18 @@
+
+
+
+
+
+
+
+
+
@@ -148,7 +163,7 @@
AngleControl.cs
-
+
Component
@@ -172,6 +187,12 @@
ColorControl.cs
+
+ Form
+
+
+ BitFlagsForm.cs
+
Form
@@ -558,10 +579,18 @@
Designer
AngleControl.cs
+
+ Designer
+ ArgumentBox.cs
+
Designer
ClickableNumericTextbox.cs
+
+ Designer
+ BitFlagsForm.cs
+
Designer
ThingEditForm.cs
diff --git a/Source/Config/ArgumentInfo.cs b/Source/Config/ArgumentInfo.cs
index c9285de7..581f04c9 100644
--- a/Source/Config/ArgumentInfo.cs
+++ b/Source/Config/ArgumentInfo.cs
@@ -48,7 +48,7 @@ namespace CodeImp.DoomBuilder.Config
#region ================== Properties
public string Title { get { return title; } }
- public bool Used { get { return false; } }
+ public bool Used { get { return used; } }
public int Type { get { return type; } }
public EnumList Enum { get { return enumlist; } }
diff --git a/Source/Controls/ArgumentBox.Designer.cs b/Source/Controls/ArgumentBox.Designer.cs
new file mode 100644
index 00000000..268bd774
--- /dev/null
+++ b/Source/Controls/ArgumentBox.Designer.cs
@@ -0,0 +1,76 @@
+namespace CodeImp.DoomBuilder.Controls
+{
+ partial class ArgumentBox
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if(disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.combobox = new System.Windows.Forms.ComboBox();
+ this.button = new System.Windows.Forms.Button();
+ this.SuspendLayout();
+ //
+ // combobox
+ //
+ this.combobox.Location = new System.Drawing.Point(0, 1);
+ this.combobox.Name = "combobox";
+ this.combobox.Size = new System.Drawing.Size(149, 22);
+ this.combobox.TabIndex = 0;
+ this.combobox.Validating += new System.ComponentModel.CancelEventHandler(this.combobox_Validating);
+ //
+ // button
+ //
+ this.button.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.button.Image = global::CodeImp.DoomBuilder.Properties.Resources.treeview;
+ this.button.ImageAlign = System.Drawing.ContentAlignment.BottomCenter;
+ this.button.Location = new System.Drawing.Point(153, 0);
+ this.button.Name = "button";
+ this.button.Padding = new System.Windows.Forms.Padding(0, 0, 1, 2);
+ this.button.Size = new System.Drawing.Size(30, 24);
+ this.button.TabIndex = 3;
+ this.button.UseVisualStyleBackColor = true;
+ this.button.Visible = false;
+ this.button.Click += new System.EventHandler(this.button_Click);
+ //
+ // ArgumentBox
+ //
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
+ this.Controls.Add(this.button);
+ this.Controls.Add(this.combobox);
+ this.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.Name = "ArgumentBox";
+ this.Size = new System.Drawing.Size(268, 64);
+ this.Layout += new System.Windows.Forms.LayoutEventHandler(this.ArgumentBox_Layout);
+ this.Resize += new System.EventHandler(this.ArgumentBox_Resize);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.ComboBox combobox;
+ private System.Windows.Forms.Button button;
+ }
+}
diff --git a/Source/Controls/ArgumentBox.cs b/Source/Controls/ArgumentBox.cs
index 08e28955..dd92b1b9 100644
--- a/Source/Controls/ArgumentBox.cs
+++ b/Source/Controls/ArgumentBox.cs
@@ -21,113 +21,198 @@ using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Text;
-using System.Globalization;
using System.Windows.Forms;
-using CodeImp.DoomBuilder.Actions;
-using CodeImp.DoomBuilder.Geometry;
-using CodeImp.DoomBuilder.Rendering;
-using CodeImp.DoomBuilder.Editing;
-using System.Drawing.Drawing2D;
+using Microsoft.Win32;
using CodeImp.DoomBuilder.Config;
+using CodeImp.DoomBuilder.Rendering;
+using CodeImp.DoomBuilder.Types;
+using System.Globalization;
#endregion
namespace CodeImp.DoomBuilder.Controls
{
- public class ArgumentBox : ComboBox
+ public partial class ArgumentBox : UserControl
{
- #region ================== Constants
-
- #endregion
-
#region ================== Variables
- private EnumList enums;
-
+ private TypeHandler typehandler;
+
#endregion
#region ================== Properties
#endregion
- #region ================== Constructor / Disposer
+ #region ================== Constructor
// Constructor
public ArgumentBox()
{
- this.ImeMode = ImeMode.Off;
+ // Initialize
+ InitializeComponent();
}
#endregion
+
+ #region ================== Events
- #region ================== Methods
-
- // This sets the value
- public void SetValue(int v)
+ // When control resizes
+ private void ArgumentBox_Resize(object sender, EventArgs e)
{
- this.SelectedItem = null;
- this.Text = v.ToString();
+ if(button.Visible)
+ combobox.Width = ClientRectangle.Width - button.Width - 2;
+ else
+ combobox.Width = ClientRectangle.Width;
+
+ button.Left = ClientRectangle.Width - button.Width;
+ Height = button.Height;
+ }
+
+ // When control layout is aplied
+ private void ArgumentBox_Layout(object sender, LayoutEventArgs e)
+ {
+ ArgumentBox_Resize(sender, e);
+ }
+
+ // When the entered value needs to be validated
+ private void combobox_Validating(object sender, CancelEventArgs e)
+ {
+ string str = combobox.Text.Trim().ToLowerInvariant();
+ str = str.TrimStart('+', '-');
+ int num;
+
+ // Anything in the box?
+ if(combobox.Text.Trim().Length > 0)
+ {
+ // Prefixed?
+ if(combobox.Text.Trim().StartsWith("++") ||
+ combobox.Text.Trim().StartsWith("--"))
+ {
+ // Try parsing to number
+ if(!int.TryParse(str, NumberStyles.Integer, CultureInfo.CurrentCulture, out num))
+ {
+ // Invalid relative number
+ combobox.SelectedItem = null;
+ combobox.Text = "";
+ }
+ }
+ else
+ {
+ // Set the value. The type handler will validate it
+ // and make the best possible choice.
+ typehandler.SetValue(combobox.Text);
+ combobox.SelectedItem = null;
+ combobox.Text = typehandler.GetStringValue();
+ }
+ }
+ }
+
+ // When browse button is clicked
+ private void button_Click(object sender, EventArgs e)
+ {
+ // Browse for a value
+ typehandler.Browse(this);
+ combobox.SelectedItem = null;
+ combobox.Text = typehandler.GetStringValue();
+ combobox.Focus();
+ combobox.SelectAll();
}
- // This fills the box with the given enum
- public void SetupEnums(EnumList enumslist)
+ #endregion
+
+ #region ================== Methods
+
+ // This sets up the control for a specific argument
+ public void Setup(ArgumentInfo arginfo)
{
- // Keep old value
- int value = this.GetResult(0);
-
- // Find the enums list
- if(enumslist != null)
- this.DropDownStyle = ComboBoxStyle.DropDown;
- else
- this.DropDownStyle = ComboBoxStyle.Simple;
+ int oldvalue = 0;
- // Fill list
- this.enums = enumslist;
- this.Items.Clear();
- if(enumslist != null) this.Items.AddRange(enumslist.ToArray());
+ // Get the original value
+ if(typehandler != null) oldvalue = typehandler.GetIntValue();
+
+ // Get the type handler
+ typehandler = General.Types.GetArgumentHandler(arginfo);
+
+ // Clear combobox
+ combobox.SelectedItem = null;
+ combobox.Items.Clear();
+ // Check if this supports enumerated options
+ if(typehandler.IsEnumerable)
+ {
+ // Show the combobox
+ button.Visible = false;
+ combobox.DropDownStyle = ComboBoxStyle.DropDown;
+ combobox.Items.AddRange(typehandler.GetEnumList().ToArray());
+ }
+ // Check if browsable
+ else if(typehandler.IsBrowseable)
+ {
+ // Show the button
+ button.Visible = true;
+ combobox.DropDownStyle = ComboBoxStyle.Simple;
+ }
+ else
+ {
+ // Show just a textbox
+ button.Visible = false;
+ combobox.DropDownStyle = ComboBoxStyle.Simple;
+ }
+
+ // Setup layout
+ ArgumentBox_Resize(this, EventArgs.Empty);
+
// Re-apply value
- this.Text = value.ToString();
- OnValidating(new CancelEventArgs());
+ SetValue(oldvalue);
+ }
+
+ // This sets the value
+ public void SetValue(int value)
+ {
+ typehandler.SetValue(value);
+ combobox.SelectedItem = null;
+ combobox.Text = typehandler.GetStringValue();
+ combobox_Validating(this, new CancelEventArgs());
+ }
+
+ // This clears the value
+ public void ClearValue()
+ {
+ typehandler.SetValue("");
+ combobox.SelectedItem = null;
+ combobox.Text = "";
}
// This returns the selected value
public int GetResult(int original)
{
// Strip prefixes
- string str = this.Text.Trim().ToLowerInvariant();
+ string str = combobox.Text.Trim().ToLowerInvariant();
str = str.TrimStart('+', '-');
int num = original;
// Anything in the box?
- if(str.Length > 0)
+ if(combobox.Text.Trim().Length > 0)
{
- // Enum selected?
- if(this.SelectedItem != null)
+ // Prefixed with ++?
+ if(combobox.Text.Trim().StartsWith("++"))
{
- return (this.SelectedItem as EnumItem).GetIntValue();
+ // Add number to original
+ if(!int.TryParse(str, out num)) num = 0;
+ return original + num;
+ }
+ // Prefixed with --?
+ else if(combobox.Text.Trim().StartsWith("--"))
+ {
+ // Subtract number from original
+ if(!int.TryParse(str, out num)) num = 0;
+ return original - num;
}
else
{
- // Prefixed with ++?
- if(this.Text.StartsWith("++"))
- {
- // Add number to original
- if(!int.TryParse(str, out num)) num = 0;
- return original + num;
- }
- // Prefixed with --?
- else if(this.Text.StartsWith("--"))
- {
- // Subtract number from original
- if(!int.TryParse(str, out num)) num = 0;
- return original - num;
- }
- else
- {
- // Return the new value
- if(int.TryParse(this.Text, out num)) return num; else return 0;
- }
+ // Return the value
+ return typehandler.GetIntValue();
}
}
else
@@ -137,77 +222,6 @@ namespace CodeImp.DoomBuilder.Controls
}
}
- // This finds the matching enum by number or title and selects it
- // Otherwise, if it is a number, keeps the number or sets it to 0
- protected override void OnValidating(CancelEventArgs e)
- {
- // Strip prefixes
- string str = this.Text.Trim().ToLowerInvariant();
- str = str.TrimStart('+', '-');
- int num = 0;
-
- // Prefixed?
- if(this.Text.Trim().StartsWith("++") || this.Text.Trim().StartsWith("--"))
- {
- // Try parsing to number
- if(!int.TryParse(str, NumberStyles.Integer, CultureInfo.CurrentCulture, out num))
- {
- // Invalid relative number
- this.SelectedItem = null;
- this.Text = "";
- }
- }
- else
- {
- // Try parsing to number
- if(int.TryParse(str, NumberStyles.Integer, CultureInfo.CurrentCulture, out num))
- {
- // Try selecting this enum
- EnumItem item = null;
- if(enums != null) item = enums.GetByEnumIndex(num.ToString());
- if(item != null)
- {
- // Select enum
- this.SelectedItem = item;
- }
- }
- // Enums available to check?
- else if(enums != null)
- {
- // Try finding the enum by comparing the left part of the string
- bool foundmatch = false;
- foreach(EnumItem item in enums)
- {
- // Enum matches?
- if(item.ToString().ToLowerInvariant().StartsWith(str))
- {
- // Select enum
- this.SelectedItem = item;
- foundmatch = true;
- break;
- }
- }
-
- // Not found anything?
- if(!foundmatch)
- {
- // Null the value
- this.SelectedItem = null;
- this.Text = "";
- }
- }
- else
- {
- // Invalid, just zero it
- this.SelectedItem = null;
- this.Text = "";
- }
- }
-
- // Validate base
- base.OnValidating(e);
- }
-
#endregion
}
}
diff --git a/Source/Controls/ArgumentBox.resx b/Source/Controls/ArgumentBox.resx
new file mode 100644
index 00000000..1e02acb4
--- /dev/null
+++ b/Source/Controls/ArgumentBox.resx
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ True
+
+
+ True
+
+
+ True
+
+
\ No newline at end of file
diff --git a/Source/Controls/BlaBlaBla.cs b/Source/Controls/BlaBlaBla.cs
new file mode 100644
index 00000000..f17caaa9
--- /dev/null
+++ b/Source/Controls/BlaBlaBla.cs
@@ -0,0 +1,213 @@
+
+#region ================== Copyright (c) 2007 Pascal vd Heiden
+
+/*
+ * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
+ * This program is released under GNU General Public License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#endregion
+
+#region ================== Namespaces
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Text;
+using System.Globalization;
+using System.Windows.Forms;
+using CodeImp.DoomBuilder.Actions;
+using CodeImp.DoomBuilder.Geometry;
+using CodeImp.DoomBuilder.Rendering;
+using CodeImp.DoomBuilder.Editing;
+using System.Drawing.Drawing2D;
+using CodeImp.DoomBuilder.Config;
+
+#endregion
+
+namespace CodeImp.DoomBuilder.Controls
+{
+ public class BlaBlaBla : ComboBox
+ {
+ #region ================== Constants
+
+ #endregion
+
+ #region ================== Variables
+
+ private EnumList enums;
+
+ #endregion
+
+ #region ================== Properties
+
+ #endregion
+
+ #region ================== Constructor / Disposer
+
+ // Constructor
+ public BlaBlaBla()
+ {
+ this.ImeMode = ImeMode.Off;
+ }
+
+ #endregion
+
+ #region ================== Methods
+
+ // This sets the value
+ public void SetValue(int v)
+ {
+ this.SelectedItem = null;
+ this.Text = v.ToString();
+ }
+
+ // This fills the box with the given enum
+ public void SetupEnums(EnumList enumslist)
+ {
+ // Keep old value
+ int value = this.GetResult(0);
+
+ // Find the enums list
+ if(enumslist != null)
+ this.DropDownStyle = ComboBoxStyle.DropDown;
+ else
+ this.DropDownStyle = ComboBoxStyle.Simple;
+
+ // Fill list
+ this.enums = enumslist;
+ this.Items.Clear();
+ if(enumslist != null) this.Items.AddRange(enumslist.ToArray());
+
+ // Re-apply value
+ this.Text = value.ToString();
+ OnValidating(new CancelEventArgs());
+ }
+
+ // This returns the selected value
+ public int GetResult(int original)
+ {
+ // Strip prefixes
+ string str = this.Text.Trim().ToLowerInvariant();
+ str = str.TrimStart('+', '-');
+ int num = original;
+
+ // Anything in the box?
+ if(str.Length > 0)
+ {
+ // Enum selected?
+ if(this.SelectedItem != null)
+ {
+ return (this.SelectedItem as EnumItem).GetIntValue();
+ }
+ else
+ {
+ // Prefixed with ++?
+ if(this.Text.StartsWith("++"))
+ {
+ // Add number to original
+ if(!int.TryParse(str, out num)) num = 0;
+ return original + num;
+ }
+ // Prefixed with --?
+ else if(this.Text.StartsWith("--"))
+ {
+ // Subtract number from original
+ if(!int.TryParse(str, out num)) num = 0;
+ return original - num;
+ }
+ else
+ {
+ // Return the new value
+ if(int.TryParse(this.Text, out num)) return num; else return 0;
+ }
+ }
+ }
+ else
+ {
+ // Just return the original
+ return original;
+ }
+ }
+
+ // This finds the matching enum by number or title and selects it
+ // Otherwise, if it is a number, keeps the number or sets it to 0
+ protected override void OnValidating(CancelEventArgs e)
+ {
+ // Strip prefixes
+ string str = this.Text.Trim().ToLowerInvariant();
+ str = str.TrimStart('+', '-');
+ int num = 0;
+
+ // Prefixed?
+ if(this.Text.Trim().StartsWith("++") || this.Text.Trim().StartsWith("--"))
+ {
+ // Try parsing to number
+ if(!int.TryParse(str, NumberStyles.Integer, CultureInfo.CurrentCulture, out num))
+ {
+ // Invalid relative number
+ this.SelectedItem = null;
+ this.Text = "";
+ }
+ }
+ else
+ {
+ // Try parsing to number
+ if(int.TryParse(str, NumberStyles.Integer, CultureInfo.CurrentCulture, out num))
+ {
+ // Try selecting this enum
+ EnumItem item = null;
+ if(enums != null) item = enums.GetByEnumIndex(num.ToString());
+ if(item != null)
+ {
+ // Select enum
+ this.SelectedItem = item;
+ }
+ }
+ // Enums available to check?
+ else if(enums != null)
+ {
+ // Try finding the enum by comparing the left part of the string
+ bool foundmatch = false;
+ foreach(EnumItem item in enums)
+ {
+ // Enum matches?
+ if(item.ToString().ToLowerInvariant().StartsWith(str))
+ {
+ // Select enum
+ this.SelectedItem = item;
+ foundmatch = true;
+ break;
+ }
+ }
+
+ // Not found anything?
+ if(!foundmatch)
+ {
+ // Null the value
+ this.SelectedItem = null;
+ this.Text = "";
+ }
+ }
+ else
+ {
+ // Invalid, just zero it
+ this.SelectedItem = null;
+ this.Text = "";
+ }
+ }
+
+ // Validate base
+ base.OnValidating(e);
+ }
+
+ #endregion
+ }
+}
diff --git a/Source/IO/HexenMapSetIO.cs b/Source/IO/HexenMapSetIO.cs
index b1d1190c..a715150d 100644
--- a/Source/IO/HexenMapSetIO.cs
+++ b/Source/IO/HexenMapSetIO.cs
@@ -89,7 +89,7 @@ namespace CodeImp.DoomBuilder.IO
MemoryStream mem;
BinaryReader reader;
int num, i, tag, z, action, x, y, type, flags;
- byte[] args = new byte[Thing.NUM_ARGS];
+ int[] args = new int[Thing.NUM_ARGS];
float angle;
Thing t;
@@ -233,7 +233,7 @@ namespace CodeImp.DoomBuilder.IO
Lump linedefslump, sidedefslump;
int num, i, offsetx, offsety, v1, v2;
int s1, s2, flags, action, sc;
- byte[] args = new byte[Linedef.NUM_ARGS];
+ int[] args = new int[Linedef.NUM_ARGS];
string thigh, tmid, tlow;
Linedef l;
Sidedef s;
diff --git a/Source/Map/Linedef.cs b/Source/Map/Linedef.cs
index 57c30d7e..384b080c 100644
--- a/Source/Map/Linedef.cs
+++ b/Source/Map/Linedef.cs
@@ -36,7 +36,7 @@ namespace CodeImp.DoomBuilder.Map
public const float SIDE_POINT_DISTANCE = 0.001f;
public const int NUM_ARGS = 5;
- public static readonly byte[] EMPTY_ARGS = new byte[NUM_ARGS];
+ public static readonly int[] EMPTY_ARGS = new int[NUM_ARGS];
#endregion
@@ -71,7 +71,7 @@ namespace CodeImp.DoomBuilder.Map
private int flags;
private int action;
private int tag;
- private byte[] args;
+ private int[] args;
// Additional fields
private SortedList fields;
@@ -105,7 +105,7 @@ namespace CodeImp.DoomBuilder.Map
public float Angle { get { return angle; } }
public int AngleDeg { get { return (int)(angle * Angle2D.PIDEG); } }
public RectangleF Rect { get { return rect; } }
- public byte[] Args { get { return args; } }
+ public int[] Args { get { return args; } }
public SortedList Fields { get { return fields; } }
#endregion
@@ -121,7 +121,7 @@ namespace CodeImp.DoomBuilder.Map
this.start = start;
this.end = end;
this.updateneeded = true;
- this.args = new byte[NUM_ARGS];
+ this.args = new int[NUM_ARGS];
// Attach to vertices
startvertexlistitem = start.AttachLinedef(this);
@@ -194,7 +194,7 @@ namespace CodeImp.DoomBuilder.Map
{
// Copy properties
l.action = action;
- l.args = (byte[])args.Clone();
+ l.args = (int[])args.Clone();
l.flags = flags;
l.tag = tag;
l.updateneeded = true;
@@ -753,13 +753,13 @@ namespace CodeImp.DoomBuilder.Map
#region ================== Changes
// This updates all properties
- public void Update(int flags, int tag, int action, byte[] args)
+ public void Update(int flags, int tag, int action, int[] args)
{
// Apply changes
this.flags = flags;
this.tag = tag;
this.action = action;
- this.args = new byte[NUM_ARGS];
+ this.args = new int[NUM_ARGS];
args.CopyTo(this.args, 0);
this.updateneeded = true;
}
diff --git a/Source/Map/Thing.cs b/Source/Map/Thing.cs
index 3759002b..7ef289ff 100644
--- a/Source/Map/Thing.cs
+++ b/Source/Map/Thing.cs
@@ -35,7 +35,7 @@ namespace CodeImp.DoomBuilder.Map
#region ================== Constants
public const int NUM_ARGS = 5;
- public static readonly byte[] EMPTY_ARGS = new byte[NUM_ARGS];
+ public static readonly int[] EMPTY_ARGS = new int[NUM_ARGS];
#endregion
@@ -58,7 +58,7 @@ namespace CodeImp.DoomBuilder.Map
private int flags;
private int tag;
private int action;
- private byte[] args;
+ private int[] args;
private int x, y, zoffset;
// Configuration
@@ -88,7 +88,7 @@ namespace CodeImp.DoomBuilder.Map
public int AngleDeg { get { return (int)Angle2D.RadToDeg(angle); } }
public int Flags { get { return flags; } set { flags = value; } }
public int Action { get { return action; } set { action = value; } }
- public byte[] Args { get { return args; } }
+ public int[] Args { get { return args; } }
public bool Selected { get { return selected; } set { selected = value; } }
public bool Marked { get { return marked; } set { marked = value; } }
public float Size { get { return size; } }
@@ -258,7 +258,7 @@ namespace CodeImp.DoomBuilder.Map
// This updates all properties
// NOTE: This does not update sector! (call DetermineSector)
public void Update(int type, int x, int y, int zoffset, float angle,
- int flags, int tag, int action, byte[] args)
+ int flags, int tag, int action, int[] args)
{
// Apply changes
this.type = type;
@@ -266,7 +266,7 @@ namespace CodeImp.DoomBuilder.Map
this.flags = flags;
this.tag = tag;
this.action = action;
- this.args = new byte[NUM_ARGS];
+ this.args = new int[NUM_ARGS];
args.CopyTo(this.args, 0);
this.Move(x, y, zoffset);
}
diff --git a/Source/Types/BoolHandler.cs b/Source/Types/BoolHandler.cs
new file mode 100644
index 00000000..8df8fa82
--- /dev/null
+++ b/Source/Types/BoolHandler.cs
@@ -0,0 +1,101 @@
+
+#region ================== Copyright (c) 2007 Pascal vd Heiden
+
+/*
+ * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
+ * This program is released under GNU General Public License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#endregion
+
+#region ================== Namespaces
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Text;
+using CodeImp.DoomBuilder.IO;
+using CodeImp.DoomBuilder.Data;
+using System.IO;
+using System.Diagnostics;
+
+#endregion
+
+namespace CodeImp.DoomBuilder.Types
+{
+ [TypeHandler(3)]
+ internal class BoolHandler : TypeHandler
+ {
+ #region ================== Constants
+
+ #endregion
+
+ #region ================== Variables
+
+ private bool value;
+
+ #endregion
+
+ #region ================== Properties
+
+ public override bool IsCustomType { get { return true; } }
+
+ #endregion
+
+ #region ================== Methods
+
+ public override void SetValue(object value)
+ {
+ bool result;
+
+ // already bool?
+ if(value is bool)
+ {
+ this.value = (bool)value;
+ }
+ // int or float?
+ else if((value is int) || (value is float))
+ {
+ // Set directly
+ this.value = (Math.Abs((float)value) > 0.0001f);
+ }
+ // string?
+ else if(value is string)
+ {
+ // Try parsing as string
+ if(value.ToString().ToLowerInvariant().StartsWith("t"))
+ this.value = true;
+ else
+ this.value = false;
+ }
+ else
+ {
+ this.value = false;
+ }
+ }
+
+ public override object GetValue()
+ {
+ return this.value;
+ }
+
+ public override int GetIntValue()
+ {
+ if(this.value) return 1; else return 0;
+ }
+
+ public override string GetStringValue()
+ {
+ return this.value.ToString();
+ }
+
+ #endregion
+ }
+}
diff --git a/Source/Types/ColorHandler.cs b/Source/Types/ColorHandler.cs
new file mode 100644
index 00000000..beb30242
--- /dev/null
+++ b/Source/Types/ColorHandler.cs
@@ -0,0 +1,122 @@
+
+#region ================== Copyright (c) 2007 Pascal vd Heiden
+
+/*
+ * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
+ * This program is released under GNU General Public License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#endregion
+
+#region ================== Namespaces
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Text;
+using CodeImp.DoomBuilder.IO;
+using CodeImp.DoomBuilder.Data;
+using System.IO;
+using System.Diagnostics;
+using CodeImp.DoomBuilder.Config;
+using CodeImp.DoomBuilder.Windows;
+using System.Windows.Forms;
+using System.Drawing;
+
+#endregion
+
+namespace CodeImp.DoomBuilder.Types
+{
+ [TypeHandler(10)]
+ internal class ColorHandler : TypeHandler
+ {
+ #region ================== Constants
+
+ #endregion
+
+ #region ================== Variables
+
+ private int value; // XXRRGGBB color
+
+ #endregion
+
+ #region ================== Properties
+
+ public override bool IsBrowseable { get { return true; } }
+ public override bool IsCustomType { get { return true; } }
+
+ #endregion
+
+ #region ================== Constructor
+
+ #endregion
+
+ #region ================== Methods
+
+ public override void Browse(IWin32Window parent)
+ {
+ ColorDialog dialog = new ColorDialog();
+ dialog.AllowFullOpen = true;
+ dialog.AnyColor = true;
+ dialog.Color = Color.FromArgb((value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF);
+ dialog.FullOpen = true;
+ if(dialog.ShowDialog(parent) == DialogResult.OK)
+ {
+ value = dialog.Color.ToArgb() & 0x00FFFFFF;
+ }
+ }
+
+ public override void SetValue(object value)
+ {
+ int result;
+
+ // Already an int or float?
+ if(value is int)
+ {
+ // Set directly
+ this.value = (int)value;
+ }
+ // String?
+ else if(value is string)
+ {
+ // Try parsing as string
+ if(int.TryParse(value.ToString(), NumberStyles.HexNumber, CultureInfo.CurrentCulture, out result))
+ {
+ this.value = result;
+ }
+ else
+ {
+ this.value = 0;
+ }
+ }
+ else
+ {
+ this.value = 0;
+ }
+ }
+
+ public override object GetValue()
+ {
+ return this.value;
+ }
+
+ public override int GetIntValue()
+ {
+ return this.value;
+ }
+
+ public override string GetStringValue()
+ {
+ return this.value.ToString("X6");
+ }
+
+ #endregion
+ }
+}
diff --git a/Source/Types/EnumBitsHandler.cs b/Source/Types/EnumBitsHandler.cs
new file mode 100644
index 00000000..3f54fe6d
--- /dev/null
+++ b/Source/Types/EnumBitsHandler.cs
@@ -0,0 +1,117 @@
+
+#region ================== Copyright (c) 2007 Pascal vd Heiden
+
+/*
+ * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
+ * This program is released under GNU General Public License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#endregion
+
+#region ================== Namespaces
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Text;
+using CodeImp.DoomBuilder.IO;
+using CodeImp.DoomBuilder.Data;
+using System.IO;
+using System.Diagnostics;
+using CodeImp.DoomBuilder.Config;
+using System.Windows.Forms;
+using CodeImp.DoomBuilder.Windows;
+
+#endregion
+
+namespace CodeImp.DoomBuilder.Types
+{
+ [TypeHandler(12)]
+ internal class EnumBitsHandler : TypeHandler
+ {
+ #region ================== Constants
+
+ #endregion
+
+ #region ================== Variables
+
+ private EnumList list;
+ private int value;
+
+ #endregion
+
+ #region ================== Properties
+
+ public override bool IsBrowseable { get { return true; } }
+
+ #endregion
+
+ #region ================== Constructor
+
+ // When set up for an argument
+ public override void SetupArgument(ArgumentInfo arginfo)
+ {
+ base.SetupArgument(arginfo);
+
+ // Keep enum list reference
+ list = arginfo.Enum;
+ }
+
+ #endregion
+
+ #region ================== Methods
+
+ public override void Browse(IWin32Window parent)
+ {
+ value = BitFlagsForm.ShowDialog(parent, list, value);
+ }
+
+ public override void SetValue(object value)
+ {
+ int result;
+
+ // Already an int?
+ if(value is int)
+ {
+ // Set directly
+ this.value = (int)value;
+ }
+ else
+ {
+ // Try parsing as string
+ if(int.TryParse(value.ToString(), NumberStyles.Integer, CultureInfo.CurrentCulture, out result))
+ {
+ this.value = result;
+ }
+ else
+ {
+ this.value = 0;
+ }
+ }
+ }
+
+ public override object GetValue()
+ {
+ return this.value;
+ }
+
+ public override int GetIntValue()
+ {
+ return this.value;
+ }
+
+ public override string GetStringValue()
+ {
+ return this.value.ToString();
+ }
+
+ #endregion
+ }
+}
diff --git a/Source/Types/EnumOptionHandler.cs b/Source/Types/EnumOptionHandler.cs
index b6075ea7..e10b6859 100644
--- a/Source/Types/EnumOptionHandler.cs
+++ b/Source/Types/EnumOptionHandler.cs
@@ -47,8 +47,8 @@ namespace CodeImp.DoomBuilder.Types
#region ================== Properties
- public virtual bool IsBrowseable { get { return true; } }
- public virtual bool IsEnumerable { get { return true; } }
+ public override bool IsBrowseable { get { return true; } }
+ public override bool IsEnumerable { get { return true; } }
#endregion
@@ -66,22 +66,43 @@ namespace CodeImp.DoomBuilder.Types
#endregion
#region ================== Methods
-
+
public override void SetValue(object value)
{
this.value = null;
-
- // First try to match the value against the enum values
- foreach(EnumItem item in list)
+
+ // Value is an integer?
+ if(value is int)
{
- // Matching value?
- if(item.Value == value.ToString())
+ int intvalue = (int)value;
+
+ // First try to match the value against the enum values
+ foreach(EnumItem item in list)
{
- // Set this value
- this.value = item;
+ // Matching value?
+ if(item.GetIntValue() == intvalue)
+ {
+ // Set this value
+ this.value = item;
+ }
}
}
-
+
+ // No match found yet?
+ if(this.value == null)
+ {
+ // First try to match the value against the enum values
+ foreach(EnumItem item in list)
+ {
+ // Matching value?
+ if(item.Value == value.ToString())
+ {
+ // Set this value
+ this.value = item;
+ }
+ }
+ }
+
// No match found yet?
if(this.value == null)
{
@@ -105,6 +126,11 @@ namespace CodeImp.DoomBuilder.Types
}
}
+ public override object GetValue()
+ {
+ return GetIntValue();
+ }
+
public override int GetIntValue()
{
if(this.value != null)
diff --git a/Source/Types/FlatHandler.cs b/Source/Types/FlatHandler.cs
new file mode 100644
index 00000000..9c3349f8
--- /dev/null
+++ b/Source/Types/FlatHandler.cs
@@ -0,0 +1,79 @@
+
+#region ================== Copyright (c) 2007 Pascal vd Heiden
+
+/*
+ * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
+ * This program is released under GNU General Public License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#endregion
+
+#region ================== Namespaces
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Text;
+using CodeImp.DoomBuilder.IO;
+using CodeImp.DoomBuilder.Data;
+using System.IO;
+using System.Diagnostics;
+using System.Windows.Forms;
+using CodeImp.DoomBuilder.Windows;
+
+#endregion
+
+namespace CodeImp.DoomBuilder.Types
+{
+ [TypeHandler(7)]
+ internal class FlatHandler : TypeHandler
+ {
+ #region ================== Constants
+
+ #endregion
+
+ #region ================== Variables
+
+ private string value;
+
+ #endregion
+
+ #region ================== Properties
+
+ public override bool IsBrowseable { get { return true; } }
+ public override bool IsCustomType { get { return true; } }
+
+ #endregion
+
+ #region ================== Methods
+
+ public override void Browse(IWin32Window parent)
+ {
+ this.value = FlatBrowserForm.Browse(parent, this.value);
+ }
+
+ public override void SetValue(object value)
+ {
+ this.value = value.ToString();
+ }
+
+ public override object GetValue()
+ {
+ return this.value;
+ }
+
+ public override string GetStringValue()
+ {
+ return this.value;
+ }
+
+ #endregion
+ }
+}
diff --git a/Source/Types/FloatHandler.cs b/Source/Types/FloatHandler.cs
new file mode 100644
index 00000000..ba8c80ca
--- /dev/null
+++ b/Source/Types/FloatHandler.cs
@@ -0,0 +1,95 @@
+
+#region ================== Copyright (c) 2007 Pascal vd Heiden
+
+/*
+ * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
+ * This program is released under GNU General Public License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#endregion
+
+#region ================== Namespaces
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Text;
+using CodeImp.DoomBuilder.IO;
+using CodeImp.DoomBuilder.Data;
+using System.IO;
+using System.Diagnostics;
+
+#endregion
+
+namespace CodeImp.DoomBuilder.Types
+{
+ [TypeHandler(1)]
+ internal class FloatHandler : TypeHandler
+ {
+ #region ================== Constants
+
+ #endregion
+
+ #region ================== Variables
+
+ private float value;
+
+ #endregion
+
+ #region ================== Properties
+
+ public override bool IsCustomType { get { return true; } }
+
+ #endregion
+
+ #region ================== Methods
+
+ public override void SetValue(object value)
+ {
+ float result;
+
+ // Already an int or float?
+ if((value is int) || (value is float))
+ {
+ // Set directly
+ this.value = (float)value;
+ }
+ else
+ {
+ // Try parsing as string
+ if(float.TryParse(value.ToString(), NumberStyles.Float, CultureInfo.CurrentCulture, out result))
+ {
+ this.value = result;
+ }
+ else
+ {
+ this.value = 0.0f;
+ }
+ }
+ }
+
+ public override object GetValue()
+ {
+ return this.value;
+ }
+
+ public override int GetIntValue()
+ {
+ return (int)this.value;
+ }
+
+ public override string GetStringValue()
+ {
+ return this.value.ToString();
+ }
+
+ #endregion
+ }
+}
diff --git a/Source/Types/IntegerHandler.cs b/Source/Types/IntegerHandler.cs
index e8a836f8..83dc873e 100644
--- a/Source/Types/IntegerHandler.cs
+++ b/Source/Types/IntegerHandler.cs
@@ -58,7 +58,7 @@ namespace CodeImp.DoomBuilder.Types
// Already an int or float?
if((value is int) || (value is float))
{
- // Return the same
+ // Set directly
this.value = (int)value;
}
else
@@ -75,6 +75,11 @@ namespace CodeImp.DoomBuilder.Types
}
}
+ public override object GetValue()
+ {
+ return this.value;
+ }
+
public override int GetIntValue()
{
return this.value;
diff --git a/Source/Types/LinedefTypeHandler.cs b/Source/Types/LinedefTypeHandler.cs
new file mode 100644
index 00000000..da900020
--- /dev/null
+++ b/Source/Types/LinedefTypeHandler.cs
@@ -0,0 +1,108 @@
+
+#region ================== Copyright (c) 2007 Pascal vd Heiden
+
+/*
+ * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
+ * This program is released under GNU General Public License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#endregion
+
+#region ================== Namespaces
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Text;
+using CodeImp.DoomBuilder.IO;
+using CodeImp.DoomBuilder.Data;
+using System.IO;
+using System.Diagnostics;
+using CodeImp.DoomBuilder.Config;
+using CodeImp.DoomBuilder.Windows;
+using System.Windows.Forms;
+
+#endregion
+
+namespace CodeImp.DoomBuilder.Types
+{
+ [TypeHandler(4)]
+ internal class LinedefTypeHandler : TypeHandler
+ {
+ #region ================== Constants
+
+ #endregion
+
+ #region ================== Variables
+
+ private int value;
+
+ #endregion
+
+ #region ================== Properties
+
+ public override bool IsBrowseable { get { return true; } }
+ public override bool IsCustomType { get { return true; } }
+
+ #endregion
+
+ #region ================== Constructor
+
+ #endregion
+
+ #region ================== Methods
+
+ public override void Browse(IWin32Window parent)
+ {
+ this.value = ActionBrowserForm.BrowseAction(parent, this.value);
+ }
+
+ public override void SetValue(object value)
+ {
+ int result;
+
+ // Already an int or float?
+ if((value is int) || (value is float))
+ {
+ // Set directly
+ this.value = (int)value;
+ }
+ else
+ {
+ // Try parsing as string
+ if(int.TryParse(value.ToString(), NumberStyles.Integer, CultureInfo.CurrentCulture, out result))
+ {
+ this.value = result;
+ }
+ else
+ {
+ this.value = 0;
+ }
+ }
+ }
+
+ public override object GetValue()
+ {
+ return this.value;
+ }
+
+ public override int GetIntValue()
+ {
+ return this.value;
+ }
+
+ public override string GetStringValue()
+ {
+ return this.value.ToString();
+ }
+
+ #endregion
+ }
+}
diff --git a/Source/Types/NullHandler.cs b/Source/Types/NullHandler.cs
index 5d2805d3..562434bb 100644
--- a/Source/Types/NullHandler.cs
+++ b/Source/Types/NullHandler.cs
@@ -53,6 +53,18 @@ namespace CodeImp.DoomBuilder.Types
this.value = value;
}
+ public override object GetValue()
+ {
+ return this.value.ToString();
+ }
+
+ public override int GetIntValue()
+ {
+ int result;
+ if(int.TryParse(this.value.ToString(), out result)) return result;
+ else return 0;
+ }
+
public override string GetStringValue()
{
return this.value.ToString();
diff --git a/Source/Types/SectorEffectHandler.cs b/Source/Types/SectorEffectHandler.cs
new file mode 100644
index 00000000..ef8ab244
--- /dev/null
+++ b/Source/Types/SectorEffectHandler.cs
@@ -0,0 +1,108 @@
+
+#region ================== Copyright (c) 2007 Pascal vd Heiden
+
+/*
+ * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
+ * This program is released under GNU General Public License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#endregion
+
+#region ================== Namespaces
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Text;
+using CodeImp.DoomBuilder.IO;
+using CodeImp.DoomBuilder.Data;
+using System.IO;
+using System.Diagnostics;
+using CodeImp.DoomBuilder.Config;
+using CodeImp.DoomBuilder.Windows;
+using System.Windows.Forms;
+
+#endregion
+
+namespace CodeImp.DoomBuilder.Types
+{
+ [TypeHandler(5)]
+ internal class SectorEffectHandler : TypeHandler
+ {
+ #region ================== Constants
+
+ #endregion
+
+ #region ================== Variables
+
+ private int value;
+
+ #endregion
+
+ #region ================== Properties
+
+ public override bool IsBrowseable { get { return true; } }
+ public override bool IsCustomType { get { return true; } }
+
+ #endregion
+
+ #region ================== Constructor
+
+ #endregion
+
+ #region ================== Methods
+
+ public override void Browse(IWin32Window parent)
+ {
+ this.value = EffectBrowserForm.BrowseEffect(parent, this.value);
+ }
+
+ public override void SetValue(object value)
+ {
+ int result;
+
+ // Already an int or float?
+ if((value is int) || (value is float))
+ {
+ // Set directly
+ this.value = (int)value;
+ }
+ else
+ {
+ // Try parsing as string
+ if(int.TryParse(value.ToString(), NumberStyles.Integer, CultureInfo.CurrentCulture, out result))
+ {
+ this.value = result;
+ }
+ else
+ {
+ this.value = 0;
+ }
+ }
+ }
+
+ public override object GetValue()
+ {
+ return this.value;
+ }
+
+ public override int GetIntValue()
+ {
+ return this.value;
+ }
+
+ public override string GetStringValue()
+ {
+ return this.value.ToString();
+ }
+
+ #endregion
+ }
+}
diff --git a/Source/Types/StringHandler.cs b/Source/Types/StringHandler.cs
new file mode 100644
index 00000000..54cf2fa3
--- /dev/null
+++ b/Source/Types/StringHandler.cs
@@ -0,0 +1,78 @@
+
+#region ================== Copyright (c) 2007 Pascal vd Heiden
+
+/*
+ * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
+ * This program is released under GNU General Public License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#endregion
+
+#region ================== Namespaces
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Text;
+using CodeImp.DoomBuilder.IO;
+using CodeImp.DoomBuilder.Data;
+using System.IO;
+using System.Diagnostics;
+
+#endregion
+
+namespace CodeImp.DoomBuilder.Types
+{
+ [TypeHandler(2)]
+ internal class StringHandler : TypeHandler
+ {
+ #region ================== Constants
+
+ #endregion
+
+ #region ================== Variables
+
+ private string value;
+
+ #endregion
+
+ #region ================== Properties
+
+ public override bool IsCustomType { get { return true; } }
+
+ #endregion
+
+ #region ================== Methods
+
+ public override void SetValue(object value)
+ {
+ this.value = value.ToString();
+ }
+
+ public override object GetValue()
+ {
+ return this.value;
+ }
+
+ public override int GetIntValue()
+ {
+ int result;
+ if(int.TryParse(this.value, out result)) return result;
+ else return 0;
+ }
+
+ public override string GetStringValue()
+ {
+ return this.value;
+ }
+
+ #endregion
+ }
+}
diff --git a/Source/Types/TextureHandler.cs b/Source/Types/TextureHandler.cs
new file mode 100644
index 00000000..764cd1b9
--- /dev/null
+++ b/Source/Types/TextureHandler.cs
@@ -0,0 +1,79 @@
+
+#region ================== Copyright (c) 2007 Pascal vd Heiden
+
+/*
+ * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
+ * This program is released under GNU General Public License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#endregion
+
+#region ================== Namespaces
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Text;
+using CodeImp.DoomBuilder.IO;
+using CodeImp.DoomBuilder.Data;
+using System.IO;
+using System.Diagnostics;
+using System.Windows.Forms;
+using CodeImp.DoomBuilder.Windows;
+
+#endregion
+
+namespace CodeImp.DoomBuilder.Types
+{
+ [TypeHandler(6)]
+ internal class TextureHandler : TypeHandler
+ {
+ #region ================== Constants
+
+ #endregion
+
+ #region ================== Variables
+
+ private string value;
+
+ #endregion
+
+ #region ================== Properties
+
+ public override bool IsBrowseable { get { return true; } }
+ public override bool IsCustomType { get { return true; } }
+
+ #endregion
+
+ #region ================== Methods
+
+ public override void Browse(IWin32Window parent)
+ {
+ this.value = TextureBrowserForm.Browse(parent, this.value);
+ }
+
+ public override void SetValue(object value)
+ {
+ this.value = value.ToString();
+ }
+
+ public override object GetValue()
+ {
+ return this.value;
+ }
+
+ public override string GetStringValue()
+ {
+ return this.value;
+ }
+
+ #endregion
+ }
+}
diff --git a/Source/Types/TypeHandler.cs b/Source/Types/TypeHandler.cs
index 93069739..09c73552 100644
--- a/Source/Types/TypeHandler.cs
+++ b/Source/Types/TypeHandler.cs
@@ -32,6 +32,10 @@ using CodeImp.DoomBuilder.Config;
namespace CodeImp.DoomBuilder.Types
{
+ ///
+ /// Type Handler base class. A Type Handler takes care of editing, validating and
+ /// displaying values of different types for UDMF fields and hexen arguments.
+ ///
internal abstract class TypeHandler
{
#region ================== Constants
@@ -62,10 +66,16 @@ namespace CodeImp.DoomBuilder.Types
{
// Get my attributes
object[] attrs = this.GetType().GetCustomAttributes(typeof(TypeHandlerAttribute), false);
- TypeHandlerAttribute attr = (attrs[0] as TypeHandlerAttribute);
-
- // Initialize
- this.index = attr.Index;
+ if(attrs.Length > 0)
+ {
+ // Set index from attribute
+ this.index = (attrs[0] as TypeHandlerAttribute).Index;
+ }
+ else
+ {
+ // Indexless
+ this.index = -1;
+ }
}
// This sets up the handler for arguments
@@ -83,6 +93,10 @@ namespace CodeImp.DoomBuilder.Types
// How the value is actually validated and stored is up to the implementation
public abstract void SetValue(object value);
+ // This must return the value as one of the primitive data types
+ // supported by UDMF: int, string, float or bool
+ public abstract object GetValue();
+
// This must return the value as integer (for arguments)
public virtual int GetIntValue()
{
@@ -93,9 +107,8 @@ namespace CodeImp.DoomBuilder.Types
public abstract string GetStringValue();
// This is called when the user presses the browse button
- public virtual object Browse(IWin32Window parent)
+ public virtual void Browse(IWin32Window parent)
{
- return null;
}
// This must returns an enum list when IsEnumerable is true
diff --git a/Source/Windows/BitFlagsForm.Designer.cs b/Source/Windows/BitFlagsForm.Designer.cs
new file mode 100644
index 00000000..1484c09c
--- /dev/null
+++ b/Source/Windows/BitFlagsForm.Designer.cs
@@ -0,0 +1,100 @@
+namespace CodeImp.DoomBuilder.Windows
+{
+ partial class BitFlagsForm
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if(disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.options = new CodeImp.DoomBuilder.Controls.CheckboxArrayControl();
+ this.cancel = new System.Windows.Forms.Button();
+ this.apply = new System.Windows.Forms.Button();
+ this.SuspendLayout();
+ //
+ // options
+ //
+ this.options.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.options.AutoScroll = true;
+ this.options.Columns = 1;
+ this.options.Location = new System.Drawing.Point(25, 21);
+ this.options.Name = "options";
+ this.options.Size = new System.Drawing.Size(164, 158);
+ this.options.TabIndex = 0;
+ //
+ // cancel
+ //
+ this.cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ this.cancel.Location = new System.Drawing.Point(106, 198);
+ this.cancel.Name = "cancel";
+ this.cancel.Size = new System.Drawing.Size(91, 25);
+ this.cancel.TabIndex = 24;
+ this.cancel.Text = "Cancel";
+ this.cancel.UseVisualStyleBackColor = true;
+ this.cancel.Click += new System.EventHandler(this.cancel_Click);
+ //
+ // apply
+ //
+ this.apply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.apply.Location = new System.Drawing.Point(9, 198);
+ this.apply.Name = "apply";
+ this.apply.Size = new System.Drawing.Size(91, 25);
+ this.apply.TabIndex = 23;
+ this.apply.Text = "OK";
+ this.apply.UseVisualStyleBackColor = true;
+ this.apply.Click += new System.EventHandler(this.apply_Click);
+ //
+ // BitFlagsForm
+ //
+ this.AcceptButton = this.apply;
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
+ this.CancelButton = this.cancel;
+ this.ClientSize = new System.Drawing.Size(206, 232);
+ this.Controls.Add(this.cancel);
+ this.Controls.Add(this.apply);
+ this.Controls.Add(this.options);
+ this.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "BitFlagsForm";
+ this.Opacity = 0;
+ this.ShowIcon = false;
+ this.ShowInTaskbar = false;
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+ this.Text = "Options";
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private CodeImp.DoomBuilder.Controls.CheckboxArrayControl options;
+ private System.Windows.Forms.Button cancel;
+ private System.Windows.Forms.Button apply;
+ }
+}
\ No newline at end of file
diff --git a/Source/Windows/BitFlagsForm.cs b/Source/Windows/BitFlagsForm.cs
new file mode 100644
index 00000000..03423c67
--- /dev/null
+++ b/Source/Windows/BitFlagsForm.cs
@@ -0,0 +1,179 @@
+
+#region ================== Copyright (c) 2007 Pascal vd Heiden
+
+/*
+ * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
+ * This program is released under GNU General Public License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#endregion
+
+#region ================== Namespaces
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Text;
+using System.Windows.Forms;
+using CodeImp.DoomBuilder.Map;
+using CodeImp.DoomBuilder.Data;
+using CodeImp.DoomBuilder.IO;
+using System.IO;
+using CodeImp.DoomBuilder.Config;
+using CodeImp.DoomBuilder.Editing;
+using CodeImp.DoomBuilder.Controls;
+
+#endregion
+
+namespace CodeImp.DoomBuilder.Windows
+{
+ public partial class BitFlagsForm : DelayedForm
+ {
+ #region ================== Variables
+
+ private bool setup;
+ private int value;
+
+ #endregion
+
+ #region ================== Properties
+
+ public int Value { get { return value; } }
+
+ #endregion
+
+ #region ================== Constructor
+
+ // Constructor
+ public BitFlagsForm()
+ {
+ // Initialize
+ InitializeComponent();
+ }
+
+ #endregion
+
+ #region ================== Events
+
+ // When a checkbox is clicked
+ private void box_CheckedChanged(object sender, EventArgs e)
+ {
+ if(!setup)
+ {
+ // Now setting up
+ setup = true;
+
+ // Get this checkbox
+ CheckBox thisbox = (sender as CheckBox);
+
+ // Checking or unchecking?
+ if(thisbox.Checked)
+ {
+ // Go for all other options
+ foreach(CheckBox b in options.Checkboxes)
+ {
+ // Not the same box?
+ if(b != sender)
+ {
+ // Overlapping bit flags?
+ if(((int)b.Tag & (int)thisbox.Tag) != 0)
+ {
+ // Uncheck the other
+ b.Checked = false;
+ }
+ }
+ }
+ }
+
+ // Done
+ setup = false;
+ }
+ }
+
+ // Cancel clicked
+ private void cancel_Click(object sender, EventArgs e)
+ {
+ // Close
+ DialogResult = DialogResult.Cancel;
+ this.Close();
+ }
+
+ // OK clicked
+ private void apply_Click(object sender, EventArgs e)
+ {
+ this.value = 0;
+
+ // Go for all checkboxes to make the final value
+ foreach(CheckBox b in options.Checkboxes)
+ if(b.Checked) value |= (int)b.Tag;
+
+ // Done
+ DialogResult = DialogResult.OK;
+ this.Close();
+ }
+
+ #endregion
+
+ #region ================== Methods
+
+ // Setup from EnumList
+ public void Setup(EnumList flags, int value)
+ {
+ setup = true;
+ this.value = value;
+
+ // Make a checkbox for each item
+ foreach(EnumItem item in flags)
+ {
+ // Make the checkbox
+ CheckBox box = options.Add(item.Title, item.GetIntValue());
+
+ // Bind checking event
+ box.CheckedChanged += new EventHandler(box_CheckedChanged);
+
+ // Checking the box?
+ if((value & (int)box.Tag) == (int)box.Tag)
+ {
+ box.Checked = true;
+
+ // Go for all other checkboxes
+ foreach(CheckBox b in options.Checkboxes)
+ {
+ // Not the same box?
+ if(b != box)
+ {
+ // Overlapping bit flags?
+ if(((int)b.Tag & (int)box.Tag) != 0)
+ {
+ // Uncheck the other
+ b.Checked = false;
+ }
+ }
+ }
+ }
+ }
+
+ setup = false;
+ }
+
+ // This shows the dialog
+ // Returns the flags or the same flags when cancelled
+ public static int ShowDialog(IWin32Window owner, EnumList flags, int value)
+ {
+ BitFlagsForm f = new BitFlagsForm();
+ f.Setup(flags, value);
+ if(f.ShowDialog(owner) == DialogResult.OK) return value = f.Value;
+ f.Dispose();
+ return value;
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/Source/Windows/BitFlagsForm.resx b/Source/Windows/BitFlagsForm.resx
new file mode 100644
index 00000000..0520cc06
--- /dev/null
+++ b/Source/Windows/BitFlagsForm.resx
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
\ No newline at end of file
diff --git a/Source/Windows/LinedefEditForm.Designer.cs b/Source/Windows/LinedefEditForm.Designer.cs
index fb4f670d..5ffe0248 100644
--- a/Source/Windows/LinedefEditForm.Designer.cs
+++ b/Source/Windows/LinedefEditForm.Designer.cs
@@ -50,9 +50,6 @@ namespace CodeImp.DoomBuilder.Windows
this.apply = new System.Windows.Forms.Button();
this.actiongroup = new System.Windows.Forms.GroupBox();
this.hexenpanel = new System.Windows.Forms.Panel();
- this.arg2 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
- this.arg1 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
- this.arg0 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
this.arg3 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
this.arg4 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
this.activation = new System.Windows.Forms.ComboBox();
@@ -86,6 +83,9 @@ namespace CodeImp.DoomBuilder.Windows
this.frontoffsetx = new CodeImp.DoomBuilder.Controls.NumericTextbox();
this.tabcustom = new System.Windows.Forms.TabPage();
this.fieldslist = new CodeImp.DoomBuilder.Controls.FieldsEditorControl();
+ this.arg0 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
+ this.arg1 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
+ this.arg2 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
label2 = new System.Windows.Forms.Label();
taglabel = new System.Windows.Forms.Label();
label3 = new System.Windows.Forms.Label();
@@ -340,52 +340,21 @@ namespace CodeImp.DoomBuilder.Windows
this.hexenpanel.Size = new System.Drawing.Size(505, 132);
this.hexenpanel.TabIndex = 13;
//
- // arg2
- //
- this.arg2.FormattingEnabled = true;
- this.arg2.ImeMode = System.Windows.Forms.ImeMode.Off;
- this.arg2.Location = new System.Drawing.Point(159, 107);
- this.arg2.Name = "arg2";
- this.arg2.Size = new System.Drawing.Size(93, 22);
- this.arg2.TabIndex = 26;
- //
- // arg1
- //
- this.arg1.FormattingEnabled = true;
- this.arg1.ImeMode = System.Windows.Forms.ImeMode.Off;
- this.arg1.Location = new System.Drawing.Point(159, 81);
- this.arg1.Name = "arg1";
- this.arg1.Size = new System.Drawing.Size(93, 22);
- this.arg1.TabIndex = 25;
- //
- // arg0
- //
- this.arg0.FormattingEnabled = true;
- this.arg0.ImeMode = System.Windows.Forms.ImeMode.Off;
- this.arg0.Location = new System.Drawing.Point(159, 55);
- this.arg0.Name = "arg0";
- this.arg0.Size = new System.Drawing.Size(93, 22);
- this.arg0.TabIndex = 24;
- //
// arg3
//
- this.arg3.FormattingEnabled = true;
- this.arg3.ImeMode = System.Windows.Forms.ImeMode.Off;
- this.arg3.Location = new System.Drawing.Point(400, 55);
+ this.arg3.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.arg3.Location = new System.Drawing.Point(400, 53);
this.arg3.Name = "arg3";
- this.arg3.Size = new System.Drawing.Size(93, 22);
- this.arg3.TabIndex = 23;
+ this.arg3.Size = new System.Drawing.Size(93, 24);
+ this.arg3.TabIndex = 28;
//
// arg4
//
- this.arg4.DropDownWidth = 200;
- this.arg4.FormattingEnabled = true;
- this.arg4.ImeMode = System.Windows.Forms.ImeMode.Off;
- this.arg4.Location = new System.Drawing.Point(400, 81);
+ this.arg4.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.arg4.Location = new System.Drawing.Point(400, 79);
this.arg4.Name = "arg4";
- this.arg4.Size = new System.Drawing.Size(93, 22);
- this.arg4.TabIndex = 22;
- this.arg4.TextChanged += new System.EventHandler(this.arg4_TextChanged);
+ this.arg4.Size = new System.Drawing.Size(93, 24);
+ this.arg4.TabIndex = 27;
//
// activation
//
@@ -750,6 +719,30 @@ namespace CodeImp.DoomBuilder.Windows
this.fieldslist.Size = new System.Drawing.Size(511, 417);
this.fieldslist.TabIndex = 0;
//
+ // arg0
+ //
+ this.arg0.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.arg0.Location = new System.Drawing.Point(159, 53);
+ this.arg0.Name = "arg0";
+ this.arg0.Size = new System.Drawing.Size(93, 24);
+ this.arg0.TabIndex = 29;
+ //
+ // arg1
+ //
+ this.arg1.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.arg1.Location = new System.Drawing.Point(159, 79);
+ this.arg1.Name = "arg1";
+ this.arg1.Size = new System.Drawing.Size(93, 24);
+ this.arg1.TabIndex = 30;
+ //
+ // arg2
+ //
+ this.arg2.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.arg2.Location = new System.Drawing.Point(159, 105);
+ this.arg2.Name = "arg2";
+ this.arg2.Size = new System.Drawing.Size(93, 24);
+ this.arg2.TabIndex = 31;
+ //
// LinedefEditForm
//
this.AcceptButton = this.apply;
@@ -832,9 +825,9 @@ namespace CodeImp.DoomBuilder.Windows
private CodeImp.DoomBuilder.Controls.FieldsEditorControl fieldslist;
private System.Windows.Forms.GroupBox groupBox1;
private CodeImp.DoomBuilder.Controls.ArgumentBox arg4;
+ private CodeImp.DoomBuilder.Controls.ArgumentBox arg3;
private CodeImp.DoomBuilder.Controls.ArgumentBox arg2;
private CodeImp.DoomBuilder.Controls.ArgumentBox arg1;
private CodeImp.DoomBuilder.Controls.ArgumentBox arg0;
- private CodeImp.DoomBuilder.Controls.ArgumentBox arg3;
}
}
\ No newline at end of file
diff --git a/Source/Windows/LinedefEditForm.cs b/Source/Windows/LinedefEditForm.cs
index dc07f14f..bbe69a20 100644
--- a/Source/Windows/LinedefEditForm.cs
+++ b/Source/Windows/LinedefEditForm.cs
@@ -100,11 +100,10 @@ namespace CodeImp.DoomBuilder.Windows
// Action/tags
action.Value = fl.Action;
tag.Text = fl.Tag.ToString();
- arg0.Text = fl.Args[0].ToString();
- arg1.Text = fl.Args[1].ToString();
- arg2.Text = fl.Args[2].ToString();
- arg3.Text = fl.Args[3].ToString();
- arg4.Text = fl.Args[4].ToString();
+ arg0.SetValue(fl.Args[0]);
+ arg1.SetValue(fl.Args[1]);
+ arg2.SetValue(fl.Args[2]);
+ arg3.SetValue(fl.Args[3]);
arg4.SetValue(fl.Args[4]);
// Front side and back side checkboxes
@@ -162,11 +161,11 @@ namespace CodeImp.DoomBuilder.Windows
// Action/tags
if(l.Action != action.Value) action.Empty = true;
if(l.Tag.ToString() != tag.Text) tag.Text = "";
- if(l.Args[0].ToString() != arg0.Text) arg0.Text = "";
- if(l.Args[1].ToString() != arg1.Text) arg1.Text = "";
- if(l.Args[2].ToString() != arg2.Text) arg2.Text = "";
- if(l.Args[3].ToString() != arg3.Text) arg3.Text = "";
- if(l.Args[4].ToString() != arg4.Text) arg4.Text = "";
+ if(l.Args[0] != arg0.GetResult(-1)) arg0.ClearValue();
+ if(l.Args[1] != arg1.GetResult(-1)) arg1.ClearValue();
+ if(l.Args[2] != arg2.GetResult(-1)) arg2.ClearValue();
+ if(l.Args[3] != arg3.GetResult(-1)) arg3.ClearValue();
+ if(l.Args[4] != arg4.GetResult(-1)) arg4.ClearValue();
// Front side checkbox
if((l.Front != null) != frontside.Checked)
@@ -262,11 +261,11 @@ namespace CodeImp.DoomBuilder.Windows
// Action/tags
if(!action.Empty) l.Action = action.Value;
l.Tag = tag.GetResult(l.Tag);
- l.Args[0] = (byte)arg0.GetResult(l.Args[0]);
- l.Args[1] = (byte)arg1.GetResult(l.Args[1]);
- l.Args[2] = (byte)arg2.GetResult(l.Args[2]);
- l.Args[3] = (byte)arg3.GetResult(l.Args[3]);
- l.Args[4] = (byte)arg4.GetResult(l.Args[4]);
+ l.Args[0] = arg0.GetResult(l.Args[0]);
+ l.Args[1] = arg1.GetResult(l.Args[1]);
+ l.Args[2] = arg2.GetResult(l.Args[2]);
+ l.Args[3] = arg3.GetResult(l.Args[3]);
+ l.Args[4] = arg4.GetResult(l.Args[4]);
// Remove front side?
if((l.Front != null) && (frontside.CheckState == CheckState.Unchecked))
@@ -367,11 +366,11 @@ namespace CodeImp.DoomBuilder.Windows
if(arg2label.Enabled) arg2.ForeColor = SystemColors.WindowText; else arg2.ForeColor = SystemColors.GrayText;
if(arg3label.Enabled) arg3.ForeColor = SystemColors.WindowText; else arg3.ForeColor = SystemColors.GrayText;
if(arg4label.Enabled) arg4.ForeColor = SystemColors.WindowText; else arg4.ForeColor = SystemColors.GrayText;
- arg0.SetupEnums(General.Map.Config.LinedefActions[showaction].Args[0].Enum);
- arg1.SetupEnums(General.Map.Config.LinedefActions[showaction].Args[1].Enum);
- arg2.SetupEnums(General.Map.Config.LinedefActions[showaction].Args[2].Enum);
- arg3.SetupEnums(General.Map.Config.LinedefActions[showaction].Args[3].Enum);
- arg4.SetupEnums(General.Map.Config.LinedefActions[showaction].Args[4].Enum);
+ arg0.Setup(General.Map.Config.LinedefActions[showaction].Args[0]);
+ arg1.Setup(General.Map.Config.LinedefActions[showaction].Args[1]);
+ arg2.Setup(General.Map.Config.LinedefActions[showaction].Args[2]);
+ arg3.Setup(General.Map.Config.LinedefActions[showaction].Args[3]);
+ arg4.Setup(General.Map.Config.LinedefActions[showaction].Args[4]);
}
// Browse Action clicked
@@ -379,10 +378,5 @@ namespace CodeImp.DoomBuilder.Windows
{
action.Value = ActionBrowserForm.BrowseAction(this, action.Value);
}
-
- private void arg4_TextChanged(object sender, EventArgs e)
- {
- General.WriteLog(arg4.Text);
- }
}
}
diff --git a/Source/Windows/ThingEditForm.Designer.cs b/Source/Windows/ThingEditForm.Designer.cs
index c7314214..917d97a8 100644
--- a/Source/Windows/ThingEditForm.Designer.cs
+++ b/Source/Windows/ThingEditForm.Designer.cs
@@ -75,9 +75,9 @@ namespace CodeImp.DoomBuilder.Windows
this.apply = new System.Windows.Forms.Button();
this.arg4 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
this.arg3 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
- this.arg2 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
- this.arg1 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
this.arg0 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
+ this.arg1 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
+ this.arg2 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
groupBox1 = new System.Windows.Forms.GroupBox();
label4 = new System.Windows.Forms.Label();
label3 = new System.Windows.Forms.Label();
@@ -436,9 +436,9 @@ namespace CodeImp.DoomBuilder.Windows
this.hexenpanel.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.hexenpanel.Controls.Add(this.arg0);
- this.hexenpanel.Controls.Add(this.arg1);
this.hexenpanel.Controls.Add(this.arg2);
+ this.hexenpanel.Controls.Add(this.arg1);
+ this.hexenpanel.Controls.Add(this.arg0);
this.hexenpanel.Controls.Add(this.arg3);
this.hexenpanel.Controls.Add(this.arg4);
this.hexenpanel.Controls.Add(this.arg1label);
@@ -616,48 +616,43 @@ namespace CodeImp.DoomBuilder.Windows
//
// arg4
//
- this.arg4.FormattingEnabled = true;
- this.arg4.ImeMode = System.Windows.Forms.ImeMode.Off;
- this.arg4.Location = new System.Drawing.Point(425, 39);
+ this.arg4.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.arg4.Location = new System.Drawing.Point(425, 37);
this.arg4.Name = "arg4";
- this.arg4.Size = new System.Drawing.Size(93, 22);
- this.arg4.TabIndex = 23;
+ this.arg4.Size = new System.Drawing.Size(93, 24);
+ this.arg4.TabIndex = 28;
//
// arg3
//
- this.arg3.FormattingEnabled = true;
- this.arg3.ImeMode = System.Windows.Forms.ImeMode.Off;
- this.arg3.Location = new System.Drawing.Point(425, 13);
+ this.arg3.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.arg3.Location = new System.Drawing.Point(425, 11);
this.arg3.Name = "arg3";
- this.arg3.Size = new System.Drawing.Size(93, 22);
- this.arg3.TabIndex = 24;
- //
- // arg2
- //
- this.arg2.FormattingEnabled = true;
- this.arg2.ImeMode = System.Windows.Forms.ImeMode.Off;
- this.arg2.Location = new System.Drawing.Point(179, 65);
- this.arg2.Name = "arg2";
- this.arg2.Size = new System.Drawing.Size(93, 22);
- this.arg2.TabIndex = 25;
- //
- // arg1
- //
- this.arg1.FormattingEnabled = true;
- this.arg1.ImeMode = System.Windows.Forms.ImeMode.Off;
- this.arg1.Location = new System.Drawing.Point(179, 39);
- this.arg1.Name = "arg1";
- this.arg1.Size = new System.Drawing.Size(93, 22);
- this.arg1.TabIndex = 26;
+ this.arg3.Size = new System.Drawing.Size(93, 24);
+ this.arg3.TabIndex = 29;
//
// arg0
//
- this.arg0.FormattingEnabled = true;
- this.arg0.ImeMode = System.Windows.Forms.ImeMode.Off;
- this.arg0.Location = new System.Drawing.Point(179, 13);
+ this.arg0.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.arg0.Location = new System.Drawing.Point(179, 11);
this.arg0.Name = "arg0";
- this.arg0.Size = new System.Drawing.Size(93, 22);
- this.arg0.TabIndex = 27;
+ this.arg0.Size = new System.Drawing.Size(93, 24);
+ this.arg0.TabIndex = 30;
+ //
+ // arg1
+ //
+ this.arg1.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.arg1.Location = new System.Drawing.Point(179, 37);
+ this.arg1.Name = "arg1";
+ this.arg1.Size = new System.Drawing.Size(93, 24);
+ this.arg1.TabIndex = 31;
+ //
+ // arg2
+ //
+ this.arg2.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.arg2.Location = new System.Drawing.Point(179, 63);
+ this.arg2.Name = "arg2";
+ this.arg2.Size = new System.Drawing.Size(93, 24);
+ this.arg2.TabIndex = 32;
//
// ThingEditForm
//
@@ -731,9 +726,9 @@ namespace CodeImp.DoomBuilder.Windows
private System.Windows.Forms.Button browseaction;
private System.Windows.Forms.Panel doompanel;
private CodeImp.DoomBuilder.Controls.FieldsEditorControl fieldslist;
- private CodeImp.DoomBuilder.Controls.ArgumentBox arg0;
- private CodeImp.DoomBuilder.Controls.ArgumentBox arg1;
private CodeImp.DoomBuilder.Controls.ArgumentBox arg2;
+ private CodeImp.DoomBuilder.Controls.ArgumentBox arg1;
+ private CodeImp.DoomBuilder.Controls.ArgumentBox arg0;
private CodeImp.DoomBuilder.Controls.ArgumentBox arg3;
private CodeImp.DoomBuilder.Controls.ArgumentBox arg4;
}
diff --git a/Source/Windows/ThingEditForm.cs b/Source/Windows/ThingEditForm.cs
index 0530ff26..10cdaff5 100644
--- a/Source/Windows/ThingEditForm.cs
+++ b/Source/Windows/ThingEditForm.cs
@@ -131,11 +131,11 @@ namespace CodeImp.DoomBuilder.Windows
// Action/tags
action.Value = ft.Action;
tag.Text = ft.Tag.ToString();
- arg0.Text = ft.Args[0].ToString();
- arg1.Text = ft.Args[1].ToString();
- arg2.Text = ft.Args[2].ToString();
- arg3.Text = ft.Args[3].ToString();
- arg4.Text = ft.Args[4].ToString();
+ arg0.SetValue(ft.Args[0]);
+ arg1.SetValue(ft.Args[1]);
+ arg2.SetValue(ft.Args[2]);
+ arg3.SetValue(ft.Args[3]);
+ arg4.SetValue(ft.Args[4]);
////////////////////////////////////////////////////////////////////////
// Now go for all lines and change the options when a setting is different
@@ -172,11 +172,11 @@ namespace CodeImp.DoomBuilder.Windows
// Action/tags
if(t.Action != action.Value) action.Empty = true;
if(t.Tag.ToString() != tag.Text) tag.Text = "";
- if(t.Args[0].ToString() != arg0.Text) arg0.Text = "";
- if(t.Args[1].ToString() != arg1.Text) arg1.Text = "";
- if(t.Args[2].ToString() != arg2.Text) arg2.Text = "";
- if(t.Args[3].ToString() != arg3.Text) arg3.Text = "";
- if(t.Args[4].ToString() != arg4.Text) arg4.Text = "";
+ if(t.Args[0] != arg0.GetResult(-1)) arg0.ClearValue();
+ if(t.Args[1] != arg1.GetResult(-1)) arg1.ClearValue();
+ if(t.Args[2] != arg2.GetResult(-1)) arg2.ClearValue();
+ if(t.Args[3] != arg3.GetResult(-1)) arg3.ClearValue();
+ if(t.Args[4] != arg4.GetResult(-1)) arg4.ClearValue();
}
}
@@ -214,11 +214,11 @@ namespace CodeImp.DoomBuilder.Windows
if(arg2label.Enabled) arg2.ForeColor = SystemColors.WindowText; else arg2.ForeColor = SystemColors.GrayText;
if(arg3label.Enabled) arg3.ForeColor = SystemColors.WindowText; else arg3.ForeColor = SystemColors.GrayText;
if(arg4label.Enabled) arg4.ForeColor = SystemColors.WindowText; else arg4.ForeColor = SystemColors.GrayText;
- arg0.SetupEnums(General.Map.Config.LinedefActions[showaction].Args[0].Enum);
- arg1.SetupEnums(General.Map.Config.LinedefActions[showaction].Args[1].Enum);
- arg2.SetupEnums(General.Map.Config.LinedefActions[showaction].Args[2].Enum);
- arg3.SetupEnums(General.Map.Config.LinedefActions[showaction].Args[3].Enum);
- arg4.SetupEnums(General.Map.Config.LinedefActions[showaction].Args[4].Enum);
+ arg0.Setup(General.Map.Config.LinedefActions[showaction].Args[0]);
+ arg1.Setup(General.Map.Config.LinedefActions[showaction].Args[1]);
+ arg2.Setup(General.Map.Config.LinedefActions[showaction].Args[2]);
+ arg3.Setup(General.Map.Config.LinedefActions[showaction].Args[3]);
+ arg4.Setup(General.Map.Config.LinedefActions[showaction].Args[4]);
}
// Browse Action clicked
@@ -331,11 +331,11 @@ namespace CodeImp.DoomBuilder.Windows
// Action/tags
if(!action.Empty) t.Action = action.Value;
t.Tag = tag.GetResult(t.Tag);
- t.Args[0] = (byte)arg0.GetResult(t.Args[0]);
- t.Args[1] = (byte)arg1.GetResult(t.Args[1]);
- t.Args[2] = (byte)arg2.GetResult(t.Args[2]);
- t.Args[3] = (byte)arg3.GetResult(t.Args[3]);
- t.Args[4] = (byte)arg4.GetResult(t.Args[4]);
+ t.Args[0] = arg0.GetResult(t.Args[0]);
+ t.Args[1] = arg1.GetResult(t.Args[1]);
+ t.Args[2] = arg2.GetResult(t.Args[2]);
+ t.Args[3] = arg3.GetResult(t.Args[3]);
+ t.Args[4] = arg4.GetResult(t.Args[4]);
// Update settings
t.UpdateConfiguration();
diff --git a/Source/Windows/ThingEditForm.resx b/Source/Windows/ThingEditForm.resx
index bda997ff..5dc9e20f 100644
--- a/Source/Windows/ThingEditForm.resx
+++ b/Source/Windows/ThingEditForm.resx
@@ -169,451 +169,451 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
- ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAI
- aAAAAk1TRnQBSQFMAgEBFAEAARgBAAEEAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
+ ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD+
+ ZwAAAk1TRnQBSQFMAgEBFAEAARgBAAEEAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABYAMAAQEBAAEgBgABYP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8AOgABBAIBAQQBFAIB
ARkBFAIBARkBFAIBARkBAgMBLAABBAIBAQQBFAIBARkBFAIBARkBFAIBARkBAgMBLAABBAIBAQQBFAIB
ARkBFAIBARkBFAIBARkBAgMBLAABBAIBAQQBFAIBARkBFAIBARkBFAIBARkBAgMBJAABMAIBAUoBlAGL
- AcUB/wGEAXsBxAH/AYABcgHEAf8BfgFwAcMB/wF8AW4BwQH/AXwBcAG2Af8BMAIBAUoBFAIBARkcAAEw
- AgEBSgEDAVUBlwH/AQMBRgF9Af8BAwE/AXEB/wEDAT0BbgH/AQMBOgFoAf8BAwEzAVsB/wEwAgEBSgEU
- AgEBGRwAATACAQFKAUkBYgFkAf8BOgFSAVQB/wE0AUoBTAH/ATIBSAFKAf8BMAFEAUYB/wEsAToBOwH/
- ATACAQFKARQCAQEZHAABMAIBAUoBMAFUAWMB/wEkAUYBVAH/AR8BQAFNAf8BHgE/AUwB/wEdATsBRwH/
- AR0BMgE6Af8BMAIBAUoBFAIBARkYAAGIAVoBdQHnAZ8BlQHSAf8BngGUAdMB/wGcAZIB0gH/AZsBkQHS
- Af8BmQGOAdIB/wGVAYoB0AH/AYsBgQHLAf8BfgFxAcUB/wFqAS0BRwHbARQCAQEZFAABLgE8AW0B5wED
- AWYBtQH/AQMBZgG0Af8BAwFkAbIB/wEDAWMBrwH/AQMBYQGrAf8BAwFdAaQB/wEDAVEBjgH/AQMBPwFx
- Af8BPAETASIB2wEUAgEBGRQAAV0BQwFKAecBVAF4AXsB/wFTAXgBewH/AVIBdwF6Af8BUAF1AXgB/wFO
- AXMBdgH/AUsBbgFxAf8BQgFfAWIB/wEzAUoBTAH/AUsBEwEUAdsBFAIBARkUAAFOATwBRwHnATMBZwF9
- Af8BMgFoAX0B/wExAWYBfAH/ATABZQF6Af8BLgFjAXgB/wEsAV4BcwH/AScBUgFjAf8BHwFAAU0B/wFH
- ARIBEwHbARQCAQEZEAABfgFEAVoB3AGrAaEB4gH/Aa4BowHoAf8BsAGkAewB/wGvAaQB6wH/Aa8BpAHq
- Af8BrwGkAeoB/wGtAaEB6AH/AaoBnwHiAf8BnQGTAdMB/wGDAXkBxgH/AWkBLQFHAdsBFAIBARkMAAE7
- AS8BWAHcAQMBewHbAf8BAwGBAeYB/wEDAYIB7QH/AQMBgQHsAf8BAwGBAeoB/wEDAYEB6gH/AQMBfwHk
- Af8BAwF6AdkB/wEDAWUBswH/AQMBRgF+Af8BPAETASEB2wEUAgEBGQwAAWECOgHcAV4BkwGYAf8BXgGf
- AaUB/wFgAaUBqwH/AWABowGpAf8BXwGiAagB/wFfAaIBqAH/AV0BngGjAf8BXAGTAZgB/wFTAXcBewH/
- AToBUwFVAf8BSwETARQB2wEUAgEBGQwAAVIBNAE6AdwBMAGBAaAB/wEpAYkBsQH/ASQBkQG9Af8BJQGP
- AboB/wEmAY0BuAH/ASYBjQG4Af8BKAGIAa8B/wEuAYEBoAH/ATEBZwF9Af8BIwFHAVYB/wFHARIBEwHb
- ARQCAQEZCAABMAIBAUoBrAGiAeMB/wGvAaQB6wH/AbUBqgHwAf8BtQGqAfAB/wG1AaoB8AH/AbUBqgHw
- Af8BsAGlAe0B/wGxAaYB7wH/Aa0BogHnAf8BlwGNAc8B/wGZAY4B0QH/AYIBeAHGAf8BMAIBAUoIAAEw
- AgEBSgEDAXwB3gH/AQMBgQHtAf8BAwGJAfoB/wEDAYkB+gH/AQMBiQH6Af8BAwGJAfoB/wEDAYMB8AH/
- AQMBhQH0Af8BAwF/AeQB/wEDAV0BpQH/AQMBYQGrAf8BAwFFAXwB/wEwAgEBSggAATACAQFKAV4BlwGc
- Af8BYAGkAaoB/wFnAawBsgH/AWcBrAGyAf8BZwGsAbIB/wFnAawBsgH/AWEBpgGsAf8BYgGpAa8B/wFe
- AZ0BogH/AU0BbgFxAf8BTwFyAXUB/wE5AVEBUwH/ATACAQFKCAABMAIBAUoBLwGCAaQB/wElAY8BvAH/
- ASABmwHNAf8BIAGbAc0B/wEgAZsBzQH/ASABmwHNAf8BIwGSAcAB/wEgAZYBxgH/ASsBhwGtAf8BLgFf
- AXIB/wEvAWIBdwH/ASIBRgFVAf8BMAIBAUoIAAGyAacB6gH/AbUBqwHtAf8BtAGoAfEB/wG1AaoB8AH/
- AbUBqgHwAf8BtQGqAe8B/wGzAagB6wH/AaYBnQHTAf8BggF5AcAB/wFjAVQBrgH/AwMB/wGZAY8B0AH/
- AZUBigHQAf8BgQF1Ab0B/wECAwEEAAEDAYIB7wH/AQMBiAH4Af8BAwGJAfoB/wEDAYkB+gH/AQMBiQH6
- Af8BAwGIAfoB/wEDAYQB8QH/AQMBbQHCAf8BAwFCAXYB/wEDARgBKgH/AwMB/wEDAWABqgH/AQMBXQGk
- Af8BAwE8AWsB/wECAwEEAAFjAaQBqgH/AWgBqQGvAf8BZQGtAbQB/wFnAawBsgH/AWcBrAGyAf8BZwGr
- AbEB/wFlAaUBqgH/AVsBfwGBAf8BNwFMAU4B/wEVAhwB/wMDAf8BTwFyAXUB/wFLAW4BcQH/ATMBRQFH
- Af8BAgMBBAABKAGQAbsB/wElAZcBxgH/ARwBnAHRAf8BIAGbAc0B/wEgAZsBzQH/ASEBmgHLAf8BKAGR
- AbwB/wE5AW0BgQH/ASMBQgFOAf8BDgEYARwB/wMDAf8BLwFiAXYB/wEsAV4BcwH/ASEBPAFGAf8BAgMB
- BAABtQGqAfIB/wG/AbUB8wH/AbcBrAHwAf8BtQGqAfAB/wGpAaAB2QH/AYkBgQHEAf8BaAFZAbMB/wFi
- AVkBjQH/AwMB/wMDAf8BXgFPAasB/wGtAaIB5QH/AaQBmgHXAf8BiAF+AcgB/wEUAgEBGQQAAQMBigH9
- Af8BEgGSAv8BAwGLAf4B/wEDAYkB+gH/AQMBcwHOAf8BAwFLAYMB/wEDASABOAH/AQMBBAEFAf8DAwH/
- AwMB/wEDARIBHwH/AQMBfgHhAf8BAwFuAcQB/wEDAUwBhQH/ARQCAQEZBAABZwGuAbUB/wF1AbUBuwH/
- AWoBrQGzAf8BZwGsAbIB/wFeAYYBigH/AT8BVwFZAf8BGwElASYB/wMEAf8DAwH/AwMB/wEQAhUB/wFe
- AZoBoAH/AVkBgQGDAf8BPgFZAVsB/wEUAgEBGQQAAR0BngHSAf8BHgGpAeIB/wEhAZ0BzwH/ASABmwHN
- Af8BNwF2AYwB/wEnAUsBWQH/AREBIAEmAf8BAwIEAf8DAwH/AwMB/wEKARIBFQH/ASwBhQGqAf8BNAFx
- AYYB/wElAU0BXQH/ARQCAQEZAQsCAQENAb0BswHzAf8BxgG9AfUB/wG6AbAB8AH/AbUBqgHwAf8BlQGK
- AcoB/wF+AXEBvAH/AVsBTAGkAf8DAwH/AwMB/wMDAf8BhAF8AcEB/wGyAacB8AH/AakBngHiAf8BjgGC
- Ac0B/wEUAgEBGQELAgEBDQEPAZEC/wEfAZgC/wEHAY0C/wEDAYkB+gH/AQMBWAGcAf8BAwE5AWUB/wED
- AQsBEgH/AwMB/wMDAf8DAwH/AQMBRQF7Af8BAwGGAfYB/wEDAXkB1wH/AQMBVAGUAf8BFAIBARkBCwIB
- AQ0BcgG0AboB/wF/AboBwAH/AW8BrwG1Af8BZwGsAbIB/wFKAWcBaQH/ATABQQFDAf8BCgEMAQ0B/wMD
- Af8DAwH/AwMB/wE6AVABUQH/AWMBqwGxAf8BXAGSAZcB/wFEAWQBZgH/ARQCAQEZAQsCAQENAR4BpwHe
- Af8BKAGuAeQB/wEjAaAB0wH/ASABmwHNAf8BLwFZAWkB/wEfATkBQwH/AQcBCwENAf8DAwH/AwMB/wMD
- Af8BJQFFAVEB/wEfAZgBygH/AS4BgQGfAf8BKQFWAWgB/wEUAgEBGQELAgEBDQHBAbgB9AH/AcoBwgH1
- Af8BuwGxAfAB/wG1AaoB8AH/AbUBqgHvAf8BtQGqAe8B/wFwAWMBtwH/AwMB/wMDAf8BWgFMAZ0B/wGo
- AZ8B1wH/Aa8BpAHrAf8BrQGiAeYB/wGRAYUBzgH/ARQCAQEZAQsCAQENARYBlAL/ASYBmwL/AQcBjQL/
- AQMBiQH6Af8BAwGIAfoB/wEDAYgB+QH/AQMBKgFKAf8DAwH/AwMB/wEDAQYBCAH/AQMBcgHLAf8BAwGB
- AewB/wEDAX8B4gH/AQMBVwGaAf8BFAIBARkBCwIBAQ0BdwG3Ab0B/wGBAb0BwgH/AW8BrwG0Af8BZwGs
- AbIB/wFnAasBsQH/AWcBqwGxAf8BIwEwATIB/wMDAf8DAwH/AQUCBgH/AV0BgwGHAf8BYAGjAakB/wFd
- AZsBoQH/AUcBZwFqAf8BFAIBARkBCwIBAQ0BIQGrAeMB/wEuAbAB5QH/ASQBnwHRAf8BIAGbAc0B/wEh
- AZoBywH/ASIBmQHJAf8BFwEqATIB/wMDAf8DAwH/AQQCBgH/ATgBdAGJAf8BJQGPAboB/wEqAYYBrAH/
- ASoBWQFsAf8BFAIBARkEAAHAAbcB9AH/Ac8ByAH2Af8BwAG2AfMB/wG0AakB7AH/AbIBqAHqAf8BeAFr
- AboB/wE8ASEBxAH/AYMBewHCAf8BVwFIAaIB/wFwAWMBtwH/AbUBqgHuAf8BtQGqAfAB/wGrAaEB4wH/
- AZEBhgHNAf8BCQIBAQoEAAEVAZQC/wEwAaAC/wETAZMC/wEDAYUB9AH/AQMBgwHwAf8BAwEyAVkB/wMD
- Af8BAwFEAXoB/wEDAQYBCQH/AQMBKgFKAf8BAwGIAfgB/wEDAYkB+gH/AQMBfAHdAf8BAwFXAZkB/wEJ
- AgEBCgQAAXYBtgG8Af8BiAHBAcYB/wF2AbUBuwH/AWYBpwGsAf8BZAGkAakB/wEqAToBPAH/AwMB/wE5
- AU8BUQH/AQYCBwH/ASMBMAEyAf8BZwGqAbAB/wFnAawBsgH/AV0BlgGbAf8BRwFmAWkB/wEJAgEBCgQA
- ASABqgHjAf8BNwGzAeYB/wEgAakB4QH/AScBlAHAAf8BKQGQAboB/wEbATIBPAH/AwMB/wEkAUQBUQH/
- AQQBBgEHAf8BFwEqATIB/wEjAZgByAH/ASABmwHNAf8BLQGBAaQB/wErAVgBagH/AQkCAQEKBAABvAGx
- AfMB/wHTAcwB9wH/AcwBxAH2Af8BuwGyAeoB/wF4AWsBugH/AwMB/wGTAYkByQH/AbcBqwHyAf8BbwFh
- AbYB/wGVAYoBygH/AbYBqwHxAf8BtQGqAfAB/wGrAaEB4gH/AZgBjwHMAf8IAAEMAZAC/wE2AaMC/wEq
- AZ0C/wEDAYoB/QH/AQMBMgFZAf8DAwH/AQMBVgGXAf8BAwGLAv8BAwEoAUYB/wEDAVgBnAH/AQMBiwH+
- Af8BAwGJAfoB/wEDAXsB2wH/AQMBXQGkAf8IAAFwAbMBuQH/AY0BwwHIAf8BgwG/AcQB/wFwAagBrQH/
- ASoBOgE8Af8DAwH/AUgBZAFmAf8BaQGvAbUB/wEiAS4BLwH/AUoBZwFpAf8BaQGvAbUB/wFnAawBsgH/
- AV0BlAGYAf8BTgFsAW8B/wgAAR4BpQHdAf8BPAG1AeYB/wExAbEB5QH/ATABlgHAAf8BGwEyATwB/wMD
- Af8BLgFWAWYB/wEdAZ8B1QH/ARYBKAEvAf8BLwFZAWkB/wEeAZ4B0wH/ASABmwHNAf8BLwGBAaAB/wEx
- AV0BbwH/CAABMAIBAUoB0wHNAfcB/wHWAdAB9wH/AakBowHMAf8BYgFZAY0B/wGUAYoBygH/AbYBqwHx
- Af8BtQGqAe4B/wGkAZsB0gH/Aa8BpQHkAf8BtQGqAfAB/wG1AaoB8AH/AawBogHkAf8BMAIBAUoIAAEw
- AgEBSgE4AaMC/wE8AaUC/wEDAWwBwAH/AQMBBAEFAf8BAwFYAZsB/wEDAYoB/QH/AQMBiAH4Af8BAwFq
- Ab0B/wEDAX8B5AH/AQMBiQH6Af8BAwGJAfoB/wEDAX0B4AH/ATACAQFKCAABMAIBAUoBjgHEAcgB/wGR
- AcYBygH/AV8BegF8Af8DBAH/AUoBZgFpAf8BaAGtAbQB/wFnAaoBsAH/AVkBfAF/Af8BYQGaAZ8B/wFn
- AawBsgH/AWcBrAGyAf8BXgGZAZ4B/wEwAgEBSggAATACAQFKAT0BtQHnAf8BQQG2AecB/wFBAWgBeAH/
- AQMCBAH/AS4BWAFpAf8BHwGdAdAB/wEjAZgByAH/ATgBawF/Af8BMAGFAagB/wEgAZsBzQH/ASABmwHN
- Af8BLQGDAacB/wEwAgEBSgwAAXkBMAE7AcoB2gHVAfgB/wHCAbsB5gH/AbABqgHVAf8BwQG3AfIB/wG7
- AbIB7gH/AbkBrwHvAf8BtQGqAfAB/wG1AaoB8AH/AbUBqgHwAf8BtQGqAfAB/wGNAV4BgwHoEAABTwEm
- AT8BygFEAakC/wEIAY4C/wEDAXgB1QH/ARMBkwL/AQYBjQL/AQQBjAL/AQMBiQH6Af8BAwGJAfoB/wED
- AYkB+gH/AQMBiQH6Af8BKwFGAYMB6BAAAWYCMAHKAZcByQHNAf8BewGlAakB/wFmAYcBigH/AXcBtAG6
- Af8BcAGtAbIB/wFuAa0BsgH/AWcBrAGyAf8BZwGsAbIB/wFnAawBsgH/AWcBrAGyAf8BYAJYAegQAAFR
- ASwBOQHKAUcBuQHoAf8BQQGTAbYB/wFCAXYBiAH/ASQBpwHdAf8BKQGdAcwB/wEmAZwBzQH/ASABmwHN
- Af8BIAGbAc0B/wEgAZsBzQH/ASABmwHNAf8BRAFLAWAB6BQAAXkBMAE9AckB1gHQAfgB/wHTAcwB9wH/
- Ac4BxwH2Af8BxQG8AfQB/wG8AbEB8gH/AbcBrQHwAf8BswGoAe4B/wGxAaYB7wH/AYABQgFdAdsYAAFS
- ASYBPQHJAT0BpgL/ATcBowL/AS4BnwL/ARwBlwL/AQsBjwL/AQMBiwH+Af8BAwGGAfYB/wEDAYUB9AH/
- ATwBNQFfAdsYAAFmAjAByQGSAcYBygH/AY0BxAHIAf8BhgHAAcUB/wF8AbkBvwH/AXABsgG4Af8BawGt
- AbMB/wFlAakBrwH/AWIBqQGwAf8BYQFBAUMB2xgAAVMBKwE5AckBQQG3AecB/wE8AbUB5gH/ATUBsgHl
- Af8BJgGsAeQB/wEgAaMB2QH/ASIBnAHOAf8BIwGXAcYB/wEfAZYBxwH/AUsBOAFHAdscAAExAgEBSgHD
- AboB9AH/AccBvwH1Af8BywHDAfUB/wHFAbwB9AH/AbwBsQHzAf8BsQGmAe8B/wEwAgEBSiAAATACAQFK
- ARsBlgL/ASEBmQL/ASgBnAL/ARwBlwL/AQwBkAL/AQMBhQH0Af8BMAIBAUogAAEwAgEBSgF7AbkBvgH/
- AYABuwHAAf8BggG+AcMB/wF8AbkBvwH/AXABswG5Af8BYgGpAa8B/wEwAgEBSiAAATACAQFKASQBrAHk
- Af8BKgGuAeQB/wEwAbAB5QH/ASYBrAHkAf8BHgGlAd0B/wEgAZYBxgH/ATACAQFKLAABCwIBAQ0BCwIB
- AQ04AAELAgEBDQELAgEBDTgAAQsCAQENAQsCAQENOAABCwIBAQ0BCwIBAQ00AAEEAgEBBAEUAgEBGQEU
- AgEBGQEUAgEBGQECAwEsAAEEAgEBBAEUAgEBGQEUAgEBGQEUAgEBGQECAwEsAAEEAgEBBAEUAgEBGQEU
- AgEBGQEUAgEBGQECAwEsAAEEAgEBBAEUAgEBGQEUAgEBGQEUAgEBGQECAwEkAAEwAgEBSgE5AUUBggH/
- ASkBNAFyAf8BJAEuAWkB/wEjAS0BZgH/ASEBKwFgAf8BIwEpAU8B/wEwAgEBSgEUAgEBGRwAATACAQFK
- AZIBUQGSAf8BgQFAAYEB/wF7AToBewH/AXkBOAF5Af8BcwE3AXMB/wFjATcBYwH/ATACAQFKARQCAQEZ
- HAABMAIBAUoBAwKQAf8BAwJ4Af8BAwJtAf8BAwJqAf8BAwJkAf8BAwJXAf8BMAIBAUoBFAIBARkcAAEx
- AgEBSgOlAf8DkQH/A4cB/wOFAf8DgQH/A3gB/wEwAgEBSgEUAgEBGRgAAVQBMQFiAecBOgFLAaYB/wE5
- AUoBpwH/ATgBSQGlAf8BNwFHAaMB/wE1AUUBoAH/ATMBQgGZAf8BLQE6AYMB/wEjAS0BaQH/AUcBDgEZ
- AdsBFAIBARkUAAGQAToBYgHnAbABWAGwAf8BsQFWAbEB/wGwAVQBsAH/Aa8BUgGvAf8BrAFQAawB/wGm
- AU0BpgH/AZMBRQGTAf8BewE5AXsB/wFdARYBIwHbARQCAQEZFAABLgJnAecBAwKtAf8BAwKtAf8BAwKr
- Af8BAwKoAf8BAwKkAf8BAwKdAf8BAwKIAf8BAwJsAf8BPAIdAdsBFAIBARkUAAGZAm0B5wO7Af8DuwH/
- A7gB/wO2Af8DtQH/A68B/wOeAf8DhwH/AWYCLQHbARQCAQEZEAABUwEkAU8B3AE7AVIB0wH/ATwBVQHh
- Af8BPQFXAekB/wE9AVcB5wH/ATwBVgHmAf8BPAFWAeYB/wE5AVMB4QH/ATgBUAHVAf8BOQFJAaYB/wEo
- ATMBdQH/AUcBDgEZAdsBFAIBARkMAAGIAS8BTwHcAckBbAHJAf8B0wFwAdMB/wHZAXIB2QH/AdgBcwHY
- Af8B1wFxAdcB/wHXAXEB1wH/AdIBbQHSAf8BygFqAcoB/wGwAVYBsAH/AYIBPwGCAf8BXQEUASMB2wEU
- AgEBGQwAATsCVAHcAQMC0QH/AQMC3AH/AQMC5AH/AQMC4gH/AQMC4QH/AQMC4QH/AQMC2gH/AQMC0AH/
- AQMCrAH/AQMCeQH/ATwCHQHbARQCAQEZDAABjgJVAdwD0wH/A9oB/wPfAf8D3gH/A9wB/wPcAf8D2QH/
- A9IB/wO6Af8DkgH/AWYCLQHbARQCAQEZCAABMAIBAUoBPQFUAdcB/wE9AVcB6AH/AUUBXwHwAf8BRQFf
- AfAB/wFFAV8B8AH/AUUBXwHwAf8BPQFYAesB/wE/AVkB7wH/ATwBVQHeAf8BNQFEAZgB/wE2AUYBnwH/
- AScBMgFzAf8BMAIBAUoIAAExAgEBSgHLAW4BywH/AdgBcgHYAf8B4AF8AeAB/wHgAXwB4AH/AeABfAHg
- Af8B4AF8AeAB/wHbAXQB2wH/Ad4BdgHeAf8B0QFvAdEB/wGlAU8BpQH/AasBUQGrAf8BgQE+AYEB/wEw
- AgEBSggAATACAQFKAQMC1QH/AQMC4wH/AQMC8AH/AQMC8AH/AQMC8AH/AQMC8AH/AQMC5gH/AQMC6QH/
- AQMC2gH/AQMCngH/AQMCpAH/AQMCdwH/ATACAQFKCAABMQIBAUoD1QH/A98B/wPmAf8D5gH/A+YB/wPm
- Af8D4AH/A+EB/wPZAf8DsAH/A7UB/wOQAf8BMAIBAUoIAAFCAVsB5QH/AUgBYQHrAf8BQQFcAfQB/wFF
- AV8B8AH/AUUBXwHwAf8BRQFfAe8B/wFFAV0B5QH/AUIBUwGuAf8BKQEzAWoB/wEQARMBJQH/AwMB/wE3
- AUYBnQH/ATMBQgGZAf8BJwEvAV8B/wECAwEEAAHXAXcB1wH/AdwBfQHcAf8B4gF6AeIB/wHgAXwB4AH/
- AeABfAHgAf8B3wF8Ad8B/wHYAXkB2AH/AbIBZQGyAf8BewE/AXsB/wE+ASEBPgH/AwMB/wGqAVEBqgH/
- AaYBTQGmAf8BcgE8AXIB/wECAwEEAAEDAuUB/wEDAu4B/wEDAvAB/wEDAvAB/wEDAvAB/wEDAu8B/wED
- AucB/wEDArkB/wEDAnEB/wEDAigB/wMDAf8BAwKjAf8BAwKdAf8BAwJnAf8BAgMBBAAD3wH/A+QB/wPm
- Af8D5gH/A+YB/wPlAf8D4AH/A8MB/wOLAf8DRgH/AwMB/wO0Af8DrwH/A4IB/wECAwEEAAFEAV8B9AH/
- AVkBcQH1Af8BSgFjAfAB/wFFAV8B8AH/AT8BUgHAAf8BLgE5AXgB/wEUARkBMwH/AwQB/wMDAf8DAwH/
- AQwBDgEcAf8BOwFUAdwB/wE7AU4BuAH/ASsBNwF+Af8BFAIBARkEAAHjAXwB4wH/AeYBiwHmAf8B4AGA
- AeAB/wHgAXwB4AH/AbsBagG7Af8BhgFFAYYB/wFKASYBSgH/AR4BFAEeAf8DAwH/AwMB/wE2ARwBNgH/
- Ac8BbgHPAf8BuAFhAbgB/wGLAUIBiwH/ARQCAQEZBAABAwLyAf8BBwP/AQMC9AH/AQMC8AH/AQMCxQH/
- AQMCgQH/AQMCNgH/AQMCBAH/AwMB/wMDAf8BAwIeAf8BAwLYAf8BAwK8Af8BAwKBAf8BFAIBARkEAAPn
- Af8D8gH/A+cB/wPmAf8DyQH/A5gB/wNYAf8DCgH/AwMB/wMDAf8DOgH/A9YB/wPDAf8DmQH/ARQCAQEZ
- AQsCAQENAVUBbQH1Af8BaAF+AfYB/wFRAWkB7wH/AUUBXwHwAf8BNgFEAYwB/wEkASwBWgH/AQgBCQER
- Af8DAwH/AwMB/wMDAf8BKwE1AW4B/wE/AVoB8QH/ATcBTwHUAf8BLgE9AYoB/wEUAgEBGQELAgEBDQHm
- AYcB5gH/AekBlwHpAf8B4QGDAeEB/wHgAXwB4AH/AZoBTwGaAf8BbgE5AW4B/wEsARcBLAH/AwMB/wMD
- Af8DAwH/AYABQQGAAf8B3wF3Ad8B/wHJAWkByQH/AZkBSAGZAf8BFAIBARkBCwIBAQ0BAwP/ARMD/wED
- AvkB/wEDAvAB/wEDApYB/wEDAmEB/wEDAhIB/wMDAf8DAwH/AwMB/wEDAnYB/wEDAuwB/wEDAs8B/wED
- Ao4B/wEUAgEBGQELAgEBDQPwAf8D+QH/A+sB/wPmAf8DqgH/A38B/wMoAf8DAwH/AwMB/wMDAf8DkAH/
- A+IB/wPQAf8DpAH/ARQCAQEZAQsCAQENAV4BdQH2Af8BcQGCAfcB/wFSAWoB7gH/AUUBXwHwAf8BRQFf
- Ae8B/wFGAWAB7gH/ARoBIAFDAf8DAwH/AwMB/wIFAQgB/wFAAVMBuwH/AT0BVwHnAf8BOgFTAd4B/wEv
- AT4BkAH/ARQCAQEZAQsCAQENAecBjgHnAf8B6wGfAesB/wHgAYMB4AH/AeABfAHgAf8B3wF8Ad8B/wHe
- AXwB3gH/AVgBLQFYAf8DAwH/AwMB/wEjARMBIwH/AbkBaQG5Af8B2AFzAdgB/wHQAW4B0AH/AZ4BSQGe
- Af8BFAIBARkBCwIBAQ0BCwP/ARoD/wEDAvkB/wEDAvAB/wEDAu8B/wEDAu8B/wEDAkcB/wMDAf8DAwH/
- AQMCCAH/AQMCwgH/AQMC4gH/AQMC2QH/AQMCkwH/ARQCAQEZAQsCAQENA/QB/wP9Af8D6wH/A+YB/wPl
- Af8D5QH/A2oB/wMDAf8DAwH/AxMB/wPIAf8D3gH/A9gB/wOoAf8BFAIBARkEAAFcAXMB9QH/AXwBjAH3
- Af8BWwFyAfQB/wFGAV8B5wH/AUQBXQHkAf8BHwEnAVAB/wMDAf8BKgE0AW0B/wIFAQkB/wEaASABQwH/
- AUYBYAHtAf8BRQFfAfAB/wE6AVIB2AH/ATEBPwGNAf8BCQIBAQoEAAHnAY0B5wH/Ae0BqQHtAf8B5gGM
- AeYB/wHaAXsB2gH/AdcBeAHXAf8BZAE0AWQB/wEmAQoBJgH/AX8BQAF/Af8BJQETASUB/wFYAS0BWAH/
- Ad0BewHdAf8B4AF8AeAB/wHMAWwBzAH/AZwBSgGcAf8BCQIBAQoEAAEJA/8BJAP/AQgD/wEDAuoB/wED
- AuYB/wEDAlYB/wMDAf8BAwJ1Af8BAwIJAf8BAwJHAf8BAwLuAf8BAwLwAf8BAwLUAf8BAwKTAf8BCQIB
- AQoEAAPzAf8EAAPzAf8D4gH/A+AB/wN3Af8DAwH/A44B/wMWAf8DagH/A+QB/wPmAf8D1AH/A6gB/wEJ
- AgEBCgQAAVIBawH1Af8BgQGSAfgB/wF1AYYB9wH/AVcBbQHiAf8BHwEnAVAB/wMDAf8BNQFCAYcB/wFG
- AWEB9AH/ARkBHwE/Af8BNgFEAYwB/wFHAWEB8wH/AUUBXwHwAf8BOgFSAdQB/wE5AUcBkwH/CAAB5QGE
- AeUB/wHuAa8B7gH/AesBowHrAf8B2AGEAdgB/wFkATQBZAH/AwMB/wGWAU4BlgH/AeMBfgHjAf8BVQEs
- AVUB/wGaAU8BmgH/AeIBfgHiAf8B4AF8AeAB/wHJAWwByQH/AaEBUwGhAf8IAAEDAv4B/wEqA/8BHgP/
- AQMC8wH/AQMCVgH/AwMB/wEDApEB/wEDAvQB/wEDAkQB/wEDApYB/wEDAvQB/wEDAvAB/wEDAtEB/wED
- Ap4B/wgAA+4B/wgAA+cB/wN3Af8DAwH/A6YB/wPoAf8DZQH/A6oB/wPnAf8D5gH/A9MB/wOvAf8IAAEw
- AgEBSgGCAZMB+AH/AYcBmAH4Af8BTwFbAZ8B/wMEAf8BNgFDAYsB/wFGAWAB8gH/AUYBYAHtAf8BQgFS
- AaoB/wFCAVkB2AH/AUUBXwHwAf8BRQFfAfAB/wE7AVMB2gH/ATACAQFKCAABMQIBAUoB7gGwAe4B/wHv
- AbUB7wH/AacBbQGnAf8BHgEUAR4B/wGZAU8BmQH/AeEBfQHhAf8B3QF7Ad0B/wGwAWIBsAH/Ac0BcwHN
- Af8B4AF8AeAB/wHgAXwB4AH/Ac0BbgHNAf8BMAIBAUoIAAEwAgEBSgErA/8BLwP/AQMCuAH/AQMCBAH/
- AQMClQH/AQMC8gH/AQMC7gH/AQMCtQH/AQMC2gH/AQMC8AH/AQMC8AH/AQMC1wH/ATACAQFKCAABMQIB
- AUoIAAPCAf8DCgH/A6kB/wPnAf8D5AH/A8EB/wPZAf8D5gH/A+YB/wPVAf8BMQIBAUoMAAFgASEBPwHK
- AY8BnwH5Af8BbQF9AdUB/wFSAWEBtgH/AV4BdQHxAf8BVQFsAeoB/wFRAWgB7AH/AUUBXwHwAf8BRQFf
- AfAB/wFFAV8B8AH/AUUBXwHwAf8BTgEzAXwB6BAAAX8BJgE7AcoB8QG8AfEB/wHRAZMB0QH/AbYBeQG2
- Af8B5AGOAeQB/wHeAYUB3gH/Ad4BgQHeAf8B4AF8AeAB/wHgAXwB4AH/AeABfAHgAf8B4AF8AeAB/wGg
- AUEBcwHoEAABTAI/AcoBNwP/AQMC+QH/AQMCzAH/AQgD/wEDAvgB/wEDAvYB/wEDAvAB/wEDAvAB/wED
- AvAB/wEDAvAB/wErAnwB6BAAAYUCPwHKBAAD6wH/A88B/wPzAf8D6wH/A+oB/wPmAf8D5gH/A+YB/wPm
- Af8BpgJ8AegUAAFjASEBPQHJAYgBmQH4Af8BgQGTAfgB/wF5AYkB9wH/AWUBewH2Af8BUgFrAfMB/wFL
- AWQB7wH/AUMBXQHtAf8BPgFZAfAB/wFVASMBXAHbGAABgAEoAToByQHvAbYB7wH/Ae4BrwHuAf8B7AGm
- AewB/wHoAZUB6AH/AeQBhAHkAf8B4AGAAeAB/wHdAXkB3QH/Ad4BdQHeAf8BkAEtAVcB2xgAAU8CPQHJ
- ATAD/wEqA/8BIgP/ARED/wEDAvwB/wEDAvQB/wEDAuwB/wEDAukB/wE8AlsB2ygAA/cB/wPtAf8D5wH/
- A+IB/wPhAf8BkwJaAdscAAEwAgEBSgFjAXkB9gH/AWsBgAH2Af8BcgGEAfcB/wFlAXsB9gH/AVIBawH1
- Af8BPwFZAe8B/wEwAgEBSiAAATECAQFKAegBkwHoAf8B6gGaAeoB/wHrAaAB6wH/AegBlQHoAf8B5QGE
- AeUB/wHeAXYB3gH/ATECAQFKIAABMAIBAUoBDwP/ARYD/wEcA/8BEQP/AQMC/gH/AQMC6QH/ATACAQFK
- IAABMQIBAUoD9wH/A/kB/wP9Af8D9wH/A+4B/wPhAf8BMQIBAUosAAELAgEBDQELAgEBDTgAAQsCAQEN
+ AcUB/wGEAXwBxAH/AYEBcwHEAf8BfwFxAcMB/wF9AW8BwQH/AX0BcQG2Af8BMAIBAUoBFAIBARkcAAEw
+ AgEBSgEEAVYBlwH/AQQBRwF+Af8BBAFAAXIB/wEEAT4BbwH/AQQBOwFpAf8BBAE0AVwB/wEwAgEBSgEU
+ AgEBGRwAATACAQJKAWMBZQH/ATsBUwFVAf8BNQFLAU0B/wEzAUkBSwH/ATEBRQFHAf8BLQE7ATwB/wEw
+ AgEBSgEUAgEBGRwAATACAQFKATEBVQFkAf8BJQFHAVUB/wEgAUEBTgH/AR8BQAFNAf8BHgE8AUgB/wEe
+ ATMBOwH/ATACAQFKARQCAQEZGAABgAFLAWEB5wGfAZUB0gH/AZ4BlAHTAf8BnAGSAdIB/wGbAZEB0gH/
+ AZkBjgHSAf8BlQGKAdAB/wGLAYEBywH/AX8BcgHFAf8BZwEiATUB2wEUAgEBGRQAATkBMQFaAecBBAFn
+ AbUB/wEEAWcBtAH/AQQBZQGyAf8BBAFkAa8B/wEEAWIBqwH/AQQBXgGkAf8BBAFSAY4B/wEEAUABcgH/
+ AUcBDgEYAdsBFAIBARkUAAFdATgBPAHnAVUBeQF8Af8BVAF5AXwB/wFTAXgBewH/AVEBdgF5Af8BTwF0
+ AXcB/wFMAW8BcgH/AUMBYAFjAf8BNAFLAU0B/wFRAg4B2wEUAgEBGRQAAVMBMQE6AecBNAFoAX4B/wEz
+ AWkBfgH/ATIBZwF9Af8BMQFmAXsB/wEvAWQBeQH/AS0BXwF0Af8BKAFTAWQB/wEgAUEBTgH/AU8CDgHb
+ ARQCAQEZEAABeAE0AUQB3AGrAaEB4gH/Aa4BowHoAf8BsAGkAewB/wGvAaQB6wH/Aa8BpAHqAf8BrwGk
+ AeoB/wGtAaEB6AH/AaoBnwHiAf8BnQGTAdMB/wGDAXoBxgH/AWYBIgE1AdsBFAIBARkMAAFGASQBQgHc
+ AQQBfAHbAf8BBAGBAeYB/wEEAYIB7QH/AQQBgQHsAf8BBAGBAeoB/wEEAYEB6gH/AQQBgAHkAf8BBAF7
+ AdkB/wEEAWYBswH/AQQBRwF/Af8BRwEOARgB2wEUAgEBGQwAAWICKgHcAV8BkwGYAf8BXwGfAaUB/wFh
+ AaUBqwH/AWEBowGpAf8BYAGiAagB/wFgAaIBqAH/AV4BngGjAf8BXQGTAZgB/wFUAXgBfAH/ATsBVAFW
+ Af8BUQIOAdsBFAIBARkMAAFXASgBKgHcATEBgQGgAf8BKgGJAbEB/wElAZEBvQH/ASYBjwG6Af8BJwGN
+ AbgB/wEnAY0BuAH/ASkBiAGvAf8BLwGBAaAB/wEyAWgBfgH/ASQBSAFXAf8BTwIOAdsBFAIBARkIAAEw
+ AgEBSgGsAaIB4wH/Aa8BpAHrAf8BtQGqAfAB/wG1AaoB8AH/AbUBqgHwAf8BtQGqAfAB/wGwAaUB7QH/
+ AbEBpgHvAf8BrQGiAecB/wGXAY0BzwH/AZkBjgHRAf8BggF5AcYB/wEwAgEBSggAATACAQFKAQQBfQHe
+ Af8BBAGBAe0B/wEEAYkB+gH/AQQBiQH6Af8BBAGJAfoB/wEEAYkB+gH/AQQBgwHwAf8BBAGFAfQB/wEE
+ AYAB5AH/AQQBXgGlAf8BBAFiAasB/wEEAUYBfQH/ATACAQFKCAABMAIBAUoBXwGXAZwB/wFhAaQBqgH/
+ AWgBrAGyAf8BaAGsAbIB/wFoAawBsgH/AWgBrAGyAf8BYgGmAawB/wFjAakBrwH/AV8BnQGiAf8BTgFv
+ AXIB/wFQAXMBdgH/AToBUgFUAf8BMAIBAUoIAAEwAgEBSgEwAYIBpAH/ASYBjwG8Af8BIQGbAc0B/wEh
+ AZsBzQH/ASEBmwHNAf8BIQGbAc0B/wEkAZIBwAH/ASEBlgHGAf8BLAGHAa0B/wEvAWABcwH/ATABYwF4
+ Af8BIwFHAVYB/wEwAgEBSggAAbIBpwHqAf8BtQGrAe0B/wG0AagB8QH/AbUBqgHwAf8BtQGqAfAB/wG1
+ AaoB7wH/AbMBqAHrAf8BpgGdAdMB/wGCAXoBwAH/AWQBVQGuAf8DBAH/AZkBjwHQAf8BlQGKAdAB/wGB
+ AXYBvQH/AQIDAQQAAQQBggHvAf8BBAGIAfgB/wEEAYkB+gH/AQQBiQH6Af8BBAGJAfoB/wEEAYgB+gH/
+ AQQBhAHxAf8BBAFuAcIB/wEEAUMBdwH/AQQBGQErAf8DBAH/AQQBYQGqAf8BBAFeAaQB/wEEAT0BbAH/
+ AQIDAQQAAWQBpAGqAf8BaQGpAa8B/wFmAa0BtAH/AWgBrAGyAf8BaAGsAbIB/wFoAasBsQH/AWYBpQGq
+ Af8BXAGAAYEB/wE4AU0BTwH/ARYCHQH/AwQB/wFQAXMBdgH/AUwBbwFyAf8BNAFGAUgB/wECAwEEAAEp
+ AZABuwH/ASYBlwHGAf8BHQGcAdEB/wEhAZsBzQH/ASEBmwHNAf8BIgGaAcsB/wEpAZEBvAH/AToBbgGB
+ Af8BJAFDAU8B/wEPARkBHQH/AwQB/wEwAWMBdwH/AS0BXwF0Af8BIgE9AUcB/wECAwEEAAG1AaoB8gH/
+ Ab8BtQHzAf8BtwGsAfAB/wG1AaoB8AH/AakBoAHZAf8BiQGBAcQB/wFpAVoBswH/AWMBWgGNAf8DBAH/
+ AwQB/wFfAVABqwH/Aa0BogHlAf8BpAGaAdcB/wGIAX8ByAH/ARQCAQEZBAABBAGKAf0B/wETAZIC/wEE
+ AYsB/gH/AQQBiQH6Af8BBAF0Ac4B/wEEAUwBgwH/AQQBIQE5Af8BBAEFAQYB/wMEAf8DBAH/AQQBEwEg
+ Af8BBAF/AeEB/wEEAW8BxAH/AQQBTQGFAf8BFAIBARkEAAFoAa4BtQH/AXYBtQG7Af8BawGtAbMB/wFo
+ AawBsgH/AV8BhgGKAf8BQAFYAVoB/wEcASYBJwH/AwUB/wMEAf8DBAH/ARECFgH/AV8BmgGgAf8BWgGB
+ AYMB/wE/AVoBXAH/ARQCAQEZBAABHgGeAdIB/wEfAakB4gH/ASIBnQHPAf8BIQGbAc0B/wE4AXcBjAH/
+ ASgBTAFaAf8BEgEhAScB/wEEAgUB/wMEAf8DBAH/AQsBEwEWAf8BLQGFAaoB/wE1AXIBhgH/ASYBTgFe
+ Af8BFAIBARkBCwIBAQ0BvQGzAfMB/wHGAb0B9QH/AboBsAHwAf8BtQGqAfAB/wGVAYoBygH/AX8BcgG8
+ Af8BXAFNAaQB/wMEAf8DBAH/AwQB/wGEAX0BwQH/AbIBpwHwAf8BqQGeAeIB/wGOAYIBzQH/ARQCAQEZ
+ AQsCAQENARABkQL/ASABmAL/AQgBjQL/AQQBiQH6Af8BBAFZAZwB/wEEAToBZgH/AQQBDAETAf8DBAH/
+ AwQB/wMEAf8BBAFGAXwB/wEEAYYB9gH/AQQBegHXAf8BBAFVAZQB/wEUAgEBGQELAgEBDQFzAbQBugH/
+ AYABugHAAf8BcAGvAbUB/wFoAawBsgH/AUsBaAFqAf8BMQFCAUQB/wELAQ0BDgH/AwQB/wMEAf8DBAH/
+ ATsBUQFSAf8BZAGrAbEB/wFdAZIBlwH/AUUBZQFnAf8BFAIBARkBCwIBAQ0BHwGnAd4B/wEpAa4B5AH/
+ ASQBoAHTAf8BIQGbAc0B/wEwAVoBagH/ASABOgFEAf8BCAEMAQ4B/wMEAf8DBAH/AwQB/wEmAUYBUgH/
+ ASABmAHKAf8BLwGBAZ8B/wEqAVcBaQH/ARQCAQEZAQsCAQENAcEBuAH0Af8BygHCAfUB/wG7AbEB8AH/
+ AbUBqgHwAf8BtQGqAe8B/wG1AaoB7wH/AXEBZAG3Af8DBAH/AwQB/wFbAU0BnQH/AagBnwHXAf8BrwGk
+ AesB/wGtAaIB5gH/AZEBhQHOAf8BFAIBARkBCwIBAQ0BFwGUAv8BJwGbAv8BCAGNAv8BBAGJAfoB/wEE
+ AYgB+gH/AQQBiAH5Af8BBAErAUsB/wMEAf8DBAH/AQQBBwEJAf8BBAFzAcsB/wEEAYEB7AH/AQQBgAHi
+ Af8BBAFYAZoB/wEUAgEBGQELAgEBDQF4AbcBvQH/AYEBvQHCAf8BcAGvAbQB/wFoAawBsgH/AWgBqwGx
+ Af8BaAGrAbEB/wEkATEBMwH/AwQB/wMEAf8BBgIHAf8BXgGDAYcB/wFhAaMBqQH/AV4BmwGhAf8BSAFo
+ AWsB/wEUAgEBGQELAgEBDQEiAasB4wH/AS8BsAHlAf8BJQGfAdEB/wEhAZsBzQH/ASIBmgHLAf8BIwGZ
+ AckB/wEYASsBMwH/AwQB/wMEAf8BBQIHAf8BOQF1AYkB/wEmAY8BugH/ASsBhgGsAf8BKwFaAW0B/wEU
+ AgEBGQQAAcABtwH0Af8BzwHIAfYB/wHAAbYB8wH/AbQBqQHsAf8BsgGoAeoB/wF5AWwBugH/AT0BIgHE
+ Af8BgwF8AcIB/wFYAUkBogH/AXEBZAG3Af8BtQGqAe4B/wG1AaoB8AH/AasBoQHjAf8BkQGGAc0B/wEJ
+ AgEBCgQAARYBlAL/ATEBoAL/ARQBkwL/AQQBhQH0Af8BBAGDAfAB/wEEATMBWgH/AwQB/wEEAUUBewH/
+ AQQBBwEKAf8BBAErAUsB/wEEAYgB+AH/AQQBiQH6Af8BBAF9Ad0B/wEEAVgBmQH/AQkCAQEKBAABdwG2
+ AbwB/wGIAcEBxgH/AXcBtQG7Af8BZwGnAawB/wFlAaQBqQH/ASsBOwE9Af8DBAH/AToBUAFSAf8BBwII
+ Af8BJAExATMB/wFoAaoBsAH/AWgBrAGyAf8BXgGWAZsB/wFIAWcBagH/AQkCAQEKBAABIQGqAeMB/wE4
+ AbMB5gH/ASEBqQHhAf8BKAGUAcAB/wEqAZABugH/ARwBMwE9Af8DBAH/ASUBRQFSAf8BBQEHAQgB/wEY
+ ASsBMwH/ASQBmAHIAf8BIQGbAc0B/wEuAYEBpAH/ASwBWQFrAf8BCQIBAQoEAAG8AbEB8wH/AdMBzAH3
+ Af8BzAHEAfYB/wG7AbIB6gH/AXkBbAG6Af8DBAH/AZMBiQHJAf8BtwGrAfIB/wFwAWIBtgH/AZUBigHK
+ Af8BtgGrAfEB/wG1AaoB8AH/AasBoQHiAf8BmAGPAcwB/wgAAQ0BkAL/ATcBowL/ASsBnQL/AQQBigH9
+ Af8BBAEzAVoB/wMEAf8BBAFXAZcB/wEEAYsC/wEEASkBRwH/AQQBWQGcAf8BBAGLAf4B/wEEAYkB+gH/
+ AQQBfAHbAf8BBAFeAaQB/wgAAXEBswG5Af8BjQHDAcgB/wGDAb8BxAH/AXEBqAGtAf8BKwE7AT0B/wME
+ Af8BSQFlAWcB/wFqAa8BtQH/ASMBLwEwAf8BSwFoAWoB/wFqAa8BtQH/AWgBrAGyAf8BXgGUAZgB/wFP
+ AW0BcAH/CAABHwGlAd0B/wE9AbUB5gH/ATIBsQHlAf8BMQGWAcAB/wEcATMBPQH/AwQB/wEvAVcBZwH/
+ AR4BnwHVAf8BFwEpATAB/wEwAVoBagH/AR8BngHTAf8BIQGbAc0B/wEwAYEBoAH/ATIBXgFwAf8IAAEw
+ AgEBSgHTAc0B9wH/AdYB0AH3Af8BqQGjAcwB/wFjAVoBjQH/AZQBigHKAf8BtgGrAfEB/wG1AaoB7gH/
+ AaQBmwHSAf8BrwGlAeQB/wG1AaoB8AH/AbUBqgHwAf8BrAGiAeQB/wEwAgEBSggAATACAQFKATkBowL/
+ AT0BpQL/AQQBbQHAAf8BBAEFAQYB/wEEAVkBmwH/AQQBigH9Af8BBAGIAfgB/wEEAWsBvQH/AQQBgAHk
+ Af8BBAGJAfoB/wEEAYkB+gH/AQQBfgHgAf8BMAIBAUoIAAEwAgEBSgGOAcQByAH/AZEBxgHKAf8BYAF7
+ AX0B/wMFAf8BSwFnAWoB/wFpAa0BtAH/AWgBqgGwAf8BWgF9AYAB/wFiAZoBnwH/AWgBrAGyAf8BaAGs
+ AbIB/wFfAZkBngH/ATACAQFKCAABMAIBAUoBPgG1AecB/wFCAbYB5wH/AUIBaQF5Af8BBAIFAf8BLwFZ
+ AWoB/wEgAZ0B0AH/ASQBmAHIAf8BOQFsAYAB/wExAYUBqAH/ASEBmwHNAf8BIQGbAc0B/wEuAYMBpwH/
+ ATACAQFKDAABbwEdASYBygHaAdUB+AH/AcIBuwHmAf8BsAGqAdUB/wHBAbcB8gH/AbsBsgHuAf8BuQGv
+ Ae8B/wG1AaoB8AH/AbUBqgHwAf8BtQGqAfAB/wG1AaoB8AH/AYQBTwFrAegQAAFVARgBKAHKAUUBqQL/
+ AQkBjgL/AQQBeQHVAf8BFAGTAv8BBwGNAv8BBQGMAv8BBAGJAfoB/wEEAYkB+gH/AQQBiQH6Af8BBAGJ
+ AfoB/wE0ATsBawHoEAABZAIdAcoBlwHJAc0B/wF8AaUBqQH/AWcBhwGKAf8BeAG0AboB/wFxAa0BsgH/
+ AW8BrQGyAf8BaAGsAbIB/wFoAawBsgH/AWgBrAGyAf8BaAGsAbIB/wFgAkgB6BAAAVUBHQEkAcoBSAG5
+ AegB/wFCAZMBtgH/AUMBdwGIAf8BJQGnAd0B/wEqAZ0BzAH/AScBnAHNAf8BIQGbAc0B/wEhAZsBzQH/
+ ASEBmwHNAf8BIQGbAc0B/wFKAT0BTwHoFAABbwEfASYByQHWAdAB+AH/AdMBzAH3Af8BzgHHAfYB/wHF
+ AbwB9AH/AbwBsQHyAf8BtwGtAfAB/wGzAagB7gH/AbEBpgHvAf8BeQEyAUUB2xgAAVcBGQEmAckBPgGm
+ Av8BOAGjAv8BLwGfAv8BHQGXAv8BDAGPAv8BBAGLAf4B/wEEAYYB9gH/AQQBhQH0Af8BRwEoAUcB2xgA
+ AWMCHwHJAZIBxgHKAf8BjQHEAcgB/wGGAcABxQH/AX0BuQG/Af8BcQGyAbgB/wFsAa0BswH/AWYBqQGv
+ Af8BYwGpAbAB/wFhATEBMwHbGAABVwEcASQByQFCAbcB5wH/AT0BtQHmAf8BNgGyAeUB/wEnAawB5AH/
+ ASEBowHZAf8BIwGcAc4B/wEkAZcBxgH/ASABlgHHAf8BUQEoATUB2xwAATACAQFKAcMBugH0Af8BxwG/
+ AfUB/wHLAcMB9QH/AcUBvAH0Af8BvAGxAfMB/wGxAaYB7wH/ATACAQFKIAABMAIBAUoBHAGWAv8BIgGZ
+ Av8BKQGcAv8BHQGXAv8BDQGQAv8BBAGFAfQB/wEwAgEBSiAAATACAQFKAXwBuQG+Af8BgQG7AcAB/wGC
+ Ab4BwwH/AX0BuQG/Af8BcQGzAbkB/wFjAakBrwH/ATACAQFKIAABMAIBAUoBJQGsAeQB/wErAa4B5AH/
+ ATEBsAHlAf8BJwGsAeQB/wEfAaUB3QH/ASEBlgHGAf8BMAIBAUosAAELAgEBDQELAgEBDTgAAQsCAQEN
AQsCAQENOAABCwIBAQ0BCwIBAQ04AAELAgEBDQELAgEBDTQAAQQCAQEEARQCAQEZARQCAQEZARQCAQEZ
AQIDASwAAQQCAQEEARQCAQEZARQCAQEZARQCAQEZAQIDASwAAQQCAQEEARQCAQEZARQCAQEZARQCAQEZ
- AQIDASwAAQQCAQEEARQCAQEZARQCAQEZARQCAQEZAQIDASQAATACAQFKA2MB/wNYAf8DUwH/A1IB/wNQ
- Af8DSwH/ATACAQFKARQCAQEZHAABMAIBAUoBkQFuARwB/wF8AVsBFAH/AXEBUgERAf8BbgFQAREB/wFo
- AUsBEAH/AVcBQQESAf8BMAIBAUoBFAIBARkcAAEwAgEBSgE2AWABNgH/ASkBUQEpAf8BJAFLASQB/wEj
- AUkBIwH/ASIBRAEiAf8BIQE5ASEB/wEwAgEBSgEUAgEBGRwAATACAQFKAp4BTAH/ApYBJwH/ApMBGQH/
- ApIBFgH/Ao0BEwH/AnkBFgH/ATACAQFKARQCAQEZGAABbQJAAecDcAH/A3AB/wNuAf8DbQH/A2wB/wNo
- Af8DXwH/A1MB/wFXAh0B2wEUAgEBGRQAAZgBUAEUAecBtAGCARwB/wG0AYEBGwH/AbIBgQEbAf8BrwGB
- ARoB/wGsAX8BGQH/AaQBeQEYAf8BjgFqARYB/wFxAVEBEQH/AVsBFgEIAdsBFAIBARkUAAFRAUMBJgHn
- ATsBeAE7Af8BOgF5AToB/wE5AXgBOQH/ATgBdgE4Af8BNgF0ATYB/wE0AW4BNAH/AS4BYAEuAf8BJAFK
- ASQB/wFHARMBDAHbARQCAQEZFAABkAFlAUIB5wKyAWIB/wK0AWAB/wKyAV0B/wKxAVkB/wKxAVUB/wKt
- AU4B/wKiATgB/wKTARcB/wFmASgBCQHbARQCAQEZEAABbQI1AdwDgQH/A4QB/wOJAf8DiAH/A4YB/wOG
- Af8DgwH/A4EB/wNvAf8DWQH/AVcCHQHbARQCAQEZDAABjgE/AQ8B3AHZAZ0BIgH/AeUBpQEjAf8B7QGs
- ASQB/wHrAaoBJAH/AeoBqAEjAf8B6gGoASMB/wHjAaQBIQH/AdkBnAEgAf8BswGBARsB/wF+AVwBEwH/
- AVsBFgEIAdsBFAIBARkMAAFTAToBGgHcATwBmAE8Af8BNwGoATcB/wE0AbMBNAH/ATUBsAE1Af8BNQGu
- ATUB/wE1Aa4BNQH/ATYBpgE2Af8BOgGZAToB/wE6AXgBOgH/ASgBUwEoAf8BRwETAQoB2wEUAgEBGQwA
- AYkBTwE1AdwCywF9Af8C1AGBAf8C2gGDAf8C2AGCAf8C1wGCAf8C1wGCAf8C1AGAAf8CzAF5Af8CtAFe
- Af8CmQEmAf8BZgEoAQkB2wEUAgEBGQgAATACAQFKA4EB/wOJAf8DkAH/A5AB/wOQAf8DkAH/A4oB/wOM
- Af8DgwH/A2kB/wNsAf8DVwH/ATACAQFKCAABMQIBAUoB3AGgASMB/wHsAaoBJAH/AfYBswEpAf8B9gGz
- ASkB/wH2AbMBKQH/AfYBswEpAf8B7wGtASQB/wHyAbABJQH/AeIBpAEjAf8BpAF6ARoB/wGrAX4BGgH/
- AXwBWwETAf8BMAIBAUoIAAEwAgEBSgE7AZ0BOwH/ATQBsQE0Af8BMgHAATIB/wEyAcABMgH/ATIBwAEy
- Af8BMgHAATIB/wEzAbYBMwH/ATEBuwExAf8BOAGkATgB/wE2AW4BNgH/ATcBcwE3Af8BJwFSAScB/wEw
- AgEBSggAATECAQFKAs0BgAH/AtgBggH/At8BjQH/At8BjQH/At8BjQH/At8BjQH/AtsBgwH/At0BhwH/
- AtIBgQH/Aq0BUgH/ArABVQH/ApgBIgH/ATACAQFKCAADiQH/A44B/wOQAf8DkAH/A5AB/wOPAf8DiwH/
- A3UB/wNVAf8DMgH/AwMB/wNrAf8DaAH/A1EB/wECAwEEAAHrAawBJwH/AfIBsgEqAf8B+AG0AScB/wH2
- AbMBKQH/AfYBswEpAf8B9QGyASkB/wHsAawBKAH/Ab4BigEgAf8BcwFUARQB/wEpAR8BCQH/AwMB/wGq
- AX4BGgH/AaQBeQEYAf8BaAFOARMB/wECAwEEAAE3AbEBNwH/ATUBuwE1Af8BLgHEAS4B/wEyAcABMgH/
- ATIBwAEyAf8BMgG/ATIB/wE4AbIBOAH/AUEBfgFBAf8BKAFMASgB/wEPARsBDwH/AwMB/wE3AXIBNwH/
- ATQBbgE0Af8BJQFEASUB/wECAwEEAALYAYcB/wLcAY8B/wLhAYsB/wLfAY0B/wLfAY0B/wLeAY0B/wLY
- AYoB/wK1AXIB/wKPASQB/wJMAQMB/wMDAf8CrgFVAf8CrQFOAf8CiAEcAf8BAgMBBAADkQH/A5wB/wOR
- Af8DkAH/A3oB/wNcAf8DOwH/AwkB/wMDAf8DAwH/AysB/wOBAf8DdgH/A1wB/wEUAgEBGQQAAfkBtgEo
- Av8BvwE2Af8B+AG3ASsB/wH2AbMBKQH/AcoBkwEiAf8BgQFgARcB/wE3ASkBCwH/AgQBAwH/AwMB/wMD
- Af8BHwEXAQcB/wHgAaMBIgH/AcQBjgEdAf8BhAFiARUB/wEUAgEBGQQAAS8BxgEvAf8BNQHRATUB/wEz
- AcMBMwH/ATIBwAEyAf8BQQGHAUEB/wEtAVYBLQH/ARQBJQEUAf8DAwH/AwMB/wMDAf8BDAEVAQwB/wE5
- AaEBOQH/AT0BgQE9Af8BKwFZASsB/wEUAgEBGQQAAuIBjQH/AuUBoQH/At8BkgH/At8BjQH/Ar8BeQH/
- ApgBMwH/Al0BAwH/AhwBAwH/AwMB/wMDAf8CQwEDAf8C0QGAAf8CuwFvAf8CngEwAf8BFAIBARkBCwIB
- AQ0DmgH/A6YB/wOVAf8DkAH/A2YB/wNOAf8DHwH/AwMB/wMDAf8DAwH/A1cB/wONAf8DgAH/A2IB/wEU
- AgEBGQELAgEBDQH/Ab4BMgL/AcUBRQH/AfoBugEvAf8B9gGzASkB/wGZAXIBGwH/AWMBSAESAf8BEgEO
- AQUB/wMDAf8DAwH/AwMB/wF4AVgBFQH/AfQBsQEmAf8B2AGbAR8B/wGVAW4BFgH/ARQCAQEZAQsCAQEN
- ATIB0AEyAf8BPwHTAT8B/wE1AcYBNQH/ATIBwAEyAf8BNQFmATUB/wEjAUEBIwH/AQgBDQEIAf8DAwH/
- AwMB/wMDAf8BKgFPASoB/wEwAb4BMAH/AToBlwE6Af8BMAFkATAB/wEUAgEBGQELAgEBDQLlAZwB/wLo
- Aa0B/wLhAZgB/wLfAY0B/wKkAUwB/wKFARYB/wI3AQMB/wMDAf8DAwH/AwMB/wKSASkB/wLeAYgB/wLL
- AXkB/wKlAT4B/wEUAgEBGQELAgEBDQOfAf8DqgH/A5UB/wOQAf8DjwH/A48B/wNEAf8DAwH/AwMB/wMR
- Af8DeQH/A4gB/wOCAf8DZAH/ARQCAQEZAQsCAQENAf8BwQE7Av8ByAFNAf8B+QG5ATAB/wH2AbMBKQH/
- AfUBsgEpAf8B9AGyASkB/wFJATYBDgH/AwMB/wMDAf8BCAEHAQMB/wHHAZEBIgH/AesBqgEkAf8B4gGj
- ASIB/wGaAXIBFwH/ARQCAQEZAQsCAQENATgB0gE4Af8BRAHVAUQB/wE2AcUBNgH/ATIBwAEyAf8BMgG/
- ATIB/wEzAb4BMwH/ARoBMAEaAf8DAwH/AwMB/wEFAQYBBQH/AUEBhAFBAf8BNQGwATUB/wE4AaMBOAH/
- ATEBaAExAf8BFAIBARkBCwIBAQ0C5gGkAf8C6wG0Af8C4QGYAf8C3wGNAf8C3gGNAf8C3gGNAf8CbwEJ
- Af8DAwH/AwMB/wIsAQMB/wK9AXgB/wLYAYIB/wLRAYAB/wKoAUMB/wEUAgEBGQQAA54B/wOxAf8DngH/
- A40B/wOKAf8DSwH/AwMB/wNXAf8DEwH/A0QB/wOOAf8DkAH/A4EB/wNkAf8BCQIBAQoEAAH/AcABOQL/
- AcwBWAL/AcEBOAH/Ae8BrwEpAf8B6wGrAScB/wFYAUABEAH/AwMB/wF3AVcBFQH/AQkBBwEDAf8BSQE2
- AQ4B/wHzAbEBKQH/AfYBswEpAf8B3AGfASEB/wGZAXIBGAH/AQkCAQEKBAABNgHSATYB/wFMAdYBTAH/
- ATYB0AE2Af8BNwG2ATcB/wE4AbABOAH/AR8BOgEfAf8DAwH/ASkBTgEpAf8BBQEHAQUB/wEaATABGgH/
- ATQBvQE0Af8BMgHAATIB/wE6AZwBOgH/ATIBZwEyAf8BCQIBAQoEAALmAaIB/wLtAb0B/wLlAaIB/wLb
- AYsB/wLYAYgB/wJ9ARAB/wJMAQMB/wKSAScB/wIwAQMB/wJvAQkB/wLdAY0B/wLfAY0B/wLNAX0B/wKn
- AUUB/wEJAgEBCgQAA5kB/wO2Af8DrQH/A5EB/wNLAf8DAwH/A2QB/wOTAf8DQgH/A2YB/wORAf8DkAH/
- A4EB/wNoAf8IAAH/AbwBMAL/Ac4BXwL/AckBUQH/AfEBtAEyAf8BWAFAARAB/wMDAf8BlAFvARoB/wH6
- AbYBKgH/AUUBMwENAf8BmQFyARsB/wH5AbUBKgH/AfYBswEpAf8B2QGdASEB/wGhAXkBHAH/CAABMQHP
- ATEB/wFRAdcBUQH/AUcB1QFHAf8BPwG2AT8B/wEfAToBHwH/AwMB/wE0AWMBNAH/AS8BxwEvAf8BGQEu
- ARkB/wE1AWYBNQH/ATABxgEwAf8BMgHAATIB/wE7AZkBOwH/ATgBbAE4Af8IAALkAZkB/wLuAcIB/wLs
- AbgB/wLaAZgB/wJ9ARAB/wMDAf8CoQFIAf8C4gGQAf8CawEHAf8CpAFMAf8C4QGQAf8C3wGNAf8CzAF9
- Af8CqAFTAf8IAAEwAgEBSgO4Af8DuwH/A3QB/wMJAf8DZQH/A5EB/wOOAf8DdAH/A4MB/wOQAf8DkAH/
- A4EB/wEwAgEBSggAATECAQFKAf8BzgFgAv8B0AFlAf8BtQGJAScB/wIEAQMB/wGYAXIBGwH/AfgBtAEp
- Af8B8wGxASkB/wG6AYcBIAH/Ad8BogEmAf8B9gGzASkB/wH2AbMBKQH/Ad8BoQEiAf8BMAIBAUoIAAEw
- AgEBSgFSAdgBUgH/AVUB2AFVAf8BSAF2AUgB/wMDAf8BNQFmATUB/wExAcQBMQH/ATQBvQE0Af8BQAF7
- AUAB/wE8AaABPAH/ATIBwAEyAf8BMgHAATIB/wE6AZ8BOgH/ATACAQFKCAABMQIBAUoC7wHEAf8C8AHI
- Af8CrgF5Af8CHAEDAf8CpAFMAf8C4QGPAf8C3QGNAf8CtAFvAf8C0AGCAf8C3wGNAf8C3wGNAf8CzwGA
- Af8BMAIBAUoMAAFwAikBygPAAf8DlQH/A38B/wOeAf8DlQH/A5QB/wOQAf8DkAH/A5AB/wOQAf8BdwJI
- AegQAAGGATIBEgHKAf8B0wFuAf8B7QG4ATwB/wHHAZgBLQH/Af4BwAE5Af8B9wG5ATEB/wH3AbcBLwH/
- AfYBswEpAf8B9gGzASkB/wH2AbMBKQH/AfYBswEpAf8BqQFdARUB6BAAAVcBNgERAcoBWwHaAVsB/wFO
- Aa4BTgH/AUsBhAFLAf8BOgHNAToB/wE5AcEBOQH/ATcBwQE3Af8BMgHAATIB/wEyAcABMgH/ATIBwAEy
- Af8BMgHAATIB/wFMAVkBIQHoEAABfwE7ASwBygLxAc8B/wLWAaUB/wK8AYUB/wLkAaQB/wLeAZkB/wLf
- AZYB/wLfAY0B/wLfAY0B/wLfAY0B/wLfAY0B/wGgAXQBSAHoFAABcgIrAckDuwH/A7YB/wOuAf8DowH/
- A5cB/wORAf8DjQH/A4wB/wFwAjYB2xgAAYMBMQEUAckB/wHQAWYC/wHNAV8C/wHLAVUC/wHDAUIB/wH9
- AbsBMAH/AfcBtwEsAf8B8gGxAScB/wHyAa8BJQH/AZYBQwEOAdsYAAFXATQBEQHJAVYB2QFWAf8BUQHY
- AVEB/wFKAdYBSgH/AT0B0wE9Af8BMwHMATMB/wE0AcIBNAH/ATMBuwEzAf8BMAG7ATAB/wFRAUUBFgHb
- GAABgAE6AS4ByQLwAcgB/wLvAcMB/wLtAbsB/wLoAaoB/wLjAZkB/wLfAZIB/wLdAYoB/wLdAYcB/wGQ
- AVcBNQHbHAABMAIBAUoDogH/A6YB/wOqAf8DowH/A5kB/wOMAf8BMAIBAUogAAExAgEBSgH/AcMBQAL/
- AcYBSAL/AckBTwL/AcIBQgL/Ab0BMAH/AfIBrwElAf8BMQIBAUogAAEwAgEBSgE7AdMBOwH/AUEB1AFB
- Af8BRQHVAUUB/wE9AdMBPQH/ATEBzwExAf8BMQG7ATEB/wEwAgEBSiAAATECAQFKAucBqAH/AuoBsAH/
- AusBtQH/AugBqgH/AuQBmQH/At0BhwH/ATECAQFKLAABCwIBAQ0BCwIBAQ04AAELAgEBDQELAgEBDTgA
- AQsCAQENAQsCAQENOAABCwIBAQ0BCwIBAQ00AAEEAgEBBAEUAgEBGQEUAgEBGQEUAgEBGQECAwEsAAEE
- AgEBBAEUAgEBGQEUAgEBGQEUAgEBGQECAwEsAAEEAgEBBAEUAgEBGQEUAgEBGQEUAgEBGQECAwEsAAEE
- AgEBBAEUAgEBGQEUAgEBGQEUAgEBGQECAwEkAAEwAgEBSgIrAVMB/wIhAUYB/wIdAUEB/wIcAT8B/wIb
- ATwB/wIbATEB/wEwAgEBSgEUAgEBGRwAATACAQFKAXsBAwFWAf8BZAEDAUcB/wFaAQMBQAH/AVgBAwE+
- Af8BUwEDATsB/wFJAQMBNAH/ATACAQFKARQCAQEZHAABMAIBAUoBIgFEAVEB/wEZATkBRgH/ARUBNAFB
- Af8BFQEzAT8B/wEUATABOwH/ARUBKQEwAf8BMAIBAUoBFAIBARkcAAEwAgEBSgOFAf8DdgH/A24B/wNs
- Af8DaAH/A18B/wEwAgEBSgEUAgEBGRgAAUoBHwE6AecCLgFoAf8CLQFoAf8CLQFnAf8CLAFmAf8CKwFj
- Af8CKQFfAf8CJAFSAf8CHAFBAf8BRQEKAREB2wEUAgEBGRQAAYABAwE+AecBjwEDAWcB/wGPAQMBZwH/
- AY0BAwFmAf8BiwEDAWQB/wGIAQMBYgH/AYIBAwFeAf8BdAEDAVEB/wFaAQMBPwH/AVUBAwETAdsBFAIB
- ARkUAAFDATEBOgHnASMBUwFnAf8BIQFUAWgB/wEhAVIBZwH/ASABUQFlAf8BHwFQAWMB/wEeAUwBXwH/
- ARsBQgFSAf8BFQE0AUEB/wFCAQ4BEQHbARQCAQEZFAABhwJaAecDlwH/A5cB/wOVAf8DkwH/A5IB/wON
- Af8DgQH/A24B/wFcAiIB2wEUAgEBGRAAAU0BFAE0AdwCLQGEAf8CKAGRAf8CJQGbAf8CJgGZAf8CJgGY
- Af8CJgGYAf8CKAGQAf8CLAGEAf8CLQFoAf8CIAFIAf8BQgEJAREB2wEUAgEBGQwAAX4BAwEyAdwBrQED
- AXwB/wG2AQMBgQH/AbwBAwGDAf8BuwEDAYMB/wG6AQMBggH/AboBAwGCAf8BtAEDAYEB/wGsAQMBewH/
- AY4BAwFmAf8BZQEDAUcB/wFVAQMBEwHbARQCAQEZDAABRwEpATQB3AEdAWkBhQH/ARYBcgGUAf8BEQF4
- AZ8B/wESAXcBnQH/ARMBdgGbAf8BEwF2AZsB/wEWAXEBkwH/ARsBaQGGAf8BIQFTAWgB/wEYAToBRwH/
- AUIBDgERAdsBFAIBARkMAAF+AkcB3AOsAf8DsgH/A7YB/wO1Af8DtAH/A7QB/wOxAf8DqwH/A5YB/wN3
- Af8BXAIiAdsBFAIBARkIAAEwAgEBSgItAYcB/wIlAZoB/wIiAagB/wIiAagB/wIiAagB/wIiAagB/wIk
- AZ4B/wIiAaMB/wIqAY8B/wIqAV8B/wIrAWMB/wIfAUYB/wEwAgEBSggAATACAQFKAbABAwF+Af8BvAED
- AYMB/wHGAQMBigH/AcYBAwGKAf8BxgEDAYoB/wHGAQMBigH/Ab4BAwGFAf8BwQEDAYcB/wG0AQMBgQH/
- AYMBAwFeAf8BiAEDAWIB/wFjAQMBRgH/ATACAQFKCAABMAIBAUoBHAFsAYkB/wERAXcBngH/AQwBgQGt
- Af8BDAGBAa0B/wEMAYEBrQH/AQwBgQGtAf8BDwF6AaMB/wENAX0BpwH/ARgBcAGRAf8BIAFNAV8B/wEg
- AU8BYwH/ARcBOQFGAf8BMAIBAUoIAAEwAgEBSgOuAf8DtgH/A70B/wO9Af8DvQH/A70B/wO3Af8DuQH/
- A7EB/wOOAf8DkgH/A3UB/wEwAgEBSggAAigBmQH/AiYBogH/Ah8BqwH/AiIBqAH/AiIBqAH/AiMBpwH/
- AigBmwH/AjMBbQH/AiABQQH/Ag0BGAH/AwMB/wIrAWIB/wIpAV8B/wIeATsB/wECAwEEAAG9AQMBhAH/
- AcUBAwGJAf8BxgEDAYoB/wHGAQMBigH/AcYBAwGKAf8BxgEDAYoB/wG/AQMBhQH/AZkBAwFuAf8BXgED
- AUIB/wEiAQMBGAH/AwMB/wGHAQMBYQH/AYIBAwFeAf8BVgEDAT0B/wECAwEEAAEUAXgBnQH/AREBfgGn
- Af8BCQGBAbEB/wEMAYEBrQH/AQwBgQGtAf8BDQGAAasB/wEVAXkBngH/AScBWAFsAf8BGQE1AUEB/wEK
- ARQBGAH/AwMB/wEgAU8BYgH/AR4BTAFfAf8BFwEwAToB/wECAwEEAAO2Af8DuwH/A70B/wO9Af8DvQH/
- A7wB/wO4Af8DngH/A3EB/wM2Af8DAwH/A5EB/wONAf8DagH/AQIDAQQAAh8BrQH/AiIBuQH/AiMBqgH/
- AiIBqAH/AjMBdwH/AiQBSgH/AhABIAH/AwMB/wMDAf8DAwH/AgoBEgH/AioBjAH/AjABcgH/AiIBTQH/
- ARQCAQEZBAAByAEDAYwB/wHXAQMBlgH/AckBAwGMAf8BxgEDAYoB/wGjAQMBdQH/AWsBAwFMAf8BLQED
- ASAB/wEEAQMBBAH/AwMB/wMDAf8BGQEDARIB/wGzAQMBgAH/AZsBAwFvAf8BbAEDAUwB/wEUAgEBGQQA
- AQkBgQGzAf8BCQGKAb8B/wENAYEBrwH/AQwBgQGtAf8BJQFfAXcB/wEcAT0BSgH/AQ0BGgEgAf8DAwH/
- AwMB/wMDAf8BCAEPARIB/wEZAW8BjgH/ASMBWwFyAf8BGgE+AU0B/wEUAgEBGQQAA74B/wPHAf8DvgH/
- A70B/wOkAf8DfAH/A0QB/wMIAf8DAwH/AwMB/wMsAf8DrwH/A58B/wN9Af8BFAIBARkBCwIBAQ0CIQG3
- Af8CIwHCAf8CJQGtAf8CIgGoAf8CKgFYAf8CHAE4Af8CBgELAf8DAwH/AwMB/wMDAf8CIQFEAf8CIQGm
- Af8CLAGDAf8CJQFXAf8BFAIBARkBCwIBAQ0B1AEDAZQB/wHhAQMBnQH/Ac4BAwGPAf8BxgEDAYoB/wF/
- AQMBWQH/AVEBAwE5Af8BDwEDAQsB/wMDAf8DAwH/AwMB/wFiAQMBRQH/AcMBAwGIAf8BqwEDAXoB/wF5
- AQMBVQH/ARQCAQEZAQsCAQENAQkBiAG9Af8BCQGQAcgB/wEOAYIBsgH/AQwBgQGtAf8BIAFHAVcB/wEW
- AS4BOAH/AQUBCQELAf8DAwH/AwMB/wMDAf8BGgE3AUMB/wELAX8BqwH/ARwBaAGEAf8BGwFGAVcB/wEU
- AgEBGQELAgEBDQPFAf8DzgH/A8EB/wO9Af8DiQH/A2UB/wMeAf8DAwH/AwMB/wMDAf8DdQH/A7oB/wOq
- Af8DhAH/ARQCAQEZAQsCAQENAiIBvAH/AiQBxwH/AiYBrAH/AiIBqAH/AiMBpwH/AiQBpQH/AhUBKgH/
- AwMB/wMDAf8CBAEGAf8CMwF1Af8CJgGZAf8CKQGNAf8CJgFaAf8BFAIBARkBCwIBAQ0B2gEDAZgB/wHn
- AQMBoQH/Ac4BAwGPAf8BxgEDAYoB/wHGAQMBigH/AcUBAwGKAf8BOwEDASoB/wMDAf8DAwH/AQcBAwEG
- Af8BoQEDAXMB/wG7AQMBgwH/AbMBAwGAAf8BfQEDAVgB/wEUAgEBGQELAgEBDQEJAYwBwgH/AQoBlAHN
- Af8BDwGBAbEB/wEMAYEBrQH/AQ0BgAGrAf8BDgF/AaoB/wEQASIBKQH/AwMB/wMDAf8BBAEFAQYB/wEl
- AV0BdAH/ARIBdwGdAf8BFwFwAZAB/wEcAUgBWgH/ARQCAQEZAQsCAQENA8kB/wPRAf8DwQH/A70B/wO8
- Af8DvAH/A1MB/wMDAf8DAwH/Aw8B/wOjAf8DtQH/A7AB/wOHAf8BFAIBARkEAAIiAbsB/wIlAc4B/wIj
- AbkB/wInAZ4B/wIpAZkB/wIZATIB/wMDAf8CIQFDAf8CBAEGAf8CFQEqAf8CJAGkAf8CIgGoAf8CLAGH
- Af8CJwFYAf8BCQIBAQoEAAHZAQMBlwH/Ae4BAwGmAf8B1wEDAZYB/wHCAQMBhwH/Ab4BAwGFAf8BRwED
- ATIB/wMDAf8BYQEDAUQB/wEIAQMBBgH/ATsBAwEqAf8BxQEDAYkB/wHGAQMBigH/Aa8BAwF9Af8BfQED
- AVgB/wEJAgEBCgQAAQkBiwHBAf8BCgGZAdQB/wEKAYkBvgH/ARMBewGiAf8BFQF4AZ0B/wETASkBMgH/
- AwMB/wEZATcBQwH/AQQCBgH/ARABIgEpAf8BDwF+AakB/wEMAYEBrQH/ARsBawGJAf8BHQFHAVgB/wEJ
- AgEBCgQAA8gB/wPWAf8DyAH/A7oB/wO3Af8DXgH/AwMB/wN0Af8DEQH/A1MB/wO7Af8DvQH/A60B/wOH
- Af8BCQIBAQoEAAIhAbUB/wImAdEB/wIkAckB/wIvAZ4B/wIZATIB/wMDAf8CKQFVAf8CIAGuAf8CFAEn
- Af8CKgFYAf8CIAGtAf8CIgGoAf8CLQGEAf8CLAFdAf8IAAHSAQMBkgH/AfMBAwGqAf8B6gEDAaMB/wHJ
- AQMBjAH/AUcBAwEyAf8DAwH/AXsBAwFXAf8BygEDAY0B/wE4AQMBKAH/AX8BAwFZAf8ByQEDAYwB/wHG
- AQMBigH/Aa0BAwF8Af8BggEDAV4B/wgAAQkBhwG7Af8BCgGcAdkB/wEKAZYB0AH/ARsBfAGhAf8BEwEp
- ATIB/wMDAf8BIAFFAVUB/wEJAYIBtAH/ARABIAEnAf8BIAFHAVcB/wEKAYEBswH/AQwBgQGtAf8BHAFq
- AYYB/wEiAUsBXAH/CAADxAH/A9kB/wPTAf8DvgH/A14B/wMDAf8DhgH/A78B/wNPAf8DiQH/A74B/wO9
- Af8DrAH/A40B/wgAATACAQFKAiYB0wH/AiYB1gH/AjoBZQH/AwMB/wIqAVcB/wIhAasB/wIkAaQB/wIz
- AWoB/wItAYsB/wIiAagB/wIiAagB/wIrAYoB/wEwAgEBSggAATECAQFKAfQBAwGqAf8B+AEDAa0B/wGY
- AQMBbQH/AQQBAwEEAf8BfgEDAVkB/wHIAQMBjAH/AcUBAwGJAf8BlgEDAWwB/wG0AQMBgQH/AcYBAwGK
- Af8BxgEDAYoB/wGxAQMBfwH/ATACAQFKCAABMAIBAUoBCgGdAdkB/wEKAZ8B3QH/AS8BVAFiAf8DAwH/
- ASABRwFXAf8BCwGBAbEB/wEPAX4BqQH/AScBVgFpAf8BHAFuAYwB/wEMAYEBrQH/AQwBgQGtAf8BGgFt
- AYwB/wEwAgEBSggAATECAQFKA9oB/wPcAf8DnQH/AwgB/wOIAf8DvgH/A7sB/wOcAf8DsQH/A70B/wO9
- Af8DrgH/ATACAQFKDAABTwEJATIBygIoAdoB/wI8AZYB/wI8AXQB/wImAbYB/wIpAagB/wInAagB/wIi
- AagB/wIiAagB/wIiAagB/wIiAagB/wFDARgBTwHoEAABfgEDASgBygH+AQMBsQH/Ac4BAwGQAf8BqQED
- AXkB/wHXAQMBlgH/Ac0BAwGPAf8BywEDAY4B/wHGAQMBigH/AcYBAwGKAf8BxgEDAYoB/wHGAQMBigH/
- AZMBAwFIAegQAAFKASYBMwHKAQoBowHiAf8BKgF5AZYB/wEvAV8BcwH/AQ4BiAG7Af8BEwGBAawB/wER
- AYEBrQH/AQwBgQGtAf8BDAGBAa0B/wEMAYEBrQH/AQwBgQGtAf8BOwE9AU8B6BAAAXoCMwHKA98B/wPB
- Af8DqQH/A8gB/wPBAf8DwAH/A70B/wO9Af8DvQH/A70B/wGNAmYB6BQAAU8BCAExAckCJgHWAf8CJgHS
- Af8CJQHMAf8CIwG/Af8CIwGyAf8CJAGpAf8CJAGjAf8CIQGjAf8BSwERAT0B2xgAAYABAwEoAckB+QED
- Aa0B/wH0AQMBqgH/Ae0BAwGlAf8B3wEDAZsB/wHRAQMBkgH/AckBAwGMAf8BwwEDAYgB/wHBAQMBhwH/
- AYYBAwE1AdsYAAFJASUBMwHJAQoBnwHdAf8BCgGcAdkB/wEKAZgB0wH/AQkBjwHGAf8BCwGFAbgB/wEO
- AYEBrwH/AQ8BfQGnAf8BDAF9AagB/wFCAS0BPQHbGAABewIzAckD3AH/A9kB/wPUAf8DzAH/A8MB/wO+
- Af8DugH/A7kB/wGFAkcB2xwAATACAQFKAiIBvwH/AiMBwwH/AiQByAH/AiMBvwH/AiEBtQH/AiIBowH/
- ATACAQFKIAABMQIBAUoB3QEDAZoB/wHjAQMBngH/AegBAwGiAf8B3wEDAZsB/wHSAQMBkgH/AcEBAwGH
- Af8BMAIBAUogAAEwAgEBSgEJAY4BxQH/AQkBkQHKAf8BCgGVAc4B/wEJAY8BxgH/AQkBhwG7Af8BDQF9
- AacB/wEwAgEBSiAAATECAQFKA8sB/wPOAf8D0QH/A8wB/wPEAf8DuQH/ATACAQFKLAABCwIBAQ0BCwIB
- AQ04AAELAgEBDQELAgEBDTgAAQsCAQENAQsCAQENOAABCwIBAQ0BCwIBAQ00AAEEAgEBBAEUAgEBGQEU
- AgEBGQEUAgEBGQECAwEsAAEEAgEBBAEUAgEBGQEUAgEBGQEUAgEBGQECAwEsAAEEAgEBBAEUAgEBGQEU
- AgEBGQEUAgEBGQECAwEsAAEEAgEBBAEUAgEBGQEUAgEBGQEUAgEBGQECAwEkAAEwAgEBSgNAAf8DOQH/
- AzcB/wM2Af8DNQH/AzMB/wEwAgEBSgEUAgEBGRwAATACAQFKAW8BSQE8Af8BXgE5AS0B/wFWATMBKAH/
- AVQBMgEnAf8BTwEwASUB/wFBASwBJAH/ATACAQFKARQCAQEZHAABMAIBAUoBJgFCASYB/wEdATgBHQH/
- ARkBNAEZAf8BGQEyARkB/wEYAS8BGAH/ARcBKAEXAf8BMAIBAUoBFAIBARkcAAEwAgEBSgFQAVIBKwH/
- AUQBRgEgAf8BPgFBARwB/wE9AT8BGwH/AToBPAEaAf8BMAExARoB/wEwAgEBSgEUAgEBGRgAAVcCLQHn
- A0oB/wNKAf8DSQH/A0gB/wNHAf8DRAH/Az4B/wM3Af8BTwITAdsBFAIBARkUAAF8ATIBKAHnAYcBUwFB
- Af8BiAFTAUAB/wGGAVIBPwH/AYQBUAE+Af8BggFOATwB/wF/AUsBOQH/AW4BQQEzAf8BVgEzAScB/wFR
- Ag4B2wEUAgEBGRQAAUgBMQEbAecBKQFTASkB/wEoAVMBKAH/ASgBUgEoAf8BJwFRAScB/wEmAVABJgH/
- ASQBTAEkAf8BIAFCASAB/wEZATQBGQH/AUIBDgEJAdsBFAIBARkUAAFlAToBHAHnAWQBaAEtAf8BZQFo
- ASwB/wFkAWcBLAH/AWIBZgErAf8BYAFkASoB/wFcAWABKAH/AVABUwEjAf8BPgFBARwB/wFLAREBCgHb
- ARQCAQEZEAABXgIkAdwDXAH/A2IB/wNnAf8DZgH/A2QB/wNkAf8DYQH/A1sB/wNKAf8DOgH/AU8CEwHb
- ARQCAQEZDAABfAEpAR8B3AGwAV4BQQH/AcIBXgE7Af8BzQFfATkB/wHKAV8BOgH/AckBXgE5Af8ByQFe
- ATkB/wHBAV0BOgH/AbEBXAE/Af8BhwFSAUAB/wFgATkBLAH/AVECDgHbARQCAQEZDAABSwEpARQB3AEq
- AWsBKgH/ASYBdgEmAf8BJAF9ASQB/wElAXsBJQH/ASUBegElAf8BJQF6ASUB/wEmAXQBJgH/ASgBawEo
- Af8BKAFTASgB/wEcATkBHAH/AUIBDgEJAdsBFAIBARkMAAFoATQBFAHcAYEBhAEsAf8BiwGSAScB/wGU
- AZwBIwH/AZIBmQEkAf8BkQGYASUB/wGRAZgBJQH/AYoBkAEmAf8BgQGEASoB/wFkAWgBLAH/AUYBSAEf
- Af8BSwERAQkB2wEUAgEBGQgAATACAQFKA14B/wNnAf8DcAH/A3AB/wNwAf8DcAH/A2gB/wNqAf8DYQH/
- A0UB/wNHAf8DOQH/ATACAQFKCAABMAIBAUoBtQFeAUAB/wHLAV8BOgH/AdQBZgFAAf8B1AFmAUAB/wHU
- AWYBQAH/AdQBZgFAAf8BzwFgAToB/wHSAWEBOwH/Ab4BXgE9Af8BfwFMATsB/wGBAU4BPAH/AV4BOAEr
- Af8BMAIBAUoIAAEwAgEBSgEpAW4BKQH/ASQBfAEkAf8BIwGDASMB/wEjAYMBIwH/ASMBgwEjAf8BIwGD
- ASMB/wEjAX8BIwH/ASIBgQEiAf8BJwFzAScB/wEmAUwBJgH/ASYBTwEmAf8BHAE5ARwB/wEwAgEBSggA
- ATACAQFKAYIBiAErAf8BkwGbASQB/wGgAagBIQH/AaABqAEhAf8BoAGoASEB/wGgAagBIQH/AZcBnwEi
- Af8BmwGjASEB/wGIAY4BKAH/AVwBXwEpAf8BYAFjASoB/wFEAUcBHgH/ATACAQFKCAADZwH/A20B/wNw
- Af8DcAH/A3AB/wNuAf8DaQH/A08B/wM4Af8DJwH/AwMB/wNHAf8DRAH/AzYB/wECAwEEAAHJAWIBPgH/
- Ac8BZgFCAf8B1wFkAT0B/wHUAWYBQAH/AdQBZgFAAf8B0wFmAUAB/wHKAWQBQAH/AY4BWgFIAf8BVwE3
- ASwB/wEfARQBEQH/AwMB/wGBAU4BPQH/AX8BSwE5Af8BTgEyASkB/wECAwEEAAEmAXwBJgH/ASUBgQEl
- Af8BIAGFASAB/wEjAYMBIwH/ASMBgwEjAf8BIwGCASMB/wEnAX0BJwH/AS0BVwEtAf8BHAE0ARwB/wEL
- ARMBCwH/AwMB/wEmAU8BJgH/ASQBTAEkAf8BGgEvARoB/wECAwEEAAGTAZoBJgH/AZsBowEkAf8BowGr
- AR0B/wGgAagBIQH/AaABqAEhAf8BnwGnASEB/wGUAZsBJwH/AWkBbQEyAf8BPwFBAR8B/wEXARgBDAH/
- AwMB/wFfAWIBKwH/AVwBYAEoAf8BOQE7AR0B/wECAwEEAANxAf8DfgH/A3EB/wNwAf8DVAH/AzsB/wMs
- Af8DCAH/AwMB/wMDAf8DIgH/A18B/wNQAf8DPAH/ARQCAQEZBAAB2AFmAT8B/wHbAXMBTwH/AdQBaQFD
- Af8B1AFmAUAB/wGcAV0BRwH/AWMBPgEyAf8BKgEbARYB/wIEAQMB/wMDAf8DAwH/ARgBDwENAf8BuwFe
- AT4B/wGVAVkBQwH/AWcBPgEwAf8BFAIBARkEAAEhAYcBIQH/ASMBkAEjAf8BIwGFASMB/wEjAYMBIwH/
- AS0BXwEtAf8BIAE8ASAB/wEOARoBDgH/AwMB/wMDAf8DAwH/AQkBDwEJAf8BKAFxASgB/wErAVsBKwH/
- AR4BPgEeAf8BFAIBARkEAAGkAa0BHgH/AbABugEgAf8BogGqASEB/wGgAagBIQH/AXMBdwExAf8BSAFK
- ASMB/wEfASABEAH/AwMB/wMDAf8DAwH/AhIBCgH/AYYBjAEpAf8BbgFyAS8B/wFKAU0BIgH/ARQCAQEZ
- AQsCAQENA3sB/wOHAf8DdQH/A3AB/wNCAf8DNAH/AxoB/wMDAf8DAwH/AwMB/wM5Af8DbAH/A1oB/wNA
- Af8BFAIBARkBCwIBAQ0B2gFwAUsB/wHdAXwBWwH/AdUBbQFJAf8B1AFmAUAB/wF2AUoBOwH/AUoBLwEm
- Af8BDgEKAQgB/wMDAf8DAwH/AwMB/wFaATkBLgH/AdQBYgE7Af8BrwFcAT8B/wF0AUQBNAH/ARQCAQEZ
- AQsCAQENASIBjgEiAf8BJAGXASQB/wElAYcBJQH/ASMBgwEjAf8BJQFGASUB/wEYAS0BGAH/AQYBCQEG
- Af8DAwH/AwMB/wMDAf8BHQE3AR0B/wEiAYEBIgH/ASgBagEoAf8BIQFFASEB/wEUAgEBGQELAgEBDQGu
- AbcBHwH/AbkBwgEhAf8BpQGtASMB/wGgAagBIQH/AVUBWAEpAf8BNgE4ARsB/wILAQYB/wMDAf8DAwH/
- AwMB/wFCAUQBIQH/AZ4BpgEfAf8BgQGDASoB/wFUAVcBJQH/ARQCAQEZAQsCAQENA4EB/wOMAf8DdQH/
- A3AB/wNuAf8DbgH/AzAB/wMDAf8DAwH/Aw8B/wNTAf8DZgH/A2AB/wNBAf8BFAIBARkBCwIBAQ0B3AF2
- AVIB/wHfAYEBYQH/AdQBbQFKAf8B1AFmAUAB/wHTAWYBQAH/AdIBZgFBAf8BNwEjARwB/wMDAf8DAwH/
- AQcCBQH/AZkBXQFHAf8BygFfAToB/wG9AV0BPAH/AXgBRgE2Af8BFAIBARkBCwIBAQ0BIwGSASMB/wEl
- AZsBJQH/ASUBhgElAf8BIwGDASMB/wEjAYIBIwH/ASQBgQEkAf8BEgEhARIB/wMDAf8DAwH/AQQBBQEE
- Af8BLQFdAS0B/wElAXsBJQH/AScBcgEnAf8BIgFIASIB/wEUAgEBGQELAgEBDQGzAbwBIAH/Ab0BxwEi
- Af8BpAGsASQB/wGgAagBIQH/AZ8BpwEhAf8BngGmASIB/wEoASkBFAH/AwMB/wMDAf8CBgEEAf8BcQF1
- ATIB/wGSAZkBJAH/AYgBjgEoAf8BVwFaASYB/wEUAgEBGQQAA4AB/wOWAf8DgAH/A2wB/wNoAf8DMwH/
- AwMB/wM5Af8DEQH/AzAB/wNtAf8DcAH/A10B/wNBAf8BCQIBAQoEAAHcAXUBUQH/AeEBhgFqAf8B2gF0
- AVAB/wHMAWUBQgH/AckBYwFAAf8BQgEqASIB/wMDAf8BWgE4AS0B/wEHAQYBBQH/ATcBIwEcAf8B0QFm
- AUEB/wHUAWYBQAH/AbUBXQE/Af8BdgFHATcB/wEJAgEBCgQAASMBkgEjAf8BJgGgASYB/wEkAZABJAH/
- ASYBfwEmAf8BJwF7AScB/wEWASgBFgH/AwMB/wEdATYBHQH/AQQBBQEEAf8BEgEhARIB/wEkAYEBJAH/
- ASMBgwEjAf8BKAFuASgB/wEjAUcBIwH/AQkCAQEKBAABsgG7ASAB/wHEAc4BIwH/AbABuQEhAf8BlwGe
- ASYB/wGTAZoBJwH/ATABMgEYAf8DAwH/AUEBQwEgAf8CBgEEAf8BKAEpARQB/wGdAaQBIwH/AaABqAEh
- Af8BggGHASoB/wFWAVkBJgH/AQkCAQEKBAADegH/A5sB/wOQAf8DcQH/AzMB/wMDAf8DQQH/A3IB/wMv
- Af8DQgH/A3EB/wNwAf8DXAH/A0QB/wgAAdoBbgFJAf8B4gGKAXAB/wHfAYEBZQH/AcgBbgFPAf8BQgEq
- ASIB/wMDAf8BcgFIATkB/wHYAWgBQQH/ATQBIQEbAf8BdgFKATsB/wHXAWcBQQH/AdQBZgFAAf8BsQFd
- AUAB/wF8AU0BPgH/CAABIgGNASIB/wEnAaQBJwH/ASYBnQEmAf8BLAF/ASwB/wEWASgBFgH/AwMB/wEk
- AUQBJAH/ASEBiAEhAf8BEgEgARIB/wElAUYBJQH/ASEBhwEhAf8BIwGDASMB/wEpAWsBKQH/AScBSgEn
- Af8IAAGsAbUBHwH/AcgB0gEjAf8BwAHKASIB/wGYAZ4BLQH/ATABMgEYAf8DAwH/AVMBVQEoAf8BpgGv
- AR4B/wEmAScBEwH/AVUBWAEpAf8BpQGtAR8B/wGgAagBIQH/AYEBhAErAf8BWgFcASwB/wgAATACAQFK
- A54B/wOiAf8DTwH/AwgB/wNCAf8DcQH/A20B/wNOAf8DYQH/A3AB/wNwAf8DXgH/ATACAQFKCAABMQIB
- AUoB4gGLAXEB/wHjAY8BdQH/AYQBXgFQAf8CBAEDAf8BdQFJATsB/wHWAWcBQQH/AdEBZgFBAf8BiwFZ
- AUcB/wG6AWABQgH/AdQBZgFAAf8B1AFmAUAB/wG5AV4BPwH/ATACAQFKCAABMAIBAUoBJwGkAScB/wEo
- AacBKAH/ATIBUQEyAf8DAwH/ASUBRgElAf8BIgGFASIB/wEkAYEBJAH/AS0BVQEtAf8BKgFwASoB/wEj
- AYMBIwH/ASMBgwEjAf8BKAFwASgB/wEwAgEBSggAATACAQFKAcgB0wEkAf8BzAHWASQB/wFiAWQBOQH/
- AwMB/wFVAVcBKQH/AaMBqwEfAf8BnQGkASMB/wFnAWoBMgH/AYUBiwEsAf8BoAGoASEB/wGgAagBIQH/
- AYQBigEqAf8BMAIBAUoMAAFoAiMBygOoAf8DdQH/A1kB/wOAAf8DdQH/A3QB/wNwAf8DcAH/A3AB/wNw
- Af8BYAI2AegQAAF+ASEBGAHKAeQBlAF8Af8BvQF5AWEB/wGYAWUBUwH/AdcBdQFTAf8B0AFvAU0B/wHR
- AWwBSQH/AdQBZgFAAf8B1AFmAUAB/wHUAWYBQAH/AdQBZgFAAf8BlgE1ASIB6BAAAU8BJgEJAcoBKQGr
- ASkB/wE2AXoBNgH/ATQBXQE0Af8BJgGOASYB/wEoAYMBKAH/ASYBhAEmAf8BIwGDASMB/wEjAYMBIwH/
- ASMBgwEjAf8BIwGDASMB/wFDAT0BFwHoEAABdQEyAQkBygHRAdwBJQH/AZABlgE7Af8BcAF0ATsB/wGt
- AbYBJAH/AaEBqAEnAf8BoQGpASUB/wGgAagBIQH/AaABqAEhAf8BoAGoASEB/wGgAagBIQH/AXgBTwEY
- AegUAAFrAiUByQOiAf8DmwH/A5IB/wODAf8DeAH/A3EB/wNsAf8DagH/AWECKAHbGAABfgEgARkByQHj
- AY8BdgH/AeIBiwFwAf8B4AGEAWgB/wHdAXoBWAH/AdgBbgFKAf8B1AFpAUQB/wHQAWQBPwH/AdMBYQE6
- Af8BiwEnARgB2xgAAVEBJgEIAckBKAGnASgB/wEnAaQBJwH/ASYBnwEmAf8BJAGWASQB/wEjAYsBIwH/
- ASQBhAEkAf8BJAGBASQB/wEiAYEBIgH/AUsBMQEOAdsYAAF0ATEBCAHJAcwB1wEkAf8ByAHSASQB/wHC
- AcwBIwH/AbcBwAEhAf8BqgGzASEB/wGhAaoBIgH/AZsBowEiAf8BnAGkASAB/wF1AT0BDgHbHAABMAIB
- AUoDggH/A4cB/wOMAf8DgwH/A3oB/wNqAf8BMAIBAUogAAExAgEBSgHdAXkBVwH/Ad4BfgFdAf8B3wGB
- AWMB/wHdAXoBWAH/AdoBbgFJAf8B0gFhATsB/wEwAgEBSiAAATACAQFKASQBlQEkAf8BJQGZASUB/wEl
- AZwBJQH/ASQBlgEkAf8BIgGNASIB/wEiAYEBIgH/ATACAQFKIAABMAIBAUoBtgG/ASAB/wG6AcQBIQH/
- Ab4ByAEiAf8BtwHAASEB/wGsAbUBHwH/AZsBowEhAf8BMAIBAUosAAELAgEBDQELAgEBDTgAAQsCAQEN
- AQsCAQENOAABCwIBAQ0BCwIBAQ04AAELAgEBDQELAgEBDRwAAUIBTQE+BwABPgMAASgDAAFAAwABYAMA
- AQEBAAEBBgABAxYAA/+BAAH8AR8B/AEfAfwBHwH8AR8B8AEHAfABBwHwAQcB8AEHAeABAwHgAQMB4AED
- AeABAwHAAQEBwAEBAcABAQHAAQEBgAEBAYABAQGAAQEBgAEBAYABAAGAAQABgAEAAYABAAGAAQABgAEA
- AYABAAGAEQABgAEAAYABAAGAAQABgAEAAYABAQGAAQEBgAEBAYABAQGAAQEBgAEBAYABAQGAAQEBwAED
- AcABAwHAAQMBwAEDAeABBwHgAQcB4AEHAeABBwHwAQ8B8AEPAfABDwHwAQ8B/gF/Af4BfwH+AX8B/gF/
- AfwBHwH8AR8B/AEfAfwBHwHwAQcB8AEHAfABBwHwAQcB4AEDAeABAwHgAQMB4AEDAcABAQHAAQEBwAEB
- AcABAQGAAQEBgAEBAYABAQGAAQEBgAEAAYABAAGAAQABgAEAAYABAAGAAQABgAEAAYARAAGAAQABgAEA
- AYABAAGgAQABgAEBAYABAQGAAQEBsAEBAYABAQGAAQEBgAEBAbABAQHAAQMBwAEDAcABAwHQAQMB4AEH
- AeABBwHgAQcB/gEHAfABDwHwAQ8B8AEPAfABDwH+AX8B/gF/Af4BfwH+AX8B/AEfAfwBHwH8AR8B/AEf
- AfABBwHwAQcB8AEHAfABBwHgAQMB4AEDAeABAwHgAQMBwAEBAcABAQHAAQEBwAEBAYABAQGAAQEBgAEB
- AYABAQGAAQABgAEAAYABAAGAAQABgAEAAYABAAGAAQABgBEAAYABAAGAAQABgAEAAYABAAGAAQEBgAEB
- AYABAQGAAQEBgAEBAYABAQGAAQEBgAEBAcABAwHAAQMBwAEDAcABAwHgAQcB4AEHAeABBwHgAQcB8AEP
- AfABDwHwAQ8B8AEPAf4BfwH+AX8B/gF/Af4BfwH8AR8B/AEfAfwBHwH8AR8B8AEHAfABBwHwAQcB8AEH
- AeABAwHgAQMB4AEDAeABAwHAAQEBwAEBAcABAQHAAQEBgAEBAYABAQGAAQEBgAEBAYABAAGAAQABgAEA
- AYABAAGAAQABgAEAAYABAAGAEQABgAEAAYABAAGAAQABgAEAAYABAQGAAQEBgAEBAYABAQGAAQEBgAEB
- AYABAQGAAQEBwAEDAcABAwHAAQMBwAEDAeABBwHgAQcB4AEHAeABBwHwAQ8B8AEPAfABDwHwAQ8B/gF/
- Af4BfwH+AX8B/gF/AfwBHwH8AR8B/AEfAfwBHwHwAQcB8AEHAfABBwHwAQcB4AEDAeABAwHgAQMB4AED
- AcABAQHAAQEBwAEBAcABAQGAAQEBgAEBAYABAQGAAQEBgAEAAYABAAGAAQABgAEAAYABAAGAAQABgAEA
- AYARAAGAAQABgAEAAYABAAGAAQABgAEBAYABAQGAAQEBgAEBAYABAQGAAQEBgAEBAYABAQHAAQMBwAED
- AcABAwHAAQMB4AEHAeABBwHgAQcB4AEHAfABDwHwAQ8B8AEPAfABDwH+AX8B/gF/Af4BfwH+AX8L
+ AQIDASwAAQQCAQEEARQCAQEZARQCAQEZARQCAQEZAQIDASQAATACAQFKAToBRgGCAf8BKgE1AXMB/wEl
+ AS8BagH/ASQBLgFnAf8BIgEsAWEB/wEkASoBUAH/ATACAQFKARQCAQEZHAABMAIBAUoBkgFSAZIB/wGB
+ AUEBgQH/AXwBOwF8Af8BegE5AXoB/wF0ATgBdAH/AWQBOAFkAf8BMAIBAUoBFAIBARkcAAEwAgEBSgEE
+ ApAB/wEEAnkB/wEEAm4B/wEEAmsB/wEEAmUB/wEEAlgB/wEwAgEBSgEUAgEBGRwAATACAQFKA6UB/wOR
+ Af8DhwH/A4UB/wOBAf8DeQH/ATACAQFKARQCAQEZGAABVgEoAVEB5wE7AUwBpgH/AToBSwGnAf8BOQFK
+ AaUB/wE4AUgBowH/ATYBRgGgAf8BNAFDAZkB/wEuATsBgwH/ASQBLgFqAf8BTwEKARMB2wEUAgEBGRQA
+ AYgBMQFRAecBsAFZAbAB/wGxAVcBsQH/AbABVQGwAf8BrwFTAa8B/wGsAVEBrAH/AaYBTgGmAf8BkwFG
+ AZMB/wF8AToBfAH/AV8BEQEZAdsBFAIBARkUAAE5AlMB5wEEAq0B/wEEAq0B/wEEAqsB/wEEAqgB/wEE
+ AqQB/wEEAp0B/wEEAogB/wEEAm0B/wFHAhYB2wEUAgEBGRQAAZACWgHnA7sB/wO7Af8DuAH/A7YB/wO1
+ Af8DrwH/A54B/wOHAf8BZgIiAdsBFAIBARkQAAFYARoBOgHcATwBUwHTAf8BPQFWAeEB/wE+AVgB6QH/
+ AT4BWAHnAf8BPQFXAeYB/wE9AVcB5gH/AToBVAHhAf8BOQFRAdUB/wE6AUoBpgH/ASkBNAF2Af8BTwEK
+ ARMB2wEUAgEBGQwAAX4BJAE6AdwByQFtAckB/wHTAXEB0wH/AdkBcwHZAf8B2AF0AdgB/wHXAXIB1wH/
+ AdcBcgHXAf8B0gFuAdIB/wHKAWsBygH/AbABVwGwAf8BggFAAYIB/wFfAQ4BGQHbARQCAQEZDAABRgI/
+ AdwBBALRAf8BBALcAf8BBALkAf8BBALiAf8BBALhAf8BBALhAf8BBALaAf8BBALQAf8BBAKsAf8BBAJ6
+ Af8BRwIWAdsBFAIBARkMAAGEAj8B3APTAf8D2gH/A98B/wPeAf8D3AH/A9wB/wPZAf8D0gH/A7oB/wOS
+ Af8BZgIiAdsBFAIBARkIAAEwAgEBSgE+AVUB1wH/AT4BWAHoAf8BRgFgAfAB/wFGAWAB8AH/AUYBYAHw
+ Af8BRgFgAfAB/wE+AVkB6wH/AUABWgHvAf8BPQFWAd4B/wE2AUUBmAH/ATcBRwGfAf8BKAEzAXQB/wEw
+ AgEBSggAATACAQFKAcsBbwHLAf8B2AFzAdgB/wHgAX0B4AH/AeABfQHgAf8B4AF9AeAB/wHgAX0B4AH/
+ AdsBdQHbAf8B3gF3Ad4B/wHRAXAB0QH/AaUBUAGlAf8BqwFSAasB/wGBAT8BgQH/ATACAQFKCAABMAIB
+ AUoBBALVAf8BBALjAf8BBALwAf8BBALwAf8BBALwAf8BBALwAf8BBALmAf8BBALpAf8BBALaAf8BBAKe
+ Af8BBAKkAf8BBAJ4Af8BMAIBAUoIAAEwAgEBSgPVAf8D3wH/A+YB/wPmAf8D5gH/A+YB/wPgAf8D4QH/
+ A9kB/wOwAf8DtQH/A5AB/wEwAgEBSggAAUMBXAHlAf8BSQFiAesB/wFCAV0B9AH/AUYBYAHwAf8BRgFg
+ AfAB/wFGAWAB7wH/AUYBXgHlAf8BQwFUAa4B/wEqATQBawH/AREBFAEmAf8DBAH/ATgBRwGdAf8BNAFD
+ AZkB/wEoATABYAH/AQIDAQQAAdcBeAHXAf8B3AF+AdwB/wHiAXsB4gH/AeABfQHgAf8B4AF9AeAB/wHf
+ AX0B3wH/AdgBegHYAf8BsgFmAbIB/wF8AUABfAH/AT8BIgE/Af8DBAH/AaoBUgGqAf8BpgFOAaYB/wFz
+ AT0BcwH/AQIDAQQAAQQC5QH/AQQC7gH/AQQC8AH/AQQC8AH/AQQC8AH/AQQC7wH/AQQC5wH/AQQCuQH/
+ AQQCcgH/AQQCKQH/AwQB/wEEAqMB/wEEAp0B/wEEAmgB/wECAwEEAAPfAf8D5AH/A+YB/wPmAf8D5gH/
+ A+UB/wPgAf8DwwH/A4sB/wNHAf8DBAH/A7QB/wOvAf8DggH/AQIDAQQAAUUBYAH0Af8BWgFyAfUB/wFL
+ AWQB8AH/AUYBYAHwAf8BQAFTAcAB/wEvAToBeQH/ARUBGgE0Af8DBQH/AwQB/wMEAf8BDQEPAR0B/wE8
+ AVUB3AH/ATwBTwG4Af8BLAE4AX8B/wEUAgEBGQQAAeMBfQHjAf8B5gGLAeYB/wHgAYEB4AH/AeABfQHg
+ Af8BuwFrAbsB/wGGAUYBhgH/AUsBJwFLAf8BHwEVAR8B/wMEAf8DBAH/ATcBHQE3Af8BzwFvAc8B/wG4
+ AWIBuAH/AYsBQwGLAf8BFAIBARkEAAEEAvIB/wEIA/8BBAL0Af8BBALwAf8BBALFAf8BBAKBAf8BBAI3
+ Af8BBAIFAf8DBAH/AwQB/wEEAh8B/wEEAtgB/wEEArwB/wEEAoEB/wEUAgEBGQQAA+cB/wPyAf8D5wH/
+ A+YB/wPJAf8DmAH/A1kB/wMLAf8DBAH/AwQB/wM7Af8D1gH/A8MB/wOZAf8BFAIBARkBCwIBAQ0BVgFu
+ AfUB/wFpAX8B9gH/AVIBagHvAf8BRgFgAfAB/wE3AUUBjAH/ASUBLQFbAf8BCQEKARIB/wMEAf8DBAH/
+ AwQB/wEsATYBbwH/AUABWwHxAf8BOAFQAdQB/wEvAT4BigH/ARQCAQEZAQsCAQENAeYBhwHmAf8B6QGX
+ AekB/wHhAYMB4QH/AeABfQHgAf8BmgFQAZoB/wFvAToBbwH/AS0BGAEtAf8DBAH/AwQB/wMEAf8BgQFC
+ AYEB/wHfAXgB3wH/AckBagHJAf8BmQFJAZkB/wEUAgEBGQELAgEBDQEEA/8BFAP/AQQC+QH/AQQC8AH/
+ AQQClgH/AQQCYgH/AQQCEwH/AwQB/wMEAf8DBAH/AQQCdwH/AQQC7AH/AQQCzwH/AQQCjgH/ARQCAQEZ
+ AQsCAQENA/AB/wP5Af8D6wH/A+YB/wOqAf8DgAH/AykB/wMEAf8DBAH/AwQB/wOQAf8D4gH/A9AB/wOk
+ Af8BFAIBARkBCwIBAQ0BXwF2AfYB/wFyAYIB9wH/AVMBawHuAf8BRgFgAfAB/wFGAWAB7wH/AUcBYQHu
+ Af8BGwEhAUQB/wMEAf8DBAH/AgYBCQH/AUEBVAG7Af8BPgFYAecB/wE7AVQB3gH/ATABPwGQAf8BFAIB
+ ARkBCwIBAQ0B5wGOAecB/wHrAZ8B6wH/AeABgwHgAf8B4AF9AeAB/wHfAX0B3wH/Ad4BfQHeAf8BWQEu
+ AVkB/wMEAf8DBAH/ASQBFAEkAf8BuQFqAbkB/wHYAXQB2AH/AdABbwHQAf8BngFKAZ4B/wEUAgEBGQEL
+ AgEBDQEMA/8BGwP/AQQC+QH/AQQC8AH/AQQC7wH/AQQC7wH/AQQCSAH/AwQB/wMEAf8BBAIJAf8BBALC
+ Af8BBALiAf8BBALZAf8BBAKTAf8BFAIBARkBCwIBAQ0D9AH/A/0B/wPrAf8D5gH/A+UB/wPlAf8DawH/
+ AwQB/wMEAf8DFAH/A8gB/wPeAf8D2AH/A6gB/wEUAgEBGQQAAV0BdAH1Af8BfQGMAfcB/wFcAXMB9AH/
+ AUcBYAHnAf8BRQFeAeQB/wEgASgBUQH/AwQB/wErATUBbgH/AgYBCgH/ARsBIQFEAf8BRwFhAe0B/wFG
+ AWAB8AH/ATsBUwHYAf8BMgFAAY0B/wEJAgEBCgQAAecBjQHnAf8B7QGpAe0B/wHmAYwB5gH/AdoBfAHa
+ Af8B1wF5AdcB/wFlATUBZQH/AScBCwEnAf8BgAFBAYAB/wEmARQBJgH/AVkBLgFZAf8B3QF8Ad0B/wHg
+ AX0B4AH/AcwBbQHMAf8BnAFLAZwB/wEJAgEBCgQAAQoD/wElA/8BCQP/AQQC6gH/AQQC5gH/AQQCVwH/
+ AwQB/wEEAnYB/wEEAgoB/wEEAkgB/wEEAu4B/wEEAvAB/wEEAtQB/wEEApMB/wEJAgEBCgQAA/MB/wQA
+ A/MB/wPiAf8D4AH/A3gB/wMEAf8DjgH/AxcB/wNrAf8D5AH/A+YB/wPUAf8DqAH/AQkCAQEKBAABUwFs
+ AfUB/wGBAZIB+AH/AXYBhgH3Af8BWAFuAeIB/wEgASgBUQH/AwQB/wE2AUMBhwH/AUcBYgH0Af8BGgEg
+ AUAB/wE3AUUBjAH/AUgBYgHzAf8BRgFgAfAB/wE7AVMB1AH/AToBSAGTAf8IAAHlAYQB5QH/Ae4BrwHu
+ Af8B6wGjAesB/wHYAYQB2AH/AWUBNQFlAf8DBAH/AZYBTwGWAf8B4wF/AeMB/wFWAS0BVgH/AZoBUAGa
+ Af8B4gF/AeIB/wHgAX0B4AH/AckBbQHJAf8BoQFUAaEB/wgAAQQC/gH/ASsD/wEfA/8BBALzAf8BBAJX
+ Af8DBAH/AQQCkQH/AQQC9AH/AQQCRQH/AQQClgH/AQQC9AH/AQQC8AH/AQQC0QH/AQQCngH/CAAD7gH/
+ CAAD5wH/A3gB/wMEAf8DpgH/A+gB/wNmAf8DqgH/A+cB/wPmAf8D0wH/A68B/wgAATACAQFKAYIBkwH4
+ Af8BhwGYAfgB/wFQAVwBnwH/AwUB/wE3AUQBiwH/AUcBYQHyAf8BRwFhAe0B/wFDAVMBqgH/AUMBWgHY
+ Af8BRgFgAfAB/wFGAWAB8AH/ATwBVAHaAf8BMAIBAUoIAAEwAgEBSgHuAbAB7gH/Ae8BtQHvAf8BpwFu
+ AacB/wEfARUBHwH/AZkBUAGZAf8B4QF+AeEB/wHdAXwB3QH/AbABYwGwAf8BzQF0Ac0B/wHgAX0B4AH/
+ AeABfQHgAf8BzQFvAc0B/wEwAgEBSggAATACAQFKASwD/wEwA/8BBAK4Af8BBAIFAf8BBAKVAf8BBALy
+ Af8BBALuAf8BBAK1Af8BBALaAf8BBALwAf8BBALwAf8BBALXAf8BMAIBAUoIAAEwAgEBSggAA8IB/wML
+ Af8DqQH/A+cB/wPkAf8DwQH/A9kB/wPmAf8D5gH/A9UB/wEwAgEBSgwAAV4BFQEoAcoBjwGfAfkB/wFu
+ AX4B1QH/AVMBYgG2Af8BXwF2AfEB/wFWAW0B6gH/AVIBaQHsAf8BRgFgAfAB/wFGAWAB8AH/AUYBYAHw
+ Af8BRgFgAfAB/wFTASoBZwHoEAABcwEYASYBygHxAbwB8QH/AdEBkwHRAf8BtgF6AbYB/wHkAY4B5AH/
+ Ad4BhQHeAf8B3gGBAd4B/wHgAX0B4AH/AeABfQHgAf8B4AF9AeAB/wHgAX0B4AH/AZcBNQFgAegQAAFS
+ AigBygE4A/8BBAL5Af8BBALMAf8BCQP/AQQC+AH/AQQC9gH/AQQC8AH/AQQC8AH/AQQC8AH/AQQC8AH/
+ ATQCZwHoEAABdwIoAcoEAAPrAf8DzwH/A/MB/wPrAf8D6gH/A+YB/wPmAf8D5gH/A+YB/wGZAmcB6BQA
+ AWABFAEmAckBiAGZAfgB/wGBAZMB+AH/AXoBiQH3Af8BZgF8AfYB/wFTAWwB8wH/AUwBZQHvAf8BRAFe
+ Ae0B/wE/AVoB8AH/AVcBGQFDAdsYAAF0ARoBJQHJAe8BtgHvAf8B7gGvAe4B/wHsAaYB7AH/AegBlQHo
+ Af8B5AGEAeQB/wHgAYEB4AH/Ad0BegHdAf8B3gF2Ad4B/wGFASIBQQHbGAABVAImAckBMQP/ASsD/wEj
+ A/8BEgP/AQQC/AH/AQQC9AH/AQQC7AH/AQQC6QH/AUcCQgHbKAAD9wH/A+0B/wPnAf8D4gH/A+EB/wGG
+ AkIB2xwAATACAQFKAWQBegH2Af8BbAGBAfYB/wFzAYQB9wH/AWYBfAH2Af8BUwFsAfUB/wFAAVoB7wH/
+ ATACAQFKIAABMAIBAUoB6AGTAegB/wHqAZoB6gH/AesBoAHrAf8B6AGVAegB/wHlAYQB5QH/Ad4BdwHe
+ Af8BMAIBAUogAAEwAgEBSgEQA/8BFwP/AR0D/wESA/8BBAL+Af8BBALpAf8BMAIBAUogAAEwAgEBSgP3
+ Af8D+QH/A/0B/wP3Af8D7gH/A+EB/wEwAgEBSiwAAQsCAQENAQsCAQENOAABCwIBAQ0BCwIBAQ04AAEL
+ AgEBDQELAgEBDTgAAQsCAQENAQsCAQENNAABBAIBAQQBFAIBARkBFAIBARkBFAIBARkBAgMBLAABBAIB
+ AQQBFAIBARkBFAIBARkBFAIBARkBAgMBLAABBAIBAQQBFAIBARkBFAIBARkBFAIBARkBAgMBLAABBAIB
+ AQQBFAIBARkBFAIBARkBFAIBARkBAgMBJAABMAIBAUoDZAH/A1kB/wNUAf8DUwH/A1EB/wNMAf8BMAIB
+ AUoBFAIBARkcAAEwAgEBSgGRAW8BHQH/AX0BXAEVAf8BcgFTARIB/wFvAVEBEgH/AWkBTAERAf8BWAFC
+ ARMB/wEwAgEBSgEUAgEBGRwAATACAQFKATcBYQE3Af8BKgFSASoB/wElAUwBJQH/ASQBSgEkAf8BIwFF
+ ASMB/wEiAToBIgH/ATACAQFKARQCAQEZHAABMAIBAUoCngFNAf8ClgEoAf8CkwEaAf8CkgEXAf8CjQEU
+ Af8CegEXAf8BMAIBAUoBFAIBARkYAAFsAjUB5wNxAf8DcQH/A28B/wNuAf8DbQH/A2kB/wNgAf8DVAH/
+ AVsCFgHbARQCAQEZFAABkAFCAQ8B5wG0AYIBHQH/AbQBgQEcAf8BsgGBARwB/wGvAYEBGwH/AawBgAEa
+ Af8BpAF6ARkB/wGOAWsBFwH/AXIBUgESAf8BXAERAQcB2wEUAgEBGRQAAVQBOAEgAecBPAF5ATwB/wE7
+ AXoBOwH/AToBeQE6Af8BOQF3ATkB/wE3AXUBNwH/ATUBbwE1Af8BLwFhAS8B/wElAUsBJQH/AU8BDgEJ
+ AdsBFAIBARkUAAGIAVMBNwHnArIBYwH/ArQBYQH/ArIBXgH/ArEBWgH/ArEBVgH/Aq0BTwH/AqIBOQH/
+ ApMBGAH/AWYBHQEIAdsBFAIBARkQAAFpAikB3AOBAf8DhAH/A4kB/wOIAf8DhgH/A4YB/wODAf8DgQH/
+ A3AB/wNaAf8BWwIWAdsBFAIBARkMAAGEAS8BDAHcAdkBnQEjAf8B5QGlASQB/wHtAawBJQH/AesBqgEl
+ Af8B6gGoASQB/wHqAagBJAH/AeMBpAEiAf8B2QGcASEB/wGzAYEBHAH/AX8BXQEUAf8BXAERAQcB2wEU
+ AgEBGQwAAVgBKgEUAdwBPQGYAT0B/wE4AagBOAH/ATUBswE1Af8BNgGwATYB/wE2Aa4BNgH/ATYBrgE2
+ Af8BNwGmATcB/wE7AZkBOwH/ATsBeQE7Af8BKQFUASkB/wFPAQ4BCQHbARQCAQEZDAABfgE6ASkB3ALL
+ AX4B/wLUAYEB/wLaAYMB/wLYAYIB/wLXAYIB/wLXAYIB/wLUAYEB/wLMAXoB/wK0AV8B/wKZAScB/wFm
+ AR0BCAHbARQCAQEZCAABMAIBAUoDgQH/A4kB/wOQAf8DkAH/A5AB/wOQAf8DigH/A4wB/wODAf8DagH/
+ A20B/wNYAf8BMAIBAUoIAAEwAgEBSgHcAaABJAH/AewBqgElAf8B9gGzASoB/wH2AbMBKgH/AfYBswEq
+ Af8B9gGzASoB/wHvAa0BJQH/AfIBsAEmAf8B4gGkASQB/wGkAXsBGwH/AasBfwEbAf8BfQFcARQB/wEw
+ AgEBSggAATACAQFKATwBnQE8Af8BNQGxATUB/wEzAcABMwH/ATMBwAEzAf8BMwHAATMB/wEzAcABMwH/
+ ATQBtgE0Af8BMgG7ATIB/wE5AaQBOQH/ATcBbwE3Af8BOAF0ATgB/wEoAVMBKAH/ATACAQFKCAABMAIB
+ AUoCzQGBAf8C2AGCAf8C3wGNAf8C3wGNAf8C3wGNAf8C3wGNAf8C2wGDAf8C3QGHAf8C0gGBAf8CrQFT
+ Af8CsAFWAf8CmAEjAf8BMAIBAUoIAAOJAf8DjgH/A5AB/wOQAf8DkAH/A48B/wOLAf8DdgH/A1YB/wMz
+ Af8DBAH/A2wB/wNpAf8DUgH/AQIDAQQAAesBrAEoAf8B8gGyASsB/wH4AbQBKAH/AfYBswEqAf8B9gGz
+ ASoB/wH1AbIBKgH/AewBrAEpAf8BvgGKASEB/wF0AVUBFQH/ASoBIAEKAf8DBAH/AaoBfwEbAf8BpAF6
+ ARkB/wFpAU8BFAH/AQIDAQQAATgBsQE4Af8BNgG7ATYB/wEvAcQBLwH/ATMBwAEzAf8BMwHAATMB/wEz
+ Ab8BMwH/ATkBsgE5Af8BQgF/AUIB/wEpAU0BKQH/ARABHAEQAf8DBAH/ATgBcwE4Af8BNQFvATUB/wEm
+ AUUBJgH/AQIDAQQAAtgBhwH/AtwBjwH/AuEBiwH/At8BjQH/At8BjQH/At4BjQH/AtgBigH/ArUBcwH/
+ Ao8BJQH/Ak0BBAH/AwQB/wKuAVYB/wKtAU8B/wKIAR0B/wECAwEEAAORAf8DnAH/A5EB/wOQAf8DewH/
+ A10B/wM8Af8DCgH/AwQB/wMEAf8DLAH/A4EB/wN3Af8DXQH/ARQCAQEZBAAB+QG2ASkC/wG/ATcB/wH4
+ AbcBLAH/AfYBswEqAf8BygGTASMB/wGBAWEBGAH/ATgBKgEMAf8CBQEEAf8DBAH/AwQB/wEgARgBCAH/
+ AeABowEjAf8BxAGOAR4B/wGEAWMBFgH/ARQCAQEZBAABMAHGATAB/wE2AdEBNgH/ATQBwwE0Af8BMwHA
+ ATMB/wFCAYcBQgH/AS4BVwEuAf8BFQEmARUB/wMEAf8DBAH/AwQB/wENARYBDQH/AToBoQE6Af8BPgGB
+ AT4B/wEsAVoBLAH/ARQCAQEZBAAC4gGNAf8C5QGhAf8C3wGSAf8C3wGNAf8CvwF6Af8CmAE0Af8CXgEE
+ Af8CHQEEAf8DBAH/AwQB/wJEAQQB/wLRAYEB/wK7AXAB/wKeATEB/wEUAgEBGQELAgEBDQOaAf8DpgH/
+ A5UB/wOQAf8DZwH/A08B/wMgAf8DBAH/AwQB/wMEAf8DWAH/A40B/wOBAf8DYwH/ARQCAQEZAQsCAQEN
+ Af8BvgEzAv8BxQFGAf8B+gG6ATAB/wH2AbMBKgH/AZkBcwEcAf8BZAFJARMB/wETAQ8BBgH/AwQB/wME
+ Af8DBAH/AXkBWQEWAf8B9AGxAScB/wHYAZsBIAH/AZUBbwEXAf8BFAIBARkBCwIBAQ0BMwHQATMB/wFA
+ AdMBQAH/ATYBxgE2Af8BMwHAATMB/wE2AWcBNgH/ASQBQgEkAf8BCQEOAQkB/wMEAf8DBAH/AwQB/wEr
+ AVABKwH/ATEBvgExAf8BOwGXATsB/wExAWUBMQH/ARQCAQEZAQsCAQENAuUBnAH/AugBrQH/AuEBmAH/
+ At8BjQH/AqQBTQH/AoUBFwH/AjgBBAH/AwQB/wMEAf8DBAH/ApIBKgH/At4BiAH/AssBegH/AqUBPwH/
+ ARQCAQEZAQsCAQENA58B/wOqAf8DlQH/A5AB/wOPAf8DjwH/A0UB/wMEAf8DBAH/AxIB/wN6Af8DiAH/
+ A4IB/wNlAf8BFAIBARkBCwIBAQ0B/wHBATwC/wHIAU4B/wH5AbkBMQH/AfYBswEqAf8B9QGyASoB/wH0
+ AbIBKgH/AUoBNwEPAf8DBAH/AwQB/wEJAQgBBAH/AccBkQEjAf8B6wGqASUB/wHiAaMBIwH/AZoBcwEY
+ Af8BFAIBARkBCwIBAQ0BOQHSATkB/wFFAdUBRQH/ATcBxQE3Af8BMwHAATMB/wEzAb8BMwH/ATQBvgE0
+ Af8BGwExARsB/wMEAf8DBAH/AQYBBwEGAf8BQgGEAUIB/wE2AbABNgH/ATkBowE5Af8BMgFpATIB/wEU
+ AgEBGQELAgEBDQLmAaQB/wLrAbQB/wLhAZgB/wLfAY0B/wLeAY0B/wLeAY0B/wJwAQoB/wMEAf8DBAH/
+ Ai0BBAH/Ar0BeQH/AtgBggH/AtEBgQH/AqgBRAH/ARQCAQEZBAADngH/A7EB/wOeAf8DjQH/A4oB/wNM
+ Af8DBAH/A1gB/wMUAf8DRQH/A44B/wOQAf8DgQH/A2UB/wEJAgEBCgQAAf8BwAE6Av8BzAFZAv8BwQE5
+ Af8B7wGvASoB/wHrAasBKAH/AVkBQQERAf8DBAH/AXgBWAEWAf8BCgEIAQQB/wFKATcBDwH/AfMBsQEq
+ Af8B9gGzASoB/wHcAZ8BIgH/AZkBcwEZAf8BCQIBAQoEAAE3AdIBNwH/AU0B1gFNAf8BNwHQATcB/wE4
+ AbYBOAH/ATkBsAE5Af8BIAE7ASAB/wMEAf8BKgFPASoB/wEGAQgBBgH/ARsBMQEbAf8BNQG9ATUB/wEz
+ AcABMwH/ATsBnAE7Af8BMwFoATMB/wEJAgEBCgQAAuYBogH/Au0BvQH/AuUBogH/AtsBiwH/AtgBiAH/
+ An4BEQH/Ak0BBAH/ApIBKAH/AjEBBAH/AnABCgH/At0BjQH/At8BjQH/As0BfgH/AqcBRgH/AQkCAQEK
+ BAADmQH/A7YB/wOtAf8DkQH/A0wB/wMEAf8DZQH/A5MB/wNDAf8DZwH/A5EB/wOQAf8DgQH/A2kB/wgA
+ Af8BvAExAv8BzgFgAv8ByQFSAf8B8QG0ATMB/wFZAUEBEQH/AwQB/wGUAXABGwH/AfoBtgErAf8BRgE0
+ AQ4B/wGZAXMBHAH/AfkBtQErAf8B9gGzASoB/wHZAZ0BIgH/AaEBegEdAf8IAAEyAc8BMgH/AVIB1wFS
+ Af8BSAHVAUgB/wFAAbYBQAH/ASABOwEgAf8DBAH/ATUBZAE1Af8BMAHHATAB/wEaAS8BGgH/ATYBZwE2
+ Af8BMQHGATEB/wEzAcABMwH/ATwBmQE8Af8BOQFtATkB/wgAAuQBmQH/Au4BwgH/AuwBuAH/AtoBmAH/
+ An4BEQH/AwQB/wKhAUkB/wLiAZAB/wJsAQgB/wKkAU0B/wLhAZAB/wLfAY0B/wLMAX4B/wKoAVQB/wgA
+ ATACAQFKA7gB/wO7Af8DdQH/AwoB/wNmAf8DkQH/A44B/wN1Af8DgwH/A5AB/wOQAf8DgQH/ATACAQFK
+ CAABMAIBAUoB/wHOAWEC/wHQAWYB/wG1AYkBKAH/AgUBBAH/AZgBcwEcAf8B+AG0ASoB/wHzAbEBKgH/
+ AboBhwEhAf8B3wGiAScB/wH2AbMBKgH/AfYBswEqAf8B3wGhASMB/wEwAgEBSggAATACAQFKAVMB2AFT
+ Af8BVgHYAVYB/wFJAXcBSQH/AwQB/wE2AWcBNgH/ATIBxAEyAf8BNQG9ATUB/wFBAXwBQQH/AT0BoAE9
+ Af8BMwHAATMB/wEzAcABMwH/ATsBnwE7Af8BMAIBAUoIAAEwAgEBSgLvAcQB/wLwAcgB/wKuAXoB/wId
+ AQQB/wKkAU0B/wLhAY8B/wLdAY0B/wK0AXAB/wLQAYIB/wLfAY0B/wLfAY0B/wLPAYEB/wEwAgEBSgwA
+ AWoCGgHKA8AB/wOVAf8DgAH/A54B/wOVAf8DlAH/A5AB/wOQAf8DkAH/A5AB/wFyAj0B6BAAAXcBIQEL
+ AcoB/wHTAW8B/wHtAbgBPQH/AccBmAEuAf8B/gHAAToB/wH3AbkBMgH/AfcBtwEwAf8B9gGzASoB/wH2
+ AbMBKgH/AfYBswEqAf8B9gGzASoB/wGeAU4BEAHoEAABWgEjAQsBygFcAdoBXAH/AU8BrgFPAf8BTAGE
+ AUwB/wE7Ac0BOwH/AToBwQE6Af8BOAHBATgB/wEzAcABMwH/ATMBwAEzAf8BMwHAATMB/wEzAcABMwH/
+ AU8BSgEaAegQAAFzASYBHQHKAvEBzwH/AtYBpQH/ArwBhQH/AuQBpAH/At4BmQH/At8BlgH/At8BjQH/
+ At8BjQH/At8BjQH/At8BjQH/AZcBYQE9AegUAAFrAhwByQO7Af8DtgH/A64B/wOjAf8DlwH/A5EB/wON
+ Af8DjAH/AWsCKAHbGAABdAEgAQ4ByQH/AdABZwL/Ac0BYAL/AcsBVgL/AcMBQwH/Af0BuwExAf8B9wG3
+ AS0B/wHyAbEBKAH/AfIBrwEmAf8BiQEzAQoB2xgAAVsBIQELAckBVwHZAVcB/wFSAdgBUgH/AUsB1gFL
+ Af8BPgHTAT4B/wE0AcwBNAH/ATUBwgE1Af8BNAG7ATQB/wExAbsBMQH/AVcBMwERAdsYAAF0ASUBHAHJ
+ AvAByAH/Au8BwwH/Au0BuwH/AugBqgH/AuMBmQH/At8BkgH/At0BigH/At0BhwH/AYUBQQEoAdscAAEw
+ AgEBSgOiAf8DpgH/A6oB/wOjAf8DmQH/A4wB/wEwAgEBSiAAATACAQFKAf8BwwFBAv8BxgFJAv8ByQFQ
+ Av8BwgFDAv8BvQExAf8B8gGvASYB/wEwAgEBSiAAATACAQFKATwB0wE8Af8BQgHUAUIB/wFGAdUBRgH/
+ AT4B0wE+Af8BMgHPATIB/wEyAbsBMgH/ATACAQFKIAABMAIBAUoC5wGoAf8C6gGwAf8C6wG1Af8C6AGq
+ Af8C5AGZAf8C3QGHAf8BMAIBAUosAAELAgEBDQELAgEBDTgAAQsCAQENAQsCAQENOAABCwIBAQ0BCwIB
+ AQ04AAELAgEBDQELAgEBDTQAAQQCAQEEARQCAQEZARQCAQEZARQCAQEZAQIDASwAAQQCAQEEARQCAQEZ
+ ARQCAQEZARQCAQEZAQIDASwAAQQCAQEEARQCAQEZARQCAQEZARQCAQEZAQIDASwAAQQCAQEEARQCAQEZ
+ ARQCAQEZARQCAQEZAQIDASQAATACAQFKAiwBVAH/AiIBRwH/Ah4BQgH/Ah0BQAH/AhwBPQH/AhwBMgH/
+ ATACAQFKARQCAQEZHAABMAIBAUoBfAEEAVcB/wFlAQQBSAH/AVsBBAFBAf8BWQEEAT8B/wFUAQQBPAH/
+ AUoBBAE1Af8BMAIBAUoBFAIBARkcAAEwAgEBSgEjAUUBUgH/ARoBOgFHAf8BFgE1AUIB/wEWATQBQAH/
+ ARUBMQE8Af8BFgEqATEB/wEwAgEBSgEUAgEBGRwAATACAQFKA4UB/wN3Af8DbwH/A20B/wNpAf8DYAH/
+ ATACAQFKARQCAQEZGAABTgEYATEB5wIvAWkB/wIuAWkB/wIuAWgB/wItAWcB/wIsAWQB/wIqAWAB/wIl
+ AVMB/wIdAUIB/wFMAQkBDgHbARQCAQEZFAABfAEEATIB5wGPAQQBaAH/AY8BBAFoAf8BjQEEAWcB/wGL
+ AQQBZQH/AYgBBAFjAf8BggEEAV8B/wF1AQQBUgH/AVsBBAFAAf8BVwEEAQ4B2wEUAgEBGRQAAUoBKAEx
+ AecBJAFUAWgB/wEiAVUBaQH/ASIBUwFoAf8BIQFSAWYB/wEgAVEBZAH/AR8BTQFgAf8BHAFDAVMB/wEW
+ ATUBQgH/AUsBCgEOAdsBFAIBARkUAAF/AksB5wOXAf8DlwH/A5UB/wOTAf8DkgH/A40B/wOBAf8DbwH/
+ AV0CGAHbARQCAQEZEAABUwEPASgB3AIuAYQB/wIpAZEB/wImAZsB/wInAZkB/wInAZgB/wInAZgB/wIp
+ AZAB/wItAYQB/wIuAWkB/wIhAUkB/wFLAQgBDgHbARQCAQEZDAABeAEEASQB3AGtAQQBfQH/AbYBBAGB
+ Af8BvAEEAYMB/wG7AQQBgwH/AboBBAGCAf8BugEEAYIB/wG0AQQBgQH/AawBBAF8Af8BjgEEAWcB/wFm
+ AQQBSAH/AVcBBAEOAdsBFAIBARkMAAFNAR8BKAHcAR4BagGFAf8BFwFzAZQB/wESAXkBnwH/ARMBeAGd
+ Af8BFAF3AZsB/wEUAXcBmwH/ARcBcgGTAf8BHAFqAYYB/wEiAVQBaQH/ARkBOwFIAf8BSwEKAQ4B2wEU
+ AgEBGQwAAXgCNQHcA6wB/wOyAf8DtgH/A7UB/wO0Af8DtAH/A7EB/wOrAf8DlgH/A3gB/wFdAhgB2wEU
+ AgEBGQgAATACAQFKAi4BhwH/AiYBmgH/AiMBqAH/AiMBqAH/AiMBqAH/AiMBqAH/AiUBngH/AiMBowH/
+ AisBjwH/AisBYAH/AiwBZAH/AiABRwH/ATACAQFKCAABMAIBAUoBsAEEAX8B/wG8AQQBgwH/AcYBBAGK
+ Af8BxgEEAYoB/wHGAQQBigH/AcYBBAGKAf8BvgEEAYUB/wHBAQQBhwH/AbQBBAGBAf8BgwEEAV8B/wGI
+ AQQBYwH/AWQBBAFHAf8BMAIBAUoIAAEwAgEBSgEdAW0BiQH/ARIBeAGeAf8BDQGBAa0B/wENAYEBrQH/
+ AQ0BgQGtAf8BDQGBAa0B/wEQAXsBowH/AQ4BfgGnAf8BGQFxAZEB/wEhAU4BYAH/ASEBUAFkAf8BGAE6
+ AUcB/wEwAgEBSggAATACAQFKA64B/wO2Af8DvQH/A70B/wO9Af8DvQH/A7cB/wO5Af8DsQH/A44B/wOS
+ Af8DdgH/ATACAQFKCAACKQGZAf8CJwGiAf8CIAGrAf8CIwGoAf8CIwGoAf8CJAGnAf8CKQGbAf8CNAFu
+ Af8CIQFCAf8CDgEZAf8DBAH/AiwBYwH/AioBYAH/Ah8BPAH/AQIDAQQAAb0BBAGEAf8BxQEEAYkB/wHG
+ AQQBigH/AcYBBAGKAf8BxgEEAYoB/wHGAQQBigH/Ab8BBAGFAf8BmQEEAW8B/wFfAQQBQwH/ASMBBAEZ
+ Af8DBAH/AYcBBAFiAf8BggEEAV8B/wFXAQQBPgH/AQIDAQQAARUBeQGdAf8BEgF/AacB/wEKAYEBsQH/
+ AQ0BgQGtAf8BDQGBAa0B/wEOAYEBqwH/ARYBegGeAf8BKAFZAW0B/wEaATYBQgH/AQsBFQEZAf8DBAH/
+ ASEBUAFjAf8BHwFNAWAB/wEYATEBOwH/AQIDAQQAA7YB/wO7Af8DvQH/A70B/wO9Af8DvAH/A7gB/wOe
+ Af8DcgH/AzcB/wMEAf8DkQH/A40B/wNrAf8BAgMBBAACIAGtAf8CIwG5Af8CJAGqAf8CIwGoAf8CNAF4
+ Af8CJQFLAf8CEQEhAf8DBAH/AwQB/wMEAf8CCwETAf8CKwGMAf8CMQFzAf8CIwFOAf8BFAIBARkEAAHI
+ AQQBjAH/AdcBBAGWAf8ByQEEAYwB/wHGAQQBigH/AaMBBAF2Af8BbAEEAU0B/wEuAQQBIQH/AQUBBAEF
+ Af8DBAH/AwQB/wEaAQQBEwH/AbMBBAGBAf8BmwEEAXAB/wFtAQQBTQH/ARQCAQEZBAABCgGBAbMB/wEK
+ AYoBvwH/AQ4BgQGvAf8BDQGBAa0B/wEmAWABeAH/AR0BPgFLAf8BDgEbASEB/wMEAf8DBAH/AwQB/wEJ
+ ARABEwH/ARoBcAGOAf8BJAFcAXMB/wEbAT8BTgH/ARQCAQEZBAADvgH/A8cB/wO+Af8DvQH/A6QB/wN9
+ Af8DRQH/AwkB/wMEAf8DBAH/Ay0B/wOvAf8DnwH/A34B/wEUAgEBGQELAgEBDQIiAbcB/wIkAcIB/wIm
+ Aa0B/wIjAagB/wIrAVkB/wIdATkB/wIHAQwB/wMEAf8DBAH/AwQB/wIiAUUB/wIiAaYB/wItAYMB/wIm
+ AVgB/wEUAgEBGQELAgEBDQHUAQQBlAH/AeEBBAGdAf8BzgEEAY8B/wHGAQQBigH/AYABBAFaAf8BUgEE
+ AToB/wEQAQQBDAH/AwQB/wMEAf8DBAH/AWMBBAFGAf8BwwEEAYgB/wGrAQQBewH/AXoBBAFWAf8BFAIB
+ ARkBCwIBAQ0BCgGIAb0B/wEKAZAByAH/AQ8BggGyAf8BDQGBAa0B/wEhAUgBWAH/ARcBLwE5Af8BBgEK
+ AQwB/wMEAf8DBAH/AwQB/wEbATgBRAH/AQwBgAGrAf8BHQFpAYQB/wEcAUcBWAH/ARQCAQEZAQsCAQEN
+ A8UB/wPOAf8DwQH/A70B/wOJAf8DZgH/Ax8B/wMEAf8DBAH/AwQB/wN2Af8DugH/A6oB/wOEAf8BFAIB
+ ARkBCwIBAQ0CIwG8Af8CJQHHAf8CJwGsAf8CIwGoAf8CJAGnAf8CJQGlAf8CFgErAf8DBAH/AwQB/wIF
+ AQcB/wI0AXYB/wInAZkB/wIqAY0B/wInAVsB/wEUAgEBGQELAgEBDQHaAQQBmAH/AecBBAGhAf8BzgEE
+ AY8B/wHGAQQBigH/AcYBBAGKAf8BxQEEAYoB/wE8AQQBKwH/AwQB/wMEAf8BCAEEAQcB/wGhAQQBdAH/
+ AbsBBAGDAf8BswEEAYEB/wF+AQQBWQH/ARQCAQEZAQsCAQENAQoBjAHCAf8BCwGUAc0B/wEQAYEBsQH/
+ AQ0BgQGtAf8BDgGBAasB/wEPAYABqgH/AREBIwEqAf8DBAH/AwQB/wEFAQYBBwH/ASYBXgF1Af8BEwF4
+ AZ0B/wEYAXEBkAH/AR0BSQFbAf8BFAIBARkBCwIBAQ0DyQH/A9EB/wPBAf8DvQH/A7wB/wO8Af8DVAH/
+ AwQB/wMEAf8DEAH/A6MB/wO1Af8DsAH/A4cB/wEUAgEBGQQAAiMBuwH/AiYBzgH/AiQBuQH/AigBngH/
+ AioBmQH/AhoBMwH/AwQB/wIiAUQB/wIFAQcB/wIWASsB/wIlAaQB/wIjAagB/wItAYcB/wIoAVkB/wEJ
+ AgEBCgQAAdkBBAGXAf8B7gEEAaYB/wHXAQQBlgH/AcIBBAGHAf8BvgEEAYUB/wFIAQQBMwH/AwQB/wFi
+ AQQBRQH/AQkBBAEHAf8BPAEEASsB/wHFAQQBiQH/AcYBBAGKAf8BrwEEAX4B/wF+AQQBWQH/AQkCAQEK
+ BAABCgGLAcEB/wELAZkB1AH/AQsBiQG+Af8BFAF8AaIB/wEWAXkBnQH/ARQBKgEzAf8DBAH/ARoBOAFE
+ Af8BBQIHAf8BEQEjASoB/wEQAX8BqQH/AQ0BgQGtAf8BHAFsAYkB/wEeAUgBWQH/AQkCAQEKBAADyAH/
+ A9YB/wPIAf8DugH/A7cB/wNfAf8DBAH/A3UB/wMSAf8DVAH/A7sB/wO9Af8DrQH/A4cB/wEJAgEBCgQA
+ AiIBtQH/AicB0QH/AiUByQH/AjABngH/AhoBMwH/AwQB/wIqAVYB/wIhAa4B/wIVASgB/wIrAVkB/wIh
+ Aa0B/wIjAagB/wIuAYQB/wItAV4B/wgAAdIBBAGSAf8B8wEEAaoB/wHqAQQBowH/AckBBAGMAf8BSAEE
+ ATMB/wMEAf8BfAEEAVgB/wHKAQQBjQH/ATkBBAEpAf8BgAEEAVoB/wHJAQQBjAH/AcYBBAGKAf8BrQEE
+ AX0B/wGCAQQBXwH/CAABCgGHAbsB/wELAZwB2QH/AQsBlgHQAf8BHAF9AaEB/wEUASoBMwH/AwQB/wEh
+ AUYBVgH/AQoBggG0Af8BEQEhASgB/wEhAUgBWAH/AQsBgQGzAf8BDQGBAa0B/wEdAWsBhgH/ASMBTAFd
+ Af8IAAPEAf8D2QH/A9MB/wO+Af8DXwH/AwQB/wOGAf8DvwH/A1AB/wOJAf8DvgH/A70B/wOsAf8DjQH/
+ CAABMAIBAUoCJwHTAf8CJwHWAf8COwFmAf8DBAH/AisBWAH/AiIBqwH/AiUBpAH/AjQBawH/Ai4BiwH/
+ AiMBqAH/AiMBqAH/AiwBigH/ATACAQFKCAABMAIBAUoB9AEEAaoB/wH4AQQBrQH/AZgBBAFuAf8BBQEE
+ AQUB/wF/AQQBWgH/AcgBBAGMAf8BxQEEAYkB/wGWAQQBbQH/AbQBBAGBAf8BxgEEAYoB/wHGAQQBigH/
+ AbEBBAGAAf8BMAIBAUoIAAEwAgEBSgELAZ0B2QH/AQsBnwHdAf8BMAFVAWMB/wMEAf8BIQFIAVgB/wEM
+ AYEBsQH/ARABfwGpAf8BKAFXAWoB/wEdAW8BjAH/AQ0BgQGtAf8BDQGBAa0B/wEbAW4BjAH/ATACAQFK
+ CAABMAIBAUoD2gH/A9wB/wOdAf8DCQH/A4gB/wO+Af8DuwH/A5wB/wOxAf8DvQH/A70B/wOuAf8BMAIB
+ AUoMAAFVAQYBIQHKAikB2gH/Aj0BlgH/Aj0BdQH/AicBtgH/AioBqAH/AigBqAH/AiMBqAH/AiMBqAH/
+ AiMBqAH/AiMBqAH/AUoBFQFCAegQAAFzAQMBGgHKAf4BBAGxAf8BzgEEAZAB/wGpAQQBegH/AdcBBAGW
+ Af8BzQEEAY8B/wHLAQQBjgH/AcYBBAGKAf8BxgEEAYoB/wHGAQQBigH/AcYBBAGKAf8BjAEEAT0B6BAA
+ AVIBGAEhAcoBCwGjAeIB/wErAXoBlgH/ATABYAF0Af8BDwGIAbsB/wEUAYEBrAH/ARIBgQGtAf8BDQGB
+ Aa0B/wENAYEBrQH/AQ0BgQGtAf8BDQGBAa0B/wFDATMBQgHoEAABcAIhAcoD3wH/A8EB/wOpAf8DyAH/
+ A8EB/wPAAf8DvQH/A70B/wO9Af8DvQH/AYQCVQHoFAABVAEGASAByQInAdYB/wInAdIB/wImAcwB/wIk
+ Ab8B/wIkAbIB/wIlAakB/wIlAaMB/wIiAaMB/wFRAQ4BLQHbGAABdAEDARoByQH5AQQBrQH/AfQBBAGq
+ Af8B7QEEAaUB/wHfAQQBmwH/AdEBBAGSAf8ByQEEAYwB/wHDAQQBiAH/AcEBBAGHAf8BewEEASgB2xgA
+ AVIBFwEgAckBCwGfAd0B/wELAZwB2QH/AQsBmAHTAf8BCgGPAcYB/wEMAYUBuAH/AQ8BgQGvAf8BEAF+
+ AacB/wENAX4BqAH/AUsBIgEtAdsYAAFwAiAByQPcAf8D2QH/A9QB/wPMAf8DwwH/A74B/wO6Af8DuQH/
+ AXsCNQHbHAABMAIBAUoCIwG/Af8CJAHDAf8CJQHIAf8CJAG/Af8CIgG1Af8CIwGjAf8BMAIBAUogAAEw
+ AgEBSgHdAQQBmgH/AeMBBAGeAf8B6AEEAaIB/wHfAQQBmwH/AdIBBAGSAf8BwQEEAYcB/wEwAgEBSiAA
+ ATACAQFKAQoBjgHFAf8BCgGRAcoB/wELAZUBzgH/AQoBjwHGAf8BCgGHAbsB/wEOAX4BpwH/ATACAQFK
+ IAABMAIBAUoDywH/A84B/wPRAf8DzAH/A8QB/wO5Af8BMAIBAUosAAELAgEBDQELAgEBDTgAAQsCAQEN
+ AQsCAQENOAABCwIBAQ0BCwIBAQ04AAELAgEBDQELAgEBDTQAAQQCAQEEARQCAQEZARQCAQEZARQCAQEZ
+ AQIDASwAAQQCAQEEARQCAQEZARQCAQEZARQCAQEZAQIDASwAAQQCAQEEARQCAQEZARQCAQEZARQCAQEZ
+ AQIDASwAAQQCAQEEARQCAQEZARQCAQEZARQCAQEZAQIDASQAATACAQFKA0EB/wM6Af8DOAH/AzcB/wM2
+ Af8DNAH/ATACAQFKARQCAQEZHAABMAIBAUoBcAFKAT0B/wFfAToBLgH/AVcBNAEpAf8BVQEzASgB/wFQ
+ ATEBJgH/AUIBLQElAf8BMAIBAUoBFAIBARkcAAEwAgEBSgEnAUMBJwH/AR4BOQEeAf8BGgE1ARoB/wEa
+ ATMBGgH/ARkBMAEZAf8BGAEpARgB/wEwAgEBSgEUAgEBGRwAATACAQFKAVEBUwEsAf8BRQFHASEB/wE/
+ AUIBHQH/AT4BQAEcAf8BOwE9ARsB/wExATIBGwH/ATACAQFKARQCAQEZGAABWgImAecDSwH/A0sB/wNK
+ Af8DSQH/A0gB/wNFAf8DPwH/AzgB/wFVAg4B2wEUAgEBGRQAAXcBKAEgAecBhwFUAUIB/wGIAVQBQQH/
+ AYYBUwFAAf8BhAFRAT8B/wGCAU8BPQH/AYABTAE6Af8BbwFCATQB/wFXATQBKAH/AVcCCgHbARQCAQEZ
+ FAABTAEoARcB5wEqAVQBKgH/ASkBVAEpAf8BKQFTASkB/wEoAVIBKAH/AScBUQEnAf8BJQFNASUB/wEh
+ AUMBIQH/ARoBNQEaAf8BSwEKAQgB2wEUAgEBGRQAAWUBMQEXAecBZQFpAS4B/wFmAWkBLQH/AWUBaAEt
+ Af8BYwFnASwB/wFhAWUBKwH/AV0BYQEpAf8BUQFUASQB/wE/AUIBHQH/AVEBDgEJAdsBFAIBARkQAAFe
+ AhoB3ANdAf8DYwH/A2gB/wNnAf8DZQH/A2UB/wNiAf8DXAH/A0sB/wM7Af8BVQIOAdsBFAIBARkMAAF2
+ AR8BGAHcAbABXwFCAf8BwgFfATwB/wHNAWABOgH/AcoBYAE7Af8ByQFfAToB/wHJAV8BOgH/AcEBXgE7
+ Af8BsQFdAUAB/wGHAVMBQQH/AWEBOgEtAf8BVwIKAdsBFAIBARkMAAFSAR8BDwHcASsBbAErAf8BJwF3
+ AScB/wElAX4BJQH/ASYBfAEmAf8BJgF7ASYB/wEmAXsBJgH/AScBdQEnAf8BKQFsASkB/wEpAVQBKQH/
+ AR0BOgEdAf8BSwEKAQgB2wEUAgEBGQwAAWcBKAEPAdwBgQGEAS0B/wGLAZIBKAH/AZQBnAEkAf8BkgGZ
+ ASUB/wGRAZgBJgH/AZEBmAEmAf8BigGQAScB/wGBAYQBKwH/AWUBaQEtAf8BRwFJASAB/wFRAQ4BCAHb
+ ARQCAQEZCAABMAIBAUoDXwH/A2gB/wNxAf8DcQH/A3EB/wNxAf8DaQH/A2sB/wNiAf8DRgH/A0gB/wM6
+ Af8BMAIBAUoIAAEwAgEBSgG1AV8BQQH/AcsBYAE7Af8B1AFnAUEB/wHUAWcBQQH/AdQBZwFBAf8B1AFn
+ AUEB/wHPAWEBOwH/AdIBYgE8Af8BvgFfAT4B/wGAAU0BPAH/AYEBTwE9Af8BXwE5ASwB/wEwAgEBSggA
+ ATACAQFKASoBbwEqAf8BJQF9ASUB/wEkAYMBJAH/ASQBgwEkAf8BJAGDASQB/wEkAYMBJAH/ASQBgAEk
+ Af8BIwGBASMB/wEoAXQBKAH/AScBTQEnAf8BJwFQAScB/wEdAToBHQH/ATACAQFKCAABMAIBAUoBggGI
+ ASwB/wGTAZsBJQH/AaABqAEiAf8BoAGoASIB/wGgAagBIgH/AaABqAEiAf8BlwGfASMB/wGbAaMBIgH/
+ AYgBjgEpAf8BXQFgASoB/wFhAWQBKwH/AUUBSAEfAf8BMAIBAUoIAANoAf8DbgH/A3EB/wNxAf8DcQH/
+ A28B/wNqAf8DUAH/AzkB/wMoAf8DBAH/A0gB/wNFAf8DNwH/AQIDAQQAAckBYwE/Af8BzwFnAUMB/wHX
+ AWUBPgH/AdQBZwFBAf8B1AFnAUEB/wHTAWcBQQH/AcoBZQFBAf8BjgFbAUkB/wFYATgBLQH/ASABFQES
+ Af8DBAH/AYEBTwE+Af8BgAFMAToB/wFPATMBKgH/AQIDAQQAAScBfQEnAf8BJgGBASYB/wEhAYUBIQH/
+ ASQBgwEkAf8BJAGDASQB/wEkAYIBJAH/ASgBfgEoAf8BLgFYAS4B/wEdATUBHQH/AQwBFAEMAf8DBAH/
+ AScBUAEnAf8BJQFNASUB/wEbATABGwH/AQIDAQQAAZMBmgEnAf8BmwGjASUB/wGjAasBHgH/AaABqAEi
+ Af8BoAGoASIB/wGfAacBIgH/AZQBmwEoAf8BagFuATMB/wFAAUIBIAH/ARgBGQENAf8DBAH/AWABYwEs
+ Af8BXQFhASkB/wE6ATwBHgH/AQIDAQQAA3IB/wN/Af8DcgH/A3EB/wNVAf8DPAH/Ay0B/wMJAf8DBAH/
+ AwQB/wMjAf8DYAH/A1EB/wM9Af8BFAIBARkEAAHYAWcBQAH/AdsBdAFQAf8B1AFqAUQB/wHUAWcBQQH/
+ AZwBXgFIAf8BZAE/ATMB/wErARwBFwH/AgUBBAH/AwQB/wMEAf8BGQEQAQ4B/wG7AV8BPwH/AZUBWgFE
+ Af8BaAE/ATEB/wEUAgEBGQQAASIBhwEiAf8BJAGQASQB/wEkAYUBJAH/ASQBgwEkAf8BLgFgAS4B/wEh
+ AT0BIQH/AQ8BGwEPAf8DBAH/AwQB/wMEAf8BCgEQAQoB/wEpAXIBKQH/ASwBXAEsAf8BHwE/AR8B/wEU
+ AgEBGQQAAaQBrQEfAf8BsAG6ASEB/wGiAaoBIgH/AaABqAEiAf8BdAF4ATIB/wFJAUsBJAH/ASABIQER
+ Af8DBAH/AwQB/wMEAf8CEwELAf8BhgGMASoB/wFvAXMBMAH/AUsBTgEjAf8BFAIBARkBCwIBAQ0DfAH/
+ A4cB/wN2Af8DcQH/A0MB/wM1Af8DGwH/AwQB/wMEAf8DBAH/AzoB/wNtAf8DWwH/A0EB/wEUAgEBGQEL
+ AgEBDQHaAXEBTAH/Ad0BfQFcAf8B1QFuAUoB/wHUAWcBQQH/AXcBSwE8Af8BSwEwAScB/wEPAQsBCQH/
+ AwQB/wMEAf8DBAH/AVsBOgEvAf8B1AFjATwB/wGvAV0BQAH/AXUBRQE1Af8BFAIBARkBCwIBAQ0BIwGO
+ ASMB/wElAZcBJQH/ASYBhwEmAf8BJAGDASQB/wEmAUcBJgH/ARkBLgEZAf8BBwEKAQcB/wMEAf8DBAH/
+ AwQB/wEeATgBHgH/ASMBgQEjAf8BKQFrASkB/wEiAUYBIgH/ARQCAQEZAQsCAQENAa4BtwEgAf8BuQHC
+ ASIB/wGlAa0BJAH/AaABqAEiAf8BVgFZASoB/wE3ATkBHAH/AgwBBwH/AwQB/wMEAf8DBAH/AUMBRQEi
+ Af8BngGmASAB/wGBAYMBKwH/AVUBWAEmAf8BFAIBARkBCwIBAQ0DgQH/A4wB/wN2Af8DcQH/A28B/wNv
+ Af8DMQH/AwQB/wMEAf8DEAH/A1QB/wNnAf8DYQH/A0IB/wEUAgEBGQELAgEBDQHcAXcBUwH/Ad8BgQFi
+ Af8B1AFuAUsB/wHUAWcBQQH/AdMBZwFBAf8B0gFnAUIB/wE4ASQBHQH/AwQB/wMEAf8BCAIGAf8BmQFe
+ AUgB/wHKAWABOwH/Ab0BXgE9Af8BeQFHATcB/wEUAgEBGQELAgEBDQEkAZIBJAH/ASYBmwEmAf8BJgGG
+ ASYB/wEkAYMBJAH/ASQBggEkAf8BJQGBASUB/wETASIBEwH/AwQB/wMEAf8BBQEGAQUB/wEuAV4BLgH/
+ ASYBfAEmAf8BKAFzASgB/wEjAUkBIwH/ARQCAQEZAQsCAQENAbMBvAEhAf8BvQHHASMB/wGkAawBJQH/
+ AaABqAEiAf8BnwGnASIB/wGeAaYBIwH/ASkBKgEVAf8DBAH/AwQB/wIHAQUB/wFyAXYBMwH/AZIBmQEl
+ Af8BiAGOASkB/wFYAVsBJwH/ARQCAQEZBAADgQH/A5YB/wOBAf8DbQH/A2kB/wM0Af8DBAH/AzoB/wMS
+ Af8DMQH/A24B/wNxAf8DXgH/A0IB/wEJAgEBCgQAAdwBdgFSAf8B4QGGAWsB/wHaAXUBUQH/AcwBZgFD
+ Af8ByQFkAUEB/wFDASsBIwH/AwQB/wFbATkBLgH/AQgBBwEGAf8BOAEkAR0B/wHRAWcBQgH/AdQBZwFB
+ Af8BtQFeAUAB/wF3AUgBOAH/AQkCAQEKBAABJAGSASQB/wEnAaABJwH/ASUBkAElAf8BJwGAAScB/wEo
+ AXwBKAH/ARcBKQEXAf8DBAH/AR4BNwEeAf8BBQEGAQUB/wETASIBEwH/ASUBgQElAf8BJAGDASQB/wEp
+ AW8BKQH/ASQBSAEkAf8BCQIBAQoEAAGyAbsBIQH/AcQBzgEkAf8BsAG5ASIB/wGXAZ4BJwH/AZMBmgEo
+ Af8BMQEzARkB/wMEAf8BQgFEASEB/wIHAQUB/wEpASoBFQH/AZ0BpAEkAf8BoAGoASIB/wGCAYcBKwH/
+ AVcBWgEnAf8BCQIBAQoEAAN7Af8DmwH/A5AB/wNyAf8DNAH/AwQB/wNCAf8DcwH/AzAB/wNDAf8DcgH/
+ A3EB/wNdAf8DRQH/CAAB2gFvAUoB/wHiAYoBcQH/Ad8BgQFmAf8ByAFvAVAB/wFDASsBIwH/AwQB/wFz
+ AUkBOgH/AdgBaQFCAf8BNQEiARwB/wF3AUsBPAH/AdcBaAFCAf8B1AFnAUEB/wGxAV4BQQH/AX0BTgE/
+ Af8IAAEjAY0BIwH/ASgBpAEoAf8BJwGdAScB/wEtAYABLQH/ARcBKQEXAf8DBAH/ASUBRQElAf8BIgGI
+ ASIB/wETASEBEwH/ASYBRwEmAf8BIgGHASIB/wEkAYMBJAH/ASoBbAEqAf8BKAFLASgB/wgAAawBtQEg
+ Af8ByAHSASQB/wHAAcoBIwH/AZgBngEuAf8BMQEzARkB/wMEAf8BVAFWASkB/wGmAa8BHwH/AScBKAEU
+ Af8BVgFZASoB/wGlAa0BIAH/AaABqAEiAf8BgQGEASwB/wFbAV0BLQH/CAABMAIBAUoDngH/A6IB/wNQ
+ Af8DCQH/A0MB/wNyAf8DbgH/A08B/wNiAf8DcQH/A3EB/wNfAf8BMAIBAUoIAAEwAgEBSgHiAYsBcgH/
+ AeMBjwF2Af8BhAFfAVEB/wIFAQQB/wF2AUoBPAH/AdYBaAFCAf8B0QFnAUIB/wGLAVoBSAH/AboBYQFD
+ Af8B1AFnAUEB/wHUAWcBQQH/AbkBXwFAAf8BMAIBAUoIAAEwAgEBSgEoAaQBKAH/ASkBpwEpAf8BMwFS
+ ATMB/wMEAf8BJgFHASYB/wEjAYUBIwH/ASUBgQElAf8BLgFWAS4B/wErAXEBKwH/ASQBgwEkAf8BJAGD
+ ASQB/wEpAXEBKQH/ATACAQFKCAABMAIBAUoByAHTASUB/wHMAdYBJQH/AWMBZQE6Af8DBAH/AVYBWAEq
+ Af8BowGrASAB/wGdAaQBJAH/AWgBawEzAf8BhQGLAS0B/wGgAagBIgH/AaABqAEiAf8BhAGKASsB/wEw
+ AgEBSgwAAWQCFwHKA6gB/wN2Af8DWgH/A4EB/wN2Af8DdQH/A3EB/wNxAf8DcQH/A3EB/wFgAiwB6BAA
+ AXMBFQEOAcoB5AGUAX0B/wG9AXoBYgH/AZgBZgFUAf8B1wF2AVQB/wHQAXABTgH/AdEBbQFKAf8B1AFn
+ AUEB/wHUAWcBQQH/AdQBZwFBAf8B1AFnAUEB/wGNASsBHQHoEAABVQEYAQYBygEqAasBKgH/ATcBewE3
+ Af8BNQFeATUB/wEnAY4BJwH/ASkBgwEpAf8BJwGEAScB/wEkAYMBJAH/ASQBgwEkAf8BJAGDASQB/wEk
+ AYMBJAH/AUoBMwEUAegQAAFtASEBBgHKAdEB3AEmAf8BkAGWATwB/wFxAXUBPAH/Aa0BtgElAf8BoQGo
+ ASgB/wGhAakBJgH/AaABqAEiAf8BoAGoASIB/wGgAagBIgH/AaABqAEiAf8BcwFCARUB6BQAAWYCFwHJ
+ A6IB/wObAf8DkgH/A4MB/wN5Af8DcgH/A20B/wNrAf8BYQIdAdsYAAFyARQBEQHJAeMBjwF3Af8B4gGL
+ AXEB/wHgAYQBaQH/Ad0BewFZAf8B2AFvAUsB/wHUAWoBRQH/AdABZQFAAf8B0wFiATsB/wGAAR0BEwHb
+ GAABVwEZAQYByQEpAacBKQH/ASgBpAEoAf8BJwGfAScB/wElAZYBJQH/ASQBiwEkAf8BJQGEASUB/wEl
+ AYEBJQH/ASMBgQEjAf8BUQEjAQoB2xgAAWwBIAEGAckBzAHXASUB/wHIAdIBJQH/AcIBzAEkAf8BtwHA
+ ASIB/wGqAbMBIgH/AaEBqgEjAf8BmwGjASMB/wGcAaQBIQH/AXABLQEKAdscAAEwAgEBSgOCAf8DhwH/
+ A4wB/wODAf8DewH/A2sB/wEwAgEBSiAAATACAQFKAd0BegFYAf8B3gF/AV4B/wHfAYEBZAH/Ad0BewFZ
+ Af8B2gFvAUoB/wHSAWIBPAH/ATACAQFKIAABMAIBAUoBJQGVASUB/wEmAZkBJgH/ASYBnAEmAf8BJQGW
+ ASUB/wEjAY0BIwH/ASMBgQEjAf8BMAIBAUogAAEwAgEBSgG2Ab8BIQH/AboBxAEiAf8BvgHIASMB/wG3
+ AcABIgH/AawBtQEgAf8BmwGjASIB/wEwAgEBSiwAAQsCAQENAQsCAQENOAABCwIBAQ0BCwIBAQ04AAEL
+ AgEBDQELAgEBDTgAAQsCAQENAQsCAQENHAABQgFNAT4HAAE+AwABKAMAAUADAAFgAwABAQEAAQEGAAED
+ FgAD/4EAAfwBHwH8AR8B/AEfAfwBHwHwAQcB8AEHAfABBwHwAQcB4AEDAeABAwHgAQMB4AEDAcABAQHA
+ AQEBwAEBAcABAQGAAQEBgAEBAYABAQGAAQEBgAEAAYABAAGAAQABgAEAAYABAAGAAQABgAEAAYARAAGA
+ AQABgAEAAYABAAGAAQABgAEBAYABAQGAAQEBgAEBAYABAQGAAQEBgAEBAYABAQHAAQMBwAEDAcABAwHA
+ AQMB4AEHAeABBwHgAQcB4AEHAfABDwHwAQ8B8AEPAfABDwH+AX8B/gF/Af4BfwH+AX8B/AEfAfwBHwH8
+ AR8B/AEfAfABBwHwAQcB8AEHAfABBwHgAQMB4AEDAeABAwHgAQMBwAEBAcABAQHAAQEBwAEBAYABAQGA
+ AQEBgAEBAYABAQGAAQABgAEAAYABAAGAAQABgAEAAYABAAGAAQABgBEAAYABAAGAAQABgAEAAaABAAGA
+ AQEBgAEBAYABAQGwAQEBgAEBAYABAQGAAQEBsAEBAcABAwHAAQMBwAEDAdABAwHgAQcB4AEHAeABBwH+
+ AQcB8AEPAfABDwHwAQ8B8AEPAf4BfwH+AX8B/gF/Af4BfwH8AR8B/AEfAfwBHwH8AR8B8AEHAfABBwHw
+ AQcB8AEHAeABAwHgAQMB4AEDAeABAwHAAQEBwAEBAcABAQHAAQEBgAEBAYABAQGAAQEBgAEBAYABAAGA
+ AQABgAEAAYABAAGAAQABgAEAAYABAAGAEQABgAEAAYABAAGAAQABgAEAAYABAQGAAQEBgAEBAYABAQGA
+ AQEBgAEBAYABAQGAAQEBwAEDAcABAwHAAQMBwAEDAeABBwHgAQcB4AEHAeABBwHwAQ8B8AEPAfABDwHw
+ AQ8B/gF/Af4BfwH+AX8B/gF/AfwBHwH8AR8B/AEfAfwBHwHwAQcB8AEHAfABBwHwAQcB4AEDAeABAwHg
+ AQMB4AEDAcABAQHAAQEBwAEBAcABAQGAAQEBgAEBAYABAQGAAQEBgAEAAYABAAGAAQABgAEAAYABAAGA
+ AQABgAEAAYARAAGAAQABgAEAAYABAAGAAQABgAEBAYABAQGAAQEBgAEBAYABAQGAAQEBgAEBAYABAQHA
+ AQMBwAEDAcABAwHAAQMB4AEHAeABBwHgAQcB4AEHAfABDwHwAQ8B8AEPAfABDwH+AX8B/gF/Af4BfwH+
+ AX8B/AEfAfwBHwH8AR8B/AEfAfABBwHwAQcB8AEHAfABBwHgAQMB4AEDAeABAwHgAQMBwAEBAcABAQHA
+ AQEBwAEBAYABAQGAAQEBgAEBAYABAQGAAQABgAEAAYABAAGAAQABgAEAAYABAAGAAQABgBEAAYABAAGA
+ AQABgAEAAYABAAGAAQEBgAEBAYABAQGAAQEBgAEBAYABAQGAAQEBgAEBAcABAwHAAQMBwAEDAcABAwHg
+ AQcB4AEHAeABBwHgAQcB8AEPAfABDwHwAQ8B8AEPAf4BfwH+AX8B/gF/Af4Bfws=
@@ -643,9 +643,15 @@
True
+
+ True
+
False
+
+ True
+
False
@@ -667,9 +673,66 @@
True
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ True
+
True
+
+ True
+
True