typed arguments complete and ready for typed UDMF fields

This commit is contained in:
codeimp 2008-05-29 21:09:43 +00:00
parent fef9b74ca2
commit 54c8a82517
36 changed files with 2610 additions and 750 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -68,6 +68,12 @@
<Compile Include="Actions\EndActionAttribute.cs" />
<Compile Include="Actions\KeyControl.cs" />
<Compile Include="Actions\MouseInput.cs" />
<Compile Include="Controls\ArgumentBox.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Controls\ArgumentBox.Designer.cs">
<DependentUpon>ArgumentBox.cs</DependentUpon>
</Compile>
<Compile Include="Data\DirectoryReader.cs" />
<Compile Include="Data\FileImage.cs" />
<Compile Include="Data\FlatImage.cs" />
@ -118,9 +124,18 @@
<Compile Include="Data\DataLocationList.cs" />
<Compile Include="Data\DataManager.cs" />
<Compile Include="Data\WADReader.cs" />
<Compile Include="Types\BoolHandler.cs" />
<Compile Include="Types\ColorHandler.cs" />
<Compile Include="Types\EnumBitsHandler.cs" />
<Compile Include="Types\EnumOptionHandler.cs" />
<Compile Include="Types\FlatHandler.cs" />
<Compile Include="Types\FloatHandler.cs" />
<Compile Include="Types\IntegerHandler.cs" />
<Compile Include="Types\LinedefTypeHandler.cs" />
<Compile Include="Types\NullHandler.cs" />
<Compile Include="Types\SectorEffectHandler.cs" />
<Compile Include="Types\StringHandler.cs" />
<Compile Include="Types\TextureHandler.cs" />
<Compile Include="Types\TypeHandler.cs" />
<Compile Include="Types\TypeHandlerAttribute.cs" />
<Compile Include="Types\TypesManager.cs" />
@ -148,7 +163,7 @@
<Compile Include="Controls\AngleControl.Designer.cs">
<DependentUpon>AngleControl.cs</DependentUpon>
</Compile>
<Compile Include="Controls\ArgumentBox.cs">
<Compile Include="Controls\BlaBlaBla.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\AutoSelectTextbox.cs">
@ -172,6 +187,12 @@
<Compile Include="Controls\ColorControl.Designer.cs">
<DependentUpon>ColorControl.cs</DependentUpon>
</Compile>
<Compile Include="Windows\BitFlagsForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Windows\BitFlagsForm.Designer.cs">
<DependentUpon>BitFlagsForm.cs</DependentUpon>
</Compile>
<Compile Include="Windows\ConfigForm.cs">
<SubType>Form</SubType>
</Compile>
@ -558,10 +579,18 @@
<SubType>Designer</SubType>
<DependentUpon>AngleControl.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\ArgumentBox.resx">
<SubType>Designer</SubType>
<DependentUpon>ArgumentBox.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\ClickableNumericTextbox.resx">
<SubType>Designer</SubType>
<DependentUpon>ClickableNumericTextbox.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Windows\BitFlagsForm.resx">
<SubType>Designer</SubType>
<DependentUpon>BitFlagsForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Windows\ThingEditForm.resx">
<SubType>Designer</SubType>
<DependentUpon>ThingEditForm.cs</DependentUpon>

View file

@ -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; } }

76
Source/Controls/ArgumentBox.Designer.cs generated Normal file
View file

@ -0,0 +1,76 @@
namespace CodeImp.DoomBuilder.Controls
{
partial class ArgumentBox
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if(disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
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;
}
}

View file

@ -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
}
}

View file

@ -0,0 +1,129 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="combobox.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="button.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>

View file

@ -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
}
}

View file

@ -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;

View file

@ -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<string, object> 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<string, object> 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;
}

View file

@ -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);
}

101
Source/Types/BoolHandler.cs Normal file
View file

@ -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
}
}

View file

@ -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
}
}

View file

@ -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
}
}

View file

@ -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)

View file

@ -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
}
}

View file

@ -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
}
}

View file

@ -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;

View file

@ -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
}
}

View file

@ -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();

View file

@ -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
}
}

View file

@ -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
}
}

View file

@ -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
}
}

View file

@ -32,6 +32,10 @@ using CodeImp.DoomBuilder.Config;
namespace CodeImp.DoomBuilder.Types
{
/// <summary>
/// Type Handler base class. A Type Handler takes care of editing, validating and
/// displaying values of different types for UDMF fields and hexen arguments.
/// </summary>
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

100
Source/Windows/BitFlagsForm.Designer.cs generated Normal file
View file

@ -0,0 +1,100 @@
namespace CodeImp.DoomBuilder.Windows
{
partial class BitFlagsForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if(disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
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;
}
}

View file

@ -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
}
}

View file

@ -0,0 +1,132 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="options.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="cancel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="apply.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>

View file

@ -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;
}
}

View file

@ -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);
}
}
}

View file

@ -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;
}

View file

@ -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();

View file

@ -169,451 +169,451 @@
<value>
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=
</value>
</data>
<metadata name="groupBox2.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
@ -643,9 +643,15 @@
<metadata name="anglecontrol.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="taglabel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="taglabel.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label7.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="label7.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
@ -667,9 +673,66 @@
<metadata name="tabeffects.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="actiongroup.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="hexenpanel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="arg2.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="arg1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="arg0.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="arg3.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="arg4.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="arg1label.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="arg0label.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="arg3label.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="arg2label.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="arg4label.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="action.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="browseaction.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="doompanel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="groupBox3.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="tag.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="newtag.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="tabcustom.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="fieldslist.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="cancel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>