forked from mirrors/NBTExplorer
Fixed unicode bug, fixed byte array create bug, improved dialogs, byte/int arrays are now editable.
This commit is contained in:
parent
837bf206ec
commit
6781be7b2f
22 changed files with 1475 additions and 404 deletions
7
About.Designer.cs
generated
7
About.Designer.cs
generated
|
@ -42,9 +42,10 @@
|
||||||
this.linkLabel1.Name = "linkLabel1";
|
this.linkLabel1.Name = "linkLabel1";
|
||||||
this.linkLabel1.Size = new System.Drawing.Size(245, 120);
|
this.linkLabel1.Size = new System.Drawing.Size(245, 120);
|
||||||
this.linkLabel1.TabIndex = 0;
|
this.linkLabel1.TabIndex = 0;
|
||||||
this.linkLabel1.Text = "NBTExplorer\r\nCopyright ©2011 Justin Aquadro\r\n\r\nNBTExplorer is based on NBTEdit by" +
|
this.linkLabel1.Text = "NBTExplorer\r\nCopyright ©2011-2012 Justin Aquadro\r\n\r\nNBTExplorer is based on NBTEd" +
|
||||||
" copyboy\r\nFugue icon set: p.yusukekamiyamane.com\r\n\r\nEmail: jaquadro@gmail.com\r\nN" +
|
"it by copyboy\r\nFugue icon set: p.yusukekamiyamane.com\r\n\r\nEmail: jaquadro@gmail.c" +
|
||||||
"BTExplorer Github Project Page";
|
"om\r\nNBTExplorer Github Project Page";
|
||||||
|
this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
|
||||||
//
|
//
|
||||||
// pictureBox1
|
// pictureBox1
|
||||||
//
|
//
|
||||||
|
|
5
About.cs
5
About.cs
|
@ -13,5 +13,10 @@ namespace NBTExplorer
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void linkLabel1_LinkClicked (object sender, LinkLabelLinkClickedEventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -121,7 +121,7 @@
|
||||||
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41Ljg3O4Bd
|
YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAAZdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41Ljg3O4Bd
|
||||||
AAAGm0lEQVR4Xu2dS3LbQAwFvcpZcoDcJtscRIfIfZ2wJLkklVzToPCGpN0Lr/gEgDONh5Gsz9vpdHrz
|
AAAGm0lEQVR4Xu2dS3LbQAwFvcpZcoDcJtscRIfIfZ2wJLkklVzToPCGpN0Lr/gEgDONh5Gsz9vpdHrz
|
||||||
j63B3z8/38mf63l6E6pCYxGoFo1gCVapsQSLOfvSWKWF/e6dKFiCFWkYwRIswSqcHROTKLIBiUL3EFPH
|
j63B3z8/38mf63l6E6pCYxGoFo1gCVapsQSLOfvSWKWF/e6dKFiCFWkYwRIswSqcHROTKLIBiUL3EFPH
|
||||||
0rEiDSNYgiVYjkLeBVuPQx2L71Wks7cGIJVfsAQr0jCCJViC5RmLd0FqxNG4Ohbfq0hn0406mk6wBCvS
|
0rEiDSNYgiVYjkLeBVuPQx2L71Wks7cGIJVfsAQr0jCCJViC5RmLd0FqxNG4Ohbfq0hn0406mk6wBCvS
|
||||||
|
|
126
CreateNode.Designer.cs
generated
Normal file
126
CreateNode.Designer.cs
generated
Normal file
|
@ -0,0 +1,126 @@
|
||||||
|
namespace NBTExplorer
|
||||||
|
{
|
||||||
|
partial class CreateNode
|
||||||
|
{
|
||||||
|
/// <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._sizeField = new System.Windows.Forms.TextBox();
|
||||||
|
this._sizeFieldLabel = new System.Windows.Forms.Label();
|
||||||
|
this._nameFieldLabel = new System.Windows.Forms.Label();
|
||||||
|
this._nameField = new System.Windows.Forms.TextBox();
|
||||||
|
this._buttonCancel = new System.Windows.Forms.Button();
|
||||||
|
this._buttonOK = new System.Windows.Forms.Button();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// _sizeField
|
||||||
|
//
|
||||||
|
this._sizeField.Location = new System.Drawing.Point(56, 26);
|
||||||
|
this._sizeField.Name = "_sizeField";
|
||||||
|
this._sizeField.Size = new System.Drawing.Size(67, 20);
|
||||||
|
this._sizeField.TabIndex = 7;
|
||||||
|
//
|
||||||
|
// _sizeFieldLabel
|
||||||
|
//
|
||||||
|
this._sizeFieldLabel.AutoSize = true;
|
||||||
|
this._sizeFieldLabel.Location = new System.Drawing.Point(12, 29);
|
||||||
|
this._sizeFieldLabel.Name = "_sizeFieldLabel";
|
||||||
|
this._sizeFieldLabel.Size = new System.Drawing.Size(30, 13);
|
||||||
|
this._sizeFieldLabel.TabIndex = 6;
|
||||||
|
this._sizeFieldLabel.Text = "Size:";
|
||||||
|
//
|
||||||
|
// _nameFieldLabel
|
||||||
|
//
|
||||||
|
this._nameFieldLabel.AutoSize = true;
|
||||||
|
this._nameFieldLabel.Location = new System.Drawing.Point(12, 9);
|
||||||
|
this._nameFieldLabel.Name = "_nameFieldLabel";
|
||||||
|
this._nameFieldLabel.Size = new System.Drawing.Size(38, 13);
|
||||||
|
this._nameFieldLabel.TabIndex = 5;
|
||||||
|
this._nameFieldLabel.Text = "Name:";
|
||||||
|
//
|
||||||
|
// _nameField
|
||||||
|
//
|
||||||
|
this._nameField.Location = new System.Drawing.Point(56, 6);
|
||||||
|
this._nameField.Name = "_nameField";
|
||||||
|
this._nameField.Size = new System.Drawing.Size(209, 20);
|
||||||
|
this._nameField.TabIndex = 4;
|
||||||
|
//
|
||||||
|
// _buttonCancel
|
||||||
|
//
|
||||||
|
this._buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this._buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
|
this._buttonCancel.Location = new System.Drawing.Point(109, 57);
|
||||||
|
this._buttonCancel.Name = "_buttonCancel";
|
||||||
|
this._buttonCancel.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this._buttonCancel.TabIndex = 9;
|
||||||
|
this._buttonCancel.Text = "Cancel";
|
||||||
|
this._buttonCancel.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// _buttonOK
|
||||||
|
//
|
||||||
|
this._buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this._buttonOK.Location = new System.Drawing.Point(190, 57);
|
||||||
|
this._buttonOK.Name = "_buttonOK";
|
||||||
|
this._buttonOK.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this._buttonOK.TabIndex = 8;
|
||||||
|
this._buttonOK.Text = "OK";
|
||||||
|
this._buttonOK.UseVisualStyleBackColor = true;
|
||||||
|
this._buttonOK.Click += new System.EventHandler(this._buttonOK_Click);
|
||||||
|
//
|
||||||
|
// CreateNode
|
||||||
|
//
|
||||||
|
this.AcceptButton = this._buttonOK;
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.CancelButton = this._buttonCancel;
|
||||||
|
this.ClientSize = new System.Drawing.Size(277, 92);
|
||||||
|
this.Controls.Add(this._buttonCancel);
|
||||||
|
this.Controls.Add(this._buttonOK);
|
||||||
|
this.Controls.Add(this._sizeField);
|
||||||
|
this.Controls.Add(this._sizeFieldLabel);
|
||||||
|
this.Controls.Add(this._nameFieldLabel);
|
||||||
|
this.Controls.Add(this._nameField);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||||
|
this.MaximizeBox = false;
|
||||||
|
this.MinimizeBox = false;
|
||||||
|
this.Name = "CreateNode";
|
||||||
|
this.ShowIcon = false;
|
||||||
|
this.ShowInTaskbar = false;
|
||||||
|
this.Text = "Create Tag...";
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.TextBox _sizeField;
|
||||||
|
private System.Windows.Forms.Label _sizeFieldLabel;
|
||||||
|
private System.Windows.Forms.Label _nameFieldLabel;
|
||||||
|
private System.Windows.Forms.TextBox _nameField;
|
||||||
|
private System.Windows.Forms.Button _buttonCancel;
|
||||||
|
private System.Windows.Forms.Button _buttonOK;
|
||||||
|
}
|
||||||
|
}
|
182
CreateNode.cs
Normal file
182
CreateNode.cs
Normal file
|
@ -0,0 +1,182 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Text;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using Substrate.Nbt;
|
||||||
|
|
||||||
|
namespace NBTExplorer
|
||||||
|
{
|
||||||
|
public partial class CreateNode : Form
|
||||||
|
{
|
||||||
|
private string _name;
|
||||||
|
private int _size;
|
||||||
|
private TagType _type;
|
||||||
|
private TagNode _tag;
|
||||||
|
|
||||||
|
private bool _hasName;
|
||||||
|
|
||||||
|
private List<string> _invalidNames = new List<string>();
|
||||||
|
|
||||||
|
public CreateNode (TagType tagType)
|
||||||
|
: this(tagType, true)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
public CreateNode (TagType tagType, bool hasName)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
_type = tagType;
|
||||||
|
_hasName = hasName;
|
||||||
|
|
||||||
|
SetNameBoxState();
|
||||||
|
SetSizeBoxState();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetNameBoxState ()
|
||||||
|
{
|
||||||
|
if (HasName) {
|
||||||
|
_nameFieldLabel.Enabled = true;
|
||||||
|
_nameField.Enabled = true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
_nameFieldLabel.Enabled = false;
|
||||||
|
_nameField.Enabled = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetSizeBoxState ()
|
||||||
|
{
|
||||||
|
if (IsTagSizedType) {
|
||||||
|
_sizeFieldLabel.Enabled = true;
|
||||||
|
_sizeField.Enabled = true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
_sizeFieldLabel.Enabled = false;
|
||||||
|
_sizeField.Enabled = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string TagName
|
||||||
|
{
|
||||||
|
get { return _name; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public TagNode TagNode
|
||||||
|
{
|
||||||
|
get { return _tag; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<string> InvalidNames
|
||||||
|
{
|
||||||
|
get { return _invalidNames; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool HasName
|
||||||
|
{
|
||||||
|
get { return _hasName; }
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Apply ()
|
||||||
|
{
|
||||||
|
if (ValidateInput()) {
|
||||||
|
_tag = CreateTag();
|
||||||
|
|
||||||
|
DialogResult = DialogResult.OK;
|
||||||
|
Close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private TagNode CreateTag ()
|
||||||
|
{
|
||||||
|
switch (_type) {
|
||||||
|
case TagType.TAG_BYTE:
|
||||||
|
return new TagNodeByte();
|
||||||
|
case TagType.TAG_BYTE_ARRAY:
|
||||||
|
return new TagNodeByteArray(new byte[_size]);
|
||||||
|
case TagType.TAG_COMPOUND:
|
||||||
|
return new TagNodeCompound();
|
||||||
|
case TagType.TAG_DOUBLE:
|
||||||
|
return new TagNodeDouble();
|
||||||
|
case TagType.TAG_FLOAT:
|
||||||
|
return new TagNodeFloat();
|
||||||
|
case TagType.TAG_INT:
|
||||||
|
return new TagNodeInt();
|
||||||
|
case TagType.TAG_INT_ARRAY:
|
||||||
|
return new TagNodeIntArray(new int[_size]);
|
||||||
|
case TagType.TAG_LIST:
|
||||||
|
return new TagNodeList(TagType.TAG_BYTE);
|
||||||
|
case TagType.TAG_LONG:
|
||||||
|
return new TagNodeLong();
|
||||||
|
case TagType.TAG_SHORT:
|
||||||
|
return new TagNodeShort();
|
||||||
|
case TagType.TAG_STRING:
|
||||||
|
return new TagNodeString();
|
||||||
|
default:
|
||||||
|
return new TagNodeByte();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool ValidateInput ()
|
||||||
|
{
|
||||||
|
return ValidateNameInput()
|
||||||
|
&& ValidateSizeInput();
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool ValidateNameInput ()
|
||||||
|
{
|
||||||
|
if (!HasName)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
string text = _nameField.Text.Trim();
|
||||||
|
if (String.IsNullOrEmpty(text)) {
|
||||||
|
MessageBox.Show("You must provide a nonempty name.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_invalidNames.Contains(text)) {
|
||||||
|
MessageBox.Show("Duplicate name provided.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
_name = _nameField.Text.Trim();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool ValidateSizeInput ()
|
||||||
|
{
|
||||||
|
if (!IsTagSizedType)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if (!Int32.TryParse(_sizeField.Text.Trim(), out _size)) {
|
||||||
|
MessageBox.Show("Size must be a valid integer value.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
_size = Math.Max(0, _size);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool IsTagSizedType
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
switch (_type) {
|
||||||
|
case TagType.TAG_BYTE_ARRAY:
|
||||||
|
case TagType.TAG_INT_ARRAY:
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void _buttonOK_Click (object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Apply();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
120
CreateNode.resx
Normal file
120
CreateNode.resx
Normal 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=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>
|
||||||
|
</root>
|
91
EditName.Designer.cs
generated
Normal file
91
EditName.Designer.cs
generated
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
namespace NBTExplorer
|
||||||
|
{
|
||||||
|
partial class EditName
|
||||||
|
{
|
||||||
|
/// <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._nameField = new System.Windows.Forms.TextBox();
|
||||||
|
this._buttonCancel = new System.Windows.Forms.Button();
|
||||||
|
this._buttonOK = new System.Windows.Forms.Button();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// _nameField
|
||||||
|
//
|
||||||
|
this._nameField.Location = new System.Drawing.Point(12, 10);
|
||||||
|
this._nameField.Name = "_nameField";
|
||||||
|
this._nameField.Size = new System.Drawing.Size(196, 20);
|
||||||
|
this._nameField.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// _buttonCancel
|
||||||
|
//
|
||||||
|
this._buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this._buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
|
this._buttonCancel.Location = new System.Drawing.Point(52, 37);
|
||||||
|
this._buttonCancel.Name = "_buttonCancel";
|
||||||
|
this._buttonCancel.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this._buttonCancel.TabIndex = 11;
|
||||||
|
this._buttonCancel.Text = "Cancel";
|
||||||
|
this._buttonCancel.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// _buttonOK
|
||||||
|
//
|
||||||
|
this._buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this._buttonOK.Location = new System.Drawing.Point(133, 37);
|
||||||
|
this._buttonOK.Name = "_buttonOK";
|
||||||
|
this._buttonOK.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this._buttonOK.TabIndex = 10;
|
||||||
|
this._buttonOK.Text = "OK";
|
||||||
|
this._buttonOK.UseVisualStyleBackColor = true;
|
||||||
|
this._buttonOK.Click += new System.EventHandler(this._buttonOK_Click);
|
||||||
|
//
|
||||||
|
// EditName
|
||||||
|
//
|
||||||
|
this.AcceptButton = this._buttonOK;
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.CancelButton = this._buttonCancel;
|
||||||
|
this.ClientSize = new System.Drawing.Size(220, 72);
|
||||||
|
this.Controls.Add(this._buttonCancel);
|
||||||
|
this.Controls.Add(this._buttonOK);
|
||||||
|
this.Controls.Add(this._nameField);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||||
|
this.KeyPreview = true;
|
||||||
|
this.MaximizeBox = false;
|
||||||
|
this.MinimizeBox = false;
|
||||||
|
this.Name = "EditName";
|
||||||
|
this.Text = "Edit Name...";
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.TextBox _nameField;
|
||||||
|
private System.Windows.Forms.Button _buttonCancel;
|
||||||
|
private System.Windows.Forms.Button _buttonOK;
|
||||||
|
}
|
||||||
|
}
|
71
EditName.cs
Normal file
71
EditName.cs
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Text;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using Substrate.Nbt;
|
||||||
|
|
||||||
|
namespace NBTExplorer
|
||||||
|
{
|
||||||
|
public partial class EditName : Form
|
||||||
|
{
|
||||||
|
private string _name;
|
||||||
|
|
||||||
|
private List<string> _invalidNames = new List<string>();
|
||||||
|
|
||||||
|
public EditName (String name)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
_name = name;
|
||||||
|
|
||||||
|
_nameField.Text = _name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String TagName
|
||||||
|
{
|
||||||
|
get { return _name; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<string> InvalidNames
|
||||||
|
{
|
||||||
|
get { return _invalidNames; }
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Apply ()
|
||||||
|
{
|
||||||
|
if (ValidateInput()) {
|
||||||
|
DialogResult = DialogResult.OK;
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool ValidateInput ()
|
||||||
|
{
|
||||||
|
return ValidateNameInput();
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool ValidateNameInput ()
|
||||||
|
{
|
||||||
|
string text = _nameField.Text.Trim();
|
||||||
|
if (String.IsNullOrEmpty(text)) {
|
||||||
|
MessageBox.Show("You must provide a nonempty name.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_invalidNames.Contains(text)) {
|
||||||
|
MessageBox.Show("Duplicate name provided.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
_name = _nameField.Text.Trim();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void _buttonOK_Click (object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Apply();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
120
EditName.resx
Normal file
120
EditName.resx
Normal 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=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>
|
||||||
|
</root>
|
92
EditString.Designer.cs
generated
Normal file
92
EditString.Designer.cs
generated
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
namespace NBTExplorer
|
||||||
|
{
|
||||||
|
partial class EditString
|
||||||
|
{
|
||||||
|
/// <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._stringField = new System.Windows.Forms.TextBox();
|
||||||
|
this._buttonCancel = new System.Windows.Forms.Button();
|
||||||
|
this._buttonOK = new System.Windows.Forms.Button();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// _stringField
|
||||||
|
//
|
||||||
|
this._stringField.Location = new System.Drawing.Point(12, 12);
|
||||||
|
this._stringField.Multiline = true;
|
||||||
|
this._stringField.Name = "_stringField";
|
||||||
|
this._stringField.Size = new System.Drawing.Size(331, 116);
|
||||||
|
this._stringField.TabIndex = 4;
|
||||||
|
//
|
||||||
|
// _buttonCancel
|
||||||
|
//
|
||||||
|
this._buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this._buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
|
this._buttonCancel.Location = new System.Drawing.Point(187, 134);
|
||||||
|
this._buttonCancel.Name = "_buttonCancel";
|
||||||
|
this._buttonCancel.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this._buttonCancel.TabIndex = 9;
|
||||||
|
this._buttonCancel.Text = "Cancel";
|
||||||
|
this._buttonCancel.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// _buttonOK
|
||||||
|
//
|
||||||
|
this._buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this._buttonOK.Location = new System.Drawing.Point(268, 134);
|
||||||
|
this._buttonOK.Name = "_buttonOK";
|
||||||
|
this._buttonOK.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this._buttonOK.TabIndex = 8;
|
||||||
|
this._buttonOK.Text = "OK";
|
||||||
|
this._buttonOK.UseVisualStyleBackColor = true;
|
||||||
|
this._buttonOK.Click += new System.EventHandler(this._buttonOK_Click);
|
||||||
|
//
|
||||||
|
// EditString
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.CancelButton = this._buttonCancel;
|
||||||
|
this.ClientSize = new System.Drawing.Size(355, 169);
|
||||||
|
this.Controls.Add(this._buttonCancel);
|
||||||
|
this.Controls.Add(this._buttonOK);
|
||||||
|
this.Controls.Add(this._stringField);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||||
|
this.MaximizeBox = false;
|
||||||
|
this.MinimizeBox = false;
|
||||||
|
this.Name = "EditString";
|
||||||
|
this.ShowIcon = false;
|
||||||
|
this.ShowInTaskbar = false;
|
||||||
|
this.Text = "Edit String...";
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.TextBox _stringField;
|
||||||
|
private System.Windows.Forms.Button _buttonCancel;
|
||||||
|
private System.Windows.Forms.Button _buttonOK;
|
||||||
|
}
|
||||||
|
}
|
55
EditString.cs
Normal file
55
EditString.cs
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Text;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using Substrate.Nbt;
|
||||||
|
|
||||||
|
namespace NBTExplorer
|
||||||
|
{
|
||||||
|
public partial class EditString : Form
|
||||||
|
{
|
||||||
|
private string _string;
|
||||||
|
|
||||||
|
public EditString (string stringVal)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
_string = stringVal;
|
||||||
|
|
||||||
|
_stringField.Text = _string;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string StringValue
|
||||||
|
{
|
||||||
|
get { return _string; }
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Apply ()
|
||||||
|
{
|
||||||
|
if (ValidateInput()) {
|
||||||
|
DialogResult = DialogResult.OK;
|
||||||
|
Close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool ValidateInput ()
|
||||||
|
{
|
||||||
|
return ValidateStringInput();
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool ValidateStringInput ()
|
||||||
|
{
|
||||||
|
_string = _stringField.Text.Trim();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void _buttonOK_Click (object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Apply();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
120
EditString.resx
Normal file
120
EditString.resx
Normal 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=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>
|
||||||
|
</root>
|
39
EditValue.Designer.cs
generated
39
EditValue.Designer.cs
generated
|
@ -28,23 +28,50 @@
|
||||||
private void InitializeComponent ()
|
private void InitializeComponent ()
|
||||||
{
|
{
|
||||||
this.textBox1 = new System.Windows.Forms.TextBox();
|
this.textBox1 = new System.Windows.Forms.TextBox();
|
||||||
|
this._buttonCancel = new System.Windows.Forms.Button();
|
||||||
|
this._buttonOK = new System.Windows.Forms.Button();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// textBox1
|
// textBox1
|
||||||
//
|
//
|
||||||
this.textBox1.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.textBox1.Location = new System.Drawing.Point(12, 10);
|
||||||
this.textBox1.Location = new System.Drawing.Point(0, 0);
|
|
||||||
this.textBox1.Name = "textBox1";
|
this.textBox1.Name = "textBox1";
|
||||||
this.textBox1.Size = new System.Drawing.Size(246, 20);
|
this.textBox1.Size = new System.Drawing.Size(196, 20);
|
||||||
this.textBox1.TabIndex = 0;
|
this.textBox1.TabIndex = 0;
|
||||||
//
|
//
|
||||||
|
// _buttonCancel
|
||||||
|
//
|
||||||
|
this._buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this._buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
|
this._buttonCancel.Location = new System.Drawing.Point(52, 37);
|
||||||
|
this._buttonCancel.Name = "_buttonCancel";
|
||||||
|
this._buttonCancel.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this._buttonCancel.TabIndex = 11;
|
||||||
|
this._buttonCancel.Text = "Cancel";
|
||||||
|
this._buttonCancel.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// _buttonOK
|
||||||
|
//
|
||||||
|
this._buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this._buttonOK.Location = new System.Drawing.Point(133, 37);
|
||||||
|
this._buttonOK.Name = "_buttonOK";
|
||||||
|
this._buttonOK.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this._buttonOK.TabIndex = 10;
|
||||||
|
this._buttonOK.Text = "OK";
|
||||||
|
this._buttonOK.UseVisualStyleBackColor = true;
|
||||||
|
this._buttonOK.Click += new System.EventHandler(this._buttonOK_Click);
|
||||||
|
//
|
||||||
// EditValue
|
// EditValue
|
||||||
//
|
//
|
||||||
|
this.AcceptButton = this._buttonOK;
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(246, 20);
|
this.CancelButton = this._buttonCancel;
|
||||||
|
this.ClientSize = new System.Drawing.Size(220, 72);
|
||||||
|
this.Controls.Add(this._buttonCancel);
|
||||||
|
this.Controls.Add(this._buttonOK);
|
||||||
this.Controls.Add(this.textBox1);
|
this.Controls.Add(this.textBox1);
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||||
this.KeyPreview = true;
|
this.KeyPreview = true;
|
||||||
this.MaximizeBox = false;
|
this.MaximizeBox = false;
|
||||||
this.MinimizeBox = false;
|
this.MinimizeBox = false;
|
||||||
|
@ -58,5 +85,7 @@
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private System.Windows.Forms.TextBox textBox1;
|
private System.Windows.Forms.TextBox textBox1;
|
||||||
|
private System.Windows.Forms.Button _buttonCancel;
|
||||||
|
private System.Windows.Forms.Button _buttonOK;
|
||||||
}
|
}
|
||||||
}
|
}
|
92
EditValue.cs
92
EditValue.cs
|
@ -8,25 +8,14 @@ using Substrate.Nbt;
|
||||||
|
|
||||||
namespace NBTExplorer
|
namespace NBTExplorer
|
||||||
{
|
{
|
||||||
public enum EditValueType
|
|
||||||
{
|
|
||||||
Name,
|
|
||||||
Value,
|
|
||||||
}
|
|
||||||
|
|
||||||
public partial class EditValue : Form
|
public partial class EditValue : Form
|
||||||
{
|
{
|
||||||
private string _name;
|
|
||||||
private TagNode _tag;
|
private TagNode _tag;
|
||||||
private EditValueType _type;
|
|
||||||
|
|
||||||
private List<string> _invalidNames = new List<string>();
|
|
||||||
|
|
||||||
public EditValue (TagNode tag)
|
public EditValue (TagNode tag)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
_type = EditValueType.Value;
|
|
||||||
_tag = tag;
|
_tag = tag;
|
||||||
|
|
||||||
if (tag == null) {
|
if (tag == null) {
|
||||||
|
@ -35,78 +24,25 @@ namespace NBTExplorer
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetTitle();
|
|
||||||
|
|
||||||
textBox1.Text = _tag.ToString();
|
textBox1.Text = _tag.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public EditValue (string name)
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
|
|
||||||
_type = EditValueType.Name;
|
|
||||||
_name = name ?? "";
|
|
||||||
|
|
||||||
SetTitle();
|
|
||||||
|
|
||||||
textBox1.Text = _name.ToString();
|
|
||||||
}
|
|
||||||
|
|
||||||
public string NodeName
|
|
||||||
{
|
|
||||||
get { return _name; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public TagNode NodeTag
|
public TagNode NodeTag
|
||||||
{
|
{
|
||||||
get { return _tag; }
|
get { return _tag; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<string> InvalidNames
|
private void Apply ()
|
||||||
{
|
{
|
||||||
get { return _invalidNames; }
|
if (ValidateInput()) {
|
||||||
}
|
DialogResult = DialogResult.OK;
|
||||||
|
Close();
|
||||||
private void SetTitle ()
|
|
||||||
{
|
|
||||||
switch (_type) {
|
|
||||||
case EditValueType.Name:
|
|
||||||
base.Text = "Edit Name...";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case EditValueType.Value:
|
|
||||||
base.Text = "Edit Value...";
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool ValidateInput ()
|
private bool ValidateInput ()
|
||||||
{
|
{
|
||||||
switch (_type) {
|
return ValidateValueInput();
|
||||||
case EditValueType.Name:
|
|
||||||
return ValidateNameInput();
|
|
||||||
case EditValueType.Value:
|
|
||||||
return ValidateValueInput();
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private bool ValidateNameInput ()
|
|
||||||
{
|
|
||||||
string text = textBox1.Text.Trim();
|
|
||||||
if (String.IsNullOrEmpty(text)) {
|
|
||||||
MessageBox.Show("You must provide a nonempty name.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_invalidNames.Contains(text)) {
|
|
||||||
MessageBox.Show("Duplicate name provided.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
_name = textBox1.Text.Trim();
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool ValidateValueInput ()
|
private bool ValidateValueInput ()
|
||||||
|
@ -157,23 +93,9 @@ namespace NBTExplorer
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnKeyDown (KeyEventArgs e)
|
private void _buttonOK_Click (object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
switch (e.KeyCode) {
|
Apply();
|
||||||
case Keys.Escape:
|
|
||||||
DialogResult = DialogResult.Cancel;
|
|
||||||
Close();
|
|
||||||
return;
|
|
||||||
|
|
||||||
case Keys.Enter:
|
|
||||||
if (ValidateInput()) {
|
|
||||||
DialogResult = DialogResult.OK;
|
|
||||||
Close();
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
base.OnKeyDown(e);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,9 +112,9 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
</root>
|
</root>
|
7
Form1.Designer.cs
generated
7
Form1.Designer.cs
generated
|
@ -259,7 +259,7 @@
|
||||||
this.findToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("findToolStripMenuItem.Image")));
|
this.findToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("findToolStripMenuItem.Image")));
|
||||||
this.findToolStripMenuItem.Name = "findToolStripMenuItem";
|
this.findToolStripMenuItem.Name = "findToolStripMenuItem";
|
||||||
this.findToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F)));
|
this.findToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F)));
|
||||||
this.findToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
this.findToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||||
this.findToolStripMenuItem.Text = "Find...";
|
this.findToolStripMenuItem.Text = "Find...";
|
||||||
this.findToolStripMenuItem.Click += new System.EventHandler(this.findToolStripMenuItem_Click);
|
this.findToolStripMenuItem.Click += new System.EventHandler(this.findToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
|
@ -268,7 +268,7 @@
|
||||||
this.findNextToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("findNextToolStripMenuItem.Image")));
|
this.findNextToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("findNextToolStripMenuItem.Image")));
|
||||||
this.findNextToolStripMenuItem.Name = "findNextToolStripMenuItem";
|
this.findNextToolStripMenuItem.Name = "findNextToolStripMenuItem";
|
||||||
this.findNextToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F3;
|
this.findNextToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F3;
|
||||||
this.findNextToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
this.findNextToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||||
this.findNextToolStripMenuItem.Text = "Find Next";
|
this.findNextToolStripMenuItem.Text = "Find Next";
|
||||||
this.findNextToolStripMenuItem.Click += new System.EventHandler(this.findNextToolStripMenuItem_Click);
|
this.findNextToolStripMenuItem.Click += new System.EventHandler(this.findNextToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
|
@ -285,7 +285,7 @@
|
||||||
this.aboutToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("aboutToolStripMenuItem.Image")));
|
this.aboutToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("aboutToolStripMenuItem.Image")));
|
||||||
this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem";
|
this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem";
|
||||||
this.aboutToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F1;
|
this.aboutToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F1;
|
||||||
this.aboutToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
this.aboutToolStripMenuItem.Size = new System.Drawing.Size(126, 22);
|
||||||
this.aboutToolStripMenuItem.Text = "&About";
|
this.aboutToolStripMenuItem.Text = "&About";
|
||||||
this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click);
|
this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
|
@ -297,6 +297,7 @@
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this._nodeTree.ImageIndex = 0;
|
this._nodeTree.ImageIndex = 0;
|
||||||
this._nodeTree.ImageList = this.imageList1;
|
this._nodeTree.ImageList = this.imageList1;
|
||||||
|
this._nodeTree.ItemHeight = 18;
|
||||||
this._nodeTree.Location = new System.Drawing.Point(0, 49);
|
this._nodeTree.Location = new System.Drawing.Point(0, 49);
|
||||||
this._nodeTree.Margin = new System.Windows.Forms.Padding(0);
|
this._nodeTree.Margin = new System.Windows.Forms.Padding(0);
|
||||||
this._nodeTree.Name = "_nodeTree";
|
this._nodeTree.Name = "_nodeTree";
|
||||||
|
|
139
Form1.cs
139
Form1.cs
|
@ -99,7 +99,7 @@ namespace NBTExplorer
|
||||||
case TagType.TAG_FLOAT:
|
case TagType.TAG_FLOAT:
|
||||||
case TagType.TAG_DOUBLE:
|
case TagType.TAG_DOUBLE:
|
||||||
case TagType.TAG_STRING:
|
case TagType.TAG_STRING:
|
||||||
return tag.ToString();
|
return tag.ToString().Replace('\n', (char)0x00B6);
|
||||||
|
|
||||||
case TagType.TAG_BYTE_ARRAY:
|
case TagType.TAG_BYTE_ARRAY:
|
||||||
return tag.ToTagByteArray().Length + " bytes";
|
return tag.ToTagByteArray().Length + " bytes";
|
||||||
|
@ -910,9 +910,28 @@ namespace NBTExplorer
|
||||||
tag.GetTagType() == TagType.TAG_COMPOUND)
|
tag.GetTagType() == TagType.TAG_COMPOUND)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (tag.GetTagType() == TagType.TAG_BYTE_ARRAY) {
|
if (tag.GetTagType() == TagType.TAG_STRING) {
|
||||||
|
EditString form = new EditString(tag.ToTagString().Data);
|
||||||
|
if (form.ShowDialog() == DialogResult.OK) {
|
||||||
|
TreeNode baseNode = BaseNode(node);
|
||||||
|
if (baseNode != null) {
|
||||||
|
(baseNode.Tag as DataNode).Modified = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
tag.ToTagString().Data = form.StringValue;
|
||||||
|
node.Text = GetNodeText(node);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (tag.GetTagType() == TagType.TAG_BYTE_ARRAY) {
|
||||||
HexEditor form = new HexEditor(GetTagNodeName(node), tag.ToTagByteArray().Data);
|
HexEditor form = new HexEditor(GetTagNodeName(node), tag.ToTagByteArray().Data);
|
||||||
form.ShowDialog();
|
if (form.ShowDialog() == DialogResult.OK && form.Modified) {
|
||||||
|
TreeNode baseNode = BaseNode(node);
|
||||||
|
if (baseNode != null) {
|
||||||
|
(baseNode.Tag as DataNode).Modified = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Array.Copy(form.Data, tag.ToTagByteArray().Data, tag.ToTagByteArray().Length);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (tag.GetTagType() == TagType.TAG_INT_ARRAY) {
|
else if (tag.GetTagType() == TagType.TAG_INT_ARRAY) {
|
||||||
TagNodeIntArray iatag = tag.ToTagIntArray();
|
TagNodeIntArray iatag = tag.ToTagIntArray();
|
||||||
|
@ -923,7 +942,16 @@ namespace NBTExplorer
|
||||||
}
|
}
|
||||||
|
|
||||||
HexEditor form = new HexEditor(GetTagNodeName(node), data);
|
HexEditor form = new HexEditor(GetTagNodeName(node), data);
|
||||||
form.ShowDialog();
|
if (form.ShowDialog() == DialogResult.OK && form.Modified) {
|
||||||
|
TreeNode baseNode = BaseNode(node);
|
||||||
|
if (baseNode != null) {
|
||||||
|
(baseNode.Tag as DataNode).Modified = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < iatag.Length; i++) {
|
||||||
|
iatag.Data[i] = BitConverter.ToInt32(form.Data, i * 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
EditValue form = new EditValue(tag);
|
EditValue form = new EditValue(tag);
|
||||||
|
@ -961,11 +989,12 @@ namespace NBTExplorer
|
||||||
if (name == null)
|
if (name == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
EditValue form = new EditValue(name);
|
EditName form = new EditName(name);
|
||||||
|
|
||||||
TagNode parentTag = GetParentTagNode(node);
|
TagNode parentTag = GetParentTagNode(node);
|
||||||
foreach (string key in parentTag.ToTagCompound().Keys) {
|
foreach (string key in parentTag.ToTagCompound().Keys) {
|
||||||
form.InvalidNames.Add(key);
|
if (key != name)
|
||||||
|
form.InvalidNames.Add(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (form.ShowDialog() == DialogResult.OK) {
|
if (form.ShowDialog() == DialogResult.OK) {
|
||||||
|
@ -974,7 +1003,7 @@ namespace NBTExplorer
|
||||||
(baseNode.Tag as DataNode).Modified = true;
|
(baseNode.Tag as DataNode).Modified = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetTagNodeName(node, form.NodeName);
|
SetTagNodeName(node, form.TagName);
|
||||||
node.Text = GetNodeText(node);
|
node.Text = GetNodeText(node);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1004,47 +1033,10 @@ namespace NBTExplorer
|
||||||
tag.ToTagList().Count > 0)
|
tag.ToTagList().Count > 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
TagNode newNode = null;
|
|
||||||
switch (type) {
|
|
||||||
case TagType.TAG_BYTE:
|
|
||||||
newNode = new TagNodeByte();
|
|
||||||
break;
|
|
||||||
case TagType.TAG_SHORT:
|
|
||||||
newNode = new TagNodeShort();
|
|
||||||
break;
|
|
||||||
case TagType.TAG_INT:
|
|
||||||
newNode = new TagNodeInt();
|
|
||||||
break;
|
|
||||||
case TagType.TAG_LONG:
|
|
||||||
newNode = new TagNodeLong();
|
|
||||||
break;
|
|
||||||
case TagType.TAG_FLOAT:
|
|
||||||
newNode = new TagNodeFloat();
|
|
||||||
break;
|
|
||||||
case TagType.TAG_DOUBLE:
|
|
||||||
newNode = new TagNodeDouble();
|
|
||||||
break;
|
|
||||||
case TagType.TAG_BYTE_ARRAY:
|
|
||||||
newNode = new TagNodeByteArray();
|
|
||||||
break;
|
|
||||||
case TagType.TAG_STRING:
|
|
||||||
newNode = new TagNodeString();
|
|
||||||
break;
|
|
||||||
case TagType.TAG_LIST:
|
|
||||||
newNode = new TagNodeList(TagType.TAG_BYTE);
|
|
||||||
break;
|
|
||||||
case TagType.TAG_COMPOUND:
|
|
||||||
newNode = new TagNodeCompound();
|
|
||||||
break;
|
|
||||||
case TagType.TAG_INT_ARRAY:
|
|
||||||
newNode = new TagNodeIntArray();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tag is TagNodeCompound) {
|
if (tag is TagNodeCompound) {
|
||||||
TagNodeCompound ctag = tag as TagNodeCompound;
|
TagNodeCompound ctag = tag as TagNodeCompound;
|
||||||
|
|
||||||
EditValue form = new EditValue("");
|
CreateNode form = new CreateNode(type);
|
||||||
foreach (string key in ctag.Keys) {
|
foreach (string key in ctag.Keys) {
|
||||||
form.InvalidNames.Add(key);
|
form.InvalidNames.Add(key);
|
||||||
}
|
}
|
||||||
|
@ -1052,15 +1044,27 @@ namespace NBTExplorer
|
||||||
if (form.ShowDialog() != DialogResult.OK)
|
if (form.ShowDialog() != DialogResult.OK)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ctag.Add(form.NodeName, newNode);
|
ctag.Add(form.TagName, form.TagNode);
|
||||||
|
|
||||||
TreeNode tnode = NodeFromTag(newNode, form.NodeName);
|
TreeNode tnode = NodeFromTag(form.TagNode, form.TagName);
|
||||||
node.Nodes.Add(tnode);
|
node.Nodes.Add(tnode);
|
||||||
|
|
||||||
_nodeTree.SelectedNode = tnode;
|
_nodeTree.SelectedNode = tnode;
|
||||||
tnode.Expand();
|
tnode.Expand();
|
||||||
}
|
}
|
||||||
else if (tag is TagNodeList) {
|
else if (tag is TagNodeList) {
|
||||||
|
TagNode newNode;
|
||||||
|
if (TagIsSizedType(type)) {
|
||||||
|
CreateNode form = new CreateNode(type, false);
|
||||||
|
if (form.ShowDialog() != DialogResult.OK)
|
||||||
|
return;
|
||||||
|
|
||||||
|
newNode = form.TagNode;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
newNode = CreateDefaultTag(type);
|
||||||
|
}
|
||||||
|
|
||||||
TagNodeList ltag = tag as TagNodeList;
|
TagNodeList ltag = tag as TagNodeList;
|
||||||
if (ltag.ValueType != type)
|
if (ltag.ValueType != type)
|
||||||
ltag.ChangeValueType(type);
|
ltag.ChangeValueType(type);
|
||||||
|
@ -1082,6 +1086,47 @@ namespace NBTExplorer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private TagNode CreateDefaultTag (TagType type)
|
||||||
|
{
|
||||||
|
switch (type) {
|
||||||
|
case TagType.TAG_BYTE:
|
||||||
|
return new TagNodeByte();
|
||||||
|
case TagType.TAG_SHORT:
|
||||||
|
return new TagNodeShort();
|
||||||
|
case TagType.TAG_INT:
|
||||||
|
return new TagNodeInt();
|
||||||
|
case TagType.TAG_LONG:
|
||||||
|
return new TagNodeLong();
|
||||||
|
case TagType.TAG_FLOAT:
|
||||||
|
return new TagNodeFloat();
|
||||||
|
case TagType.TAG_DOUBLE:
|
||||||
|
return new TagNodeDouble();
|
||||||
|
case TagType.TAG_BYTE_ARRAY:
|
||||||
|
return new TagNodeByteArray(new byte[0]);
|
||||||
|
case TagType.TAG_STRING:
|
||||||
|
return new TagNodeString();
|
||||||
|
case TagType.TAG_LIST:
|
||||||
|
return new TagNodeList(TagType.TAG_BYTE);
|
||||||
|
case TagType.TAG_COMPOUND:
|
||||||
|
return new TagNodeCompound();
|
||||||
|
case TagType.TAG_INT_ARRAY:
|
||||||
|
return new TagNodeIntArray(new int[0]);
|
||||||
|
default:
|
||||||
|
return new TagNodeByte();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool TagIsSizedType (TagType type)
|
||||||
|
{
|
||||||
|
switch (type) {
|
||||||
|
case TagType.TAG_BYTE_ARRAY:
|
||||||
|
case TagType.TAG_INT_ARRAY:
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void _buttonAddTagByte_Click (object sender, EventArgs e)
|
private void _buttonAddTagByte_Click (object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
AddTagToNode(_nodeTree.SelectedNode, TagType.TAG_BYTE);
|
AddTagToNode(_nodeTree.SelectedNode, TagType.TAG_BYTE);
|
||||||
|
|
477
Form1.resx
477
Form1.resx
|
@ -342,213 +342,212 @@
|
||||||
<value>
|
<value>
|
||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAI
|
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAG
|
||||||
MAAAAk1TRnQBSQFMAgEBDwEAAfgBAAH4AQABEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA
|
MAAAAk1TRnQBSQFMAgEBDwIAAQEBAAEBARABAAEQAQAE/wEZAQAI/wFCAU0BNgcAATYDAAEoAwABQAMA
|
||||||
AwABQAMAAQEBAAEYBgABMBIAA/wD+SH4A/kD/AMAA/0D+SH4A/kD/WMAAZYBqQG8AVwBhAGuAVwBhAGu
|
AUADAAEBAQABGAYAATASAAP8A/kh+AP5A/wDAAP9A/kh+AP5A/1jAAGWAakBvAFcAYQBrgFcAYQBrgFc
|
||||||
AVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGuAVwBhAGu
|
AYQBrgFcAYQBrgFcAYQBrgFcAYQBrgFcAYQBrgFcAYQBrgFcAYQBrgFcAYQBrgFcAYQBrgFcAYQBrgFc
|
||||||
AVwBhAGuAZYBqQG8AwACzwHLArkBsAK5AbACuQGwArkBsAK5AbACuQGwArkBsAK5AbACuQGwArkBsAK5
|
AYQBrgGWAakBvAMAAs8BywK5AbACuQGwArkBsAK5AbACuQGwArkBsAK5AbACuQGwArkBsAK5AbACuQGw
|
||||||
AbACuQGwArkBsALPActjAAFsAZMBugFVAYgBuwFwAaMB1gFnAZoBzQFnAZoBzQFnAZoBzQFnAZoBzQFn
|
ArkBsAK5AbACzwHLYwABbAGTAboBVQGIAbsBcAGjAdYBZwGaAc0BZwGaAc0BZwGaAc0BZwGaAc0BZwGa
|
||||||
AZoBzQFnAZoBzQFnAZoBzQFnAZoBzQFnAZoBzQFwAaMB1gFVAYgBuwFsAZMBugMAAsEBuQL5AekC8wHi
|
Ac0BZwGaAc0BZwGaAc0BZwGaAc0BZwGaAc0BcAGjAdYBVQGIAbsBbAGTAboDAALBAbkC+QHpAvMB4gLz
|
||||||
AvMB4gLzAeIC8wHiAvMB4gLzAeIC8wHiAvMB4gLzAeIC8wHiAvMB4gL5AekCwQG5YwABfgGiAccBcQGk
|
AeIC8wHiAvMB4gLzAeIC8wHiAvMB4gLzAeIC8wHiAvMB4gLzAeIC+QHpAsEBuWMAAX4BogHHAXEBpAHX
|
||||||
AdcBVQGIAbsBcQGkAdcBcQGkAdcBcQGkAdcBcQGkAdcBcQGkAdcBcQGkAdcBcQGkAdcBcQGkAdcBcQGk
|
AVUBiAG7AXEBpAHXAXEBpAHXAXEBpAHXAXEBpAHXAXEBpAHXAXEBpAHXAXEBpAHXAXEBpAHXAXEBpAHX
|
||||||
AdcBVQGIAbsBcQGkAdcBfgGiAccDAALLAcMC9AHkAXoBpwGbAYcBtwGnAYcBtQGjAYkBswGiAWgBoAGG
|
AVUBiAG7AXEBpAHXAX4BogHHAwACywHDAvQB5AF6AacBmwGHAbcBpwGHAbUBowGJAbMBogFoAaABhgFX
|
||||||
AVcBlwF4AVgBkwF5AWgBkAF+AZIBpAGTAYYBlwGAAqgBjgL0AeQCywHDCQAD/gP8BvkD+gb8A/sG+QP8
|
AZcBeAFYAZMBeQFoAZABfgGSAaQBkwGGAZcBgAKoAY4C9AHkAssBwwkAA/4D/Ab5A/oG/AP7BvkD/AP+
|
||||||
A/42AAGGAaoBzQFzAaYB2QFqAZ0B0AFIAXsBrgFfAZIBxQFMAX8BsgFfAZIBxQFMAX8BsgFfAZIBxQFM
|
NgABhgGqAc0BcwGmAdkBagGdAdABSAF7Aa4BXwGSAcUBTAF/AbIBXwGSAcUBTAF/AbIBXwGSAcUBTAF/
|
||||||
AX8BsgFfAZIBxQFIAXsBrgFqAZ0B0AFzAaYB2QGGAaoBzQMAAs8BxwL1AeYBhAG1AasBmAHXAccBkAHR
|
AbIBXwGSAcUBSAF7Aa4BagGdAdABcwGmAdkBhgGqAc0DAALPAccC9QHmAYQBtQGrAZgB1wHHAZAB0QG+
|
||||||
Ab4BcwGwAZkBlwHLAbYBpwHOAb0BlwG9AawBlAG6AagBqQG/Aa8BjgGtAaEBtwGtAYsC9QHmAs8BxwkA
|
AXMBsAGZAZcBywG2AacBzgG9AZcBvQGsAZQBugGoAakBvwGvAY4BrQGhAbcBrQGLAvUB5gLPAccJAAP+
|
||||||
A/4D/AP5A7MDXAb8A1wDtAP5A/wD/jYAAYsBrQHPAXUBqAHbAWwBnwHSAUoBfQGwAWwBnwHSAVIBhQG4
|
A/wD+QOzA1wG/ANcA7QD+QP8A/42AAGLAa0BzwF1AagB2wFsAZ8B0gFKAX0BsAFsAZ8B0gFSAYUBuAFs
|
||||||
AWwBnwHSAVIBhQG4AWwBnwHSAVIBhQG4AWwBnwHSAUoBfQGwAWwBnwHSAXUBqAHbAYsBrQHPAwAC0QHJ
|
AZ8B0gFSAYUBuAFsAZ8B0gFSAYUBuAFsAZ8B0gFKAX0BsAFsAZ8B0gF1AagB2wGLAa0BzwMAAtEByQL2
|
||||||
AvYB6QGQAbwBtQG5AeUB2wGmAd0B0AGIAcABsgGHAckBtQF+Ab4BpAGIAbkBowGuAdABvwGpAccBtQGU
|
AekBkAG8AbUBuQHlAdsBpgHdAdABiAHAAbIBhwHJAbUBfgG+AaQBiAG5AaMBrgHQAb8BqQHHAbUBlAG6
|
||||||
AboBqAG2AbUBkQL2AekC0QHJDwADywN1A/gGAAP4A3UDyzwAAY8BsQHSAXcBqgHdAW4BoQHUAUcBegGt
|
AagBtgG1AZEC9gHpAtEByQ8AA8sDdQP4BgAD+AN1A8s8AAGPAbEB0gF3AaoB3QFuAaEB1AFHAXoBrQFu
|
||||||
AW4BoQHUAU8BggG1AW4BoQHUAU8BggG1AW4BoQHUAU8BggG1AW4BoQHUAUcBegGtAW4BoQHUAXcBqgHd
|
AaEB1AFPAYIBtQFuAaEB1AFPAYIBtQFuAaEB1AFPAYIBtQFuAaEB1AFHAXoBrQFuAaEB1AF3AaoB3QGP
|
||||||
AY8BsQHSAwAC0wHMAvcB6wHFAbgBhwH/Ad4BjAH4AecBrQHVAdEBsAHKAesB4gG9AeUB2QGgAcoBuwGq
|
AbEB0gMAAtMBzAL3AesBxQG4AYcB/wHeAYwB+AHnAa0B1QHRAbABygHrAeIBvQHlAdkBoAHKAbsBqgHO
|
||||||
Ac4BrwGCAcEBpAF+AbYCmAGsAYQC9wHrAtMBzAwAA84DfwP5Ad0BswG5AcABSQFaAcABSQFaAd0BswG5
|
Aa8BggHBAaQBfgG2ApgBrAGEAvcB6wLTAcwMAAPOA38D+QHdAbMBuQHAAUkBWgHAAUkBWgHdAbMBuQP5
|
||||||
A/kDfwPOOQABkwG0AdQBeAGrAd4BbwGiAdUBRAF3AaoBbwGiAdUBTAF/AbIBbwGiAdUBTAF/AbIBbwGi
|
A38DzjkAAZMBtAHUAXgBqwHeAW8BogHVAUQBdwGqAW8BogHVAUwBfwGyAW8BogHVAUwBfwGyAW8BogHV
|
||||||
AdUBTAF/AbIBbwGiAdUBRAF3AaoBbwGiAdUBeAGrAd4BkwG0AdQDAALVAc0C+AHuAdEBrgFpAdsBugFx
|
AUwBfwGyAW8BogHVAUQBdwGqAW8BogHVAXgBqwHeAZMBtAHUAwAC1QHNAvgB7gHRAa4BaQHbAboBcQHe
|
||||||
Ad4BvgF0AekByQF8Ab8BzQGoAZUBzAHCAaEBzwG+AZEBxAGvAX8BvQGmAXcBtwGdAagBqgF3AvgB7gLV
|
Ab4BdAHpAckBfAG/Ac0BqAGVAcwBwgGhAc8BvgGRAcQBrwF/Ab0BpgF3AbcBnQGoAaoBdwL4Ae4C1QHN
|
||||||
Ac0JAAPQA4YD+QYAAeABtgG8AdEBewGHBgAD+QOGA9A2AAGYAbgB1wF6Aa0B4AFxAaQB1wFBAXQBpwFx
|
CQAD0AOGA/kGAAHgAbYBvAHRAXsBhwYAA/kDhgPQNgABmAG4AdcBegGtAeABcQGkAdcBQQF0AacBcQGk
|
||||||
AaQB1wFJAXwBrwFxAaQB1wFJAXwBrwFxAaQB1wFJAXwBrwFxAaQB1wFBAXQBpwFxAaQB1wF6Aa0B4AGY
|
AdcBSQF8Aa8BcQGkAdcBSQF8Aa8BcQGkAdcBSQF8Aa8BcQGkAdcBQQF0AacBcQGkAdcBegGtAeABmAG4
|
||||||
AbgB1wMAAtcBzwL5AfEB0wGsAWYB/wHTAX4B/wHWAYIB4AG+AXQB9gHhAZkBsAHtAeQBrwHRAb8BogHg
|
AdcDAALXAc8C+QHxAdMBrAFmAf8B0wF+Af8B1gGCAeABvgF0AfYB4QGZAbAB7QHkAa8B0QG/AaIB4AHT
|
||||||
AdMBmAHYAcYBjgHQAboBuAGyAYAC+QHxAtcBzwYAA+8DbAPvCQAB4wG4Ab8B1wGBAY0JAAPvA2wD7zMA
|
AZgB2AHGAY4B0AG6AbgBsgGAAvkB8QLXAc8GAAPvA2wD7wkAAeMBuAG/AdcBgQGNCQAD7wNsA+8zAAGb
|
||||||
AZsBugHZAXwBrwHiAXMBpgHZAT8BcgGlAXMBpgHZAUcBegGtAXMBpgHZAUcBegGtAXMBpgHZAUcBegGt
|
AboB2QF8Aa8B4gFzAaYB2QE/AXIBpQFzAaYB2QFHAXoBrQFzAaYB2QFHAXoBrQFzAaYB2QFHAXoBrQFz
|
||||||
AXMBpgHZAT8BcgGlAXMBpgHZAXwBrwHiAZsBugHZAwAC2QHRAvsB9AHVAakBYgH/Ac4BeQH/AdIBfQHf
|
AaYB2QE/AXIBpQFzAaYB2QF8Aa8B4gGbAboB2QMAAtkB0QL7AfQB1QGpAWIB/wHOAXkB/wHSAX0B3wG6
|
||||||
AboBbwH/AdgBgwHmAeoBvQGmAdgBzQGzAewB4gG5AeQB0AG2AdwBxAGrAb4BlwL7AfQC2QHRCQAD1AOR
|
AW8B/wHYAYMB5gHqAb0BpgHYAc0BswHsAeIBuQHkAdABtgHcAcQBqwG+AZcC+wH0AtkB0QkAA9QDkQP5
|
||||||
A/kGAAHmAbsBwQHdAYcBkwYAA/kDkQPUNgABnQG9AdsBfgGxAeQBdQGoAdsBOAFrAZ4BUQGEAbcBOAFr
|
BgAB5gG7AcEB3QGHAZMGAAP5A5ED1DYAAZ0BvQHbAX4BsQHkAXUBqAHbATgBawGeAVEBhAG3ATgBawGe
|
||||||
AZ4BUQGEAbcBOAFrAZ4BUQGEAbcBOAFrAZ4BUQGEAbcBOAFrAZ4BdQGoAdsBfgGxAeQBnQG9AdsDAALa
|
AVEBhAG3ATgBawGeAVEBhAG3ATgBawGeAVEBhAG3ATgBawGeAXUBqAHbAX4BsQHkAZ0BvQHbAwAC2gHT
|
||||||
AdMC/AH3AdcBpwFfAdoBrAFkAdwBsAFnAecBvAFwAeABugFvAeMBvgFzAd8B0QGYAdsBzwGWAdUB0QGc
|
AvwB9wHXAacBXwHaAawBZAHcAbABZwHnAbwBcAHgAboBbwHjAb4BcwHfAdEBmAHbAc8BlgHVAdEBnAHE
|
||||||
AcQBzQGkAZ0B0QHDAvwB9wLaAdMMAAPVA5YD+QHoAb0BwwHdAWYBdwHdAWYBdwHoAb0BwwP5A5YD1TkA
|
Ac0BpAGdAdEBwwL8AfcC2gHTDAAD1QOWA/kB6AG9AcMB3QFmAXcB3QFmAXcB6AG9AcMD+QOWA9U5AAGg
|
||||||
AaABvgHcAX8BsgHlAWYBmQHMAXYBqQHcAXYBqQHcAXYBqQHcAXYBqQHcAXYBqQHcAXYBqQHcAXYBqQHc
|
Ab4B3AF/AbIB5QFmAZkBzAF2AakB3AF2AakB3AF2AakB3AF2AakB3AF2AakB3AF2AakB3AF2AakB3AF2
|
||||||
AXYBqQHcAXYBqQHcAWYBmQHMAX8BsgHlAaABvgHcAwAC2wHUAv0B+QHZAaQBXAH/AcQBbwH/AcgBcwHe
|
AakB3AF2AakB3AFmAZkBzAF/AbIB5QGgAb4B3AMAAtsB1AL9AfkB2QGkAVwB/wHEAW8B/wHIAXMB3gGw
|
||||||
AbABZwH/Ac4BeQH/AdIBfQHkAb4BcgH/AdgBgwHtAeQBqAHiAeYBtgHQAdcBrQL9AfkC2wHUDwAD1wOZ
|
AWcB/wHOAXkB/wHSAX0B5AG+AXIB/wHYAYMB7QHkAagB4gHmAbYB0AHXAa0C/QH5AtsB1A8AA9cDmQP6
|
||||||
A/oGAAP6A5kD1zwAAaMBwAHeAWsBngHRAXcBqgHdAXcBqgHdAXcBqgHdAXcBqgHdAXcBqgHdAXcBqgHd
|
BgAD+gOZA9c8AAGjAcAB3gFrAZ4B0QF3AaoB3QF3AaoB3QF3AaoB3QF3AaoB3QF3AaoB3QF3AaoB3QF3
|
||||||
AXcBqgHdAXcBqgHdAXcBqgHdAXcBqgHdAXcBqgHdAWsBngHRAaMBwAHeAwAC3QHVAv4B/AHaAaMBWgH/
|
AaoB3QF3AaoB3QF3AaoB3QF3AaoB3QF3AaoB3QFrAZ4B0QGjAcAB3gMAAt0B1QL+AfwB2gGjAVoB/wG/
|
||||||
Ab8BawH/AcIBbgHeAawBYgH/AckBdAH/Ac0BeAHjAbkBbgH/AdMBfgH/AdcBgwH8Ad4BlQHsAcoBfAL+
|
AWsB/wHCAW4B3gGsAWIB/wHJAXQB/wHNAXgB4wG5AW4B/wHTAX4B/wHXAYMB/AHeAZUB7AHKAXwC/gH8
|
||||||
AfwC3QHVEgAD2AOdBgADnQPYPwABpgHDAeABoAHTAfoBmAHLAfUBkwHGAfMBkwHGAfMBkwHGAfMBkwHG
|
At0B1RIAA9gDnQYAA50D2D8AAaYBwwHgAaAB0wH6AZgBywH1AZMBxgHzAZMBxgHzAZMBxgHzAZMBxgHz
|
||||||
AfMBkwHGAfMBkwHGAfMBkwHGAfMBkwHGAfMBkwHGAfMBmAHLAfUBoAHTAfoBpgHDAeADAALeAdcC/wH+
|
AZMBxgHzAZMBxgHzAZMBxgHzAZMBxgHzAZMBxgHzAZgBywH1AaAB0wH6AaYBwwHgAwAC3gHXAv8B/gHb
|
||||||
AdsBoQFYAdsBogFZAdsBpAFbAdsBpQFdAdsBqQFgAdsBrAFjAdsBrwFmAdsBsQFoAdsBtAFrAdsBtwFu
|
AaEBWAHbAaIBWQHbAaQBWwHbAaUBXQHbAakBYAHbAawBYwHbAa8BZgHbAbEBaAHbAbQBawHbAbcBbgHb
|
||||||
AdsBuQFxAv8B/gLeAddjAAHoAe0B8wGoAcQB4QGXAcoB9QGSAcUB8wGSAcUB8wGSAcUB8wGSAcUB8wGS
|
AbkBcQL/Af4C3gHXYwAB6AHtAfMBqAHEAeEBlwHKAfUBkgHFAfMBkgHFAfMBkgHFAfMBkgHFAfMBkgHF
|
||||||
AcUB8wGSAcUB8wGSAcUB8wGSAcUB8wGSAcUB8wGXAcoB9QGoAcQB4QHoAe0B8wMAAt8B2Sf/At8B2WYA
|
AfMBkgHFAfMBkgHFAfMBkgHFAfMBkgHFAfMBlwHKAfUBqAHEAeEB6AHtAfMDAALfAdkn/wLfAdlmAAHo
|
||||||
AegB7QHzAakBxQHiAakBxQHiAakBxQHiAakBxQHiAakBxQHiAakBxQHiAakBxQHiAakBxQHiAakBxQHi
|
Ae0B8wGpAcUB4gGpAcUB4gGpAcUB4gGpAcUB4gGpAcUB4gGpAcUB4gGpAcUB4gGpAcUB4gGpAcUB4gGp
|
||||||
AakBxQHiAakBxQHiAegB7QHzBgAC6gHmAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZ
|
AcUB4gGpAcUB4gHoAe0B8wYAAuoB5gLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLg
|
||||||
AuAB2QLgAdkC4AHZAuAB2QLqAebDAAP7A/EBlQGvAbwBaAGbAbYBaAGbAbYBaAGbAbYBaAGbAbYBaAGb
|
AdkC4AHZAuAB2QLgAdkC6gHmwwAD+wPxAZUBrwG8AWgBmwG2AWgBmwG2AWgBmwG2AWgBmwG2AWgBmwG2
|
||||||
AbYBaAGbAbYBaAGbAbYBaAGbAbYBaAGbAbYBaAGbAbYBlQGvAbwD8QP7FQAS+AP5A/0zAAP8A/kk+AP5
|
AWgBmwG2AWgBmwG2AWgBmwG2AWgBmwG2AWgBmwG2AZUBrwG8A/ED+xUAEvgD+QP9MwAD/AP5JPgD+QP8
|
||||||
A/wD/QP6AXcBqAHBAYYBzwHwAYEBywHtAYEBywHtAYEBywHtAYEBywHtAYEBywHtAYEBywHtAYYBzwHw
|
A/0D+gF3AagBwQGGAc8B8AGBAcsB7QGBAcsB7QGBAcsB7QGBAcsB7QGBAcsB7QGBAcsB7QGGAc8B8AFL
|
||||||
AUsBjwGxAYYBzwHwAXcBqAHBAdwB4gHlBv0D+Qz4A/MBiQGlAY8BVQGLAV8BVQGLAV8BVQGLAV8BVQGL
|
AY8BsQGGAc8B8AF3AagBwQHcAeIB5Qb9A/kM+APzAYkBpQGPAVUBiwFfAVUBiwFfAVUBiwFfAVUBiwFf
|
||||||
AV8BVQGLAV8BVQGLAV8BlAGtAZkGAAPAAywDwAMAA/sb+AP7A/cBkwGmAboBYAGIAa8BYAGIAa8BYAGI
|
AVUBiwFfAVUBiwFfAZQBrQGZBgADwAMsA8ADAAP7G/gD+wP3AZMBpgG6AWABiAGvAWABiAGvAWABiAGv
|
||||||
Aa8BYAGIAa8BYAGIAa8BYAGIAa8BYAGIAa8BYAGIAa8BYAGIAa8BYAGIAa8BYAGIAa8BYAGIAa8BkwGm
|
AWABiAGvAWABiAGvAWABiAGvAWABiAGvAWABiAGvAWABiAGvAWABiAGvAWABiAGvAWABiAGvAZMBpgG6
|
||||||
AboD9wYAAYYBtQHNAYQBzgHuAXwBxwHoAXwBxwHoAXwBxwHoAXwBxwHoAXwBxwHoAXwBxwHoAYQBzgHu
|
A/cGAAGGAbUBzQGEAc4B7gF8AccB6AF8AccB6AF8AccB6AF8AccB6AF8AccB6AF8AccB6AGEAc4B7gFX
|
||||||
AVcBmwG9AYQBzgHuAfQBtgEuAYYBtQHNAwAClAG4AlUBowJVAaMCVQGjAlUBowJVAaMCVQGjAVUBegGJ
|
AZsBvQGEAc4B7gH0AbYBLgGGAbUBzQMAApQBuAJVAaMCVQGjAlUBowJVAaMCVQGjAlUBowFVAXoBiQE1
|
||||||
ATUBvQF5AUMBywGHAT4BxgGCAT4BxgGCAT4BxgGCAUMBywGHAVUBoAFwBgADQAFnAlYDQAMAA/sDYQNe
|
Ab0BeQFDAcsBhwE+AcYBggE+AcYBggE+AcYBggFDAcsBhwFVAaABcAYAA0ABZwJWA0ADAAP7A2EDXgNc
|
||||||
A1wDWQNUA0kDPAMvA2wD+wMAAXIBmAG/AXsBrgHgAXoBrQHfAXoBrQHfAXoBrQHfAXoBrQHfAXoBrQHf
|
A1kDVANJAzwDLwNsA/sDAAFyAZgBvwF7Aa4B4AF6Aa0B3wF6Aa0B3wF6Aa0B3wF6Aa0B3wF6Aa0B3wF6
|
||||||
AXoBrQHfAXoBrQHfAXoBrQHfAXoBrQHfAXoBrQHfAXsBrgHgAXIBmAG/CQABkQG+AdQBhwHQAe8BfwHK
|
Aa0B3wF6Aa0B3wF6Aa0B3wF6Aa0B3wF6Aa0B3wF7Aa4B4AFyAZgBvwkAAZEBvgHUAYcB0AHvAX8BygHp
|
||||||
AekBfwHKAekBfwHKAekBfwHKAekBfwHKAekBfwHKAekBhwHQAe8BXwGjAcUBhwHQAe8B/gHJAUEBkQG+
|
AX8BygHpAX8BygHpAX8BygHpAX8BygHpAX8BygHpAYcB0AHvAV8BowHFAYcB0AHvAf4ByQFBAZEBvgHU
|
||||||
AdQDAAJVAbQBLwEeAdwBJQETAdgBJQETAdgBJQETAdgBJQETAdgBJQETAdgBVQF+AZUBNwG/AXsBQgHK
|
AwACVQG0AS8BHgHcASUBEwHYASUBEwHYASUBEwHYASUBEwHYASUBEwHYAVUBfgGVATcBvwF7AUIBygGG
|
||||||
AYYBNwG/AXsBNwG/AXsBNwG/AXsBQgHKAYYBVQGnAXYGAAPLA1UDyycAAYQBpwHLAYEBtAHkAX0BsAHh
|
ATcBvwF7ATcBvwF7ATcBvwF7AUIBygGGAVUBpwF2BgADywNVA8snAAGEAacBywGBAbQB5AF9AbAB4QF9
|
||||||
AX0BsAHhAX0BsAHhAX0BsAHhAX0BsAHhAX0BsAHhAX0BsAHhAX0BsAHhAX0BsAHhAX0BsAHhAYEBtAHk
|
AbAB4QF9AbAB4QF9AbAB4QF9AbAB4QF9AbAB4QF9AbAB4QF9AbAB4QF9AbAB4QF9AbAB4QGBAbQB5AGE
|
||||||
AYQBpwHLCQABlAHAAdYBigHTAfABggHNAesBggHNAesBggHNAesBggHNAesBggHNAesBggHNAesBigHT
|
AacBywkAAZQBwAHWAYoB0wHwAYIBzQHrAYIBzQHrAYIBzQHrAYIBzQHrAYIBzQHrAYIBzQHrAYoB0wHw
|
||||||
AfABYgGmAcgBigHTAfAC6QHbAZQBwAHWAwACVQG5AS0BHAHeARUBAAHVARUBAAHVARUBAAHVARUBAAHV
|
AWIBpgHIAYoB0wHwAukB2wGUAcAB1gMAAlUBuQEtARwB3gEVAQAB1QEVAQAB1QEVAQAB1QEVAQAB1QEV
|
||||||
ARUBAAHVAVUBgQGaATsBwwF/AUgBzwGMATsBwwF/ATsBwwF/ATsBwwF/AUgBzwGMAVUBrQF7NgABigGt
|
AQAB1QFVAYEBmgE7AcMBfwFIAc8BjAE7AcMBfwE7AcMBfwE7AcMBfwFIAc8BjAFVAa0BezYAAYoBrQHP
|
||||||
Ac8BiAG7AeoBggG1AeUBggG1AeUBggG1AeUBggG1AeUBggG1AeUBggG1AeUBggG1AeUBggG1AeUBggG1
|
AYgBuwHqAYIBtQHlAYIBtQHlAYIBtQHlAYIBtQHlAYIBtQHlAYIBtQHlAYIBtQHlAYIBtQHlAYIBtQHl
|
||||||
AeUBggG1AeUBiAG7AeoBigGtAc8JAAGYAcMB2AGOAdYB8gGHAdAB7QGHAdAB7QGHAdAB7QGHAdAB7QGH
|
AYIBtQHlAYgBuwHqAYoBrQHPCQABmAHDAdgBjgHWAfIBhwHQAe0BhwHQAe0BhwHQAe0BhwHQAe0BhwHQ
|
||||||
AdAB7QGHAdAB7QGOAdYB8gFmAaoBzAGOAdYB8gLwAeYBmAHDAdgDAAJVAb8BNgElAeQBGQEAAdsBGQEA
|
Ae0BhwHQAe0BjgHWAfIBZgGqAcwBjgHWAfIC8AHmAZgBwwHYAwACVQG/ATYBJQHkARkBAAHbARkBAAHb
|
||||||
AdsBGQEAAdsBGQEAAdsBGQEAAdsBVQGEAaABPgHGAYIBTQHVAZEBPgHGAYIBPgHGAYIBPgHGAYIBTQHV
|
ARkBAAHbARkBAAHbARkBAAHbAVUBhAGgAT4BxgGCAU0B1QGRAT4BxgGCAT4BxgGCAT4BxgGCAU0B1QGR
|
||||||
AZEBVQGzAYA2AAGOAbAB0QGPAcIB7gGHAboB6QGHAboB6QGHAboB6QGHAboB6QGHAboB6QGHAboB6QGH
|
AVUBswGANgABjgGwAdEBjwHCAe4BhwG6AekBhwG6AekBhwG6AekBhwG6AekBhwG6AekBhwG6AekBhwG6
|
||||||
AboB6QGHAboB6QGHAboB6QGHAboB6QGPAcIB7gGOAbAB0QkAAZsBxgHaAZIB2gH0AYsB1AHwAYsB1AHw
|
AekBhwG6AekBhwG6AekBhwG6AekBjwHCAe4BjgGwAdEJAAGbAcYB2gGSAdoB9AGLAdQB8AGLAdQB8AGL
|
||||||
AYsB1AHwAYsB1AHwAYsB1AHwAYsB1AHwAZIB2gH0AWkBrQHPAZIB2gH0AvgB8wGbAcYB2gMAAlUBxAE+
|
AdQB8AGLAdQB8AGLAdQB8AGLAdQB8AGSAdoB9AFpAa0BzwGSAdoB9AL4AfMBmwHGAdoDAAJVAcQBPgEt
|
||||||
AS0B7AEcAQAB4wEcAQAB4wEcAQAB4wEcAQAB4wEcAQAB4wFVAYYBpAFCAcoBhgFRAdkBlQFCAcoBhgFC
|
AewBHAEAAeMBHAEAAeMBHAEAAeMBHAEAAeMBHAEAAeMBVQGGAaQBQgHKAYYBUQHZAZUBQgHKAYYBQgHK
|
||||||
AcoBhgFCAcoBhgFRAdkBlQFVAbkBhAYAA9ADZwPQJwABkwG0AdQBlgHJAfIBjAG/AewBjAG/AewBjAG/
|
AYYBQgHKAYYBUQHZAZUBVQG5AYQGAAPQA2cD0CcAAZMBtAHUAZYByQHyAYwBvwHsAYwBvwHsAYwBvwHs
|
||||||
AewBRAF3AaoBjAG/AewBRAF3AaoBjAG/AewBjAG/AewBjAG/AewBjAG/AewBlgHJAfIBkwG0AdQJAAGf
|
AUQBdwGqAYwBvwHsAUQBdwGqAYwBvwHsAYwBvwHsAYwBvwHsAYwBvwHsAZYByQHyAZMBtAHUCQABnwHI
|
||||||
AcgB3QGXAd4B9gGQAdgB8gGQAdgB8gGQAdgB8gGQAdgB8gGQAdgB8gGQAdgB8gGXAd4B9gF5Ab0B3AF4
|
Ad0BlwHeAfYBkAHYAfIBkAHYAfIBkAHYAfIBkAHYAfIBkAHYAfIBkAHYAfIBlwHeAfYBeQG9AdwBeAG9
|
||||||
Ab0B3AL+Af0BnwHIAd0DAAJVAcgBRgE1AfIBIAEAAekBIAEAAekBIAEAAekBIAEAAekBIAEAAekBVQGJ
|
AdwC/gH9AZ8ByAHdAwACVQHIAUYBNQHyASABAAHpASABAAHpASABAAHpASABAAHpASABAAHpAVUBiQGo
|
||||||
AagBRAHMAYgBZQHtAakBZQHtAakBZQHtAakBZQHtAakBWAHWAZYBfwHLAaQGAANsAW8CaQNsBgADdQN0
|
AUQBzAGIAWUB7QGpAWUB7QGpAWUB7QGpAWUB7QGpAVgB1gGWAX8BywGkBgADbAFvAmkDbAYAA3UDdANx
|
||||||
A3EDbgNsA2gDZQNjA2AGAAGYAbgB1wGbAc4B9gGRAcQB8AGRAcQB8AGRAcQB8AFVAYgBuwFEAXcBqgFV
|
A24DbANoA2UDYwNgBgABmAG4AdcBmwHOAfYBkQHEAfABkQHEAfABkQHEAfABVQGIAbsBRAF3AaoBVQGI
|
||||||
AYgBuwFAAXMBpgGRAcQB8AGRAcQB8AGRAcQB8AGbAc4B9gGYAbgB1wkAAaIBygHeAZsB4QH3AZQB2wH0
|
AbsBQAFzAaYBkQHEAfABkQHEAfABkQHEAfABmwHOAfYBmAG4AdcJAAGiAcoB3gGbAeEB9wGUAdsB9AGU
|
||||||
AZQB2wH0AZQB2wH0AZQB2wH0AZQB2wH0AZQB2wH0AZQB2wH0AZ4B5AH5AXwBwAHeAaIBygHeAe4B8wH1
|
AdsB9AGUAdsB9AGUAdsB9AGUAdsB9AGUAdsB9AGUAdsB9AGeAeQB+QF8AcAB3gGiAcoB3gHuAfMB9QMA
|
||||||
AwACfwHVAWIBYQHnAXYBdQH+AXYBdQH+AXkBYgGjAXsBUAFVAXsBUAFVAWoBWQE/AWoBbgEyAWoBbgEy
|
An8B1QFiAWEB5wF2AXUB/gF2AXUB/gF5AWIBowF7AVABVQF7AVABVQFqAVkBPwFqAW4BMgFqAW4BMgFh
|
||||||
AWEBiwFRAVUBwQGKAVUBwQGKAVUBwQGKAeIB7wHoBgAD0wNxA9MnAAGbAboB2QGfAdIB+QGVAcgB8wGV
|
AYsBUQFVAcEBigFVAcEBigFVAcEBigHiAe8B6AYAA9MDcQPTJwABmwG6AdkBnwHSAfkBlQHIAfMBlQHI
|
||||||
AcgB8wGVAcgB8wFVAYgBuwFVAYgBuwFVAYgBuwFNAYABswGVAcgB8wGVAcgB8wGVAcgB8wGfAdIB+QGb
|
AfMBlQHIAfMBVQGIAbsBVQGIAbsBVQGIAbsBTQGAAbMBlQHIAfMBlQHIAfMBlQHIAfMBnwHSAfkBmwG6
|
||||||
AboB2QkAAaUBzQHgAZ4B5QH5AZgB3wH2AZgB3wH2AZgB3wH2AZgB3wH2AZgB3wH2AZgB3wH2AZgB3wH2
|
AdkJAAGlAc0B4AGeAeUB+QGYAd8B9gGYAd8B9gGYAd8B9gGYAd8B9gGYAd8B9gGYAd8B9gGYAd8B9gGY
|
||||||
AZgB3wH2AaEB6AH6AaUBzQHgBgAC4gHxAlUBzgJVAc4CVQHOAW0BUwF1AdwBqQEyAdcBpAEtAdcBpAEt
|
Ad8B9gGhAegB+gGlAc0B4AYAAuIB8QJVAc4CVQHOAlUBzgFtAVMBdQHcAakBMgHXAaQBLQHXAaQBLQHX
|
||||||
AdcBpAEtAdwBqQEyAbABhgFIQgABnwG9AdsBqQHbAf4BqgHdAf8BqgHdAf8BqgHdAf8BdwGqAd0BdwGq
|
AaQBLQHcAakBMgGwAYYBSEIAAZ8BvQHbAakB2wH+AaoB3QH/AaoB3QH/AaoB3QH/AXcBqgHdAXcBqgHd
|
||||||
Ad0BdwGqAd0BZgGZAcwBqgHdAf8BqgHdAf8BqgHdAf8BqQHbAf4BnwG9AdsJAAGoAc4B4gGjAegB+wGd
|
AXcBqgHdAWYBmQHMAaoB3QH/AaoB3QH/AaoB3QH/AakB2wH+AZ8BvQHbCQABqAHOAeIBowHoAfsBnQHj
|
||||||
AeMB+QGdAeMB+QGdAeMB+QGdAeMB+QGdAeMB+QGdAeMB+QGdAeMB+QGdAeMB+QGjAegB+wGoAc4B4hIA
|
AfkBnQHjAfkBnQHjAfkBnQHjAfkBnQHjAfkBnQHjAfkBnQHjAfkBnQHjAfkBowHoAfsBqAHOAeISAAG2
|
||||||
AbYBiwFFAdwBqQEyAdEBngEnAdEBngEnAdEBngEnAdwBqQEyAbYBiwFFQgABxwHXAecBiAG2AeIBgAGz
|
AYsBRQHcAakBMgHRAZ4BJwHRAZ4BJwHRAZ4BJwHcAakBMgG2AYsBRUIAAccB1wHnAYgBtgHiAYABswHm
|
||||||
AeYBgAGzAeYBgAGzAeYBTgGBAbQBTgGBAbQBTgGBAbQBSAF7Aa4BgAGzAeYBgAGzAeYBgAGzAeYBiAG2
|
AYABswHmAYABswHmAU4BgQG0AU4BgQG0AU4BgQG0AUgBewGuAYABswHmAYABswHmAYABswHmAYgBtgHi
|
||||||
AeIBxwHXAecJAAGrAdAB4wGmAesB/AGhAeYB+wGhAeYB+wGhAeYB+wGhAeYB+wGhAeYB+wGhAeYB+wGh
|
AccB1wHnCQABqwHQAeMBpgHrAfwBoQHmAfsBoQHmAfsBoQHmAfsBoQHmAfsBoQHmAfsBoQHmAfsBoQHm
|
||||||
AeYB+wGhAeYB+wGmAesB/AGrAdAB4xIAAbsBkAFBAeEBrgE4AdYBowEsAdYBowEsAdYBowEsAeEBrgE4
|
AfsBoQHmAfsBpgHrAfwBqwHQAeMSAAG7AZABQQHhAa4BOAHWAaMBLAHWAaMBLAHWAaMBLAHhAa4BOAG7
|
||||||
AbsBkAFBEgAD1wN9A9cnAAHjAeoB8QGOAbgB4QGJAbwB7wGIAbsB7gGIAbsB7gFBAXQBpwFBAXQBpwFB
|
AZABQRIAA9cDfQPXJwAB4wHqAfEBjgG4AeEBiQG8Ae8BiAG7Ae4BiAG7Ae4BQQF0AacBQQF0AacBQQF0
|
||||||
AXQBpwE+AXEBpAGIAbsB7gGIAbsB7gGJAbwB7wGOAbgB4QHjAeoB8QkAAa4B0gHkAakB7gH9AaQB6QH8
|
AacBPgFxAaQBiAG7Ae4BiAG7Ae4BiQG8Ae8BjgG4AeEB4wHqAfEJAAGuAdIB5AGpAe4B/QGkAekB/AGk
|
||||||
AaQB6QH8AaQB6QH8AaQB6QH8AaQB6QH8AaQB6QH8AaQB6QH8AaQB6QH8AakB7gH9Aa4B0gHkEgABwAGV
|
AekB/AGkAekB/AGkAekB/AGkAekB/AGkAekB/AGkAekB/AGkAekB/AGpAe4B/QGuAdIB5BIAAcABlQE/
|
||||||
AT8B5wG0AT0B2gGnATAB2gGnATAB2gGnATAB5wG0AT0BwAGVAT8SAAN/A3cDfwYAA4IDgQN/A34DfAN6
|
AecBtAE9AdoBpwEwAdoBpwEwAdoBpwEwAecBtAE9AcABlQE/EgADfwN3A38GAAOCA4EDfwN+A3wDegN5
|
||||||
A3kDdgOrBgAB9QH3AfkBmwG+Ad8BiQG8Ae8BiAG7Ae4BiAG7Ae4BNQFoAZsBNQFoAZsBNQFoAZsBNQFo
|
A3YDqwYAAfUB9wH5AZsBvgHfAYkBvAHvAYgBuwHuAYgBuwHuATUBaAGbATUBaAGbATUBaAGbATUBaAGb
|
||||||
AZsBiAG7Ae4BiAG7Ae4BiQG8Ae8BmwG+Ad8B9QH3AfkJAAGwAdQB5gGsAfEB/wGnAewB/gGnAewB/gGn
|
AYgBuwHuAYgBuwHuAYkBvAHvAZsBvgHfAfUB9wH5CQABsAHUAeYBrAHxAf8BpwHsAf4BpwHsAf4BpwHs
|
||||||
AewB/gGnAewB/gGnAewB/gGnAewB/gGnAewB/gGnAewB/gGsAfEB/wGwAdQB5hIAAcYBmgE9AesBuAFB
|
Af4BpwHsAf4BpwHsAf4BpwHsAf4BpwHsAf4BpwHsAf4BrAHxAf8BsAHUAeYSAAHGAZoBPQHrAbgBQQHd
|
||||||
Ad0BqgEzAd0BqgEzAd0BqgEzAesBuAFBAcYBmgE9EgAD2AOCA9gnAAP+AcsB2gHqAakBxQHiAakBxQHi
|
AaoBMwHdAaoBMwHdAaoBMwHrAbgBQQHGAZoBPRIAA9gDggPYJwAD/gHLAdoB6gGpAcUB4gGpAcUB4gGp
|
||||||
AakBxQHiAVUBfQGmAVUBfQGmAVUBfQGmAVUBfQGmAakBxQHiAakBxQHiAakBxQHiAcsB2gHqA/4JAAGy
|
AcUB4gFVAX0BpgFVAX0BpgFVAX0BpgFVAX0BpgGpAcUB4gGpAcUB4gGpAcUB4gHLAdoB6gP+CQABsgHV
|
||||||
AdUB5gGxAfUB/wGuAfIB/wGuAfIB/wGuAfIB/wGuAfIB/wGuAfIB/wGuAfIB/wGuAfIB/wGuAfIB/wGx
|
AeYBsQH1Af8BrgHyAf8BrgHyAf8BrgHyAf8BrgHyAf8BrgHyAf8BrgHyAf8BrgHyAf8BrgHyAf8BsQH1
|
||||||
AfUB/wGyAdUB5hIAAdQBswFsAecBuAFGAf4BywFUAf4BywFUAf4BywFUAecBuAFGAdQBswFsdQAB0AHk
|
Af8BsgHVAeYSAAHUAbMBbAHnAbgBRgH+AcsBVAH+AcsBVAH+AcsBVAHnAbgBRgHUAbMBbHUAAdAB5AHu
|
||||||
Ae4BswHWAecBswHWAecBswHWAecBswHWAecBswHWAecBswHWAecBswHWAecBswHWAecBswHWAecBswHW
|
AbMB1gHnAbMB1gHnAbMB1gHnAbMB1gHnAbMB1gHnAbMB1gHnAbMB1gHnAbMB1gHnAbMB1gHnAbMB1gHn
|
||||||
AecB0AHkAe4SAAHwAesB3gHNAaABOQHNAaABOQHNAaABOQHNAaABOQHNAaABOQHwAesB3g8AA/sD8QLI
|
AdAB5AHuEgAB8AHrAd4BzQGgATkBzQGgATkBzQGgATkBzQGgATkBzQGgATkB8AHrAd4PAAP7A/ECyAHD
|
||||||
AcMCuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwAsgBwwPxBvsD8QLIAcMCuAGw
|
ArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsALIAcMD8Qb7A/ECyAHDArgBsAK4
|
||||||
ArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwAsgBwwPxA/tgAAP9A/oCwAG4C/8D/gH9
|
AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsALIAcMD8QP7YAAD/QP6AsABuAv/A/4B/QL+
|
||||||
Av4B/AL9AfsC/QH6AvwB+AL+AfkCwAG4A/oG/QP6AsABuAv/A/4B/QL+AfwC/QH7Av0B+gL8AfgC/gH5
|
AfwC/QH7Av0B+gL8AfgC/gH5AsABuAP6Bv0D+gLAAbgL/wP+Af0C/gH8Av0B+wL9AfoC/AH4Av4B+QLA
|
||||||
AsABuAP6A/1mAALJAcEG/wP+Av0B/AL9AfsC/AH5AvsB+AL6AfYC+AH0AvsB9gLJAcEMAALJAcEG/wP+
|
AbgD+gP9ZgACyQHBBv8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL7AfYCyQHBDAACyQHBBv8D/gL9
|
||||||
Av0B/AL9AfsC/AH5AvsB+AL6AfYC+AH0AvsB9gLJAcFsAALPAccD/wP+Av0B/AL9AfsC/AH5AvsB+AL6
|
AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL7AfYCyQHBbAACzwHHA/8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2
|
||||||
AfYC+AH0AvcB8gL7AfUCzwHHDAACzwHHA/8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL3AfIC+wH1
|
AvgB9AL3AfIC+wH1As8BxwwAAs8BxwP/A/4C/QH8Av0B+wL8AfkC+wH4AvoB9gL4AfQC9wHyAvsB9QLP
|
||||||
As8BxwwAA/4D/Ab5A/oG/AP7BvkD/AP+BgAD/QP8A/oe+AP6A/wD/QYAAtAByAL/Af4C/QH8Av0B+wG/
|
AccMAAP+A/wG+QP6BvwD+wb5A/wD/gYAA/0D/AP6HvgD+gP8A/0GAALQAcgC/wH+Av0B/AL9AfsBvwFI
|
||||||
AUgBrgHsAc4B5QL6AfYC+AH0AvcB8gL2AfAC+gHzAtAByAwAAtAByAL/Af4C/QH8AekBzwHrAa4BSAG/
|
Aa4B7AHOAeUC+gH2AvgB9AL3AfIC9gHwAvoB8wLQAcgMAALQAcgC/wH+Av0B/AHpAc8B6wGuAUgBvwGu
|
||||||
Aa4BSAG/Aa4BSAG/AdMBoQHaAvcB8gL2AfAC+gHzAtAByAwAA/4D/AP5A7MDXAb8A1wDtAP5A/wD/gYA
|
AUgBvwGuAUgBvwHTAaEB2gL3AfIC9gHwAvoB8wLQAcgMAAP+A/wD+QOzA1wG/ANcA7QD+QP8A/4GAAP9
|
||||||
A/0DhAM0A4QD+APiBjQDhAPiA3UDpAP4A4QDNAPpBgAC0gHLAv4D/QH7AvwB+QHGAU8BtQHsAc8B5QL4
|
A4QDNAOEA/gD4gY0A4QD4gN1A6QD+AOEAzQD6QYAAtIBywL+A/0B+wL8AfkBxgFPAbUB7AHPAeUC+AH0
|
||||||
AfQC9wHyAvYB8AL1Ae4C+gHyAtIBywwAAtIBywL+A/0B+wHqAdEB7QG1AU8BxgL6AfYB5wHOAegBtQFP
|
AvcB8gL2AfAC9QHuAvoB8gLSAcsMAALSAcsC/gP9AfsB6gHRAe0BtQFPAcYC+gH2AecBzgHoAbUBTwHG
|
||||||
AcYB7gHhAesC9QHuAvoB8gLSAcsSAAPLA3UD+AYAA/gDdQPLEgADeQP1BgADqgN5BgADywO+A+4DqgPC
|
Ae4B4QHrAvUB7gL6AfIC0gHLEgADywN1A/gGAAP4A3UDyxIAA3kD9QYAA6oDeQYAA8sDvgPuA6oDwgkA
|
||||||
CQAC1QHNAv4D/AH5AvsB+AHOAVcBvQHOAVcBvQHOAVcBvQHiAaYB1gL1Ae4C9AHsAvkB7wLVAc0MAALV
|
AtUBzQL+A/wB+QL7AfgBzgFXAb0BzgFXAb0BzgFXAb0B4gGmAdYC9QHuAvQB7AL5Ae8C1QHNDAAC1QHN
|
||||||
Ac0C/gP8AfkB6wHSAe0BvQFXAc4C+AH0AvcB8gG9AVcBzgHnAc0B5QL0AewC+QHvAtUBzQ8AA84DfwP5
|
Av4D/AH5AesB0gHtAb0BVwHOAvgB9AL3AfIBvQFXAc4B5wHNAeUC9AHsAvkB7wLVAc0PAAPOA38D+QwA
|
||||||
DAAD+QN/A84PAAPGDGADxgYAA/UJYAPpCQAC1gHOAv0D+wH4AvoB9gHWAV8BxQHvAdEB5gL2AfAC9QHu
|
A/kDfwPODwADxgxgA8YGAAP1CWAD6QkAAtYBzgL9A/sB+AL6AfYB1gFfAcUB7wHRAeYC9gHwAvUB7gL0
|
||||||
AvQB7ALxAecC9wHqAtYBzgwAAtYBzgL9A/sB+AHsAdMB7gHFAV8B1gL3AfIB6gHRAeoBxQFfAdYB7QHh
|
AewC8QHnAvcB6gLWAc4MAALWAc4C/QP7AfgB7AHTAe4BxQFfAdYC9wHyAeoB0QHqAcUBXwHWAe0B4QHp
|
||||||
AekC8QHnAvcB6gLWAc4MAAPQA4YD+RIAA/kDhgPQDAAD9QOUA+8D0QNoA/UJAAOTA+8DaAwAAtgB0AL9
|
AvEB5wL3AeoC1gHODAAD0AOGA/kSAAP5A4YD0AwAA/UDlAPvA9EDaAP1CQADkwPvA2gMAALYAdAC/QP6
|
||||||
A/oB9gL4AfQB3AFlAcsB3AFlAcsB3AFlAcsB4gGJAdMC8QHnAuwB3wL0AeUC2AHQDAAC2AHQAv0D+gH2
|
AfYC+AH0AdwBZQHLAdwBZQHLAdwBZQHLAeIBiQHTAvEB5wLsAd8C9AHlAtgB0AwAAtgB0AL9A/oB9gHt
|
||||||
Ae0B0wHuAcsBZQHcAcsBZQHcAcsBZQHcAd8BrAHjAvEB5wLsAd8C9AHlAtgB0AkAA+8DbAPvGAAD7wNs
|
AdMB7gHLAWUB3AHLAWUB3AHLAWUB3AHfAawB4wLxAecC7AHfAvQB5QLYAdAJAAPvA2wD7xgAA+8DbAPv
|
||||||
A+8MAAOPA/YDtwOPDAADzAN9A8wMAALaAdIC/AP4AfQC9wHyAvYB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZ
|
DAADjwP2A7cDjwwAA8wDfQPMDAAC2gHSAvwD+AH0AvcB8gL2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLz
|
||||||
AvMB4gLaAdIMAALaAdIC/AP4AfQC9wHyAvYB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZAvMB4gLaAdIMAAPU
|
AeIC2gHSDAAC2gHSAvwD+AH0AvcB8gL2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLzAeIC2gHSDAAD1AOR
|
||||||
A5ED+RIAA/kDkQPUDwADzgPVA3cDzgwAA+wDdwPsDAAC2wHTAvwD9wHyAvYB8AL1Ae4C9AHsAvEB5wLs
|
A/kSAAP5A5ED1A8AA84D1QN3A84MAAPsA3cD7AwAAtsB0wL8A/cB8gL2AfAC9QHuAvQB7ALxAecC7AHf
|
||||||
Ad8C6AHZAuYB1QLyAeEC2wHTDAAC2wHTAvwD9wHyAvYB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZAuYB1QLy
|
|
||||||
AeEC2wHTDwAD1QOWA/kMAAP5A5YD1RIAA/YDogN+A/YhAALcAdUC+wP2AfAC9QHuAvQB7ALxAecC7AHf
|
|
||||||
AugB2QLmAdUC5QHUAvIB4QLcAdUMAALcAdUC+wP2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUC5QHU
|
|
||||||
AvIB4QLcAdUSAAPXA5kD+gYAA/oDmQPXGAAGnCQAAt0B1gL6AfQC9QHuAvQB7ALxAecC7AHfAugB2QLm
|
|
||||||
AdUCpAGTAqQBkwKkAZMCyQHADAAC3QHWAvoB9AL1Ae4C9AHsAvEB5wLsAd8C6AHZAuYB1QKkAZMCpAGT
|
|
||||||
AqQBkwLJAcAVAAPYA50GAAOdA9hFAALeAdcC+gHzAvQB7ALxAecC7AHfAugB2QLmAdUC5QHUArYBpQP/
|
|
||||||
At4B1wL3AfYMAALeAdcC+gHzAvQB7ALxAecC7AHfAugB2QLmAdUC5QHUArYBpQP/At4B1wL3AfZsAALf
|
|
||||||
AdkC/AH1AvkB7wL2AeoC9AHlAvMB4gLyAeEC8gHhAsIBsQLfAdkC9wH2DwAC3wHZAvwB9QL5Ae8C9gHq
|
|
||||||
AvQB5QLzAeIC8gHhAvIB4QLCAbEC3wHZAvcB9m8AAuoB5gLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLg
|
|
||||||
AdkC4AHZAvcB9hIAAuoB5gLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAvcB9mwAA/sD8QLI
|
|
||||||
AcMCuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwAsgBwwPxBvsD8QLIAcMCuAGw
|
|
||||||
ArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwAsgBwwPxBvsD8QLIAcMCuAGwArgBsAK4
|
|
||||||
AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwAsgBwwPxBvsD8QLIAcMCuAGwArgBsAK4AbACuAGw
|
|
||||||
ArgBsAK4AbACuAGwArgBsAK4AbACuAGwAsgBwwPxA/sD/QP6AsABuAv/A/4B/QL+AfwC/QH7Av0B+gL8
|
|
||||||
AfgC/gH5AsABuAP6Bv0D+gLAAbgL/wP+Af0C/gH8Av0B+wL9AfoC/AH4Av4B+QLAAbgD+gb9A/oCwAG4
|
|
||||||
C/8D/gH9Av4B/AL9AfsC/QH6AvwB+AL+AfkCwAG4A/oG/QP6AsABuAv/A/4B/QL+AfwC/QH7Av0B+gL8
|
|
||||||
AfgC/gH5AsABuAP6A/0GAALJAcEG/wP+Av0B/AL9AfsC/AH5AvsB+AL6AfYC+AH0AvsB9gLJAcEMAALJ
|
|
||||||
AcEG/wP+Av0B/AL9AfsC/AH5AvsB+AL6AfYC+AH0AvsB9gLJAcEMAALJAcEG/wP+Av0B/AL9AfsC/AH5
|
|
||||||
AvsB+AL6AfYC+AH0AvsB9gLJAcEMAALJAcEG/wP+Av0B/AL9AfsC/AH5AvsB+AL6AfYC+AH0AvsB9gLJ
|
|
||||||
AcEMAALPAccD/wP+Av0B/AL9AfsC/AH5AvsB+AL6AfYC+AH0AvcB8gL7AfUCzwHHDAACzwHHA/8D/gL9
|
|
||||||
AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL3AfIC+wH1As8BxwwAAs8BxwP/A/4C/QH8Av0B+wL8AfkC+wH4
|
|
||||||
AvoB9gL4AfQC9wHyAvsB9QLPAccMAALPAccD/wP+Av0B/AL9AfsC/AH5AvsB+AL6AfYC+AH0AvcB8gL7
|
|
||||||
AfUCzwHHDAAC0AHIAv8B/gL9AfwB3AHPAesBewFIAb8BewFIAb8BewFIAb8BiwFeAcYB6AHhAesC9gHw
|
|
||||||
AvoB8wLQAcgMAALQAcgC/wH+Av0B/AL9AfsBggHCAbQBWQGuAZ0BWQGuAZ0BqQHTAcgC9wHyAvYB8AL6
|
|
||||||
AfMC0AHIDAAC0AHIAv8B/gL9AfwC/QH7Ad4BogGpAb8BSAFZAb8BSAFZAdwBoAGmAvcB8gL2AfAC+gHz
|
|
||||||
AtAByAwAAtAByAL/Af4C/QH8Av0B+wG/AXsBSAG/AXsBSAG/AXsBSAHcAboBngL3AfIC9gHwAvoB8wLQ
|
|
||||||
AcgMAALSAcsC/gP9AfsB3QHRAe0BggFPAcYC+gH2AvgB9AGCAU8BxgHZAcwB5QL1Ae4C+gHyAtIBywwA
|
|
||||||
AtIBywL+A/0B+wL8AfkC+wH4AvoB9gHSAegB4AFgAbUBpAL2AfAC9QHuAvoB8gLSAcsMAALSAcsC/gP9
|
|
||||||
AfsC/AH5AvsB+AHgAaUBqwHTAXoBhQL3AfIC9gHwAvUB7gL6AfIC0gHLDAAC0gHLAv4D/QH7AvwB+QHG
|
|
||||||
AYIBTwHsAdsBzAL4AfQC9wHyAvYB8AL1Ae4C+gHyAtIBywwAAtUBzQL+A/wB+QHfAdIB7QGKAVcBzgGY
|
|
||||||
AWwB0wGKAVcBzgGlAX8B1wHnAeEB6QL0AewC+QHvAtUBzQwAAtUBzQL+A/wB+QL7AfgBsgHcAdIBaAG9
|
|
||||||
AawBaAG9AawBrgHZAc0C9QHuAvQB7AL5Ae8C1QHNDAAC1QHNAv4D/AH5AvsB+AL6AfYB4wGoAa4B2QF/
|
|
||||||
AYsC9gHwAvUB7gL0AewC+QHvAtUBzQwAAtUBzQL+A/wB+QL7AfgBzgGKAVcB7gHdAcwC9wHyAvYB8AL1
|
|
||||||
Ae4C9AHsAvkB7wLVAc0MAALWAc4C/QP7AfgB4AHTAe4BkgFfAdYC9wHyAd0B0AHpAZIBXwHWAvQB7ALx
|
|
||||||
AecC9wHqAtYBzgwAAtYBzgL9A/sB+AL6AfYBcAHFAbQB1QHrAeIC9gHwAvUB7gL0AewC8QHnAvcB6gLW
|
|
||||||
Ac4MAALWAc4C/QP7AfgC+gH2AvgB9AHnAasBsQHeAYUBkAL1Ae4C9AHsAvEB5wL3AeoC1gHODAAC1gHO
|
|
||||||
Av0D+wH4AvoB9gHWAZIBXwHvAd4BzQL2AfAC9QHuAvQB7ALxAecC9wHqAtYBzgwAAtgB0AL9A/oB9gHg
|
|
||||||
AdMB7gGYAWUB3AGYAWUB3AGYAWUB3AHFAawB4wLxAecC7AHfAvQB5QLYAdAMAALYAdAC/QP6AfYC+AH0
|
|
||||||
AbcB4QHVAXYBywG6AXYBywG6AZUB1QHGAvEB5wLsAd8C9AHlAtgB0AwAAtgB0AL9A/oB9gL4AfQB6gGv
|
|
||||||
AbQB3AFlAXYB3AFlAXYB6AGsAbEC8QHnAuwB3wL0AeUC2AHQDAAC2AHQAv0D+gH2AvgB9AHcAZgBZQHv
|
|
||||||
Ad4BzQL1Ae4C9AHsAvEB5wLsAd8C9AHlAtgB0AwAAtoB0gL8A/gB9AL3AfIC9gHwAvUB7gL0AewC8QHn
|
|
||||||
AuwB3wLoAdkC8wHiAtoB0gwAAtoB0gL8A/gB9AL3AfIC9gHwAvUB7gL0AewC8QHnAuwB3wLoAdkC8wHi
|
|
||||||
AtoB0gwAAtoB0gL8A/gB9AL3AfIC9gHwAvUB7gL0AewC8QHnAuwB3wLoAdkC8wHiAtoB0gwAAtoB0gL8
|
|
||||||
A/gB9AL3AfIC9gHwAvUB7gL0AewC8QHnAuwB3wLoAdkC8wHiAtoB0gwAAtsB0wL8A/cB8gL2AfAC9QHu
|
|
||||||
AvQB7ALxAecC7AHfAugB2QLmAdUC8gHhAtsB0wwAAtsB0wL8A/cB8gL2AfAC9QHuAvQB7ALxAecC7AHf
|
|
||||||
AugB2QLmAdUC8gHhAtsB0wwAAtsB0wL8A/cB8gL2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUC8gHh
|
AugB2QLmAdUC8gHhAtsB0wwAAtsB0wL8A/cB8gL2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUC8gHh
|
||||||
AtsB0wwAAtsB0wL8A/cB8gL2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUC8gHhAtsB0wwAAtwB1QL7
|
AtsB0w8AA9UDlgP5DAAD+QOWA9USAAP2A6IDfgP2IQAC3AHVAvsD9gHwAvUB7gL0AewC8QHnAuwB3wLo
|
||||||
A/YB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZAuYB1QLlAdQC8gHhAtwB1QwAAtwB1QL7A/YB8AL1Ae4C9AHs
|
AdkC5gHVAuUB1ALyAeEC3AHVDAAC3AHVAvsD9gHwAvUB7gL0AewC8QHnAuwB3wLoAdkC5gHVAuUB1ALy
|
||||||
AvEB5wLsAd8C6AHZAuYB1QLlAdQC8gHhAtwB1QwAAtwB1QL7A/YB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZ
|
AeEC3AHVEgAD1wOZA/oGAAP6A5kD1xgABpwkAALdAdYC+gH0AvUB7gL0AewC8QHnAuwB3wLoAdkC5gHV
|
||||||
AuYB1QLlAdQC8gHhAtwB1QwAAtwB1QL7A/YB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZAuYB1QLlAdQC8gHh
|
AqQBkwKkAZMCpAGTAskBwAwAAt0B1gL6AfQC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUCpAGTAqQBkwKk
|
||||||
AtwB1QwAAt0B1gL6AfQC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUCpAGTAqQBkwKkAZMCyQHADAAC3QHW
|
AZMCyQHAFQAD2AOdBgADnQPYRQAC3gHXAvoB8wL0AewC8QHnAuwB3wLoAdkC5gHVAuUB1AK2AaUD/wLe
|
||||||
AvoB9AL1Ae4C9AHsAvEB5wLsAd8C6AHZAuYB1QKkAZMCpAGTAqQBkwLJAcAMAALdAdYC+gH0AvUB7gL0
|
AdcC9wH2DAAC3gHXAvoB8wL0AewC8QHnAuwB3wLoAdkC5gHVAuUB1AK2AaUD/wLeAdcC9wH2bAAC3wHZ
|
||||||
AewC8QHnAuwB3wLoAdkC5gHVAqQBkwKkAZMCpAGTAskBwAwAAt0B1gL6AfQC9QHuAvQB7ALxAecC7AHf
|
AvwB9QL5Ae8C9gHqAvQB5QLzAeIC8gHhAvIB4QLCAbEC3wHZAvcB9g8AAt8B2QL8AfUC+QHvAvYB6gL0
|
||||||
AugB2QLmAdUCpAGTAqQBkwKkAZMCyQHADAAC3gHXAvoB8wL0AewC8QHnAuwB3wLoAdkC5gHVAuUB1AK2
|
AeUC8wHiAvIB4QLyAeECwgGxAt8B2QL3AfZvAALqAeYC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZ
|
||||||
AaUD/wLeAdcC9wH2DAAC3gHXAvoB8wL0AewC8QHnAuwB3wLoAdkC5gHVAuUB1AK2AaUD/wLeAdcC9wH2
|
AuAB2QL3AfYSAALqAeYC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QL3AfZsAAP7A/ECyAHD
|
||||||
DAAC3gHXAvoB8wL0AewC8QHnAuwB3wLoAdkC5gHVAuUB1AK2AaUD/wLeAdcC9wH2DAAC3gHXAvoB8wL0
|
ArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsALIAcMD8Qb7A/ECyAHDArgBsAK4
|
||||||
AewC8QHnAuwB3wLoAdkC5gHVAuUB1AK2AaUD/wLeAdcC9wH2DAAC3wHZAvwB9QL5Ae8C9gHqAvQB5QLz
|
AbACuAGwArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsALIAcMD8Qb7A/ECyAHDArgBsAK4AbACuAGw
|
||||||
AeIC8gHhAvIB4QLCAbEC3wHZAvcB9g8AAt8B2QL8AfUC+QHvAvYB6gL0AeUC8wHiAvIB4QLyAeECwgGx
|
ArgBsAK4AbACuAGwArgBsAK4AbACuAGwArgBsALIAcMD8Qb7A/ECyAHDArgBsAK4AbACuAGwArgBsAK4
|
||||||
At8B2QL3AfYPAALfAdkC/AH1AvkB7wL2AeoC9AHlAvMB4gLyAeEC8gHhAsIBsQLfAdkC9wH2DwAC3wHZ
|
AbACuAGwArgBsAK4AbACuAGwArgBsALIAcMD8QP7A/0D+gLAAbgL/wP+Af0C/gH8Av0B+wL9AfoC/AH4
|
||||||
AvwB9QL5Ae8C9gHqAvQB5QLzAeIC8gHhAvIB4QLCAbEC3wHZAvcB9g8AAuoB5gLgAdkC4AHZAuAB2QLg
|
Av4B+QLAAbgD+gb9A/oCwAG4C/8D/gH9Av4B/AL9AfsC/QH6AvwB+AL+AfkCwAG4A/oG/QP6AsABuAv/
|
||||||
AdkC4AHZAuAB2QLgAdkC4AHZAvcB9hIAAuoB5gLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZ
|
A/4B/QL+AfwC/QH7Av0B+gL8AfgC/gH5AsABuAP6Bv0D+gLAAbgL/wP+Af0C/gH8Av0B+wL9AfoC/AH4
|
||||||
AvcB9hIAAuoB5gLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAvcB9hIAAuoB5gLgAdkC4AHZ
|
Av4B+QLAAbgD+gP9BgACyQHBBv8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL7AfYCyQHBDAACyQHB
|
||||||
AuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAvcB9gwAAUIBTQE+BwABPgMAASgDAAFAAwABQAMAAQEBAAEB
|
Bv8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL7AfYCyQHBDAACyQHBBv8D/gL9AfwC/QH7AvwB+QL7
|
||||||
BgABAhYAA/8CAAEBAQABAQL/AwABAQEAAQEC/wMAAQEBAAEBAv8DAAEBAQABAQHAAQMDAAEBAQABAQHA
|
AfgC+gH2AvgB9AL7AfYCyQHBDAACyQHBBv8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL7AfYCyQHB
|
||||||
AQMDAAEBAQABAQHxAY8DAAEBAQABAQHgAQcDAAEBAQABAQHGAWMDAAEBAQABAQGOAXEDAAEBAQABAQHG
|
DAACzwHHA/8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL3AfIC+wH1As8BxwwAAs8BxwP/A/4C/QH8
|
||||||
AWMDAAEBAQABAQHgAQcDAAEBAQABAQHxAY8DAAEBAQABAQH5AZ8DAAEBAQABAQL/AwABAQEAAQEC/wIA
|
Av0B+wL8AfkC+wH4AvoB9gL4AfQC9wHyAvsB9QLPAccMAALPAccD/wP+Av0B/AL9AfsC/AH5AvsB+AL6
|
||||||
AYABAwEAAQEC/wIABP8CAAH+AQEC/wUAAQEBiAMAAcABAQEAAQEBiAEAAYABAQHAAQEBAAEBAY8B/wGA
|
AfYC+AH0AvcB8gL7AfUCzwHHDAACzwHHA/8D/gL9AfwC/QH7AvwB+QL7AfgC+gH2AvgB9AL3AfIC+wH1
|
||||||
AQEBwAEBAQABAQL/AYABAQHAAQEBAAEBAv8BgAEBAcABAQEAAQEBjwH/AYABAQHAAQEBAAEBAYwBAQGA
|
As8BxwwAAtAByAL/Af4C/QH8AdwBzwHrAXsBSAG/AXsBSAG/AXsBSAG/AYsBXgHGAegB4QHrAvYB8AL6
|
||||||
AQEBwAEBAQABAQGPAf8BgAEBAcABAwEAAR8C/wGAAQEBwAEDAfABHwL/AYABAQHAAQMB8AEfAY8B/wGA
|
AfMC0AHIDAAC0AHIAv8B/gL9AfwC/QH7AYIBwgG0AVkBrgGdAVkBrgGdAakB0wHIAvcB8gL2AfAC+gHz
|
||||||
AQEBwAEDAfABHwGMAQEBgAEBAcABAwHwAR8BjwH/AYABAQHAAQMB8AEfBP8BwAEDAfABHwQABP8EAAT/
|
AtAByAwAAtAByAL/Af4C/QH8Av0B+wHeAaIBqQG/AUgBWQG/AUgBWQHcAaABpgL3AfIC9gHwAvoB8wLQ
|
||||||
AcABAwHAAQME/wHAAQMBwAEDAcABAwIAAcABAwHAAQMBwAEDAgABwAEDAcABAwHxAY8BzAHBAcABAwHA
|
AcgMAALQAcgC/wH+Av0B/AL9AfsBvwF7AUgBvwF7AUgBvwF7AUgB3AG6AZ4C9wHyAvYB8AL6AfMC0AHI
|
||||||
AQMB4wHHAcABwQHAAQMBwAEDAccB4wHAAeMBwAEDAcABAwGPAfEB4QHjAcABAwHAAQMBxwHjAeEB4wHA
|
DAAC0gHLAv4D/QH7Ad0B0QHtAYIBTwHGAvoB9gL4AfQBggFPAcYB2QHMAeUC9QHuAvoB8gLSAcsMAALS
|
||||||
AQMBwAEDAeMBxwHhAf8BwAEDAcABAwHxAY8B8wH/AcABAwHAAQMB+QGfAv8BwAEDAcABAwT/AcABBwHA
|
AcsC/gP9AfsC/AH5AvsB+AL6AfYB0gHoAeABYAG1AaQC9gHwAvUB7gL6AfIC0gHLDAAC0gHLAv4D/QH7
|
||||||
AQcE/wHAAQ8BwAEPBP8QAAHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAED
|
AvwB+QL7AfgB4AGlAasB0wF6AYUC9wHyAvYB8AL1Ae4C+gHyAtIBywwAAtIBywL+A/0B+wL8AfkBxgGC
|
||||||
AcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAED
|
AU8B7AHbAcwC+AH0AvcB8gL2AfAC9QHuAvoB8gLSAcsMAALVAc0C/gP8AfkB3wHSAe0BigFXAc4BmAFs
|
||||||
AcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAED
|
AdMBigFXAc4BpQF/AdcB5wHhAekC9AHsAvkB7wLVAc0MAALVAc0C/gP8AfkC+wH4AbIB3AHSAWgBvQGs
|
||||||
AcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQcBwAEHAcABBwHAAQcBwAEPAcABDwHAAQ8BwAEP
|
AWgBvQGsAa4B2QHNAvUB7gL0AewC+QHvAtUBzQwAAtUBzQL+A/wB+QL7AfgC+gH2AeMBqAGuAdkBfwGL
|
||||||
Cw==
|
AvYB8AL1Ae4C9AHsAvkB7wLVAc0MAALVAc0C/gP8AfkC+wH4Ac4BigFXAe4B3QHMAvcB8gL2AfAC9QHu
|
||||||
|
AvQB7AL5Ae8C1QHNDAAC1gHOAv0D+wH4AeAB0wHuAZIBXwHWAvcB8gHdAdAB6QGSAV8B1gL0AewC8QHn
|
||||||
|
AvcB6gLWAc4MAALWAc4C/QP7AfgC+gH2AXABxQG0AdUB6wHiAvYB8AL1Ae4C9AHsAvEB5wL3AeoC1gHO
|
||||||
|
DAAC1gHOAv0D+wH4AvoB9gL4AfQB5wGrAbEB3gGFAZAC9QHuAvQB7ALxAecC9wHqAtYBzgwAAtYBzgL9
|
||||||
|
A/sB+AL6AfYB1gGSAV8B7wHeAc0C9gHwAvUB7gL0AewC8QHnAvcB6gLWAc4MAALYAdAC/QP6AfYB4AHT
|
||||||
|
Ae4BmAFlAdwBmAFlAdwBmAFlAdwBxQGsAeMC8QHnAuwB3wL0AeUC2AHQDAAC2AHQAv0D+gH2AvgB9AG3
|
||||||
|
AeEB1QF2AcsBugF2AcsBugGVAdUBxgLxAecC7AHfAvQB5QLYAdAMAALYAdAC/QP6AfYC+AH0AeoBrwG0
|
||||||
|
AdwBZQF2AdwBZQF2AegBrAGxAvEB5wLsAd8C9AHlAtgB0AwAAtgB0AL9A/oB9gL4AfQB3AGYAWUB7wHe
|
||||||
|
Ac0C9QHuAvQB7ALxAecC7AHfAvQB5QLYAdAMAALaAdIC/AP4AfQC9wHyAvYB8AL1Ae4C9AHsAvEB5wLs
|
||||||
|
Ad8C6AHZAvMB4gLaAdIMAALaAdIC/AP4AfQC9wHyAvYB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZAvMB4gLa
|
||||||
|
AdIMAALaAdIC/AP4AfQC9wHyAvYB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZAvMB4gLaAdIMAALaAdIC/AP4
|
||||||
|
AfQC9wHyAvYB8AL1Ae4C9AHsAvEB5wLsAd8C6AHZAvMB4gLaAdIMAALbAdMC/AP3AfIC9gHwAvUB7gL0
|
||||||
|
AewC8QHnAuwB3wLoAdkC5gHVAvIB4QLbAdMMAALbAdMC/AP3AfIC9gHwAvUB7gL0AewC8QHnAuwB3wLo
|
||||||
|
AdkC5gHVAvIB4QLbAdMMAALbAdMC/AP3AfIC9gHwAvUB7gL0AewC8QHnAuwB3wLoAdkC5gHVAvIB4QLb
|
||||||
|
AdMMAALbAdMC/AP3AfIC9gHwAvUB7gL0AewC8QHnAuwB3wLoAdkC5gHVAvIB4QLbAdMMAALcAdUC+wP2
|
||||||
|
AfAC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUC5QHUAvIB4QLcAdUMAALcAdUC+wP2AfAC9QHuAvQB7ALx
|
||||||
|
AecC7AHfAugB2QLmAdUC5QHUAvIB4QLcAdUMAALcAdUC+wP2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLm
|
||||||
|
AdUC5QHUAvIB4QLcAdUMAALcAdUC+wP2AfAC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUC5QHUAvIB4QLc
|
||||||
|
AdUMAALdAdYC+gH0AvUB7gL0AewC8QHnAuwB3wLoAdkC5gHVAqQBkwKkAZMCpAGTAskBwAwAAt0B1gL6
|
||||||
|
AfQC9QHuAvQB7ALxAecC7AHfAugB2QLmAdUCpAGTAqQBkwKkAZMCyQHADAAC3QHWAvoB9AL1Ae4C9AHs
|
||||||
|
AvEB5wLsAd8C6AHZAuYB1QKkAZMCpAGTAqQBkwLJAcAMAALdAdYC+gH0AvUB7gL0AewC8QHnAuwB3wLo
|
||||||
|
AdkC5gHVAqQBkwKkAZMCpAGTAskBwAwAAt4B1wL6AfMC9AHsAvEB5wLsAd8C6AHZAuYB1QLlAdQCtgGl
|
||||||
|
A/8C3gHXAvcB9gwAAt4B1wL6AfMC9AHsAvEB5wLsAd8C6AHZAuYB1QLlAdQCtgGlA/8C3gHXAvcB9gwA
|
||||||
|
At4B1wL6AfMC9AHsAvEB5wLsAd8C6AHZAuYB1QLlAdQCtgGlA/8C3gHXAvcB9gwAAt4B1wL6AfMC9AHs
|
||||||
|
AvEB5wLsAd8C6AHZAuYB1QLlAdQCtgGlA/8C3gHXAvcB9gwAAt8B2QL8AfUC+QHvAvYB6gL0AeUC8wHi
|
||||||
|
AvIB4QLyAeECwgGxAt8B2QL3AfYPAALfAdkC/AH1AvkB7wL2AeoC9AHlAvMB4gLyAeEC8gHhAsIBsQLf
|
||||||
|
AdkC9wH2DwAC3wHZAvwB9QL5Ae8C9gHqAvQB5QLzAeIC8gHhAvIB4QLCAbEC3wHZAvcB9g8AAt8B2QL8
|
||||||
|
AfUC+QHvAvYB6gL0AeUC8wHiAvIB4QLyAeECwgGxAt8B2QL3AfYPAALqAeYC4AHZAuAB2QLgAdkC4AHZ
|
||||||
|
AuAB2QLgAdkC4AHZAuAB2QL3AfYSAALqAeYC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QL3
|
||||||
|
AfYSAALqAeYC4AHZAuAB2QLgAdkC4AHZAuAB2QLgAdkC4AHZAuAB2QL3AfYSAALqAeYC4AHZAuAB2QLg
|
||||||
|
AdkC4AHZAuAB2QLgAdkC4AHZAuAB2QL3AfYMAAFCAU0BPgcAAT4DAAEoAwABQAMAAUADAAEBAQABAQYA
|
||||||
|
AQIWAAP/AgABAQEAAQEC/wMAAQEBAAEBAv8DAAEBAQABAQL/AwABAQEAAQEBwAEDAwABAQEAAQEBwAED
|
||||||
|
AwABAQEAAQEB8QGPAwABAQEAAQEB4AEHAwABAQEAAQEBxgFjAwABAQEAAQEBjgFxAwABAQEAAQEBxgFj
|
||||||
|
AwABAQEAAQEB4AEHAwABAQEAAQEB8QGPAwABAQEAAQEB+QGfAwABAQEAAQEC/wMAAQEBAAEBAv8CAAGA
|
||||||
|
AQMBAAEBAv8CAAT/AgAB/gEBAv8FAAEBAYgDAAHAAQEBAAEBAYgBAAGAAQEBwAEBAQABAQGPAf8BgAEB
|
||||||
|
AcABAQEAAQEC/wGAAQEBwAEBAQABAQL/AYABAQHAAQEBAAEBAY8B/wGAAQEBwAEBAQABAQGMAQEBgAEB
|
||||||
|
AcABAQEAAQEBjwH/AYABAQHAAQMBAAEfAv8BgAEBAcABAwHwAR8C/wGAAQEBwAEDAfABHwGPAf8BgAEB
|
||||||
|
AcABAwHwAR8BjAEBAYABAQHAAQMB8AEfAY8B/wGAAQEBwAEDAfABHwT/AcABAwHwAR8EAAT/BAAE/wHA
|
||||||
|
AQMBwAEDBP8BwAEDAcABAwHAAQMCAAHAAQMBwAEDAcABAwIAAcABAwHAAQMB8QGPAcwBwQHAAQMBwAED
|
||||||
|
AeMBxwHAAcEBwAEDAcABAwHHAeMBwAHjAcABAwHAAQMBjwHxAeEB4wHAAQMBwAEDAccB4wHhAeMBwAED
|
||||||
|
AcABAwHjAccB4QH/AcABAwHAAQMB8QGPAfMB/wHAAQMBwAEDAfkBnwL/AcABAwHAAQME/wHAAQcBwAEH
|
||||||
|
BP8BwAEPAcABDwT/EAABwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHA
|
||||||
|
AQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHA
|
||||||
|
AQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEDAcABAwHA
|
||||||
|
AQMBwAEDAcABAwHAAQMBwAEDAcABAwHAAQMBwAEHAcABBwHAAQcBwAEHAcABDwHAAQ8BwAEPAcABDws=
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
@ -603,15 +602,15 @@
|
||||||
<data name="_buttonCut.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="_buttonCut.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHASURBVDhPrVI9SAJhGH5vlygi+jFIBBGH8CZBAkFwEWlQ
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHBSURBVDhPrVI9SAJhGH5vlygi+rkgEUQc4pwECQTBRaRB
|
||||||
WsIma1cKTG40AucajCJoixqkloiEcBCCEC7ilqTloDjiloYKEvLrfT68UDFpSHh4v/f5u+9Uov/4pFKp
|
aQmbrFmkwOQ2jcC5BqMI2qIGqSUiIRyEIISLuCVpEQqJW4IoMMiv9/nwQsWkIeHh/d7n775Tif7jE4/H
|
||||||
xWQyGfxLF3zw93gzmYwGJBKJoSXQHW9Pgc/n03RdF+l0WotGowNLwEOHD/7+2wZBGoYh+Iqaqqo9JdjB
|
F2OxmPaXLvjg7/Emk0kdiEajQ0ug296eArfbrRuGIRKJhB4KhQaWgIcOH/z9t9VAmqYp+Iq6z+frKcEO
|
||||||
Q++EBz4k6Pf7tWazKeLxuMZGacLEDh46U0NfU5aYpikikYjmdruXMLH/JSxfa4GfEAgENMuyRCwWu6rV
|
HnonPPAhmsfj0ev1uohEIjobpQkTO3joTA19TVnSaDREMBjUVVVdwsT+l7B8rQV+gtfr1ZvNpgiHw1eV
|
||||||
agI7+F9/pRci1zPR8pOi7DBOK4pS3fJ4DNu2Rd3lMu54Bw8dPvh/ygxeHhVl2w6HGx/Z7GurWGyLUknc
|
SkVgB//rr/RC5HgmWn5SlB3GaUlRyltOp2lZlqg6HOYd7+Chwwf/T5nJy6OibFuBQO0jlXpt5XJtUSiI
|
||||||
53LimugdZwA8dPjgR06W6EQrZiikw3Tm9T7sEjW+ikVxwfOSqIyJHTx0+OBHThbUFeWwO/yZz4tzNjOk
|
+3RaXBO94wyAhw4f/MjJEoNopeH3GzCduVwPu0S1r3xeXPC8JCpiYgcPHT74kZMFVUU57A63MhlxzmaG
|
||||||
ARM7+O4S5GRBhaj6ls+3IbYKBXHM88Rp77wodvDQ4YMfOSnvEe3fqqqFWxyxuNkXdr4s8NDhgx85qfmJ
|
NGBiB99dgpwsKBGV3zKZNsTPbFYc8zyx2zsvih08dPjgR07Ke0T7t5rWxC2OWNzsC9tfFnjo8MGPnNQ8
|
||||||
omWiAyZuVok2mJrH/4cxx3AzZhleRmCNaB0++JFzymf44GCaz5OMccYoY6SDMZ4TjKkuLzL0DSJE7Fvo
|
RKEi0QETN6tEG0zN4//DmGOojFmGi+FdI1qHD37k7PIZPtiY5vMkY5wxyhjpYIznBGOqy4sMfQMNTOxL
|
||||||
PhlwAAAAAElFTkSuQmCC
|
rJWu9gAAAABJRU5ErkJggg==
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="_buttonCopy.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="_buttonCopy.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
@ -631,17 +630,17 @@
|
||||||
<data name="_buttonPaste.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="_buttonPaste.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJfSURBVDhPjZJdSJNRGMfPRQhdVRJd1GVNc1j5Tm3ah5oG
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJfSURBVDhPjZJdSJNRGMfPRQhdVRJd1GVNc1j2Tm3ah5oG
|
||||||
y5EX6pxOXWo5tZlDG69JDlakhJB5saKitC/t+8uLFnQTSGAXb2gfUEkIUdZFMSi3tjn133ne2oFtXnTg
|
y5EX6pxOXWr51UzRxmuSwoqUEFperKgo7Uv7/vKiBd0EEtjFCe0DKgkhyrooBuVsm9P9O89bO6DzogM/
|
||||||
x3s45zk/nvN/D2NLDHeFNqm8vLzMZDI1EzSntaVqxdqZfHbBk8cUokdik0Ny69epqY8gaE5r0X2qTZDR
|
3sM5z/nxnP97GFtiuEr0ccXFxUUWi6WBoDmtLVUr185kswueLMaJboWND6hNXycmPoKgOa1F96k2Rkab
|
||||||
5oez+zHatg3j468xMfEe09NfVGhOa7T3zlMPqk0QnN7JlDcDtbhel46LlRtw1arFzQMZuG3TYbh+E4aq
|
H87ux3DzNoyOvsbY2HtMTn7RoDmt0d47TzWoNkZweifjb/oqcb0qGRdLN+CqXY+bB7bgdp0Bg9WbMFCe
|
||||||
UzHSsBmv+qtBtQmC/lymTJ6y4PmxEjxxFqicl0sxcMQiOOduwGBvM3p2r36bIOjLYcrLPjOede8ReLqt
|
iKGazXjlLgfVxgjcmYyPn7Lh+bECPHHmaJxXC9F3xCY556pBf08Dunevfhsj6M1g/GWvFc8690g8nXb8
|
||||||
+L2wgF9zc/gRCmHG78fo2BjaK/WfylwuTYzkZBZTXvSU4mlnkaC/swqBSAS+QADfZ2fx2efDiNcLGntl
|
np/Hr9lZ/AgGMeX3Y3hkBK2lxk9FXV26BZKTaYy/6C7E0/Y8ibu9DDPhMHwzM/g+PY3PPh+GvF7Q2Kuq
|
||||||
2V7c1ZUiJCcymULtP+7IU6HAjttLEJyfx89gUEg8w8OIojEYXELg3sIUav/+wa1qkJeqNJDrChHmV/CH
|
jvyOjgQpOZHKOLX/uC1LgwI77ihAYG4OPwMBKfEMDiKKzmTqkgJXCuPU/v2DW7UgL5XpoFblIiSu4A+F
|
||||||
wzES6mSGd1VktzuE4KiWKd7D+bhcsxGDlhQV575CRLggyDOIl1AmO2y2DiGQ05jysDUHV2rTBB3WXVhY
|
FkiokynRVZ7D0SIFR/WMew9n43LFRvTbEjSc+3IRFoKAyGCxhDLZUVfXJgVqEuMPmzJwpTJJ0mbfhflI
|
||||||
XESYXyNeQsHqrVanELRrmPKAC67x9qM4agqwyAOb513ES/xcIJnNnULgWM8Fdr36WKK0mLeriZOEOqHr
|
BCFxjcUSCtZotzuloFXH+AMhuCbaj9JSkYOICGxOdLFY4hcCxWptl4KW9ULgMGqPJUqjdbuWOEmoE7oO
|
||||||
UCYUbIh/U43GbiFoWvdXcKtRErSV6lBVLMVgMUrI0Kz9tkKSelfpdI0kWM5ZU7GSKY8O5ap/4V5LNu42
|
ZULBBsU30WzulIL6dX8Ft2oVSXOhAWX5ygJsZgUpurXfVihKzyqDoZYEywVrSlYy/uhQpvYX7jWm425D
|
||||||
ZwnuNGWCoGdNUC2d+XeWJfNJevYydsOQxJT/gWrpDCf5D6Zt9cwWcc11AAAAAElFTkSuQmCC
|
muROfSoIetYE1dKZf2dZvJgkpy9jN0xxjP8PVEtnBPF/AKXf9csr/2VyAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="_buttonRename.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="_buttonRename.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
@ -804,27 +803,27 @@
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFySURBVDhPY2CgBthfz8CyP4kl40AiczcM19sxnEHGyHIg
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFySURBVDhPY2CgBthfz8CyP4kl40AiczcM19sxnEHGyHIg
|
||||||
tSA9cLv3xrErn6rWXPp+T+f/d7s7wHh2hikKhomD1IDUgvTADdiVwOx+c4r3EWQDlpc4/ofhJYV2cINB
|
tSA9cLv3xrErn6rWXPp+T+f/d7s7wHh2hikKhomD1IDUgvTADdiVwOx+c4r3EWQDlpc4/ofhJYV2cINB
|
||||||
akBqQXrgBuyIZ8m9vyz7wbPNDf9heEuj338YXlftARcHyYPUgvTADdgawzz1/v7lf//fXfUfhu+uKgcy
|
akBqQXrgBuyIZ8m9vyz7wbPNDf9heEuj338YXlftARcHyYPUgvTADdgawzz13v7lf//fXfUfhu+uKgcy
|
||||||
IfjMzDS4OEgepBakB27A5ijmGT8vzf//+cRUON7dEfofhjc3+KLIgdSC9MAN2BDFPPvbudn/PxyZCMcg
|
IfjMzDS4OEgepBakB27A5ijmGT8vzf//+cRUON7dEfofhjc3+KLIgdSC9MAN2BDFPPvbudn/PxyZCMcg
|
||||||
zavKXcCGLCt2QJEDqQXpgRuwOoJ5/qeT0/6/2d8DxyDNID6MRpYDqQXpgRuwPIx58btD/f9f7monCoPU
|
zavKXcCGLCt2QJEDqQXpgRuwOoJ5/qeT0/6/2d8DxyDNID6MRpYDqQXpgRuwPIx58btD/f9f7monCoPU
|
||||||
gvTADVgSwrjsFTDun25tIgqD1IL0wA2YH8C4+smWxv8PN9QShUFqQXrgBkzxZNzxYF31//trq4jCILUg
|
gvTADVgSwrjsFTDun25tIgqD1IL0wA2YH8C4+smWxv8PN9QShUFqQXrgBkzxZNzxYF31//trq4jCILUg
|
||||||
PTAD5FKNGee1uTAeJQWD9AANkAMZwg/E4kAsRSIG6QHppQwAAH683UYodOupAAAAAElFTkSuQmCC
|
PTAD5FKNGee1uTAeJQWD9AANkAMZwg/E4kAsRSIG6QHppQwAAHlk3UT14yZDAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="_buttonFindNext.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="_buttonFindNext.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJRSURBVDhPhVJdaJJRGFbRLhSnOGQQdVGDCOpOiOlANDVc
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJQSURBVDhPhVJdaJJRGFbRLhSnOGQQu6lBBHUnxHQgmp/h
|
||||||
oxT/Nz+XS5cm/v8kmWGjxEF3RYx1EQQFXWw3YzQCK0nqIhbZRTAYBdEPRbddRLt4Ou+H3/a1Rn3wcN7z
|
GqX4v/m5XLo08f8nyQwbJQ66K2KsiyAo6GK7GaMRWElSF9HILoLBKIh+KLrtItrF03k/dPtaoz54OO95
|
||||||
Ps/7nPd7z5FIRJ9UKp1lWKRVnKf4X9yWlomWqtUq1Gp1e6cB5YgjzU6O3zPiql6vf2W320Erw21BSLGY
|
n+d9zvu950gkok8qlc4xLNEqzlP8L25by0TLlUoFarW6tduAcsSRZjcn7BlxVa/Xr3McB1oZbveFFIs5
|
||||||
I+1fJiy53Gw2USqVkMuVoNPpemIQV61eQDabpy6WdzNYaTQaiEQ4eL1hGAwG5PN5HhQTF4vF4PEEyGBl
|
0v5lwpIrjUYDxWIR2WwROp2uKwZxlcoFZDI56mJlL4PVer2OcJiHxxOCwWBALpcTQDFx0WgUbrefDFb3
|
||||||
N4PVer2OyckJmEwmvkgMh8OBaDQKl8tLBqt/GLDEda1Wu07/LxS5XC6kUikeFFPebrfxK2mpRjz9dq1W
|
Mlir1WqYmpqEyWQSisSw2+2IRCJwOj1ksPaHAUtc12q1G/T//SKn04lkMimAYspznE1YSUs14um3qtUq
|
||||||
Y/+ehc/ng9Fogkaj2RDD7/cjk8kgHo8zJKmL7Ztim065XMbUFMdOsWN83A+VSvWeXd0IgeJKpcJmcBZj
|
+/cMvF4vjEYTNBrNphg+nw/pdBqxWIwhQV3s3BTbtEulEqaneXYKh4kJH1Qq1Xt2daMEisvlMpvBWYyP
|
||||||
Y044nW4y6Ig76BYKBYTDE7BarUzggVKp/CAIKC4Wi2wGZ2C79AC2mRYZdMUGL7LZLEKhAMxmMxwOF+Ry
|
O+BwuMigLe6gk8/nEQpNwmq1MoEbSqXyQ19AcaFQYDM4A9ulB7DNNsmgIzZ4kclkEAz6YTabYbc7IZfL
|
||||||
+SdBQHEul+NvyHStw/AMQ6OhDbHBy3Q6jenpKD+DYJCDQqH4QoIjzd7C/tzir9HZxzBeaePY5UeY/wwc
|
P/UFFGezWeGGTNfaDM8wNBbcFBu8TKVSmJmJCDMIBHgoFIovJDjS6C4OZ5d+jc09hvFKC8cuP8LCZ+Bg
|
||||||
TC79ONp8zQmvsGexWGCzHd+6BXbqNyKHL3bXbnwEUm+ByJttlNYB4oQu3iUSCXAcx67MzR5SCDKZ7DuR
|
YvnH0cZrvv8KuxaLBTbb8e1bYKd+I3LkYufVjY9A8i0QfrOD4gZAXL+Ld/F4HDzPsytzsYcUhEwm+06k
|
||||||
utNzC4OBm5uHz9/HoeQ9DM/cxchzQBe89XPQ3eI72MfwkOGrGGxIT9jeQOjHPK86ObdJUBywPO3XSgbo
|
7vT84qD/5tbh8/dxKHEPI7N3Mfoc0AVu/Rx0NYUOhhkeMnwVgw3pCdsbCL1Y4FUn57cIigOWp71ayQAd
|
||||||
IIYhhr3/w55T83cUJ1rn+jUDvwF4CyfRYwLPWAAAAABJRU5ErkJggg==
|
xDDEsP9/2Hdq4Y7iRPNcr2bgN3brJ9Bul6m9AAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
|
40
HexEditor.Designer.cs
generated
40
HexEditor.Designer.cs
generated
|
@ -30,7 +30,8 @@
|
||||||
this.hexBox1 = new Be.Windows.Forms.HexBox();
|
this.hexBox1 = new Be.Windows.Forms.HexBox();
|
||||||
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
|
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
|
||||||
this._curPositionLabel = new System.Windows.Forms.ToolStripStatusLabel();
|
this._curPositionLabel = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
this._buttonClose = new System.Windows.Forms.Button();
|
this._buttonCancel = new System.Windows.Forms.Button();
|
||||||
|
this._buttonOK = new System.Windows.Forms.Button();
|
||||||
this.statusStrip1.SuspendLayout();
|
this.statusStrip1.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
|
@ -67,24 +68,36 @@
|
||||||
this._curPositionLabel.Size = new System.Drawing.Size(100, 17);
|
this._curPositionLabel.Size = new System.Drawing.Size(100, 17);
|
||||||
this._curPositionLabel.Text = "0000";
|
this._curPositionLabel.Text = "0000";
|
||||||
//
|
//
|
||||||
// _buttonClose
|
// _buttonCancel
|
||||||
//
|
//
|
||||||
this._buttonClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
this._buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this._buttonClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
this._buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
this._buttonClose.Location = new System.Drawing.Point(429, 307);
|
this._buttonCancel.Location = new System.Drawing.Point(348, 307);
|
||||||
this._buttonClose.Name = "_buttonClose";
|
this._buttonCancel.Name = "_buttonCancel";
|
||||||
this._buttonClose.Size = new System.Drawing.Size(75, 23);
|
this._buttonCancel.Size = new System.Drawing.Size(75, 23);
|
||||||
this._buttonClose.TabIndex = 2;
|
this._buttonCancel.TabIndex = 13;
|
||||||
this._buttonClose.Text = "Close";
|
this._buttonCancel.Text = "Cancel";
|
||||||
this._buttonClose.UseVisualStyleBackColor = true;
|
this._buttonCancel.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// _buttonOK
|
||||||
|
//
|
||||||
|
this._buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this._buttonOK.Location = new System.Drawing.Point(429, 307);
|
||||||
|
this._buttonOK.Name = "_buttonOK";
|
||||||
|
this._buttonOK.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this._buttonOK.TabIndex = 12;
|
||||||
|
this._buttonOK.Text = "OK";
|
||||||
|
this._buttonOK.UseVisualStyleBackColor = true;
|
||||||
|
this._buttonOK.Click += new System.EventHandler(this._buttonOK_Click);
|
||||||
//
|
//
|
||||||
// HexEditor
|
// HexEditor
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.CancelButton = this._buttonClose;
|
this.CancelButton = this._buttonCancel;
|
||||||
this.ClientSize = new System.Drawing.Size(516, 355);
|
this.ClientSize = new System.Drawing.Size(516, 355);
|
||||||
this.Controls.Add(this._buttonClose);
|
this.Controls.Add(this._buttonCancel);
|
||||||
|
this.Controls.Add(this._buttonOK);
|
||||||
this.Controls.Add(this.statusStrip1);
|
this.Controls.Add(this.statusStrip1);
|
||||||
this.Controls.Add(this.hexBox1);
|
this.Controls.Add(this.hexBox1);
|
||||||
this.Name = "HexEditor";
|
this.Name = "HexEditor";
|
||||||
|
@ -101,6 +114,7 @@
|
||||||
private Be.Windows.Forms.HexBox hexBox1;
|
private Be.Windows.Forms.HexBox hexBox1;
|
||||||
private System.Windows.Forms.StatusStrip statusStrip1;
|
private System.Windows.Forms.StatusStrip statusStrip1;
|
||||||
private System.Windows.Forms.ToolStripStatusLabel _curPositionLabel;
|
private System.Windows.Forms.ToolStripStatusLabel _curPositionLabel;
|
||||||
private System.Windows.Forms.Button _buttonClose;
|
private System.Windows.Forms.Button _buttonCancel;
|
||||||
|
private System.Windows.Forms.Button _buttonOK;
|
||||||
}
|
}
|
||||||
}
|
}
|
55
HexEditor.cs
55
HexEditor.cs
|
@ -11,17 +11,51 @@ namespace NBTExplorer
|
||||||
{
|
{
|
||||||
public partial class HexEditor : Form
|
public partial class HexEditor : Form
|
||||||
{
|
{
|
||||||
|
private byte[] _data;
|
||||||
|
private bool _modified;
|
||||||
|
DynamicByteProvider _byteProvider;
|
||||||
|
|
||||||
|
private class FixedByteProvider : DynamicByteProvider
|
||||||
|
{
|
||||||
|
public FixedByteProvider (byte[] data)
|
||||||
|
: base(data)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
public override bool SupportsInsertBytes ()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public HexEditor (string tagName, byte[] data)
|
public HexEditor (string tagName, byte[] data)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
this.Text = "Editing: " + tagName + " (Read Only)";
|
this.Text = "Editing: " + tagName;
|
||||||
|
|
||||||
hexBox1.ByteProvider = new DynamicByteProvider(data);
|
_data = new byte[data.Length];
|
||||||
|
Array.Copy(data, _data, data.Length);
|
||||||
|
|
||||||
|
_byteProvider = new FixedByteProvider(_data);
|
||||||
|
_byteProvider.Changed += (o, e) => { _modified = true; };
|
||||||
|
|
||||||
|
hexBox1.ByteProvider = _byteProvider;
|
||||||
|
|
||||||
hexBox1.HorizontalByteCountChanged += HexBox_HorizontalByteCountChanged;
|
hexBox1.HorizontalByteCountChanged += HexBox_HorizontalByteCountChanged;
|
||||||
hexBox1.CurrentLineChanged += HexBox_CurrentLineChanged;
|
hexBox1.CurrentLineChanged += HexBox_CurrentLineChanged;
|
||||||
hexBox1.CurrentPositionInLineChanged += HexBox_CurrentPositionInLineChanged;
|
hexBox1.CurrentPositionInLineChanged += HexBox_CurrentPositionInLineChanged;
|
||||||
|
|
||||||
|
hexBox1.ReadOnly = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public byte[] Data
|
||||||
|
{
|
||||||
|
get { return _data; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Modified
|
||||||
|
{
|
||||||
|
get { return _modified; }
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HexBox_HorizontalByteCountChanged (object sender, EventArgs e)
|
private void HexBox_HorizontalByteCountChanged (object sender, EventArgs e)
|
||||||
|
@ -45,5 +79,22 @@ namespace NBTExplorer
|
||||||
|
|
||||||
_curPositionLabel.Text = pos.ToString();
|
_curPositionLabel.Text = pos.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Apply ()
|
||||||
|
{
|
||||||
|
long len = Math.Min(_data.Length, _byteProvider.Length);
|
||||||
|
|
||||||
|
for (int i = 0; i < len; i++) {
|
||||||
|
_data[i] = _byteProvider.Bytes[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
DialogResult = DialogResult.OK;
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void _buttonOK_Click (object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Apply();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
<ApplicationIcon>dead_bush.ico</ApplicationIcon>
|
<ApplicationIcon>dead_bush.ico</ApplicationIcon>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="Substrate, Version=1.0.2.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Substrate, Version=1.3.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<SpecificVersion>False</SpecificVersion>
|
<SpecificVersion>False</SpecificVersion>
|
||||||
<HintPath>..\Substrate\SubstrateCS\bin\Release\NET2\Substrate.dll</HintPath>
|
<HintPath>..\Substrate\SubstrateCS\bin\Release\NET2\Substrate.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
@ -55,6 +55,24 @@
|
||||||
<Compile Include="About.Designer.cs">
|
<Compile Include="About.Designer.cs">
|
||||||
<DependentUpon>About.cs</DependentUpon>
|
<DependentUpon>About.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="EditName.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="EditName.Designer.cs">
|
||||||
|
<DependentUpon>EditName.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="EditString.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="EditString.Designer.cs">
|
||||||
|
<DependentUpon>EditString.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="CreateNode.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="CreateNode.Designer.cs">
|
||||||
|
<DependentUpon>CreateNode.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="EditValue.cs">
|
<Compile Include="EditValue.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
@ -84,6 +102,15 @@
|
||||||
<EmbeddedResource Include="About.resx">
|
<EmbeddedResource Include="About.resx">
|
||||||
<DependentUpon>About.cs</DependentUpon>
|
<DependentUpon>About.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="EditName.resx">
|
||||||
|
<DependentUpon>EditName.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="EditString.resx">
|
||||||
|
<DependentUpon>EditString.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="CreateNode.resx">
|
||||||
|
<DependentUpon>CreateNode.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="EditValue.resx">
|
<EmbeddedResource Include="EditValue.resx">
|
||||||
<DependentUpon>EditValue.cs</DependentUpon>
|
<DependentUpon>EditValue.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
|
|
@ -151,7 +151,7 @@ namespace Be.Windows.Forms
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns true
|
/// Returns true
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool SupportsWriteByte()
|
public virtual bool SupportsWriteByte()
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -159,7 +159,7 @@ namespace Be.Windows.Forms
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns true
|
/// Returns true
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool SupportsInsertBytes()
|
public virtual bool SupportsInsertBytes()
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -167,7 +167,7 @@ namespace Be.Windows.Forms
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns true
|
/// Returns true
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool SupportsDeleteBytes()
|
public virtual bool SupportsDeleteBytes()
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue