feat: localize model parameters

This commit is contained in:
Myssal
2025-04-27 21:01:54 +07:00
parent 1cb8f077f5
commit ce5be30f1d
13 changed files with 850 additions and 328 deletions

View File

@@ -64,7 +64,7 @@ namespace SpineViewer.Controls
} }
} }
label_Tip.Text = $"已选择 {listBox.Items.Count} 个文件"; label_Tip.Text = $"{Properties.Resources.itemCountPrefix}{listBox.Items.Count}{Properties.Resources.itemCountSuffix}";
} }
private void button_AddFile_Click(object sender, EventArgs e) private void button_AddFile_Click(object sender, EventArgs e)
@@ -75,7 +75,7 @@ namespace SpineViewer.Controls
foreach (var p in openFileDialog_Skel.FileNames) foreach (var p in openFileDialog_Skel.FileNames)
listBox.Items.Add(Path.GetFullPath(p)); listBox.Items.Add(Path.GetFullPath(p));
label_Tip.Text = $"已选择 {listBox.Items.Count} 个文件"; label_Tip.Text = $"{Properties.Resources.itemCountPrefix}{listBox.Items.Count}{Properties.Resources.itemCountSuffix}";
} }
private void listBox_DragEnter(object sender, DragEventArgs e) private void listBox_DragEnter(object sender, DragEventArgs e)
@@ -92,7 +92,7 @@ namespace SpineViewer.Controls
return; return;
AddFromFileDrop((string[])e.Data.GetData(DataFormats.FileDrop)); AddFromFileDrop((string[])e.Data.GetData(DataFormats.FileDrop));
label_Tip.Text = $"已选择 {listBox.Items.Count} 个文件"; label_Tip.Text = $"{Properties.Resources.itemCountPrefix}{listBox.Items.Count}{Properties.Resources.itemCountSuffix}";
} }
private void toolStripMenuItem_SelectAll_Click(object sender, EventArgs e) private void toolStripMenuItem_SelectAll_Click(object sender, EventArgs e)
@@ -110,7 +110,7 @@ namespace SpineViewer.Controls
var paths = new string[fileDropList.Count]; var paths = new string[fileDropList.Count];
fileDropList.CopyTo(paths, 0); fileDropList.CopyTo(paths, 0);
AddFromFileDrop(paths); AddFromFileDrop(paths);
label_Tip.Text = $"已选择 {listBox.Items.Count} 个文件"; label_Tip.Text = $"{Properties.Resources.itemCountPrefix}{listBox.Items.Count}{Properties.Resources.itemCountSuffix}";
} }
private void toolStripMenuItem_Remove_Click(object sender, EventArgs e) private void toolStripMenuItem_Remove_Click(object sender, EventArgs e)
@@ -119,7 +119,7 @@ namespace SpineViewer.Controls
listBox.SelectedIndices.CopyTo(indices, 0); listBox.SelectedIndices.CopyTo(indices, 0);
for (int i = indices.Length - 1; i >= 0; i--) for (int i = indices.Length - 1; i >= 0; i--)
listBox.Items.RemoveAt(indices[i]); listBox.Items.RemoveAt(indices[i]);
label_Tip.Text = $"已选择 {listBox.Items.Count} 个文件"; label_Tip.Text = $"{Properties.Resources.itemCountPrefix}{listBox.Items.Count}{Properties.Resources.itemCountSuffix}";
} }
} }
} }

View File

@@ -142,4 +142,29 @@
<data name="label_Tip.Text" xml:space="preserve"> <data name="label_Tip.Text" xml:space="preserve">
<value>0 file added.</value> <value>0 file added.</value>
</data> </data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="toolStripMenuItem_SelectAll.ShortcutKeys" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_SelectAll.Size" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_SelectAll.Text" xml:space="preserve">
<value>Select all</value>
</data>
<data name="toolStripMenuItem_Paste.Text" xml:space="preserve">
<value>Paste</value>
</data>
<data name="toolStripMenuItem_Remove.Text" xml:space="preserve">
<value>Remove</value>
</data>
<data name="openFileDialog_Skel.TrayLocation" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="openFileDialog_Skel.Filter" xml:space="preserve">
<value>All files (*.*)|*.*|Skel files (*.skel; *.json)|*.skel;*.json</value>
</data>
<data name="openFileDialog_Skel.Title" xml:space="preserve">
<value>Select .skel files</value>
</data>
</root> </root>

View File

@@ -117,11 +117,102 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="toolStripStatusLabel_CountInfo.Size" type="System.Drawing.Size, System.Drawing"> <data name="toolStripMenuItem_MoveTop.ShortcutKeys" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value>206, 20</value> <value />
</data>
<data name="toolStripMenuItem_BatchAdd.Size" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_ChangeView.Text" xml:space="preserve">
<value>Switch view</value>
</data>
<data name="toolStripMenuItem_MoveTop.Text" xml:space="preserve">
<value>Stick to top</value>
</data>
<data name="toolStripMenuItem_MoveUp.ShortcutKeys" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_RemoveAll.Size" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_Remove.Text" xml:space="preserve">
<value>Remove</value>
</data>
<data name="toolStripMenuItem_CopyPreview.ShortcutKeys" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_CopyPreview.Text" xml:space="preserve">
<value>Copy preview</value>
</data>
<data name="toolStripMenuItem_MoveBottom.ShortcutKeys" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_LargeIconView.Text" xml:space="preserve">
<value>Large icon</value>
</data>
<data name="toolStripMenuItem_AddFromClipboard.ShortcutKeys" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_MoveUp.Text" xml:space="preserve">
<value>Up</value>
</data>
<data name="toolStripMenuItem_ListView.ShortcutKeys" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_DetailsView.Text" xml:space="preserve">
<value>More info</value>
</data>
<data name="toolStripMenuItem_LargeIconView.ShortcutKeys" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_MoveBottom.Text" xml:space="preserve">
<value>Bottom</value>
</data> </data>
<data name="toolStripStatusLabel_CountInfo.Text" xml:space="preserve"> <data name="toolStripStatusLabel_CountInfo.Text" xml:space="preserve">
<value>0 items selected, 0 items total</value> <value>0 items selected, 0 items total</value>
</data> </data>
<data name="toolStripMenuItem_SelectAll.Text" xml:space="preserve">
<value>Select all</value>
</data>
<data name="toolStripMenuItem_AddFromClipboard.Text" xml:space="preserve">
<value>Add to clipboard</value>
</data>
<data name="toolStripMenuItem_DetailsView.ShortcutKeys" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_MoveTop.Size" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_ChangeView.Size" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_SelectAll.ShortcutKeys" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_BatchAdd.Text" xml:space="preserve">
<value>Bulk add...</value>
</data>
<data name="toolStripMenuItem_RemoveAll.Text" xml:space="preserve">
<value>Remove all</value>
</data>
<data name="toolStripMenuItem_Add.Text" xml:space="preserve">
<value>Add to...</value>
</data>
<data name="toolStripMenuItem_ListView.Text" xml:space="preserve">
<value>List</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="toolStripStatusLabel_CountInfo.Size" type="System.Drawing.Size, System.Drawing">
<value>206, 20</value>
</data>
<data name="toolStripMenuItem_Insert.Text" xml:space="preserve">
<value>Insert...</value>
</data>
<data name="toolStripMenuItem_Remove.ShortcutKeys" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="toolStripMenuItem_MoveDown.Text" xml:space="preserve">
<value>Down</value>
</data>
</root> </root>

View File

@@ -12,6 +12,9 @@ using System.Diagnostics;
using NLog; using NLog;
using SpineViewer.Utils; using SpineViewer.Utils;
using System.Drawing.Design; using System.Drawing.Design;
using System.Reflection;
using System.Resources;
using SpineViewer.Utils.Localize;
namespace SpineViewer.Controls namespace SpineViewer.Controls
{ {
@@ -30,14 +33,16 @@ namespace SpineViewer.Controls
/// <summary> /// <summary>
/// 要绑定的 Spine 列表控件 /// 要绑定的 Spine 列表控件
/// </summary> /// </summary>
[Category("自定义"), Description("相关联的 SpineListView")] [LocalizedCategory(typeof(Properties.Resources), "categoryCustom")]
[LocalizedDescription(typeof(Properties.Resources), "descAssociatedSpineListView")]
public SpineListView? SpineListView { get; set; } public SpineListView? SpineListView { get; set; }
/// <summary> /// <summary>
/// 属性信息面板 /// 属性信息面板
/// </summary> /// </summary>
[Category("自定义"), Description("用于显示画面属性的属性页")] [LocalizedCategory(typeof(Properties.Resources), "categoryCustom")]
public PropertyGrid? PropertyGrid [LocalizedDescription(typeof(Properties.Resources), "descDisplayImageProperties")]
public PropertyGrid? PropertyGrid
{ {
get => propertyGrid; get => propertyGrid;
set set
@@ -507,6 +512,7 @@ namespace SpineViewer.Controls
private void panel_RenderContainer_SizeChanged(object sender, EventArgs e) private void panel_RenderContainer_SizeChanged(object sender, EventArgs e)
{ {
if (renderWindow is null) return; if (renderWindow is null) return;
float parentW = panel_Render.Parent.Width; float parentW = panel_Render.Parent.Width;
@@ -785,37 +791,47 @@ namespace SpineViewer.Controls
[RefreshProperties(RefreshProperties.All)] [RefreshProperties(RefreshProperties.All)]
[TypeConverter(typeof(ResolutionConverter))] [TypeConverter(typeof(ResolutionConverter))]
[Category("[0] "), DisplayName("")] [LocalizedCategory(typeof(Properties.Resources), "categoryCustom")]
[LocalizedDisplayName(typeof(Properties.Resources), "displayResolution")]
public Size Resolution { get => PreviewPanel.Resolution; set => PreviewPanel.Resolution = value; } public Size Resolution { get => PreviewPanel.Resolution; set => PreviewPanel.Resolution = value; }
[TypeConverter(typeof(PointFConverter))] [TypeConverter(typeof(PointFConverter))]
[Category("[0] "), DisplayName("")] [LocalizedCategory(typeof(Properties.Resources), "categoryCustom")]
public PointF Center { get => PreviewPanel.Center; set => PreviewPanel.Center = value; } [LocalizedDisplayName(typeof(Properties.Resources), "displayCenter")]
public PointF Center { get => PreviewPanel.Center; set => PreviewPanel.Center = value; }
[Category("[0] "), DisplayName("")] [LocalizedCategory(typeof(Properties.Resources), "categoryCustom")]
public float Zoom { get => PreviewPanel.Zoom; set => PreviewPanel.Zoom = value; } [LocalizedDisplayName(typeof(Properties.Resources), "displayZoom")]
public float Zoom { get => PreviewPanel.Zoom; set => PreviewPanel.Zoom = value; }
[Category("[0] "), DisplayName("")] [LocalizedCategory(typeof(Properties.Resources), "categoryCustom")]
public float Rotation { get => PreviewPanel.Rotation; set => PreviewPanel.Rotation = value; } [LocalizedDisplayName(typeof(Properties.Resources), "displayRotation")]
public float Rotation { get => PreviewPanel.Rotation; set => PreviewPanel.Rotation = value; }
[Category("[0] "), DisplayName("")] [LocalizedCategory(typeof(Properties.Resources), "categoryCustom")]
public bool FlipX { get => PreviewPanel.FlipX; set => PreviewPanel.FlipX = value; } [LocalizedDisplayName(typeof(Properties.Resources), "displayFlipHorizontal")]
public bool FlipX { get => PreviewPanel.FlipX; set => PreviewPanel.FlipX = value; }
[Category("[0] "), DisplayName("")] [LocalizedCategory(typeof(Properties.Resources), "categoryCustom")]
public bool FlipY { get => PreviewPanel.FlipY; set => PreviewPanel.FlipY = value; } [LocalizedDisplayName(typeof(Properties.Resources), "displayFlipVertical")]
public bool FlipY { get => PreviewPanel.FlipY; set => PreviewPanel.FlipY = value; }
[Category("[0] "), DisplayName("")] [LocalizedCategory(typeof(Properties.Resources), "categoryCustom")]
public bool RenderSelectedOnly { get => PreviewPanel.RenderSelectedOnly; set => PreviewPanel.RenderSelectedOnly = value; } [LocalizedDisplayName(typeof(Properties.Resources), "displayRenderSelected")]
public bool RenderSelectedOnly { get => PreviewPanel.RenderSelectedOnly; set => PreviewPanel.RenderSelectedOnly = value; }
[Category("[1] "), DisplayName("")] [LocalizedCategory(typeof(Properties.Resources), "categoryExport")]
public bool ShowAxis { get => PreviewPanel.ShowAxis; set => PreviewPanel.ShowAxis = value; } [LocalizedDisplayName(typeof(Properties.Resources), "displayShowAxis")]
public bool ShowAxis { get => PreviewPanel.ShowAxis; set => PreviewPanel.ShowAxis = value; }
[Category("[1] "), DisplayName("")] [LocalizedCategory(typeof(Properties.Resources), "categoryExport")]
public uint MaxFps { get => PreviewPanel.MaxFps; set => PreviewPanel.MaxFps = value; } [LocalizedDisplayName(typeof(Properties.Resources), "displayMaximumFrameRate")]
public uint MaxFps { get => PreviewPanel.MaxFps; set => PreviewPanel.MaxFps = value; }
[Editor(typeof(SFMLColorEditor), typeof(UITypeEditor))] [Editor(typeof(SFMLColorEditor), typeof(UITypeEditor))]
[TypeConverter(typeof(SFMLColorConverter))] [TypeConverter(typeof(SFMLColorConverter))]
[Category("[1] "), DisplayName("")] [LocalizedCategory(typeof(Properties.Resources), "categoryExport")]
public SFML.Graphics.Color BackgroundColor { get => PreviewPanel.BackgroundColor; set => PreviewPanel.BackgroundColor = value; } [LocalizedDisplayName(typeof(Properties.Resources), "displayBackgroundColor")]
public SFML.Graphics.Color BackgroundColor { get => PreviewPanel.BackgroundColor; set => PreviewPanel.BackgroundColor = value; }
} }
} }

View File

@@ -0,0 +1,120 @@
<?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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -117,177 +117,178 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<metadata name="imageList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="imageList.TrayLocation" type="System.Drawing.Point, System.Drawing">
<value>17, 17</value> <value>17, 17</value>
</metadata> </data>
<data name="imageList.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64"> <data name="imageList.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value> <value>
AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA8iMAAAJNU0Z0AUkBTAIBAQcB ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD0
AAGQAQABkAEAAR8BAAEYAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABfAMAATADAAEBAQABIAYAAV0+ IwAAAk1TRnQBSQFMAgEBBwEAAZABAAGYAQABHwEAARgBAAT/ASEBEAj/AUIBTQE2BwABNgMAASgDAAF8
AAMEAQUDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf9DAAH/AwAB/wMAAf8DAAH/A1UB AwABMAMAAQEBAAEgBgABXT4AAwQBBQMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/0MA
sWQAA1gB7wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D Af8DAAH/AwAB/wMAAf8DVQGxZAADWAHvAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/Ay0BRbcAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DLQFFtwAB/wMAAf8DAAH/
AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf87AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf9cAANEAXgDAAH/AwAB AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/zsAAf8DAAH/AwAB/wMAAf8DAAH/
/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB AwAB/1wAA0QBeAMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
/wMAAf8DAAH/AwAB/wMAAf8DAAH/swAB/wMAAf8DAAH/AwAB/wMAAf8XAAH/AwAB/wMAAf8DAAH/AwAB Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf+zAAH/AwAB/wMAAf8DAAH/AwAB/xcA
/zcAAf8DAAH/BwAB/wMAAf8DAAH/AwAB/wMAAf9XAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB Af8DAAH/AwAB/wMAAf8DAAH/NwAB/wMAAf8HAAH/AwAB/wMAAf8DAAH/AwAB/1cAAf8DAAH/AwAB/wMA
/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
/wMAAf+vAAH/AwAB/wNRAaQnAAH/AwAB/wMAAf8DAAH/MwAB/wMAAf8IAANOAZcDAAH/AwAB/wMAAf8D Af8DAAH/AwAB/wMAAf8DAAH/AwAB/68AAf8DAAH/A1EBpCcAAf8DAAH/AwAB/wMAAf8zAAH/AwAB/wgA
AAH/Ay4BSE8AAf8DAAH/AwAB/0sAAf8DAAH/AwAB/+AAAxUBHQMAAf8DAAH/AwAB/y8AAf8DAAH/EwAB A04BlwMAAf8DAAH/AwAB/wMAAf8DLgFITwAB/wMAAf8DAAH/SwAB/wMAAf8DAAH/4AADFQEdAwAB/wMA
/wMAAf8DAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf/kAAMmATgDAAH/AwAB/wMAAf8r Af8DAAH/LwAB/wMAAf8TAAH/AwAB/wMAAf8DAAH/AwAB/0sAAf8DAAH/AwAB/0sAAf8DAAH/AwAB/+QA
AAH/AwAB/xsAAf8DAAH/AwAB/wMAAf8DAAH/QwAB/wMAAf8DAAH/SwAB/wMAAf8DAAH/6wAB/wMAAf8D AyYBOAMAAf8DAAH/AwAB/ysAAf8DAAH/GwAB/wMAAf8DAAH/AwAB/wMAAf9DAAH/AwAB/wMAAf9LAAH/
AAH/KwAB/wMAAf8cAANCAfYDAAH/AwAB/wMAAf8DAAH/AwQBBTsAAf8DAAH/AwAB/0sAAf8DAAH/AwAB AwAB/wMAAf/rAAH/AwAB/wMAAf8rAAH/AwAB/xwAA0IB9gMAAf8DAAH/AwAB/wMAAf8DBAEFOwAB/wMA
/+8AAf8DAAH/AwAB/ycAAf8DAAH/JwAB/wMAAf8DAAH/AwAB/wMAAf83AAH/AwAB/wMAAf9LAAH/AwAB Af8DAAH/SwAB/wMAAf8DAAH/7wAB/wMAAf8DAAH/JwAB/wMAAf8nAAH/AwAB/wMAAf8DAAH/AwAB/zcA
/wMAAf/vAAH/AwAB/wMAAf8nAAH/AwAB/ygAAwcBCQMAAf8DAAH/AwAB/wMAAf8DYAHjLwAB/wMAAf8D Af8DAAH/AwAB/0sAAf8DAAH/AwAB/+8AAf8DAAH/AwAB/ycAAf8DAAH/KAADBwEJAwAB/wMAAf8DAAH/
AAH/SwAB/wMAAf8DAAH/7AADIAEtAwAB/wMAAf8nAAH/AwAB/zMAAf8DAAH/AwAB/wMAAf8DAAH/KwAB AwAB/wNgAeMvAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf/sAAMgAS0DAAH/AwAB/ycAAf8DAAH/MwAB/wMA
/wMAAf8DAAH/SwAB/wMAAf8DAAH/8wAB/wMAAf8nAAH/AwAB/zsAAf8DAAH/AwAB/wMAAf8nAAH/AwAB Af8DAAH/AwAB/wMAAf8rAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf/zAAH/AwAB/ycAAf8DAAH/OwAB/wMA
/wMAAf9LAAH/AwAB/wMAAf/zAAH/AwAB/ycAAf8DAAH/PAADPwFsAwAB/wMAAf8nAAH/AwAB/wMAAf9L Af8DAAH/AwAB/ycAAf8DAAH/AwAB/0sAAf8DAAH/AwAB//MAAf8DAAH/JwAB/wMAAf88AAM/AWwDAAH/
AAH/AwAB/wMAAf/zAAH/AwAB/ycAAf8DAAH/OwAB/wMAAf8DAAH/AwAB/ycAAf8DAAH/AwAB/0sAAf8D AwAB/ycAAf8DAAH/AwAB/0sAAf8DAAH/AwAB//MAAf8DAAH/JwAB/wMAAf87AAH/AwAB/wMAAf8DAAH/
AAH/AwAB/5sAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/NAADCAEKAwAB/wMAAf8nAAH/AwAB JwAB/wMAAf8DAAH/SwAB/wMAAf8DAAH/mwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf80AAMI
/zAAA10BzgMAAf8DAAH/AwAB/wMAAf8EAScAAf8DAAH/AwAB/0sAAf8DAAH/AwAB/5QAAwUBBgMAAf8D AQoDAAH/AwAB/ycAAf8DAAH/MAADXQHOAwAB/wMAAf8DAAH/AwAB/wQBJwAB/wMAAf8DAAH/SwAB/wMA
AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/zMAAf8DAAH/AwAB/ycAAf8DAAH/LwAB/wMAAf8D Af8DAAH/lAADBQEGAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/MwAB/wMAAf8DAAH/
AAH/AwAB/wMAAf8vAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf+UAAMFAQYDAAH/AwAB/wMAAf8DAAH/AwAB JwAB/wMAAf8vAAH/AwAB/wMAAf8DAAH/AwAB/y8AAf8DAAH/AwAB/0sAAf8DAAH/AwAB/5QAAwUBBgMA
/wMAAf8DAAH/AwAB/wMAAf8zAAH/AwAB/wMAAf8nAAH/AwAB/ycAAf8DAAH/AwAB/wMAAf8DAAH/NwAB Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/zMAAf8DAAH/AwAB/ycAAf8DAAH/JwAB/wMA
/wMAAf8DAAH/SwAB/wMAAf8DAAH/lAADBQEGAwAB/wMAAf8PAAH/AwAB/wMAAf8DFQEcLwAB/wMAAf8D Af8DAAH/AwAB/wMAAf83AAH/AwAB/wMAAf9LAAH/AwAB/wMAAf+UAAMFAQYDAAH/AwAB/w8AAf8DAAH/
AAH/KwAB/wMAAf8cAAM9AWkDAAH/AwAB/wMAAf8DAAH/A0MBdjsAAf8DAAH/AwAB/0sAAf8DAAH/AwAB AwAB/wMVARwvAAH/AwAB/wMAAf8rAAH/AwAB/xwAAz0BaQMAAf8DAAH/AwAB/wMAAf8DQwF2OwAB/wMA
/5QAAwUBBgMAAf8DAAH/CwAB/wMAAf8DAAH/AxMBGjMAAf8DAAH/AwAB/ysAAf8DAAH/GwAB/wMAAf8D Af8DAAH/SwAB/wMAAf8DAAH/lAADBQEGAwAB/wMAAf8LAAH/AwAB/wMAAf8DEwEaMwAB/wMAAf8DAAH/
AAH/AwAB/wMAAf9DAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf+UAAMFAQYDAAH/AwAB/wcAAf8DAAH/AwAB KwAB/wMAAf8bAAH/AwAB/wMAAf8DAAH/AwAB/0MAAf8DAAH/AwAB/0sAAf8DAAH/AwAB/5QAAwUBBgMA
/wMbASYzAAH/AwAB/wMAAf8vAAH/AwAB/xMAAf8DAAH/AwAB/wMAAf8DAAH/SwAB/wMAAf8DAAH/SwAB Af8DAAH/BwAB/wMAAf8DAAH/AxsBJjMAAf8DAAH/AwAB/y8AAf8DAAH/EwAB/wMAAf8DAAH/AwAB/wMA
/wMAAf8DAAH/lAADBQEGAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMdASgkAANZAe4DAAH/AwAB Af9LAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf+UAAMFAQYDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
/wMAAf8EAS8AAf8DAAH/CAADGAEhAwAB/wMAAf8DAAH/AwAB/wNcActPAAH/AwAB/wMAAf9LAAH/AwAB Ax0BKCQAA1kB7gMAAf8DAAH/AwAB/wQBLwAB/wMAAf8IAAMYASEDAAH/AwAB/wMAAf8DAAH/A1wBy08A
/wMAAf+UAAMFAQYDAAH/AwAB/wMAAf8DAAH/A2AB4wMAAf8DAAH/AwAB/wMAAf8DUAGfFwAB/wMAAf8D Af8DAAH/AwAB/0sAAf8DAAH/AwAB/5QAAwUBBgMAAf8DAAH/AwAB/wMAAf8DYAHjAwAB/wMAAf8DAAH/
AAH/AwAB/wMAAf83AAH/AwAB/wcAAf8DAAH/AwAB/wMAAf8DAAH/VwAB/wMAAf8DAAH/AwAB/wMqAUAD AwAB/wNQAZ8XAAH/AwAB/wMAAf8DAAH/AwAB/zcAAf8DAAH/BwAB/wMAAf8DAAH/AwAB/wMAAf9XAAH/
KgFAAyoBQAMqAUADKgFAAyoBQAMqAUADKgFAAyoBQAMqAUADKgFAAyoBQAMqAUADKgFAAyoBQAMqAUAD AwAB/wMAAf8DAAH/AyoBQAMqAUADKgFAAyoBQAMqAUADKgFAAyoBQAMqAUADKgFAAyoBQAMqAUADKgFA
AAH/AwAB/wMAAf8DAAH/mwAB/wMAAf8DAAH/Ax0BKQQAAwIBAwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB AyoBQAMqAUADKgFAAyoBQAMAAf8DAAH/AwAB/wMAAf+bAAH/AwAB/wMAAf8DHQEpBAADAgEDAwAB/wMA
/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf87AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DBwEJWAAD Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/zsAAf8DAAH/AwAB/wMA
WQHDAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D Af8DAAH/AwAB/wMHAQlYAANZAcMDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/5wAAxIBFwMAAf8UAANKAYkDAAH/AwAB/wMAAf8D AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/nAADEgEXAwAB/xQA
AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf9DAAH/AwAB/wMAAf8DAAH/AyEB+2cAAf8DAAH/AwAB/wMAAf8D A0oBiQMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/0MAAf8DAAH/AwAB/wMAAf8DIQH7
AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D ZwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
AAH/AwAB/wNbAcXIAANGAYADWgG/Ay4BSFQAA1oBv3QAA0YBgANaAb8DWgG/A1oBvwNaAb8DWgG/A1oB AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1sBxcgAA0YBgANaAb8DLgFIVAADWgG/dAADRgGAA1oBvwNa
vwNaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvwNaAb8DLgFIpwAB/wMAAf8DAAH/AwAB Ab8DWgG/A1oBvwNaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvwMu
/wMAAf8DAAH/AwAB/wMAAf8DAAH/FAADPQFpAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D AUinAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8UAAM9AWkDAAH/AwAB/wMAAf8DAAH/
AAH/EwAB/wMAAf8DAAH/LwAB/wMAAf8DAAH/KAADGQEiAwAB/wMAAf8jAAH/AwAB/wMAAf8oAAM/AW0D AwAB/wMAAf8DAAH/AwAB/wMAAf8TAAH/AwAB/wMAAf8vAAH/AwAB/wMAAf8oAAMZASIDAAH/AwAB/yMA
AAH/AwAB/zsAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8TAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D Af8DAAH/AwAB/ygAAz8BbQMAAf8DAAH/OwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xMAAf8DAAH/
AAH/KwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/FAADAwEEAwAB/wMAAf8DAAH/AwAB AwAB/wMAAf8DAAH/AwAB/wMAAf8rAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8UAAMD
/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8DAAH/AwAB/yQAA1YBtgMAAf8DAAH/AwAB AQQDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8MAANUAasDAAH/AwAB/wMAAf8DAAH/
/wMAAf8kAAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AwAB/wMAAf8DPAH4IwAB/wMAAf8DAAH/NwAB JAADVgG2AwAB/wMAAf8DAAH/AwAB/yQAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DAAH/AwAB/wM8
/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB AfgjAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMA
/wMAAf8DAAH/JwAB/wMAAf8DAAH/AwAB/wMAAf87AAH/AwAB/wMAAf8DAAH/AwAB/wwAA1QBqwMAAf8D Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8nAAH/AwAB/wMAAf8DAAH/AwAB/zsAAf8DAAH/AwAB/wMA
AAH/AwAB/wMAAf8DAAH/IAADVgG1AwAB/wMAAf8DAAH/AwAB/wMAAf8gAAM1AfkDAAH/AwAB/xwAA1cB Af8DAAH/DAADVAGrAwAB/wMAAf8DAAH/AwAB/wMAAf8gAANWAbUDAAH/AwAB/wMAAf8DAAH/AwAB/yAA
8QMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/x8AAf8DAAH/AwAB/zcAAf8DAAH/AwAB/wMAAf8DAAH/AwAB AzUB+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/HwAB/wMAAf8DAAH/NwAB/wMA
/wMAAf8DAAH/AwAB/wsAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/ycAAf8DAAH/AwAB Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
/wMAAf8DAAH/AxIB/jMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wwAA1QBqwMAAf8DAAH/AwAB/wMAAf8D Af8DAAH/JwAB/wMAAf8DAAH/AwAB/wMAAf8DEgH+MwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADVAGr
AAH/AwAB/wNZAbsYAANWAbUDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DUQGeGAADNQH5AwAB/wMAAf8c AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1kBuxgAA1YBtQMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNR
AANXAfEDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A1ABnRcAAf8DAAH/AwAB/zcAAf8DAAH/AwAB AZ4YAAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DUAGdFwAB/wMA
/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/ycAAf8DAAH/A1YBswMAAf8DAAH/AwAB Af8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/JwAB/wMA
/wMAAf8rAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8DPQFoAwAB/wMAAf8D Af8DVgGzAwAB/wMAAf8DAAH/AwAB/ysAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8MAANUAasDAAH/
AAH/AwAB/wMAAf8UAANWAbUDAAH/AwAB/wMzAVADAAH/AwAB/wMAAf8DAAH/AwAB/xQAAzUB+QMAAf8D AwAB/wM9AWgDAAH/AwAB/wMAAf8DAAH/AwAB/xQAA1YBtQMAAf8DAAH/AzMBUAMAAf8DAAH/AwAB/wMA
AAH/HAADVwHxAwAB/wMAAf8DEQEWBAEDAAH/AwAB/wMAAf8DAAH/AwAB/xMAAf8DAAH/AwAB/zcAAf8D Af8DAAH/FAADNQH5AwAB/wMAAf8cAANXAfEDAAH/AwAB/wMRARYEAQMAAf8DAAH/AwAB/wMAAf8DAAH/
AAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/ycAAf8DAAH/A1YBswcAAf8D EwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/
AAH/AwAB/wMAAf8jAAH/AwAB/wMAAf8DAAH/BwAB/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8DPQFoBwAB JwAB/wMAAf8DVgGzBwAB/wMAAf8DAAH/AwAB/yMAAf8DAAH/AwAB/wMAAf8HAAH/AwAB/wMAAf8MAANU
/wMAAf8DAAH/AwAB/wMAAf8QAANWAbUDAAH/AwAB/wMzAVAHAAH/AwAB/wMAAf8DAAH/AwAB/xAAAzUB AasDAAH/AwAB/wM9AWgHAAH/AwAB/wMAAf8DAAH/AwAB/xAAA1YBtQMAAf8DAAH/AzMBUAcAAf8DAAH/
+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DEQEWCwAB/wMAAf8DAAH/AwAB/wMAAf8PAAH/AwAB/wMAAf83 AwAB/wMAAf8DAAH/EAADNQH5AwAB/wMAAf8cAANXAfEDAAH/AwAB/wMRARYLAAH/AwAB/wMAAf8DAAH/
AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8nAAH/AwAB/wNWAbML AwAB/w8AAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/
AAH/AwAB/wMAAf8DEgH+GwAB/wMAAf8DAAH/AwAB/wsAAf8DAAH/AwAB/wwAA1QBqwMAAf8DAAH/Az0B AwAB/ycAAf8DAAH/A1YBswsAAf8DAAH/AwAB/wMSAf4bAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/
aAgAA2AB2wMAAf8DAAH/AwAB/wMAAf8MAANWAbUDAAH/AwAB/wMzAVAIAANgAeMDAAH/AwAB/wMAAf8D DAADVAGrAwAB/wMAAf8DPQFoCAADYAHbAwAB/wMAAf8DAAH/AwAB/wwAA1YBtQMAAf8DAAH/AzMBUAgA
AAH/DAADNQH5AwAB/wMAAf8cAANXAfEDAAH/AwAB/wMRARYMAAMzAVIDAAH/AwAB/wMAAf8DAAH/AwAB A2AB4wMAAf8DAAH/AwAB/wMAAf8MAAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFgwAAzMBUgMA
/wcAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB Af8DAAH/AwAB/wMAAf8DAAH/BwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMA
/ycAAf8DAAH/A1YBsw8AAf8DAAH/AwAB/wMAAf8TAAH/AwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/DAAD Af8DAAH/DwAB/wMAAf8DAAH/JwAB/wMAAf8DVgGzDwAB/wMAAf8DAAH/AwAB/xMAAf8DAAH/AwAB/wMA
VAGrAwAB/wMAAf8DPQFoDAADJQE3AwAB/wMAAf8DAAH/AwAB/wgAA1YBtQMAAf8DAAH/AzMBUAwAAzIB Af8PAAH/AwAB/wMAAf8MAANUAasDAAH/AwAB/wM9AWgMAAMlATcDAAH/AwAB/wMAAf8DAAH/CAADVgG1
TwMAAf8DAAH/AwAB/wMAAf8IAAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFhcAAf8DAAH/AwAB AwAB/wMAAf8DMwFQDAADMgFPAwAB/wMAAf8DAAH/AwAB/wgAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMA
/wMAAf8DAAH/AxIB/gMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/DwAB Af8DEQEWFwAB/wMAAf8DAAH/AwAB/wMAAf8DEgH+AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMA
/wMAAf8DAAH/JwAB/wMAAf8XAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/xAAAwwBDwMAAf8D Af8LAAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8nAAH/AwAB/xcAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMA
QgH2DAADVAGrAwAB/wMAAf8DPQFoFwAB/wMAAf8DAAH/AwAB/wQAA1YBtQMAAf8DAAH/AzMBUBcAAf8D Af8DAAH/EAADDAEPAwAB/wNCAfYMAANUAasDAAH/AwAB/wM9AWgXAAH/AwAB/wMAAf8DAAH/BAADVgG1
AAH/AwAB/wMAAf8EAAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFhgAA1oB6QMAAf8DAAH/AwAB AwAB/wMAAf8DMwFQFwAB/wMAAf8DAAH/AwAB/wQAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DEQEW
/wMAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB GAADWgHpAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMA
/0cAAf8DAAH/AwAB/wMSAf4DAAH/AwAB/wMAAf8DAAH/LAADVAGrAwAB/wMAAf8DPQFoGwAB/wMAAf8D Af8DAAH/DwAB/wMAAf8DAAH/RwAB/wMAAf8DAAH/AxIB/gMAAf8DAAH/AwAB/wMAAf8sAANUAasDAAH/
AAH/AwAB/wNdAc4DAAH/AwAB/wMzAVAbAAH/AwAB/wMAAf8DAAH/AyYB+gMAAf8DAAH/HAADVwHxAwAB AwAB/wM9AWgbAAH/AwAB/wMAAf8DAAH/A10BzgMAAf8DAAH/AzMBUBsAAf8DAAH/AwAB/wMAAf8DJgH6
/wMAAf8DEQEWIwAB/wMAAf8DAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB AwAB/wMAAf8cAANXAfEDAAH/AwAB/wMRARYjAAH/AwAB/wMAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8A
/wMAAf8PAAH/AwAB/wMAAf9LAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8wAANUAasDAAH/AwAB/wM9AWgf Af8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/0sAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/zAA
AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DMwFQHwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/HAADVwHxAwAB A1QBqwMAAf8DAAH/Az0BaB8AAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMzAVAfAAH/AwAB/wMAAf8DAAH/
/wMAAf8DEQEWJwAB/wMAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB AwAB/wMAAf8cAANXAfEDAAH/AwAB/wMRARYnAAH/AwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMA
/w8AAf8DAAH/AwAB/08AAf8DAAH/AwAB/wMAAf80AANUAasDAAH/AwAB/wM9AWgjAAH/AwAB/wMAAf8D Af8DAAH/CwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/TwAB/wMAAf8DAAH/AwAB/zQAA1QBqwMAAf8DAAH/
AAH/AwAB/wMzAVAjAAH/AwAB/wMAAf8DAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFisAAf8DAAH/AwAB Az0BaCMAAf8DAAH/AwAB/wMAAf8DAAH/AzMBUCMAAf8DAAH/AwAB/wMAAf8DAAH/HAADVwHxAwAB/wMA
/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/0sAAf8DAAH/AwAB Af8DEQEWKwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/DwAB/wMA
/wMAAf8DAAH/AxIB/jAAA1QBqwMAAf8DAAH/Az0BaB8AAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMzAVAf Af8DAAH/SwAB/wMAAf8DAAH/AwAB/wMAAf8DEgH+MAADVAGrAwAB/wMAAf8DPQFoHwAB/wMAAf8DAAH/
AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8cAANXAfEDAAH/AwAB/wMRARYkAANcAdkDAAH/AwAB/wMAAf83 AwAB/wMAAf8DAAH/AzMBUB8AAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFiQA
AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8PAAH/AwAB/wMAAf9HAAH/AwAB/wMAAf8D A1wB2QMAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/
AAH/AwAB/wMAAf8DAAH/AwAB/ywAA1QBqwMAAf8DAAH/Az0BaBsAAf8DAAH/AwAB/wMAAf8DVwHxAwAB AwAB/0cAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/LAADVAGrAwAB/wMAAf8DPQFoGwAB/wMA
/wMAAf8DMwFQGwAB/wMAAf8DAAH/AwAB/wMSAf4DAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFiMAAf8D Af8DAAH/AwAB/wNXAfEDAAH/AwAB/wMzAVAbAAH/AwAB/wMAAf8DAAH/AxIB/gMAAf8DAAH/HAADVwHx
AAH/AwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/DwAB/wMAAf8D AwAB/wMAAf8DEQEWIwAB/wMAAf8DAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/
AAH/JwAB/wMAAf8XAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/xcAAf8DWAG4DAADVAGrAwAB AwAB/wMAAf8PAAH/AwAB/wMAAf8nAAH/AwAB/xcAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8DAAH/
/wMAAf8DPQFoFwAB/wMAAf8DAAH/AwAB/wQAA1YBtQMAAf8DAAH/AzMBUBcAAf8DAAH/AwAB/wMAAf8E FwAB/wNYAbgMAANUAasDAAH/AwAB/wM9AWgXAAH/AwAB/wMAAf8DAAH/BAADVgG1AwAB/wMAAf8DMwFQ
AAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFhgAAzABSgMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB FwAB/wMAAf8DAAH/AwAB/wQAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DEQEWGAADMAFKAwAB/wMA
/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/ycAAf8DAAH/A1YB Af8DAAH/AwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/DwAB/wMA
sw8AAf8DAAH/AwAB/wMAAf8TAAH/AwAB/wMAAf8DEgH+DwAB/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8D Af8DAAH/JwAB/wMAAf8DVgGzDwAB/wMAAf8DAAH/AwAB/xMAAf8DAAH/AwAB/wMSAf4PAAH/AwAB/wMA
PQFoEwAB/wMAAf8DAAH/AwAB/wgAA1YBtQMAAf8DAAH/AzMBUAwAAwkBDAMAAf8DAAH/AwAB/wMAAf8I Af8MAANUAasDAAH/AwAB/wM9AWgTAAH/AwAB/wMAAf8DAAH/CAADVgG1AwAB/wMAAf8DMwFQDAADCQEM
AAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFhcAAf8DAAH/AwAB/wMAAf8DAAH/AyQB/QMAAf8D AwAB/wMAAf8DAAH/AwAB/wgAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DEQEWFwAB/wMAAf8DAAH/
AAH/NwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/JwAB/wMAAf8D AwAB/wMAAf8DJAH9AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8PAAH/
VgGzCwAB/wMAAf8DAAH/AwAB/xsAAf8DAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8MAANUAasDAAH/AwAB AwAB/wMAAf8nAAH/AwAB/wNWAbMLAAH/AwAB/wMAAf8DAAH/GwAB/wMAAf8DAAH/AwAB/wsAAf8DAAH/
/wM9AWgIAAM6AWADAAH/AwAB/wMAAf8DAAH/DAADVgG1AwAB/wMAAf8DMwFQCAADSwGMAwAB/wMAAf8D AwAB/wwAA1QBqwMAAf8DAAH/Az0BaAgAAzoBYAMAAf8DAAH/AwAB/wMAAf8MAANWAbUDAAH/AwAB/wMz
AAH/AwAB/wwAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DEQEWDAADBwEJAwAB/wMAAf8DAAH/AwAB AVAIAANLAYwDAAH/AwAB/wMAAf8DAAH/DAADNQH5AwAB/wMAAf8cAANXAfEDAAH/AwAB/wMRARYMAAMH
/wMAAf8HAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8PAAH/AwAB AQkDAAH/AwAB/wMAAf8DAAH/AwAB/wcAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsA
/wMAAf8nAAH/AwAB/wNWAbMHAAH/AwAB/wMAAf8DAAH/IwAB/wMAAf8DAAH/AwAB/wcAAf8DAAH/AwAB Af8DAAH/AwAB/w8AAf8DAAH/AwAB/ycAAf8DAAH/A1YBswcAAf8DAAH/AwAB/wMAAf8jAAH/AwAB/wMA
/wwAA1QBqwMAAf8DAAH/Az0BaAcAAf8DAAH/AwAB/wMAAf8DAAH/EAADVgG1AwAB/wMAAf8DMwFQBwAB Af8DAAH/BwAB/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8DPQFoBwAB/wMAAf8DAAH/AwAB/wMAAf8QAANW
/wMAAf8DAAH/AwAB/wMAAf8QAAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AxEBFgsAAf8DAAH/AwAB AbUDAAH/AwAB/wMzAVAHAAH/AwAB/wMAAf8DAAH/AwAB/xAAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMA
/wMAAf8DAAH/A08BmQsAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsAAf8DAAH/AwAB Af8DEQEWCwAB/wMAAf8DAAH/AwAB/wMAAf8DTwGZCwAB/wMAAf8DAAH/NwAB/wMAAf8DAAH/DwAB/wMA
/w8AAf8DAAH/AwAB/ycAAf8DAAH/A1YBswMAAf8DAAH/AwAB/wMAAf8rAAH/AwAB/wMAAf8DEgH+AwAB Af8DAAH/CwAB/wMAAf8DAAH/DwAB/wMAAf8DAAH/JwAB/wMAAf8DVgGzAwAB/wMAAf8DAAH/AwAB/ysA
/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8DPQFoAwAB/wMAAf8DAAH/AwAB/wMAAf8UAANWAbUDAAH/AwAB Af8DAAH/AwAB/wMSAf4DAAH/AwAB/wMAAf8MAANUAasDAAH/AwAB/wM9AWgDAAH/AwAB/wMAAf8DAAH/
/wMzAVADAAH/AwAB/wMAAf8DAAH/AwAB/xQAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DEQEWBwAB AwAB/xQAA1YBtQMAAf8DAAH/AzMBUAMAAf8DAAH/AwAB/wMAAf8DAAH/FAADNQH5AwAB/wMAAf8cAANX
/wMAAf8DAAH/AwAB/wMAAf8TAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB AfEDAAH/AwAB/wMRARYHAAH/AwAB/wMAAf8DAAH/AwAB/xMAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8A
/wMAAf8PAAH/AwAB/wMAAf8nAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8zAAH/AwAB/wMAAf8DAAH/AwAB Af8DAAH/AwAB/wsAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/ycAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/zMA
/wMAAf8MAANUAasDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DTQH0GAADVgG1AwAB/wMAAf8DAAH/AwAB Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wwAA1QBqwMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNNAfQYAANW
/wMAAf8DAAH/A10B7BgAAzUB+QMAAf8DAAH/HAADVwHxAwAB/wMAAf8DYQHrAwAB/wMAAf8DAAH/AwAB AbUDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DXQHsGAADNQH5AwAB/wMAAf8cAANXAfEDAAH/AwAB/wNh
/wNNAfQXAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8PAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8PAAH/AwAB AesDAAH/AwAB/wMAAf8DAAH/A00B9BcAAf8DAAH/AwAB/zcAAf8DAAH/AwAB/w8AAf8DAAH/AwAB/wsA
/wMAAf8nAAH/AwAB/wMAAf8DAAH/AwAB/zsAAf8DAAH/AwAB/wMAAf8DAAH/DAADVAGrAwAB/wMAAf8D Af8DAAH/AwAB/w8AAf8DAAH/AwAB/ycAAf8DAAH/AwAB/wMAAf8DAAH/OwAB/wMAAf8DAAH/AwAB/wMA
AAH/AwAB/wMAAf8DQwF3HAADVgG1AwAB/wMAAf8DAAH/AwAB/wMAAf8DMAFMHAADNQH5AwAB/wMAAf8c Af8MAANUAasDAAH/AwAB/wMAAf8DAAH/AwAB/wNDAXccAANWAbUDAAH/AwAB/wMAAf8DAAH/AwAB/wMw
AANXAfEDAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8fAAH/AwAB/wMAAf83AAH/AwAB/wMAAf8DKgFAAyoB AUwcAAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/x8AAf8DAAH/AwAB/zcA
QAMqAUADAAH/AwAB/wMAAf8LAAH/AwAB/wMAAf8DKgFAAyoBQAMqAUADAAH/AwAB/wMAAf8nAAH/AwAB Af8DAAH/AwAB/wMqAUADKgFAAyoBQAMAAf8DAAH/AwAB/wsAAf8DAAH/AwAB/wMqAUADKgFAAyoBQAMA
/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8bAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB Af8DAAH/AwAB/ycAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xsAAf8DAAH/AwAB/wMA
/wMAAf8MAANUAasDAAH/AwAB/wMAAf8DAAH/AwYBCCAAA1YBtgMAAf8DAAH/AwAB/wMAAf8DAgEDIAAD Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wwAA1QBqwMAAf8DAAH/AwAB/wMAAf8DBgEIIAADVgG2AwAB/wMA
NQH5AwAB/wMAAf8cAANXAfEDAAH/AwAB/wMAAf8DAAH/AwAB/yMAAf8DAAH/AwAB/zcAAf8DAAH/AwAB Af8DAAH/AwAB/wMCAQMgAAM1AfkDAAH/AwAB/xwAA1cB8QMAAf8DAAH/AwAB/wMAAf8DAAH/IwAB/wMA
/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wsAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB Af8DAAH/NwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/CwAB/wMAAf8DAAH/AwAB/wMA
/ycAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xQAA0wBkAMAAf8DAAH/AwAB/wMAAf8D Af8DAAH/AwAB/wMAAf8DAAH/JwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/FAADTAGQ
AAH/AwAB/wMAAf8DAAH/AwAB/xMAAf8DAAH/AwAB/y8AAf8DAAH/AwAB/ygAAzYBWAMAAf8DAAH/IwAB AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/EwAB/wMAAf8DAAH/LwAB/wMAAf8DAAH/
/wMAAf8DAAH/Aw0BESQAA1UBrQMAAf8DAAH/OwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/xMAAf8D KAADNgFYAwAB/wMAAf8jAAH/AwAB/wMAAf8DDQERJAADVQGtAwAB/wMAAf87AAH/AwAB/wMAAf8DAAH/
AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8sAANaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvwNaAb8DFQEcGAAD AwAB/wMAAf8DAAH/EwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/ywAA1oBvwNaAb8DWgG/A1oBvwNa
TwGZA1oBvwNaAb8DWgG/A1oBvwNaAb8DWgG/A1oBvxgAA04BlzQAA0sBjTAAAwwBDygAA1ABmjAAAygB Ab8DWgG/A1oBvwMVARwYAANPAZkDWgG/A1oBvwNaAb8DWgG/A1oBvwNaAb8DWgG/GAADTgGXNAADSwGN
PEAAAzgBWwNaAb8DWgG/A1oBvwMwAUwYAANEAXoDWgG/A1oBvwNaAb8DIAEtHAABQgFNAT4HAAE+AwAB MAADDAEPKAADUAGaMAADKAE8QAADOAFbA1oBvwNaAb8DWgG/AzABTBgAA0QBegNaAb8DWgG/A1oBvwMg
KAMAAXwDAAEwAwABAQEAAQEGAAEDFgAD/wEAAf8B4AEHAf8B+AE/Av8B4AIAAXgEAAH/AcABAQH/AfgB AS0cAAFCAU0BPgcAAT4DAAEoAwABfAMAATADAAEBAQABAQYAAQMWAAP/AQAB/wHgAQcB/wH4AT8C/wHg
HwL/AcACAAF4BAAB/wGDAeAB/wH5AQcC/wHAAgABOAQAAf8BjwH4AX8B+QGBAv8BxwH/Af4BOAQAAv8B AgABeAQAAf8BwAEBAf8B+AEfAv8BwAIAAXgEAAH/AYMB4AH/AfkBBwL/AcACAAE4BAAB/wGPAfgBfwH5
/AE/AfkB4AL/AccB/wH+ATgEAAL/Af4BHwH5AfgBPwH/AccB/wH+ATgEAAP/AR8B+QH8AQ8B/wHHAf8B AYEC/wHHAf8B/gE4BAAC/wH8AT8B+QHgAv8BxwH/Af4BOAQAAv8B/gEfAfkB+AE/Af8BxwH/Af4BOAQA
/gE4BAAD/wGPAfkB/wEHAf8BxwH/Af4BOAQAA/8BjwH5Af8BgQH/AccB/wH+ATgEAAP/AY8B+QH/AeAB A/8BHwH5AfwBDwH/AccB/wH+ATgEAAP/AY8B+QH/AQcB/wHHAf8B/gE4BAAD/wGPAfkB/wGBAf8BxwH/
/wHHAf8B/gE4BAAD/wHPAfkB/wH4AX8BxwH/Af4BOAQAA/8BzwH5Af8B/AF/AccB/wH+ATgEAAP/Ac8B Af4BOAQAA/8BjwH5Af8B4AH/AccB/wH+ATgEAAP/Ac8B+QH/AfgBfwHHAf8B/gE4BAAD/wHPAfkB/wH8
+QH/AfgBfwHHAf8B/gE4BAAB8AEPAf8BjwH5Af8B4AF/AccB/wH+ATgEAAHgAQcB/wGPAfkB/wHBAf8B AX8BxwH/Af4BOAQAA/8BzwH5Af8B+AF/AccB/wH+ATgEAAHwAQ8B/wGPAfkB/wHgAX8BxwH/Af4BOAQA
xwH/Af4BOAQAAeABBwH/AY8B+QH/AQcB/wHHAf8B/gE4BAAB4wGHAf8BHwH5AfwBDwH/AccB/wH+ATgE AeABBwH/AY8B+QH/AcEB/wHHAf8B/gE4BAAB4AEHAf8BjwH5Af8BBwH/AccB/wH+ATgEAAHjAYcB/wEf
AAHjAQ8B/wEfAfkB+AE/Af8BxwH/Af4BOAQAAeIBHwH+AT8B+QHgAv8BxwH/Af4BOAQAAeABDwH4AT8B AfkB/AEPAf8BxwH/Af4BOAQAAeMBDwH/AR8B+QH4AT8B/wHHAf8B/gE4BAAB4gEfAf4BPwH5AeAC/wHH
+QGBAv8BxwH/Af4BOAQAAeABAwHgAf8B+QEHAv8BwAIAATgEAAHwAYABAQH/AfgBDwL/AcACAAF4BAAB Af8B/gE4BAAB4AEPAfgBPwH5AYEC/wHHAf8B/gE4BAAB4AEDAeAB/wH5AQcC/wHAAgABOAQAAfABgAEB
8wHgAQcB/wH4AT8C/wHgAgABeAQAAf8B/gE/Af8B/gP/AfgBAAEBAfgEAAHwAQcBwAEPAR8B/AF/AeMB Af8B+AEPAv8BwAIAAXgEAAHzAeABBwH/AfgBPwL/AeACAAF4BAAB/wH+AT8B/wH+A/8B+AEAAQEB+AQA
/AF/AeMB/wHwAR4BAwLwAQcBwAEOAQ8B+AE/AeMB+AEfAeMB/wHgAQwBAQLwAX8B/gEOAQcB+AEfAeMB AfABBwHAAQ8BHwH8AX8B4wH8AX8B4wH/AfABHgEDAvABBwHAAQ4BDwH4AT8B4wH4AR8B4wH/AeABDAEB
+AEPAeMB/wHgAQwBAQLwAT8B/AEOAQEB+AEHAeMB+AEDAeMB/wHjAYwBcQLwAR8B+AEOAQAB+AEDAeMB AvABfwH+AQ4BBwH4AR8B4wH4AQ8B4wH/AeABDAEBAvABPwH8AQ4BAQH4AQcB4wH4AQMB4wH/AeMBjAFx
+AEBAeMB/wHjAYwBcQHwAfEBDwHwAY4BEAF4AUEB4wH4AWAB4wH/AeMBjAFxAfAB8QGHAeEBjgEYATgB AvABHwH4AQ4BAAH4AQMB4wH4AQEB4wH/AeMBjAFxAfAB8QEPAfABjgEQAXgBQQHjAfgBYAHjAf8B4wGM
YAHjAfgBcAEjAf8B4wGMAXEB8AHxAsMBjgEcARgBcAFjAfgBfAEDAf8B4wGMAXEB8AHzAeEBhwGOAR8B AXEB8AHxAYcB4QGOARgBOAFgAeMB+AFwASMB/wHjAYwBcQHwAfECwwGOARwBGAFwAWMB+AF8AQMB/wHj
CAF8ASMB+AF+AQMB/wHjAYwBcQHwAf8B8AEPAf4BHwGAAX4BAwH4AX8BgwH/AeMBjAFxAfAB/wH4AR8B AYwBcQHwAfMB4QGHAY4BHwEIAXwBIwH4AX4BAwH/AeMBjAFxAfAB/wHwAQ8B/gEfAYABfgEDAfgBfwGD
/gEfAcABfwEDAfgBfwHDAf8B4wGMAXEB8AH/AfwBPwH+AR8B4AF/AYMB+AF/AeMB/wHjAYwBcQHwAf8B Af8B4wGMAXEB8AH/AfgBHwH+AR8BwAF/AQMB+AF/AcMB/wHjAYwBcQHwAf8B/AE/Af4BHwHgAX8BgwH4
+AEfAf4BHwHAAX8BAwH4AX8BwwH/AeMBjAFxAfAB/wHwAQ8B/gEfAYABfgEDAfgBfwGDAf8B4wGMAXEB AX8B4wH/AeMBjAFxAfAB/wH4AR8B/gEfAcABfwEDAfgBfwHDAf8B4wGMAXEB8AH/AfABDwH+AR8BgAF+
8AHzAeEBhwHOAR8BCAF8ASMB+AF+AQMB/wHjAYwBcQHwAfECwwGOAR4BGAFwAWMB+AF8AQMB/wHjAYwB AQMB+AF/AYMB/wHjAYwBcQHwAfMB4QGHAc4BHwEIAXwBIwH4AX4BAwH/AeMBjAFxAfAB8QLDAY4BHgEY
cQHwAfEBhwHhAY4BGAE4AWAB4wH4AXABIwH/AeMBjAFxAfAB8QEPAfABjgEQAXgBQQHjAfgBYAFjAf8B AXABYwH4AXwBAwH/AeMBjAFxAfAB8QGHAeEBjgEYATgBYAHjAfgBcAEjAf8B4wGMAXEB8AHxAQ8B8AGO
4wGMAXEC8AEfAfgBDgEAAfgBAwHjAfgBQQHjAf8B4wGMAXEC8AE/AfwBDgEBAfgBBwHjAfgBAwHjAf8B ARABeAFBAeMB+AFgAWMB/wHjAYwBcQLwAR8B+AEOAQAB+AEDAeMB+AFBAeMB/wHjAYwBcQLwAT8B/AEO
4wGMAXEC8AF/Af4BDgEDAfgBDwHjAfgBDwHjAf8B4AEMAQEC8AEHAeABDgEHAfgBHwHjAfgBHwHjAf8B AQEB+AEHAeMB+AEDAeMB/wHjAYwBcQLwAX8B/gEOAQMB+AEPAeMB+AEPAeMB/wHgAQwBAQLwAQcB4AEO
4AEMAQEC8AEHAcABDwEfAfwBfwHjAfwBPwHjAf8B8AEeAQMB8AH4AQcB4AEfAb8B/gH/AfcB/gH/AfcB AQcB+AEfAeMB+AEfAeMB/wHgAQwBAQLwAQcBwAEPAR8B/AF/AeMB/AE/AeMB/wHwAR4BAwHwAfgBBwHg
/wH4AT8BBwHwCw== AR8BvwH+Af8B9wH+Af8B9wH/AfgBPwEHAfAWAAs=
</value> </value>
</data> </data>
<metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <data name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing">
<value>165, 17</value> <value>165, 17</value>
</metadata> </data>
<metadata name="spinePreviewFullScreenForm.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <data name="spinePreviewFullScreenForm.TrayLocation" type="System.Drawing.Point, System.Drawing">
<value>307, 18</value> <value>307, 18</value>
</metadata> </data>
<metadata name="wallpaperForm.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <data name="wallpaperForm.TrayLocation" type="System.Drawing.Point, System.Drawing">
<value>618, 18</value> <value>618, 18</value>
</metadata> </data>
</root> </root>

View File

@@ -117,38 +117,48 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<data name="tabPage_BaseInfo.Text" xml:space="preserve"> <data name="tabPage_Animation.Text" xml:space="preserve">
<value>Basic Information</value> <value>Animation</value>
</data>
<data name="toolStripMenuItem_RemoveAnimation.Text" xml:space="preserve">
<value>Remove</value>
</data>
<data name="tabPage_Render.Text" xml:space="preserve">
<value>Render</value>
</data>
<data name="tabPage_Slot.Text" xml:space="preserve">
<value>Slot</value>
</data>
<data name="tabPage_Skin.Text" xml:space="preserve">
<value>Skin</value>
</data> </data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="tabPage_Render.Size" type="System.Drawing.Size, System.Drawing"> <data name="tabPage_Render.Size" type="System.Drawing.Size, System.Drawing">
<value>263, 330</value> <value>263, 330</value>
</data> </data>
<data name="tabPage_Render.Text" xml:space="preserve"> <data name="tabPage_Transform.Text" xml:space="preserve">
<value>Render</value> <value>Transform</value>
</data> </data>
<data name="tabPage_Transform.Size" type="System.Drawing.Size, System.Drawing"> <data name="tabPage_Transform.Size" type="System.Drawing.Size, System.Drawing">
<value>263, 330</value> <value>263, 330</value>
</data> </data>
<data name="tabPage_Transform.Text" xml:space="preserve">
<value>Transform</value>
</data>
<data name="tabPage_Skin.Text" xml:space="preserve">
<value>Skin</value>
</data>
<data name="tabPage_Slot.Text" xml:space="preserve">
<value>Slot</value>
</data>
<data name="tabPage_Animation.Text" xml:space="preserve">
<value>Animation</value>
</data>
<data name="tabPage_Debug.Text" xml:space="preserve"> <data name="tabPage_Debug.Text" xml:space="preserve">
<value>Debug</value> <value>Debug</value>
</data> </data>
<data name="toolStripMenuItem_ReloadSkins.Text" xml:space="preserve">
<value>Reload skin</value>
</data>
<data name="propertyGrid_Render.Size" type="System.Drawing.Size, System.Drawing"> <data name="propertyGrid_Render.Size" type="System.Drawing.Size, System.Drawing">
<value>263, 330</value> <value>263, 330</value>
</data> </data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="toolStripMenuItem_RemoveAnimation.Size" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="propertyGrid_Transform.Size" type="System.Drawing.Size, System.Drawing"> <data name="propertyGrid_Transform.Size" type="System.Drawing.Size, System.Drawing">
<value>263, 330</value> <value>263, 330</value>
</data> </data>
<data name="tabPage_BaseInfo.Text" xml:space="preserve">
<value>Basic Information</value>
</data>
</root> </root>

View File

@@ -6,6 +6,7 @@ using SpineViewer.Natives;
using SpineViewer.Utils; using SpineViewer.Utils;
using SpineViewer.Spine.SpineExporter; using SpineViewer.Spine.SpineExporter;
using System.Configuration; using System.Configuration;
using SpineViewer.Utils.Localize;
namespace SpineViewer namespace SpineViewer
{ {

View File

@@ -1,5 +1,6 @@
using NLog; using NLog;
using SpineViewer.Utils; using SpineViewer.Utils;
using SpineViewer.Utils.Localize;
using System.Configuration; using System.Configuration;
using System.Diagnostics; using System.Diagnostics;
using System.Globalization; using System.Globalization;
@@ -7,7 +8,7 @@ using System.Reflection;
namespace SpineViewer namespace SpineViewer
{ {
internal static class Program internal static class Program
{ {
///// <summary> ///// <summary>
///// 程序路径 ///// 程序路径
@@ -46,13 +47,11 @@ namespace SpineViewer
InitializeLogConfiguration(); InitializeLogConfiguration();
logger.Info("Program Started"); logger.Info("Program Started");
// To customize application configuration such as set high DPI settings or default font, // To customize application configuration such as set high DPI settings or default font,
// see https://aka.ms/applicationconfiguration. // see https://aka.ms/applicationconfiguration.
ApplicationConfiguration.Initialize(); ApplicationConfiguration.Initialize();
LocalizeConfiguration.SetCulture(); LocalizeConfiguration.SetCulture();
logger.Info($"Culture info: {CultureInfo.CurrentCulture}");
try try
{ {
Application.Run(new SpineViewerForm() { Text = $"SpineViewer - v{Version}"}); Application.Run(new SpineViewerForm() { Text = $"SpineViewer - v{Version}"});

View File

@@ -60,6 +60,159 @@ namespace SpineViewer.Properties {
} }
} }
/// <summary>
/// Looks up a localized string similar to 自定义.
/// </summary>
internal static string categoryCustom {
get {
return ResourceManager.GetString("categoryCustom", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to [0] 导出.
/// </summary>
internal static string categoryExport {
get {
return ResourceManager.GetString("categoryExport", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to [1] 预览.
/// </summary>
internal static string categoryPreview {
get {
return ResourceManager.GetString("categoryPreview", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 相关联的 SpineListView.
/// </summary>
internal static string descAssociatedSpineListView {
get {
return ResourceManager.GetString("descAssociatedSpineListView", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 用于显示画面属性的属性页.
/// </summary>
internal static string descDisplayImageProperties {
get {
return ResourceManager.GetString("descDisplayImageProperties", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 背景颜色.
/// </summary>
internal static string displayBackgroundColor {
get {
return ResourceManager.GetString("displayBackgroundColor", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 画面中心点.
/// </summary>
internal static string displayCenter {
get {
return ResourceManager.GetString("displayCenter", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 水平翻转.
/// </summary>
internal static string displayFlipHorizontal {
get {
return ResourceManager.GetString("displayFlipHorizontal", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 垂直翻转.
/// </summary>
internal static string displayFlipVertical {
get {
return ResourceManager.GetString("displayFlipVertical", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 最大帧率.
/// </summary>
internal static string displayMaximumFrameRate {
get {
return ResourceManager.GetString("displayMaximumFrameRate", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 仅渲染选中.
/// </summary>
internal static string displayRenderSelected {
get {
return ResourceManager.GetString("displayRenderSelected", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 分辨率.
/// </summary>
internal static string displayResolution {
get {
return ResourceManager.GetString("displayResolution", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 旋转.
/// </summary>
internal static string displayRotation {
get {
return ResourceManager.GetString("displayRotation", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 显示坐标轴.
/// </summary>
internal static string displayShowAxis {
get {
return ResourceManager.GetString("displayShowAxis", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 缩放.
/// </summary>
internal static string displayZoom {
get {
return ResourceManager.GetString("displayZoom", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 已选择 .
/// </summary>
internal static string itemCountPrefix {
get {
return ResourceManager.GetString("itemCountPrefix", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 个文件.
/// </summary>
internal static string itemCountSuffix {
get {
return ResourceManager.GetString("itemCountSuffix", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to 语言已设为英语。立即重启应用程序吗?. /// Looks up a localized string similar to 语言已设为英语。立即重启应用程序吗?.
/// </summary> /// </summary>

View File

@@ -117,6 +117,58 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<data name="categoryCustom" xml:space="preserve">
<value>Custom</value>
</data>
<data name="categoryExport" xml:space="preserve">
<value>[0] Export</value>
</data>
<data name="categoryPreview" xml:space="preserve">
<value>[1] Preview</value>
</data>
<data name="descAssociatedSpineListView" xml:space="preserve">
<value>Associated SpineListView</value>
</data>
<data name="descDisplayImageProperties" xml:space="preserve">
<value>Property page for displaying image properties</value>
</data>
<data name="displayBackgroundColor" xml:space="preserve">
<value>Background color</value>
</data>
<data name="displayCenter" xml:space="preserve">
<value>Center point of screen</value>
</data>
<data name="displayFlipHorizontal" xml:space="preserve">
<value>Flip horizontal</value>
</data>
<data name="displayFlipVertical" xml:space="preserve">
<value>Flip vertical</value>
</data>
<data name="displayMaximumFrameRate" xml:space="preserve">
<value>Maximum frame rate</value>
</data>
<data name="displayRenderSelected" xml:space="preserve">
<value>Render selected only</value>
</data>
<data name="displayResolution" xml:space="preserve">
<value>Resolution</value>
</data>
<data name="displayRotation" xml:space="preserve">
<value>Rotation</value>
</data>
<data name="displayShowAxis" xml:space="preserve">
<value>Show axis</value>
</data>
<data name="displayZoom" xml:space="preserve">
<value>Zoom</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="itemCountPrefix" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
<data name="itemCountSuffix" xml:space="preserve">
<value> item(s) selected.</value>
</data>
<data name="restartPrompt" xml:space="preserve"> <data name="restartPrompt" xml:space="preserve">
<value>Language set to Simplified Chinese. Restart application now?</value> <value>Language set to Simplified Chinese. Restart application now?</value>
</data> </data>

View File

@@ -117,6 +117,57 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<data name="categoryCustom" xml:space="preserve">
<value>自定义</value>
</data>
<data name="categoryExport" xml:space="preserve">
<value>[0] 导出</value>
</data>
<data name="categoryPreview" xml:space="preserve">
<value>[1] 预览</value>
</data>
<data name="descAssociatedSpineListView" xml:space="preserve">
<value>相关联的 SpineListView</value>
</data>
<data name="descDisplayImageProperties" xml:space="preserve">
<value>用于显示画面属性的属性页</value>
</data>
<data name="displayBackgroundColor" xml:space="preserve">
<value>背景颜色</value>
</data>
<data name="displayCenter" xml:space="preserve">
<value>画面中心点</value>
</data>
<data name="displayFlipHorizontal" xml:space="preserve">
<value>水平翻转</value>
</data>
<data name="displayFlipVertical" xml:space="preserve">
<value>垂直翻转</value>
</data>
<data name="displayMaximumFrameRate" xml:space="preserve">
<value>最大帧率</value>
</data>
<data name="displayRenderSelected" xml:space="preserve">
<value>仅渲染选中</value>
</data>
<data name="displayResolution" xml:space="preserve">
<value>分辨率</value>
</data>
<data name="displayRotation" xml:space="preserve">
<value>旋转</value>
</data>
<data name="displayShowAxis" xml:space="preserve">
<value>显示坐标轴</value>
</data>
<data name="displayZoom" xml:space="preserve">
<value>缩放</value>
</data>
<data name="itemCountPrefix" xml:space="preserve">
<value>已选择 </value>
</data>
<data name="itemCountSuffix" xml:space="preserve">
<value> 个文件</value>
</data>
<data name="restartPrompt" xml:space="preserve"> <data name="restartPrompt" xml:space="preserve">
<value>语言已设为英语。立即重启应用程序吗?</value> <value>语言已设为英语。立即重启应用程序吗?</value>
</data> </data>

View File

@@ -49,6 +49,9 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<EmbeddedResource Update="Controls\SpinePreviewPanel.resx">
<Generator></Generator>
</EmbeddedResource>
<EmbeddedResource Update="Properties\Resources.resx"> <EmbeddedResource Update="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator> <Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput> <LastGenOutput>Resources.Designer.cs</LastGenOutput>