* support for new metadata sources via CTDB

* CUETools: GUI tweaks for large screen resolutions on windows 7
* CUETools.Codecs.LAMEEncoder: fix VBR header update for filenames with unicode characters
* CUERipper: more string messages for SCSI errors when ripping
This commit is contained in:
chudov
2011-09-08 18:25:54 +00:00
parent 02d37c8bfc
commit 8b19665038
28 changed files with 4316 additions and 4105 deletions

View File

@@ -690,6 +690,14 @@ namespace Bwg.Scsi
#region Private Functions
public string GetErrorString()
{
string res = messages.GetString(string.Format("SCSISenseKey_{0:X2}", (int)this.GetSenseKey())) ?? this.GetSenseKey().ToString();
if (this.GetSenseKey() == SenseKeyType.NoSense)
return res;
return res + ": " + Device.LookupSenseError(this.GetSenseAsc(), this.GetSenseAscq());
}
/// <summary>
/// Return a string associated with the ASC/ASCQ bytes
/// </summary>

View File

@@ -127,11 +127,14 @@
<value>NO INDEX/SECTOR SIGNAL</value>
</data>
<data name="SCSIErrorMessage_0102" xml:space="preserve">
<value>NO SEEK COMPLETE</value>
<value>no seek complete</value>
</data>
<data name="SCSIErrorMessage_0103" xml:space="preserve">
<value>PERIPHERAL DEVICE WRITE FAULT</value>
</data>
<data name="SCSIErrorMessage_0200" xml:space="preserve">
<value>NO SEEK COMPLETE</value>
</data>
<data name="SCSIErrorMessage_0400" xml:space="preserve">
<value>LOGICAL UNIT NOT READY, CAUSE NOT REPORTABLE</value>
</data>
@@ -310,13 +313,13 @@
<value>CANNOT WRITE MEDIUM - UNSUPPORTED MEDIUM VERSION</value>
</data>
<data name="SCSIErrorMessage_3A00" xml:space="preserve">
<value>MEDIUM NOT PRESENT</value>
<value>medium not present</value>
</data>
<data name="SCSIErrorMessage_3A01" xml:space="preserve">
<value>MEDIUM NOT PRESENT - TRAY CLOSED</value>
<value>medium not present - tray closed</value>
</data>
<data name="SCSIErrorMessage_3A02" xml:space="preserve">
<value>MEDIUM NOT PRESENT - TRAY OPEN</value>
<value>medium not present - tray open</value>
</data>
<data name="SCSIErrorMessage_3B0D" xml:space="preserve">
<value>MEDIUM DESTINATION ELEMENT FULL</value>
@@ -489,6 +492,48 @@
<data name="SCSIErrorMessage_7306" xml:space="preserve">
<value>RMA/PMA IS ALMOST FULL</value>
</data>
<data name="SCSISenseKey_00" xml:space="preserve">
<value>unknown error</value>
</data>
<data name="SCSISenseKey_01" xml:space="preserve">
<value>recovered error</value>
</data>
<data name="SCSISenseKey_02" xml:space="preserve">
<value>not ready</value>
</data>
<data name="SCSISenseKey_03" xml:space="preserve">
<value>medium error</value>
</data>
<data name="SCSISenseKey_04" xml:space="preserve">
<value>hardware error</value>
</data>
<data name="SCSISenseKey_05" xml:space="preserve">
<value>illegal request</value>
</data>
<data name="SCSISenseKey_06" xml:space="preserve">
<value>unit attention</value>
</data>
<data name="SCSISenseKey_07" xml:space="preserve">
<value>data protect</value>
</data>
<data name="SCSISenseKey_08" xml:space="preserve">
<value>blank check</value>
</data>
<data name="SCSISenseKey_09" xml:space="preserve">
<value>vendor specific</value>
</data>
<data name="SCSISenseKey_0A" xml:space="preserve">
<value>copy aborted</value>
</data>
<data name="SCSISenseKey_0B" xml:space="preserve">
<value>aborted command</value>
</data>
<data name="SCSISenseKey_0D" xml:space="preserve">
<value>volume overflow</value>
</data>
<data name="SCSISenseKey_0E" xml:space="preserve">
<value>miscompare</value>
</data>
<data name="UnknownSCSIError" xml:space="preserve">
<value>NO SENSE STRING FOR</value>
</data>

View File

@@ -126,4 +126,46 @@
<data name="SCSIErrorMessage_3A02" xml:space="preserve">
<value>отсутствует носитель - лоток закрыт</value>
</data>
<data name="SCSISenseKey_00" xml:space="preserve">
<value>неизвестная ошибка</value>
</data>
<data name="SCSISenseKey_01" xml:space="preserve">
<value>recovered error</value>
</data>
<data name="SCSISenseKey_02" xml:space="preserve">
<value>устройство не готово</value>
</data>
<data name="SCSISenseKey_03" xml:space="preserve">
<value>ошибка носителя</value>
</data>
<data name="SCSISenseKey_04" xml:space="preserve">
<value>аппаратная ошибка</value>
</data>
<data name="SCSISenseKey_05" xml:space="preserve">
<value>некорректный запрос</value>
</data>
<data name="SCSISenseKey_06" xml:space="preserve">
<value>unit attention</value>
</data>
<data name="SCSISenseKey_07" xml:space="preserve">
<value>data protect</value>
</data>
<data name="SCSISenseKey_08" xml:space="preserve">
<value>blank check</value>
</data>
<data name="SCSISenseKey_09" xml:space="preserve">
<value>vendor specific</value>
</data>
<data name="SCSISenseKey_0A" xml:space="preserve">
<value>copy aborted</value>
</data>
<data name="SCSISenseKey_0B" xml:space="preserve">
<value>aborted command</value>
</data>
<data name="SCSISenseKey_0D" xml:space="preserve">
<value>volume overflow</value>
</data>
<data name="SCSISenseKey_0E" xml:space="preserve">
<value>miscompare</value>
</data>
</root>

View File

@@ -635,7 +635,7 @@ namespace CUERipper
cueSheet.Action = CUEAction.Encode;
this.BeginInvoke((MethodInvoker)delegate() { toolStripStatusLabel1.Text = Properties.Resources.LookingUpVia + " CTDB..."; });
cueSheet.UseCUEToolsDB("CUERipper " + CUESheet.CUEToolsVersion, selectedDriveInfo.drive.ARName, false, CTDBPriority.High, CTDBPriority.Medium, CTDBPriority.Low);
cueSheet.UseCUEToolsDB("CUERipper " + CUESheet.CUEToolsVersion, selectedDriveInfo.drive.ARName, false, CTDBMetadataSearch.Default);
cueSheet.CTDB.UploadHelper.onProgress += new EventHandler<Krystalware.UploadHelper.UploadProgressEventArgs>(UploadProgress);
this.BeginInvoke((MethodInvoker)delegate() { toolStripStatusLabel1.Text = Properties.Resources.LookingUpVia + " AccurateRip..."; });
cueSheet.UseAccurateRip();

View File

@@ -1124,16 +1124,17 @@ namespace CUETools.AccurateRip
get { throw new Exception("unsupported"); }
}
public void GenerateLog(TextWriter sw, int oi, bool v2)
public void GenerateLog(TextWriter sw, int oi)
{
uint maxTotal = 0;
for (int iTrack = 0; iTrack < _toc.AudioTracks; iTrack++)
maxTotal = Math.Max(maxTotal, Total(iTrack));
uint maxConf = 0;
uint maxConf = 0, maxConf2 = 0;
for (int iTrack = 0; iTrack < _toc.AudioTracks; iTrack++)
{
uint crcOI = v2 ? CRCV2(iTrack) : CRC(iTrack, oi);
uint crcOI = CRC(iTrack, oi);
uint crcOI2 = CRCV2(iTrack);
for (int di = 0; di < (int)AccDisks.Count; di++)
{
int trno = iTrack + _toc.FirstAudio - 1;
@@ -1142,12 +1143,14 @@ namespace CUETools.AccurateRip
&& 0 != AccDisks[di].tracks[trno].CRC
)
maxConf = Math.Max(maxConf, AccDisks[di].tracks[trno].count);
if (trno < AccDisks[di].tracks.Count
&& 0 == oi
&& crcOI2 == AccDisks[di].tracks[trno].CRC
&& 0 != AccDisks[di].tracks[trno].CRC
)
maxConf2 = Math.Max(maxConf, AccDisks[di].tracks[trno].count);
}
}
if (maxConf == 0 && v2)
return;
if (v2)
sw.WriteLine("AccurateRip v2:");
string ifmt = maxTotal < 10 ? ":0" : maxTotal < 100 ? ":00" : ":000";
//string ifmt = maxTotal < 10 ? ",1" : maxTotal < 100 ? ",2" : ",3";
for (int iTrack = 0; iTrack < _toc.AudioTracks; iTrack++)
@@ -1155,7 +1158,9 @@ namespace CUETools.AccurateRip
uint count = 0;
uint partials = 0;
uint conf = 0;
uint crcOI = v2 ? CRCV2(iTrack) : CRC(iTrack, oi);
uint conf2 = 0;
uint crcOI = CRC(iTrack, oi);
uint crcOI2 = CRCV2(iTrack);
uint crc450OI = CRC450(iTrack, oi);
for (int di = 0; di < (int)AccDisks.Count; di++)
{
@@ -1166,20 +1171,29 @@ namespace CUETools.AccurateRip
if (crcOI == AccDisks[di].tracks[trno].CRC
&& 0 != AccDisks[di].tracks[trno].CRC)
conf += AccDisks[di].tracks[trno].count;
if (crcOI2 == AccDisks[di].tracks[trno].CRC
&& 0 == oi
&& 0 != AccDisks[di].tracks[trno].CRC)
conf2 += AccDisks[di].tracks[trno].count;
if (crc450OI == AccDisks[di].tracks[trno].Frame450CRC
&& 0 != AccDisks[di].tracks[trno].Frame450CRC)
partials++;
}
string status;
if (conf > 0)
if (conf + conf2 > 0)
status = "Accurately ripped";
else if (count == 0 && crcOI == 0)
status = "Silent track";
else if (partials > 0 && 0 != oi)
status = "No match (V2 was not tested)";
else if (partials > 0)
status = "No match but offset";
status = "No match";
else
status = "No match";
sw.WriteLine(String.Format(" {0:00} [{1:x8}] ({3" + ifmt + "}/{2" + ifmt + "}) {4}", iTrack + 1, crcOI, count, conf, status));
if (oi == 0)
sw.WriteLine(String.Format(" {0:00} [{1:x8}|{5:x8}] ({3" + ifmt + "}+{6" + ifmt + "}/{2" + ifmt + "}) {4}", iTrack + 1, crcOI, count, conf, status, crcOI2, conf2));
else
sw.WriteLine(String.Format(" {0:00} [{1:x8}] ({3" + ifmt + "}/{2" + ifmt + "}) {4}", iTrack + 1, crcOI, count, conf, status));
}
}
@@ -1190,9 +1204,8 @@ namespace CUETools.AccurateRip
{
if (verbose)
{
sw.WriteLine("Track [ CRC ] Status");
GenerateLog(sw, 0, false);
GenerateLog(sw, 0, true);
sw.WriteLine("Track [ CRC | V2 ] Status");
GenerateLog(sw, 0);
uint offsets_match = 0;
for (int oi = -_arOffsetRange; oi <= _arOffsetRange; oi++)
{
@@ -1217,7 +1230,7 @@ namespace CUETools.AccurateRip
break;
}
sw.WriteLine("Offsetted by {0}:", oi);
GenerateLog(sw, oi, false);
GenerateLog(sw, oi);
}
}
offsets_match = 0;
@@ -1252,7 +1265,7 @@ namespace CUETools.AccurateRip
break;
}
sw.WriteLine("Offsetted by {0}:", oi);
GenerateLog(sw, oi, false);
GenerateLog(sw, oi);
}
}
}

View File

@@ -28,6 +28,8 @@
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormMetadata));
this.progressBar1 = new System.Windows.Forms.ProgressBar();
this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker();
this.listView1 = new System.Windows.Forms.ListView();
@@ -35,15 +37,17 @@
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.panel1 = new System.Windows.Forms.Panel();
this.imageList1 = new System.Windows.Forms.ImageList(this.components);
this.panel1.SuspendLayout();
this.SuspendLayout();
//
// progressBar1
//
this.progressBar1.Dock = System.Windows.Forms.DockStyle.Fill;
this.progressBar1.Location = new System.Drawing.Point(5, 5);
this.progressBar1.Location = new System.Drawing.Point(7, 6);
this.progressBar1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.progressBar1.Name = "progressBar1";
this.progressBar1.Size = new System.Drawing.Size(587, 25);
this.progressBar1.Size = new System.Drawing.Size(783, 31);
this.progressBar1.Style = System.Windows.Forms.ProgressBarStyle.Marquee;
this.progressBar1.TabIndex = 0;
//
@@ -60,10 +64,13 @@
this.listView1.FullRowSelect = true;
this.listView1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
this.listView1.HideSelection = false;
this.listView1.Location = new System.Drawing.Point(10, 10);
this.listView1.Location = new System.Drawing.Point(13, 12);
this.listView1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.listView1.MultiSelect = false;
this.listView1.Name = "listView1";
this.listView1.Size = new System.Drawing.Size(597, 213);
this.listView1.ShowItemToolTips = true;
this.listView1.Size = new System.Drawing.Size(797, 263);
this.listView1.SmallImageList = this.imageList1;
this.listView1.TabIndex = 1;
this.listView1.UseCompatibleStateImageBehavior = false;
this.listView1.View = System.Windows.Forms.View.Details;
@@ -77,9 +84,10 @@
//
this.button1.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.button1.Dock = System.Windows.Forms.DockStyle.Right;
this.button1.Location = new System.Drawing.Point(442, 5);
this.button1.Location = new System.Drawing.Point(590, 6);
this.button1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 25);
this.button1.Size = new System.Drawing.Size(100, 31);
this.button1.TabIndex = 2;
this.button1.Text = "Cancel";
this.button1.UseVisualStyleBackColor = true;
@@ -89,9 +97,10 @@
//
this.button2.DialogResult = System.Windows.Forms.DialogResult.OK;
this.button2.Dock = System.Windows.Forms.DockStyle.Right;
this.button2.Location = new System.Drawing.Point(517, 5);
this.button2.Location = new System.Drawing.Point(690, 6);
this.button2.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(75, 25);
this.button2.Size = new System.Drawing.Size(100, 31);
this.button2.TabIndex = 3;
this.button2.Text = "OK";
this.button2.UseVisualStyleBackColor = true;
@@ -103,25 +112,35 @@
this.panel1.Controls.Add(this.button2);
this.panel1.Controls.Add(this.progressBar1);
this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.panel1.Location = new System.Drawing.Point(10, 223);
this.panel1.Location = new System.Drawing.Point(13, 275);
this.panel1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.panel1.Name = "panel1";
this.panel1.Padding = new System.Windows.Forms.Padding(5);
this.panel1.Size = new System.Drawing.Size(597, 35);
this.panel1.Padding = new System.Windows.Forms.Padding(7, 6, 7, 6);
this.panel1.Size = new System.Drawing.Size(797, 43);
this.panel1.TabIndex = 4;
//
// imageList1
//
this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
this.imageList1.TransparentColor = System.Drawing.Color.Transparent;
this.imageList1.Images.SetKeyName(0, "freedb");
this.imageList1.Images.SetKeyName(1, "musicbrainz");
this.imageList1.Images.SetKeyName(2, "discogs");
//
// FormMetadata
//
this.AcceptButton = this.button2;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.button1;
this.ClientSize = new System.Drawing.Size(617, 268);
this.ClientSize = new System.Drawing.Size(823, 330);
this.Controls.Add(this.listView1);
this.Controls.Add(this.panel1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
this.MinimumSize = new System.Drawing.Size(500, 300);
this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.MinimumSize = new System.Drawing.Size(661, 360);
this.Name = "FormMetadata";
this.Padding = new System.Windows.Forms.Padding(10);
this.Padding = new System.Windows.Forms.Padding(13, 12, 13, 12);
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "CTDB Metadata Lookup";
this.Load += new System.EventHandler(this.FormMetadata_Load);
@@ -139,5 +158,6 @@
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.ImageList imageList1;
}
}

View File

@@ -41,9 +41,7 @@ namespace CUETools.CTDB.EACPlugin
{
this.ctdb.ContactDB(null, this.agent, null, false, false,
AudioDataPlugIn.Options.priorityMusicbrainz,
AudioDataPlugIn.Options.priorityFreedb,
AudioDataPlugIn.Options.priorityFreedbFuzzy);
AudioDataPlugIn.Options.MetadataSearch);
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
@@ -70,7 +68,11 @@ namespace CUETools.CTDB.EACPlugin
metadata.album == "" ? "Unknown Title" : metadata.album,
discnumberandtotal != "" ? " (disc " + discnumberandtotal + (metadata.discname != null ? ": " + metadata.discname : "") + ")" : "",
label == "" ? "" : " (" + label + ")");
listView1.Items.Add(new ListViewItem(text) { Tag = metadata });
var tip = new StringBuilder();
var i = 0;
foreach(var tr in metadata.track)
tip.AppendFormat("{0}. {2}{1}\n", ++i, tr.name, ((tr.artist ?? metadata.artist) == metadata.artist) ? "" : tr.artist + " / ");
listView1.Items.Add(new ListViewItem(text) { Tag = metadata, ImageKey = metadata.source, ToolTipText = tip.ToString() });
}
this.listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
if (listView1.Items.Count == 0)

View File

@@ -120,4 +120,59 @@
<metadata name="backgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="imageList1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>210, 17</value>
</metadata>
<data name="imageList1.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABQ
CgAAAk1TRnQBSQFMAgEBAwEAAQgBAAEIAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wEAAe0PCgEAAXoCUQt6
BwAE6xYAAbUEBAPzAQQD8wIEAV8BCgFRAQABEQETAQABDwp6BAAB6wIUARUCDgEAAQ4UAAG1AwQB9AIE
AfQBBAH0AgQB9AIEAQoBAAG8A/8BEwEPCXoDAAEUAQcB6wEUARECDgIAAQ4TAAG1AaICBAH/AgQB/wEE
Af8CBAH/AgQBCgEAAbwE/wEACXoCAAERARQB6wEHAesBEQIOAwABDhIAAbUBogMEA/8BBAP/AwQBCgFR
AQ8B6wIHAbwBAAERBAABEQN6AQABEQEVAhQC6wEVAREBDgQAARERAAG1AaIFBAH/AQQB/wUEAQoBegFR
AQ8CAAH/AQABDwH3Av8BkgIRAnoBAAEOAhECFQEOAkoCDhUAAbUBogUEAf8BBAH/BQQBCgR6AQAB/wEA
AREE/wG8AQACegHrAQAEDgQ3AQ4EAAHrEAABtQGiDQQBCgSuAQAB/wIAARMBvAP/AQACrgHrBAABSgQ3
AUoEAAHrEAAN/wH0AfMB+ASuAQAB/wEAARIBDwMAAf8BAAKuAesEAAFKBDcBSgQOAesQAAH/AaIC/wEE
A/8CBAP/AgQB+ASuAQAB/wEPAQABEQISAQAB/wEAAq4B6wQAAQ4ENwEOAhECDgHrEAAB/wGiAv8BBAL/
AQQE/wEEAfQB8wH4BK4BAAL/AZIBEQEAAQ8BAAH/AQACrgEAAQ4EAAEOAkoBDgIUAxERAAH/AaIC/wEE
Av8EBAH/AwQBCgSuAQABBwP/AbwB6gEAAf8BAAKuAQABFAMAAg4BEQEUAesBcwIUAREBFBEAAf8BogEE
Af8BBAL/AQQC/wEEAf8BBAH0AfMBCgSuAREBEwEHBv8BAAKuAgABEQIAAg4BEQEVAesBBwHrARUBFBIA
Af8BhgL/AgQC/wIEA/8CBAHsBa4BEQEAAREBkgT/AQACrgMAARQBAAIOAREBFQEUA+sTAAH/AYYL/wH0
AfMB7AeuAREBAAEPAesBvAH/AQACrgQAAhUDDgERAhQUAAL/AbUL/wH0AQcBAAmuAQ8BAAETAREBrgcA
BOsWAAFCAU0BPgcAAT4DAAEoAwABQAMAARADAAEBAQABAQUAAYAXAAP/AwABgAEBAfwBPwYAAfABDwYA
AeABBwYAAcABAwYAAYABAQYAAYABASYAAYABAQYAAYABAQYAAcABAwYAAeABBwYAAfABDwQAAYABAQH8
AT8CAAs=
</value>
</data>
</root>

View File

@@ -49,7 +49,7 @@ namespace CUETools.CTDB.EACPlugin
this.ctdb.UploadHelper.onProgress += UploadProgress;
if (this.agent != null)
{
this.ctdb.ContactDB(null, this.agent, this.drivename, true, false, CTDBPriority.None, CTDBPriority.None, CTDBPriority.None);
this.ctdb.ContactDB(null, this.agent, this.drivename, true, false, CTDBMetadataSearch.None);
}
else
{

View File

@@ -42,7 +42,7 @@ namespace MetadataPlugIn
TOC[1][0].Start = 0U;
var ctdb = new CUEToolsDB(TOC, null);
var form = new CUETools.CTDB.EACPlugin.FormMetadata(ctdb, "EAC" + data.HostVersion + " CTDB 2.1.2");
var form = new CUETools.CTDB.EACPlugin.FormMetadata(ctdb, "EAC" + data.HostVersion + " CTDB 2.1.3");
form.ShowDialog();
var meta = form.Meta;
if (meta == null)
@@ -154,7 +154,7 @@ namespace MetadataPlugIn
public string GetPluginName()
{
return "CUETools DB Metadata Plugin V2.1.2b";
return "CUETools DB Metadata Plugin V2.1.3";
}
public void ShowOptions()

View File

@@ -33,53 +33,42 @@ namespace AudioDataPlugIn
this.label2 = new System.Windows.Forms.Label();
this.linkLabel1 = new System.Windows.Forms.LinkLabel();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.radioButtonMBHigh = new System.Windows.Forms.RadioButton();
this.radioButtonMBLow = new System.Windows.Forms.RadioButton();
this.radioButtonMBMedium = new System.Windows.Forms.RadioButton();
this.radioButtonMBNone = new System.Windows.Forms.RadioButton();
this.radioButtonMBExtensive = new System.Windows.Forms.RadioButton();
this.radioButtonMBFast = new System.Windows.Forms.RadioButton();
this.radioButtonMBDefault = new System.Windows.Forms.RadioButton();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.radioButtonFDMedium = new System.Windows.Forms.RadioButton();
this.radioButtonFDHigh = new System.Windows.Forms.RadioButton();
this.radioButtonFDLow = new System.Windows.Forms.RadioButton();
this.radioButtonFDNone = new System.Windows.Forms.RadioButton();
this.buttonOk = new System.Windows.Forms.Button();
this.label3 = new System.Windows.Forms.Label();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.radioButtonFZMedium = new System.Windows.Forms.RadioButton();
this.radioButtonFZHigh = new System.Windows.Forms.RadioButton();
this.radioButtonFZLow = new System.Windows.Forms.RadioButton();
this.radioButtonFZNone = new System.Windows.Forms.RadioButton();
this.buttonCancel = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox3.SuspendLayout();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(95, 13);
this.label1.Location = new System.Drawing.Point(127, 16);
this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(139, 13);
this.label1.Size = new System.Drawing.Size(182, 17);
this.label1.TabIndex = 0;
this.label1.Text = "CUETools DB Plugin V2.1.2";
this.label1.Text = "CUETools DB Plugin V2.1.3";
//
// label2
//
this.label2.Location = new System.Drawing.Point(95, 67);
this.label2.Location = new System.Drawing.Point(127, 82);
this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(230, 34);
this.label2.Size = new System.Drawing.Size(307, 42);
this.label2.TabIndex = 1;
this.label2.Text = "Copyright (c) 2011 Gregory S. Chudov";
//
// linkLabel1
//
this.linkLabel1.AutoSize = true;
this.linkLabel1.Location = new System.Drawing.Point(95, 36);
this.linkLabel1.Location = new System.Drawing.Point(127, 44);
this.linkLabel1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.linkLabel1.Name = "linkLabel1";
this.linkLabel1.Size = new System.Drawing.Size(164, 13);
this.linkLabel1.Size = new System.Drawing.Size(209, 17);
this.linkLabel1.TabIndex = 3;
this.linkLabel1.TabStop = true;
this.linkLabel1.Text = "http://db.cuetools.net/about.php";
@@ -88,209 +77,82 @@ namespace AudioDataPlugIn
// pictureBox1
//
this.pictureBox1.Image = global::CUETools.CTDB.EACPlugin.Properties.Resources.ctdb64;
this.pictureBox1.Location = new System.Drawing.Point(13, 13);
this.pictureBox1.Location = new System.Drawing.Point(17, 16);
this.pictureBox1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(64, 64);
this.pictureBox1.Size = new System.Drawing.Size(85, 79);
this.pictureBox1.TabIndex = 4;
this.pictureBox1.TabStop = false;
//
// radioButtonMBHigh
// radioButtonMBExtensive
//
this.radioButtonMBHigh.AutoSize = true;
this.radioButtonMBHigh.Location = new System.Drawing.Point(6, 16);
this.radioButtonMBHigh.Name = "radioButtonMBHigh";
this.radioButtonMBHigh.Size = new System.Drawing.Size(47, 17);
this.radioButtonMBHigh.TabIndex = 6;
this.radioButtonMBHigh.TabStop = true;
this.radioButtonMBHigh.Text = "High";
this.radioButtonMBHigh.UseVisualStyleBackColor = true;
this.radioButtonMBExtensive.AutoSize = true;
this.radioButtonMBExtensive.Location = new System.Drawing.Point(8, 20);
this.radioButtonMBExtensive.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.radioButtonMBExtensive.Name = "radioButtonMBExtensive";
this.radioButtonMBExtensive.Size = new System.Drawing.Size(89, 21);
this.radioButtonMBExtensive.TabIndex = 6;
this.radioButtonMBExtensive.TabStop = true;
this.radioButtonMBExtensive.Text = "Extensive";
this.radioButtonMBExtensive.UseVisualStyleBackColor = true;
//
// radioButtonMBLow
// radioButtonMBFast
//
this.radioButtonMBLow.AutoSize = true;
this.radioButtonMBLow.Location = new System.Drawing.Point(6, 50);
this.radioButtonMBLow.Name = "radioButtonMBLow";
this.radioButtonMBLow.Size = new System.Drawing.Size(45, 17);
this.radioButtonMBLow.TabIndex = 7;
this.radioButtonMBLow.TabStop = true;
this.radioButtonMBLow.Text = "Low";
this.radioButtonMBLow.UseVisualStyleBackColor = true;
this.radioButtonMBFast.AutoSize = true;
this.radioButtonMBFast.Location = new System.Drawing.Point(8, 62);
this.radioButtonMBFast.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.radioButtonMBFast.Name = "radioButtonMBFast";
this.radioButtonMBFast.Size = new System.Drawing.Size(56, 21);
this.radioButtonMBFast.TabIndex = 7;
this.radioButtonMBFast.TabStop = true;
this.radioButtonMBFast.Text = "Fast";
this.radioButtonMBFast.UseVisualStyleBackColor = true;
//
// radioButtonMBMedium
// radioButtonMBDefault
//
this.radioButtonMBMedium.AutoSize = true;
this.radioButtonMBMedium.Location = new System.Drawing.Point(6, 33);
this.radioButtonMBMedium.Name = "radioButtonMBMedium";
this.radioButtonMBMedium.Size = new System.Drawing.Size(62, 17);
this.radioButtonMBMedium.TabIndex = 8;
this.radioButtonMBMedium.TabStop = true;
this.radioButtonMBMedium.Text = "Medium";
this.radioButtonMBMedium.UseVisualStyleBackColor = true;
//
// radioButtonMBNone
//
this.radioButtonMBNone.AutoSize = true;
this.radioButtonMBNone.Location = new System.Drawing.Point(6, 67);
this.radioButtonMBNone.Name = "radioButtonMBNone";
this.radioButtonMBNone.Size = new System.Drawing.Size(51, 17);
this.radioButtonMBNone.TabIndex = 9;
this.radioButtonMBNone.TabStop = true;
this.radioButtonMBNone.Text = "None";
this.radioButtonMBNone.UseVisualStyleBackColor = true;
this.radioButtonMBDefault.AutoSize = true;
this.radioButtonMBDefault.Location = new System.Drawing.Point(8, 41);
this.radioButtonMBDefault.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.radioButtonMBDefault.Name = "radioButtonMBDefault";
this.radioButtonMBDefault.Size = new System.Drawing.Size(74, 21);
this.radioButtonMBDefault.TabIndex = 8;
this.radioButtonMBDefault.TabStop = true;
this.radioButtonMBDefault.Text = "Default";
this.radioButtonMBDefault.UseVisualStyleBackColor = true;
//
// groupBox1
//
this.groupBox1.Controls.Add(this.radioButtonMBMedium);
this.groupBox1.Controls.Add(this.radioButtonMBHigh);
this.groupBox1.Controls.Add(this.radioButtonMBLow);
this.groupBox1.Controls.Add(this.radioButtonMBNone);
this.groupBox1.Location = new System.Drawing.Point(12, 119);
this.groupBox1.Controls.Add(this.radioButtonMBDefault);
this.groupBox1.Controls.Add(this.radioButtonMBExtensive);
this.groupBox1.Controls.Add(this.radioButtonMBFast);
this.groupBox1.Location = new System.Drawing.Point(16, 156);
this.groupBox1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(83, 95);
this.groupBox1.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.groupBox1.Size = new System.Drawing.Size(191, 107);
this.groupBox1.TabIndex = 15;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Musicbrainz";
//
// groupBox2
//
this.groupBox2.Controls.Add(this.radioButtonFDMedium);
this.groupBox2.Controls.Add(this.radioButtonFDHigh);
this.groupBox2.Controls.Add(this.radioButtonFDLow);
this.groupBox2.Controls.Add(this.radioButtonFDNone);
this.groupBox2.Location = new System.Drawing.Point(101, 119);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(83, 95);
this.groupBox2.TabIndex = 16;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "Freedb";
//
// radioButtonFDMedium
//
this.radioButtonFDMedium.AutoSize = true;
this.radioButtonFDMedium.Location = new System.Drawing.Point(6, 33);
this.radioButtonFDMedium.Name = "radioButtonFDMedium";
this.radioButtonFDMedium.Size = new System.Drawing.Size(62, 17);
this.radioButtonFDMedium.TabIndex = 8;
this.radioButtonFDMedium.TabStop = true;
this.radioButtonFDMedium.Text = "Medium";
this.radioButtonFDMedium.UseVisualStyleBackColor = true;
//
// radioButtonFDHigh
//
this.radioButtonFDHigh.AutoSize = true;
this.radioButtonFDHigh.Location = new System.Drawing.Point(6, 16);
this.radioButtonFDHigh.Name = "radioButtonFDHigh";
this.radioButtonFDHigh.Size = new System.Drawing.Size(47, 17);
this.radioButtonFDHigh.TabIndex = 6;
this.radioButtonFDHigh.TabStop = true;
this.radioButtonFDHigh.Text = "High";
this.radioButtonFDHigh.UseVisualStyleBackColor = true;
//
// radioButtonFDLow
//
this.radioButtonFDLow.AutoSize = true;
this.radioButtonFDLow.Location = new System.Drawing.Point(6, 50);
this.radioButtonFDLow.Name = "radioButtonFDLow";
this.radioButtonFDLow.Size = new System.Drawing.Size(45, 17);
this.radioButtonFDLow.TabIndex = 7;
this.radioButtonFDLow.TabStop = true;
this.radioButtonFDLow.Text = "Low";
this.radioButtonFDLow.UseVisualStyleBackColor = true;
//
// radioButtonFDNone
//
this.radioButtonFDNone.AutoSize = true;
this.radioButtonFDNone.Location = new System.Drawing.Point(6, 67);
this.radioButtonFDNone.Name = "radioButtonFDNone";
this.radioButtonFDNone.Size = new System.Drawing.Size(51, 17);
this.radioButtonFDNone.TabIndex = 9;
this.radioButtonFDNone.TabStop = true;
this.radioButtonFDNone.Text = "None";
this.radioButtonFDNone.UseVisualStyleBackColor = true;
this.groupBox1.Text = "Metadata search mode:";
//
// buttonOk
//
this.buttonOk.DialogResult = System.Windows.Forms.DialogResult.OK;
this.buttonOk.Location = new System.Drawing.Point(303, 189);
this.buttonOk.Location = new System.Drawing.Point(404, 233);
this.buttonOk.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.buttonOk.Name = "buttonOk";
this.buttonOk.Size = new System.Drawing.Size(75, 25);
this.buttonOk.Size = new System.Drawing.Size(100, 31);
this.buttonOk.TabIndex = 17;
this.buttonOk.Text = "OK";
this.buttonOk.UseVisualStyleBackColor = true;
this.buttonOk.Click += new System.EventHandler(this.button2_Click);
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(12, 101);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(134, 13);
this.label3.TabIndex = 18;
this.label3.Text = "Metadata providers priority:";
//
// groupBox3
//
this.groupBox3.Controls.Add(this.radioButtonFZMedium);
this.groupBox3.Controls.Add(this.radioButtonFZHigh);
this.groupBox3.Controls.Add(this.radioButtonFZLow);
this.groupBox3.Controls.Add(this.radioButtonFZNone);
this.groupBox3.Location = new System.Drawing.Point(190, 119);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(83, 95);
this.groupBox3.TabIndex = 17;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "Freedb fuzzy";
//
// radioButtonFZMedium
//
this.radioButtonFZMedium.AutoSize = true;
this.radioButtonFZMedium.Location = new System.Drawing.Point(6, 33);
this.radioButtonFZMedium.Name = "radioButtonFZMedium";
this.radioButtonFZMedium.Size = new System.Drawing.Size(62, 17);
this.radioButtonFZMedium.TabIndex = 8;
this.radioButtonFZMedium.TabStop = true;
this.radioButtonFZMedium.Text = "Medium";
this.radioButtonFZMedium.UseVisualStyleBackColor = true;
//
// radioButtonFZHigh
//
this.radioButtonFZHigh.AutoSize = true;
this.radioButtonFZHigh.Location = new System.Drawing.Point(6, 16);
this.radioButtonFZHigh.Name = "radioButtonFZHigh";
this.radioButtonFZHigh.Size = new System.Drawing.Size(47, 17);
this.radioButtonFZHigh.TabIndex = 6;
this.radioButtonFZHigh.TabStop = true;
this.radioButtonFZHigh.Text = "High";
this.radioButtonFZHigh.UseVisualStyleBackColor = true;
//
// radioButtonFZLow
//
this.radioButtonFZLow.AutoSize = true;
this.radioButtonFZLow.Location = new System.Drawing.Point(6, 50);
this.radioButtonFZLow.Name = "radioButtonFZLow";
this.radioButtonFZLow.Size = new System.Drawing.Size(45, 17);
this.radioButtonFZLow.TabIndex = 7;
this.radioButtonFZLow.TabStop = true;
this.radioButtonFZLow.Text = "Low";
this.radioButtonFZLow.UseVisualStyleBackColor = true;
//
// radioButtonFZNone
//
this.radioButtonFZNone.AutoSize = true;
this.radioButtonFZNone.Location = new System.Drawing.Point(6, 67);
this.radioButtonFZNone.Name = "radioButtonFZNone";
this.radioButtonFZNone.Size = new System.Drawing.Size(51, 17);
this.radioButtonFZNone.TabIndex = 9;
this.radioButtonFZNone.TabStop = true;
this.radioButtonFZNone.Text = "None";
this.radioButtonFZNone.UseVisualStyleBackColor = true;
//
// buttonCancel
//
this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.buttonCancel.Location = new System.Drawing.Point(303, 158);
this.buttonCancel.Location = new System.Drawing.Point(404, 194);
this.buttonCancel.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.buttonCancel.Name = "buttonCancel";
this.buttonCancel.Size = new System.Drawing.Size(75, 25);
this.buttonCancel.Size = new System.Drawing.Size(100, 31);
this.buttonCancel.TabIndex = 19;
this.buttonCancel.Text = "Cancel";
this.buttonCancel.UseVisualStyleBackColor = true;
@@ -298,21 +160,19 @@ namespace AudioDataPlugIn
// Options
//
this.AcceptButton = this.buttonOk;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.buttonCancel;
this.ClientSize = new System.Drawing.Size(390, 227);
this.ClientSize = new System.Drawing.Size(520, 279);
this.Controls.Add(this.buttonCancel);
this.Controls.Add(this.groupBox3);
this.Controls.Add(this.label3);
this.Controls.Add(this.buttonOk);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.pictureBox1);
this.Controls.Add(this.linkLabel1);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "Options";
@@ -322,10 +182,6 @@ namespace AudioDataPlugIn
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
this.groupBox3.ResumeLayout(false);
this.groupBox3.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
@@ -337,23 +193,11 @@ namespace AudioDataPlugIn
private System.Windows.Forms.Label label2;
private System.Windows.Forms.LinkLabel linkLabel1;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.RadioButton radioButtonMBHigh;
private System.Windows.Forms.RadioButton radioButtonMBLow;
private System.Windows.Forms.RadioButton radioButtonMBMedium;
private System.Windows.Forms.RadioButton radioButtonMBNone;
private System.Windows.Forms.RadioButton radioButtonMBExtensive;
private System.Windows.Forms.RadioButton radioButtonMBFast;
private System.Windows.Forms.RadioButton radioButtonMBDefault;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.RadioButton radioButtonFDMedium;
private System.Windows.Forms.RadioButton radioButtonFDHigh;
private System.Windows.Forms.RadioButton radioButtonFDLow;
private System.Windows.Forms.RadioButton radioButtonFDNone;
private System.Windows.Forms.Button buttonOk;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.GroupBox groupBox3;
private System.Windows.Forms.RadioButton radioButtonFZMedium;
private System.Windows.Forms.RadioButton radioButtonFZHigh;
private System.Windows.Forms.RadioButton radioButtonFZLow;
private System.Windows.Forms.RadioButton radioButtonFZNone;
private System.Windows.Forms.Button buttonCancel;
}
}

View File

@@ -7,18 +7,52 @@ using System.Text;
using System.Windows.Forms;
using CUETools.CTDB.EACPlugin.Properties;
using CUETools.CTDB;
using Microsoft.Win32;
namespace AudioDataPlugIn
{
public partial class Options : Form
{
public static CTDBPriority priorityMusicbrainz = CTDBPriority.High;
public static CTDBPriority priorityFreedb = CTDBPriority.Medium;
public static CTDBPriority priorityFreedbFuzzy = CTDBPriority.Low;
private static CTDBMetadataSearch? metadataSearch = null;
private static string optionsKey = @"SOFTWARE\CUETools\EACPugin";
public static CTDBMetadataSearch MetadataSearch
{
get
{
if (!metadataSearch.HasValue)
{
try
{
using (var key = Registry.CurrentUser.OpenSubKey(optionsKey, false))
{
var val = key.GetValue("MetadataSearch") as string;
if (val == "Default") metadataSearch = CTDBMetadataSearch.Default;
if (val == "Fast") metadataSearch = CTDBMetadataSearch.Fast;
if (val == "Extensive") metadataSearch = CTDBMetadataSearch.Extensive;
}
}
catch (Exception ex)
{
}
}
return metadataSearch ?? CTDBMetadataSearch.Default;
}
set
{
using (var key = Registry.CurrentUser.CreateSubKey(optionsKey))
{
key.SetValue("MetadataSearch", value.ToString());
}
metadataSearch = value;
}
}
public Options()
{
InitializeComponent();
this.InitializeComponent();
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
@@ -29,34 +63,17 @@ namespace AudioDataPlugIn
private void Options_Load(object sender, EventArgs e)
{
this.Icon = Resources.ctdb;
this.radioButtonMBHigh.Checked = priorityMusicbrainz == CTDBPriority.High;
this.radioButtonMBMedium.Checked = priorityMusicbrainz == CTDBPriority.Medium;
this.radioButtonMBLow.Checked = priorityMusicbrainz == CTDBPriority.Low;
this.radioButtonMBNone.Checked = priorityMusicbrainz == CTDBPriority.None;
this.radioButtonFDHigh.Checked = priorityFreedb == CTDBPriority.High;
this.radioButtonFDMedium.Checked = priorityFreedb == CTDBPriority.Medium;
this.radioButtonFDLow.Checked = priorityFreedb == CTDBPriority.Low;
this.radioButtonFDNone.Checked = priorityFreedb == CTDBPriority.None;
this.radioButtonFZHigh.Checked = priorityFreedbFuzzy == CTDBPriority.High;
this.radioButtonFZMedium.Checked = priorityFreedbFuzzy == CTDBPriority.Medium;
this.radioButtonFZLow.Checked = priorityFreedbFuzzy == CTDBPriority.Low;
this.radioButtonFZNone.Checked = priorityFreedbFuzzy == CTDBPriority.None;
this.radioButtonMBExtensive.Checked = MetadataSearch == CTDBMetadataSearch.Extensive;
this.radioButtonMBDefault.Checked = MetadataSearch == CTDBMetadataSearch.Default;
this.radioButtonMBFast.Checked = MetadataSearch == CTDBMetadataSearch.Fast;
}
private void button2_Click(object sender, EventArgs e)
{
priorityMusicbrainz = this.radioButtonMBHigh.Checked ? CTDBPriority.High
: this.radioButtonMBMedium.Checked ? CTDBPriority.Medium
: this.radioButtonMBLow.Checked ? CTDBPriority.Low
: CTDBPriority.None;
priorityFreedb = this.radioButtonFDHigh.Checked ? CTDBPriority.High
: this.radioButtonFDMedium.Checked ? CTDBPriority.Medium
: this.radioButtonFDLow.Checked ? CTDBPriority.Low
: CTDBPriority.None;
priorityFreedbFuzzy = this.radioButtonFZHigh.Checked ? CTDBPriority.High
: this.radioButtonFZMedium.Checked ? CTDBPriority.Medium
: this.radioButtonFZLow.Checked ? CTDBPriority.Low
: CTDBPriority.None;
Options.MetadataSearch = this.radioButtonMBExtensive.Checked ? CTDBMetadataSearch.Extensive
: this.radioButtonMBDefault.Checked ? CTDBMetadataSearch.Default
: this.radioButtonMBFast.Checked ? CTDBMetadataSearch.Fast
: CTDBMetadataSearch.None;
}
}
}

View File

@@ -56,7 +56,7 @@ namespace AudioDataPlugIn
// the plugin and for display in the log file
public string GetAudioTransferPluginName()
{
return "CUETools DB Plugin V2.1.2b";
return "CUETools DB Plugin V2.1.3";
}
// Each plugin should have its own options page.
@@ -122,7 +122,7 @@ namespace AudioDataPlugIn
ArId = AccurateRipVerify.CalculateAccurateRipId(TOC);
ar.ContactAccurateRip(ArId);
#endif
var form = new FormSubmitParity(ctdb, "EAC" + m_data.HostVersion + " CTDB 2.1.2", m_drivename);
var form = new FormSubmitParity(ctdb, "EAC" + m_data.HostVersion + " CTDB 2.1.3", m_drivename);
//ctdb.ContactDB("EAC" + m_data.HostVersion + " CTDB 2.1.2", m_drivename, false, false);
form.ShowDialog();
ctdb.Init(ar);

View File

@@ -57,7 +57,7 @@ namespace CUETools.CTDB
}
}
public void ContactDB(string server, string userAgent, string driveName, bool ctdb, bool fuzzy, CTDBPriority musicbrainz, CTDBPriority freedb, CTDBPriority freedbFuzzy)
public void ContactDB(string server, string userAgent, string driveName, bool ctdb, bool fuzzy, CTDBMetadataSearch metadataSearch)
{
this.driveName = driveName;
this.userAgent = userAgent + " (" + Environment.OSVersion.VersionString + ")" + (driveName != null ? " (" + driveName + ")" : "");
@@ -67,9 +67,8 @@ namespace CUETools.CTDB
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(urlbase
+ "/lookup2.php"
+ "?ctdb=" + (ctdb ? "1" : "0")
+ "&musicbrainz=" + ((int)musicbrainz).ToString()
+ "&freedb=" + ((int)freedb + 8 * (int)freedbFuzzy).ToString()
+ "&fuzzy=" + (fuzzy ? 1 : 0)
+ "&fuzzy=" + (fuzzy ? 1 : 0)
+ "&metadata=" + (metadataSearch == CTDBMetadataSearch.None ? "none" : metadataSearch == CTDBMetadataSearch.Fast ? "fast" : metadataSearch == CTDBMetadataSearch.Default ? "default" : "extensive")
+ "&toc=" + toc.ToString());
req.Method = "GET";
req.Proxy = proxy;
@@ -817,11 +816,11 @@ namespace CUETools.CTDB
public CTDBResponseMeta[] musicbrainz;
}
public enum CTDBPriority
public enum CTDBMetadataSearch
{
None = 0,
High = 1,
Medium = 2,
Low = 3
Fast = 1,
Default = 2,
Extensive = 3
}
}

View File

@@ -83,12 +83,19 @@ namespace CUETools.Codecs.LAME
DeInit(true);
if (needTag)
{
bool utf8Required = Encoding.Default.GetString(Encoding.Default.GetBytes(_path)) != _path;
var tempDir = System.IO.Path.Combine(System.IO.Path.GetPathRoot(_path), "Temp");
var tempName = utf8Required ? System.IO.Path.Combine(tempDir, Guid.NewGuid().ToString()) : _path;
try
{
Lame_encDll.beWriteInfoTag(m_hLameStream, _path);
if (utf8Required && !Directory.Exists(tempDir)) Directory.CreateDirectory(tempDir);
if (utf8Required) File.Move(_path, tempName);
Lame_encDll.beWriteInfoTag(m_hLameStream, tempName);
if (utf8Required) File.Move(tempName, _path);
}
catch
{
if (utf8Required) File.Move(tempName, _path);
}
}
}

View File

@@ -2211,7 +2211,7 @@ return processor.Go();
_localDB.Save();
}
public List<object> LookupAlbumInfo(bool useCache, bool useCUE, bool useCTDB, CTDBPriority priorityMusicbrainz, CTDBPriority priorityFreedb, CTDBPriority priorityFreedbFuzzy)
public List<object> LookupAlbumInfo(bool useCache, bool useCUE, bool useCTDB, CTDBMetadataSearch metadataSearch)
{
List<object> Releases = new List<object>();
@@ -2268,7 +2268,7 @@ return processor.Go();
{
ShowProgress("Looking up album via CTDB...", 0.0, null, null);
var ctdb = new CUEToolsDB(TOC, proxy);
ctdb.ContactDB(_config.advanced.CTDBServer, "CUETools " + CUEToolsVersion, null, false, false, priorityMusicbrainz, priorityFreedb, priorityFreedbFuzzy);
ctdb.ContactDB(_config.advanced.CTDBServer, "CUETools " + CUEToolsVersion, null, false, false, metadataSearch);
foreach (var meta in ctdb.Metadata)
{
CUEMetadata metadata = new CUEMetadata(TOC.TOCID, (int)TOC.AudioTracks);
@@ -2279,7 +2279,7 @@ return processor.Go();
}
}
if (!ctdbFound && priorityFreedb != CTDBPriority.None)
if (!ctdbFound && metadataSearch == CTDBMetadataSearch.Extensive)
{
ShowProgress("Looking up album via Freedb...", 0.0, null, null);
@@ -3196,13 +3196,13 @@ return processor.Go();
// TODO: It should also be set when assigning a DataTrack!!!
}
public void UseCUEToolsDB(string userAgent, string driveName, bool fuzzy, CTDBPriority musicbrainz, CTDBPriority freedb, CTDBPriority freedbFuzzy)
public void UseCUEToolsDB(string userAgent, string driveName, bool fuzzy, CTDBMetadataSearch metadataSearch)
{
ShowProgress((string)"Contacting CUETools database...", 0, null, null);
_CUEToolsDB = new CUEToolsDB(_toc, proxy);
_CUEToolsDB.UploadHelper.onProgress += new EventHandler<Krystalware.UploadHelper.UploadProgressEventArgs>(UploadProgress);
_CUEToolsDB.ContactDB(_config.advanced.CTDBServer, userAgent, driveName, true, fuzzy, musicbrainz, freedb, freedbFuzzy);
_CUEToolsDB.ContactDB(_config.advanced.CTDBServer, userAgent, driveName, true, fuzzy, metadataSearch);
if (!_toc[_toc.TrackCount].IsAudio && DataTrackLength == 0)
foreach (DBEntry e in _CUEToolsDB.Entries)
@@ -6216,7 +6216,7 @@ return processor.Go();
return ArVerify.ExceptionStatus != WebExceptionStatus.Success ? WriteReport() : Go();
case "repair":
{
UseCUEToolsDB("CUETools " + CUEToolsVersion, null, true, CTDBPriority.None, CTDBPriority.None, CTDBPriority.None);
UseCUEToolsDB("CUETools " + CUEToolsVersion, null, true, CTDBMetadataSearch.None);
Action = CUEAction.Verify;
if (CTDB.DBStatus != null)
return CTDB.DBStatus;

View File

@@ -180,7 +180,7 @@ namespace CUETools.ConsoleRipper
string ArId = AccurateRipVerify.CalculateAccurateRipId(audioSource.TOC);
var ctdb = new CUEToolsDB(audioSource.TOC, null);
ctdb.Init(arVerify);
ctdb.ContactDB(null, "CUETools.ConsoleRipper 2.1.2", audioSource.ARName, true, false, CTDBPriority.High, CTDBPriority.Medium, CTDBPriority.Low);
ctdb.ContactDB(null, "CUETools.ConsoleRipper 2.1.2", audioSource.ARName, true, false, CTDBMetadataSearch.Fast);
arVerify.ContactAccurateRip(ArId);
CTDBResponseMeta meta = null;
foreach (var imeta in ctdb.Metadata)

View File

@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.4200
// Runtime Version:2.0.50727.5446
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.

View File

@@ -1220,7 +1220,7 @@ namespace CUETools.Ripper.SCSI
public sealed class SCSIException : Exception
{
public SCSIException(string args, Device device, Device.CommandStatus st)
: base(args + ": " + (st == Device.CommandStatus.DeviceFailed ? Device.LookupSenseError(device.GetSenseAsc(), device.GetSenseAscq()) : st.ToString()))
: base(args + ": " + (st == Device.CommandStatus.DeviceFailed ? device.GetErrorString() : st.ToString()))
{
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 424 B

View File

@@ -170,7 +170,7 @@ namespace JDP {
//
// toolStripContainer1.LeftToolStripPanel
//
this.toolStripContainer1.LeftToolStripPanel.MaximumSize = new System.Drawing.Size(32, 0);
this.toolStripContainer1.LeftToolStripPanel.MaximumSize = new System.Drawing.Size(43, 0);
this.toolStripContainer1.LeftToolStripPanelVisible = false;
this.toolStripContainer1.Name = "toolStripContainer1";
this.toolStripContainer1.RightToolStripPanelVisible = false;
@@ -355,7 +355,7 @@ namespace JDP {
//
resources.ApplyResources(this.checkBoxUseAccurateRip, "checkBoxUseAccurateRip");
this.checkBoxUseAccurateRip.Image = global::JDP.Properties.Resources.AR;
this.checkBoxUseAccurateRip.MinimumSize = new System.Drawing.Size(0, 16);
this.checkBoxUseAccurateRip.MinimumSize = new System.Drawing.Size(0, 21);
this.checkBoxUseAccurateRip.Name = "checkBoxUseAccurateRip";
this.toolTip1.SetToolTip(this.checkBoxUseAccurateRip, resources.GetString("checkBoxUseAccurateRip.ToolTip"));
this.checkBoxUseAccurateRip.UseVisualStyleBackColor = true;
@@ -365,7 +365,7 @@ namespace JDP {
//
resources.ApplyResources(this.checkBoxUseFreeDb, "checkBoxUseFreeDb");
this.checkBoxUseFreeDb.Image = global::JDP.Properties.Resources.freedb16;
this.checkBoxUseFreeDb.MinimumSize = new System.Drawing.Size(0, 16);
this.checkBoxUseFreeDb.MinimumSize = new System.Drawing.Size(0, 21);
this.checkBoxUseFreeDb.Name = "checkBoxUseFreeDb";
this.toolTip1.SetToolTip(this.checkBoxUseFreeDb, resources.GetString("checkBoxUseFreeDb.ToolTip"));
this.checkBoxUseFreeDb.UseVisualStyleBackColor = true;
@@ -403,7 +403,7 @@ namespace JDP {
//
resources.ApplyResources(this.checkBoxUseMusicBrainz, "checkBoxUseMusicBrainz");
this.checkBoxUseMusicBrainz.Image = global::JDP.Properties.Resources.musicbrainz;
this.checkBoxUseMusicBrainz.MinimumSize = new System.Drawing.Size(0, 16);
this.checkBoxUseMusicBrainz.MinimumSize = new System.Drawing.Size(0, 21);
this.checkBoxUseMusicBrainz.Name = "checkBoxUseMusicBrainz";
this.toolTip1.SetToolTip(this.checkBoxUseMusicBrainz, resources.GetString("checkBoxUseMusicBrainz.ToolTip"));
this.checkBoxUseMusicBrainz.UseVisualStyleBackColor = true;
@@ -547,7 +547,7 @@ namespace JDP {
// labelFormat
//
resources.ApplyResources(this.labelFormat, "labelFormat");
this.labelFormat.MinimumSize = new System.Drawing.Size(16, 16);
this.labelFormat.MinimumSize = new System.Drawing.Size(21, 21);
this.labelFormat.Name = "labelFormat";
//
// comboBoxAudioFormat

View File

@@ -888,7 +888,7 @@ namespace JDP {
if (useLocalDB)
cueSheet.UseLocalDB(_localDB);
if (useCUEToolsDB)
cueSheet.UseCUEToolsDB("CUETools " + CUESheet.CUEToolsVersion, null, true, CTDBPriority.None, CTDBPriority.None, CTDBPriority.None);
cueSheet.UseCUEToolsDB("CUETools " + CUESheet.CUEToolsVersion, null, true, CTDBMetadataSearch.None);
if (useAR)
cueSheet.UseAccurateRip();
@@ -924,9 +924,7 @@ namespace JDP {
dlg.LookupAlbumInfo(_profile._config.advanced.CacheMetadata,
true,
true,
checkBoxUseMusicBrainz.Checked ? CTDBPriority.High : CTDBPriority.None,
checkBoxUseFreeDb.Checked ? CTDBPriority.Medium : CTDBPriority.None,
checkBoxUseFreeDb.Checked ? CTDBPriority.Low : CTDBPriority.None);
CTDBMetadataSearch.Default);
dlgRes = dlg.ShowDialog(this);
_choiceMaxed = dlg.WindowState == FormWindowState.Maximized;
if (!_choiceMaxed)
@@ -2183,7 +2181,7 @@ namespace JDP {
if (_choiceMaxed)
dlg.WindowState = FormWindowState.Maximized;
dlg.CUE = CueSheet;
dlg.LookupAlbumInfo(true, node is FileSystemTreeNodeLocalDBEntry, true, CTDBPriority.High, CTDBPriority.Medium, CTDBPriority.Low);
dlg.LookupAlbumInfo(true, node is FileSystemTreeNodeLocalDBEntry, true, CTDBMetadataSearch.Default);
var dlgRes = dlg.ShowDialog(this);
_choiceMaxed = dlg.WindowState == FormWindowState.Maximized;
if (!_choiceMaxed)

File diff suppressed because it is too large Load Diff

View File

@@ -39,19 +39,21 @@ namespace JDP
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.tableLayoutPanelMeta = new System.Windows.Forms.TableLayoutPanel();
this.listMetadata = new System.Windows.Forms.ListView();
this.columnHeaderMetadataValue = new System.Windows.Forms.ColumnHeader();
this.columnHeaderMetadataName = new System.Windows.Forms.ColumnHeader();
this.listTracks = new System.Windows.Forms.ListView();
this.Title = new System.Windows.Forms.ColumnHeader();
this.TrackNo = new System.Windows.Forms.ColumnHeader();
this.Start = new System.Windows.Forms.ColumnHeader();
this.Length = new System.Windows.Forms.ColumnHeader();
this.dataGridViewMetadata = new System.Windows.Forms.DataGridView();
this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker();
this.dataGridViewTracks = new System.Windows.Forms.DataGridView();
this.dataGridViewTextBoxColumnTrackNo = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumnTrackTitle = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumnTrackStart = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumnTrackLength = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Item = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Value = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.tableLayoutPanel1.SuspendLayout();
this.tableLayoutPanel2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.tableLayoutPanelMeta.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridViewMetadata)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dataGridViewTracks)).BeginInit();
this.SuspendLayout();
//
// buttonOk
@@ -92,6 +94,7 @@ namespace JDP
this.imageList1.Images.SetKeyName(4, "tags");
this.imageList1.Images.SetKeyName(5, "local");
this.imageList1.Images.SetKeyName(6, "ctdb");
this.imageList1.Images.SetKeyName(7, "discogs");
//
// textBox1
//
@@ -126,76 +129,110 @@ namespace JDP
// tableLayoutPanelMeta
//
resources.ApplyResources(this.tableLayoutPanelMeta, "tableLayoutPanelMeta");
this.tableLayoutPanelMeta.Controls.Add(this.listMetadata, 0, 0);
this.tableLayoutPanelMeta.Controls.Add(this.listTracks, 1, 0);
this.tableLayoutPanelMeta.Controls.Add(this.dataGridViewTracks, 0, 0);
this.tableLayoutPanelMeta.Controls.Add(this.dataGridViewMetadata, 0, 0);
this.tableLayoutPanelMeta.Name = "tableLayoutPanelMeta";
//
// listMetadata
// dataGridViewMetadata
//
this.listMetadata.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeaderMetadataValue,
this.columnHeaderMetadataName});
resources.ApplyResources(this.listMetadata, "listMetadata");
this.listMetadata.FullRowSelect = true;
this.listMetadata.GridLines = true;
this.listMetadata.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
this.listMetadata.LabelEdit = true;
this.listMetadata.Name = "listMetadata";
this.listMetadata.UseCompatibleStateImageBehavior = false;
this.listMetadata.View = System.Windows.Forms.View.Details;
this.listMetadata.AfterLabelEdit += new System.Windows.Forms.LabelEditEventHandler(this.listMetadata_AfterLabelEdit);
this.listMetadata.DoubleClick += new System.EventHandler(this.listMetadata_DoubleClick);
this.listMetadata.KeyDown += new System.Windows.Forms.KeyEventHandler(this.listMetadata_KeyDown);
//
// columnHeaderMetadataValue
//
resources.ApplyResources(this.columnHeaderMetadataValue, "columnHeaderMetadataValue");
//
// columnHeaderMetadataName
//
resources.ApplyResources(this.columnHeaderMetadataName, "columnHeaderMetadataName");
//
// listTracks
//
this.listTracks.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.Title,
this.TrackNo,
this.Start,
this.Length});
resources.ApplyResources(this.listTracks, "listTracks");
this.listTracks.FullRowSelect = true;
this.listTracks.GridLines = true;
this.listTracks.LabelEdit = true;
this.listTracks.Name = "listTracks";
this.listTracks.UseCompatibleStateImageBehavior = false;
this.listTracks.View = System.Windows.Forms.View.Details;
this.listTracks.AfterLabelEdit += new System.Windows.Forms.LabelEditEventHandler(this.listTracks_AfterLabelEdit);
this.listTracks.DoubleClick += new System.EventHandler(this.listTracks_DoubleClick);
this.listTracks.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.listTracks_PreviewKeyDown);
this.listTracks.BeforeLabelEdit += new System.Windows.Forms.LabelEditEventHandler(this.listTracks_BeforeLabelEdit);
this.listTracks.KeyDown += new System.Windows.Forms.KeyEventHandler(this.listTracks_KeyDown);
//
// Title
//
resources.ApplyResources(this.Title, "Title");
//
// TrackNo
//
resources.ApplyResources(this.TrackNo, "TrackNo");
//
// Start
//
resources.ApplyResources(this.Start, "Start");
//
// Length
//
resources.ApplyResources(this.Length, "Length");
this.dataGridViewMetadata.AllowUserToAddRows = false;
this.dataGridViewMetadata.AllowUserToDeleteRows = false;
this.dataGridViewMetadata.AllowUserToResizeColumns = false;
this.dataGridViewMetadata.AllowUserToResizeRows = false;
this.dataGridViewMetadata.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;
this.dataGridViewMetadata.BackgroundColor = System.Drawing.SystemColors.Window;
this.dataGridViewMetadata.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.dataGridViewMetadata.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridViewMetadata.ColumnHeadersVisible = false;
this.dataGridViewMetadata.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Item,
this.Value});
resources.ApplyResources(this.dataGridViewMetadata, "dataGridViewMetadata");
this.dataGridViewMetadata.GridColor = System.Drawing.SystemColors.ControlLight;
this.dataGridViewMetadata.MultiSelect = false;
this.dataGridViewMetadata.Name = "dataGridViewMetadata";
this.dataGridViewMetadata.RowHeadersVisible = false;
this.dataGridViewMetadata.RowTemplate.Height = 24;
this.dataGridViewMetadata.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect;
this.dataGridViewMetadata.CellEndEdit += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridViewMetadata_CellEndEdit);
this.dataGridViewMetadata.EditingControlShowing += new System.Windows.Forms.DataGridViewEditingControlShowingEventHandler(this.dataGridViewMetadata_EditingControlShowing);
this.dataGridViewMetadata.KeyDown += new System.Windows.Forms.KeyEventHandler(this.dataGridViewMetadata_KeyDown);
//
// backgroundWorker1
//
this.backgroundWorker1.DoWork += new System.ComponentModel.DoWorkEventHandler(this.backgroundWorker1_DoWork);
this.backgroundWorker1.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.backgroundWorker1_RunWorkerCompleted);
//
// dataGridViewTracks
//
this.dataGridViewTracks.AllowUserToAddRows = false;
this.dataGridViewTracks.AllowUserToDeleteRows = false;
this.dataGridViewTracks.AllowUserToResizeColumns = false;
this.dataGridViewTracks.AllowUserToResizeRows = false;
this.dataGridViewTracks.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;
this.dataGridViewTracks.BackgroundColor = System.Drawing.SystemColors.Window;
this.dataGridViewTracks.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.dataGridViewTracks.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridViewTracks.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.dataGridViewTextBoxColumnTrackNo,
this.dataGridViewTextBoxColumnTrackTitle,
this.dataGridViewTextBoxColumnTrackStart,
this.dataGridViewTextBoxColumnTrackLength});
resources.ApplyResources(this.dataGridViewTracks, "dataGridViewTracks");
this.dataGridViewTracks.GridColor = System.Drawing.SystemColors.ControlLight;
this.dataGridViewTracks.MultiSelect = false;
this.dataGridViewTracks.Name = "dataGridViewTracks";
this.dataGridViewTracks.RowHeadersVisible = false;
this.dataGridViewTracks.RowTemplate.Height = 24;
this.dataGridViewTracks.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect;
this.dataGridViewTracks.CellEndEdit += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridViewTracks_CellEndEdit);
//
// dataGridViewTextBoxColumnTrackNo
//
this.dataGridViewTextBoxColumnTrackNo.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
this.dataGridViewTextBoxColumnTrackNo.Frozen = true;
resources.ApplyResources(this.dataGridViewTextBoxColumnTrackNo, "dataGridViewTextBoxColumnTrackNo");
this.dataGridViewTextBoxColumnTrackNo.Name = "dataGridViewTextBoxColumnTrackNo";
this.dataGridViewTextBoxColumnTrackNo.ReadOnly = true;
this.dataGridViewTextBoxColumnTrackNo.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// dataGridViewTextBoxColumnTrackTitle
//
this.dataGridViewTextBoxColumnTrackTitle.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
resources.ApplyResources(this.dataGridViewTextBoxColumnTrackTitle, "dataGridViewTextBoxColumnTrackTitle");
this.dataGridViewTextBoxColumnTrackTitle.Name = "dataGridViewTextBoxColumnTrackTitle";
this.dataGridViewTextBoxColumnTrackTitle.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// dataGridViewTextBoxColumnTrackStart
//
this.dataGridViewTextBoxColumnTrackStart.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
resources.ApplyResources(this.dataGridViewTextBoxColumnTrackStart, "dataGridViewTextBoxColumnTrackStart");
this.dataGridViewTextBoxColumnTrackStart.Name = "dataGridViewTextBoxColumnTrackStart";
this.dataGridViewTextBoxColumnTrackStart.ReadOnly = true;
this.dataGridViewTextBoxColumnTrackStart.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// dataGridViewTextBoxColumnTrackLength
//
this.dataGridViewTextBoxColumnTrackLength.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
resources.ApplyResources(this.dataGridViewTextBoxColumnTrackLength, "dataGridViewTextBoxColumnTrackLength");
this.dataGridViewTextBoxColumnTrackLength.Name = "dataGridViewTextBoxColumnTrackLength";
this.dataGridViewTextBoxColumnTrackLength.ReadOnly = true;
this.dataGridViewTextBoxColumnTrackLength.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
//
// Item
//
this.Item.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
this.Item.Frozen = true;
resources.ApplyResources(this.Item, "Item");
this.Item.Name = "Item";
this.Item.ReadOnly = true;
//
// Value
//
this.Value.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
resources.ApplyResources(this.Value, "Value");
this.Value.Name = "Value";
//
// frmChoice
//
this.AcceptButton = this.buttonOk;
@@ -207,11 +244,14 @@ namespace JDP
this.ShowInTaskbar = false;
this.Load += new System.EventHandler(this.frmChoice_Load);
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmChoice_FormClosing);
this.Resize += new System.EventHandler(this.frmChoice_Resize);
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout();
this.tableLayoutPanel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.tableLayoutPanelMeta.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dataGridViewMetadata)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dataGridViewTracks)).EndInit();
this.ResumeLayout(false);
}
@@ -228,13 +268,13 @@ namespace JDP
private System.Windows.Forms.PictureBox pictureBox1;
private System.ComponentModel.BackgroundWorker backgroundWorker1;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanelMeta;
private System.Windows.Forms.ListView listMetadata;
private System.Windows.Forms.ColumnHeader columnHeaderMetadataValue;
private System.Windows.Forms.ColumnHeader columnHeaderMetadataName;
private System.Windows.Forms.ListView listTracks;
private System.Windows.Forms.ColumnHeader Title;
private System.Windows.Forms.ColumnHeader TrackNo;
private System.Windows.Forms.ColumnHeader Start;
private System.Windows.Forms.ColumnHeader Length;
private System.Windows.Forms.DataGridView dataGridViewMetadata;
private System.Windows.Forms.DataGridView dataGridViewTracks;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumnTrackNo;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumnTrackTitle;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumnTrackStart;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumnTrackLength;
private System.Windows.Forms.DataGridViewTextBoxColumn Item;
private System.Windows.Forms.DataGridViewTextBoxColumn Value;
}
}

View File

@@ -22,17 +22,15 @@ namespace JDP
public CUESheet CUE;
private bool ctdb;
private CTDBPriority priorityMusicbrainz, priorityFreedb, priorityFreedbFuzzy;
private CTDBMetadataSearch metadataSearch;
public void LookupAlbumInfo(bool cache, bool cue, bool ctdb, CTDBPriority priorityMusicbrainz, CTDBPriority priorityFreedb, CTDBPriority priorityFreedbFuzzy)
public void LookupAlbumInfo(bool cache, bool cue, bool ctdb, CTDBMetadataSearch metadataSearch)
{
this.ctdb = ctdb;
this.priorityMusicbrainz = priorityMusicbrainz;
this.priorityFreedb = priorityFreedb;
this.priorityFreedbFuzzy = priorityFreedbFuzzy;
var releases = CUE.LookupAlbumInfo(cache, cue, false, CTDBPriority.None, CTDBPriority.None, CTDBPriority.None);
this.metadataSearch = metadataSearch;
var releases = CUE.LookupAlbumInfo(cache, cue, false, CTDBMetadataSearch.None);
this.Choices = releases;
if (ctdb || priorityMusicbrainz != CTDBPriority.None || priorityFreedb != CTDBPriority.None || priorityFreedbFuzzy != CTDBPriority.None)
if (ctdb || metadataSearch != CTDBMetadataSearch.None)
backgroundWorker1.RunWorkerAsync(null);
}
@@ -159,14 +157,19 @@ namespace JDP
CUE.CopyMetadata(ri.metadata);
}
private void AutoResizeTracks()
private void AutoResizeList(ListView list, int mainCol)
{
listTracks.Columns[1].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
listTracks.Columns[2].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
listTracks.Columns[3].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
int widthAvailable = listTracks.Width - listTracks.Columns[1].Width - listTracks.Columns[2].Width - listTracks.Columns[3].Width - listTracks.Padding.Horizontal - 24;
if (listTracks.Columns[0].Width < widthAvailable)
listTracks.Columns[0].Width = widthAvailable;
list.SuspendLayout();
int widthAvailable = list.Width - SystemInformation.BorderSize.Width - SystemInformation.VerticalScrollBarWidth;
for (int i = 0; i < list.Columns.Count; i++)
if (i != mainCol)
{
list.Columns[i].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
widthAvailable -= list.Columns[i].Width + SystemInformation.BorderSize.Width;
}
if (list.Columns[mainCol].Width != widthAvailable)
list.Columns[mainCol].Width = widthAvailable;
list.ResumeLayout(false);
}
private void listChoices_SelectedIndexChanged(object sender, EventArgs e)
@@ -190,65 +193,147 @@ namespace JDP
else if (item != null && item is CUEMetadataEntry)
{
CUEMetadataEntry r = (item as CUEMetadataEntry);
listTracks.Items.Clear();
dataGridViewTracks.SuspendLayout();
dataGridViewTracks.Rows.Clear();
foreach (CUETrackMetadata track in r.metadata.Tracks)
{
listTracks.Items.Add(new ListViewItem(new string[] {
int no = dataGridViewTracks.Rows.Count;
dataGridViewTracks.Rows.Add(
(no + 1).ToString(),
track.Title,
(listTracks.Items.Count + 1).ToString(),
r.TOC[listTracks.Items.Count + r.TOC.FirstAudio].StartMSF,
r.TOC[listTracks.Items.Count + r.TOC.FirstAudio].LengthMSF
}));
r.TOC[no + r.TOC.FirstAudio].StartMSF,
r.TOC[no + r.TOC.FirstAudio].LengthMSF
);
}
AutoResizeTracks();
listMetadata.Items.Clear();
listMetadata.Items.Add(new ListViewItem(new string[] { r.metadata.Artist, "Artist" }));
listMetadata.Items.Add(new ListViewItem(new string[] { r.metadata.Title, "Album" }));
listMetadata.Items.Add(new ListViewItem(new string[] { r.metadata.Year, "Date" }));
listMetadata.Items.Add(new ListViewItem(new string[] { r.metadata.Genre, "Genre" }));
listMetadata.Items.Add(new ListViewItem(new string[] { r.metadata.DiscNumber, "Disc Number" }));
listMetadata.Items.Add(new ListViewItem(new string[] { r.metadata.TotalDiscs, "Total Discs" }));
listMetadata.Items.Add(new ListViewItem(new string[] { r.metadata.DiscName, "Disc Name" }));
listMetadata.Items.Add(new ListViewItem(new string[] { r.metadata.Barcode, "Barcode" }));
listMetadata.Items.Add(new ListViewItem(new string[] { r.metadata.ReleaseDate, "Release Date" }));
listMetadata.Items.Add(new ListViewItem(new string[] { r.metadata.Label, "Label" }));
listMetadata.Items.Add(new ListViewItem(new string[] { r.metadata.Country, "Country" }));
dataGridViewTracks.ResumeLayout();
dataGridViewMetadata.Rows.Clear();
dataGridViewMetadata.Rows.Add("Artist", r.metadata.Artist);
dataGridViewMetadata.Rows.Add("Album", r.metadata.Title);
dataGridViewMetadata.Rows.Add("Date", r.metadata.Year);
dataGridViewMetadata.Rows.Add("Genre", r.metadata.Genre);
dataGridViewMetadata.Rows.Add("Disc Number", r.metadata.DiscNumber);
dataGridViewMetadata.Rows.Add("Total Discs", r.metadata.TotalDiscs);
dataGridViewMetadata.Rows.Add("Disc Name", r.metadata.DiscName);
dataGridViewMetadata.Rows.Add("Barcode", r.metadata.Barcode);
dataGridViewMetadata.Rows.Add("Release Date", r.metadata.ReleaseDate);
dataGridViewMetadata.Rows.Add("Label", r.metadata.Label);
dataGridViewMetadata.Rows.Add("Country", r.metadata.Country);
}
else
{
listMetadata.Items.Clear();
listTracks.Items.Clear();
dataGridViewMetadata.Rows.Clear();
dataGridViewTracks.Rows.Clear();
textBox1.Text = "";
}
}
private void listTracks_DoubleClick(object sender, EventArgs e)
private void pictureBox1_DoubleClick(object sender, EventArgs e)
{
listTracks.FocusedItem.BeginEdit();
pictureBox1.SizeMode = pictureBox1.SizeMode == PictureBoxSizeMode.Zoom ?
PictureBoxSizeMode.CenterImage : PictureBoxSizeMode.Zoom;
}
private void listTracks_KeyDown(object sender, KeyEventArgs e)
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
if (e.KeyCode == Keys.F2)
listTracks.FocusedItem.BeginEdit();
e.Result = CUE.LookupAlbumInfo(false, false, this.ctdb, this.metadataSearch);
}
private void listTracks_BeforeLabelEdit(object sender, LabelEditEventArgs e)
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (ChosenRelease == null)
foreach (object i in (e.Result as List<object>))
AddItem(i);
}
private void frmChoice_Resize(object sender, EventArgs e)
{
AutoResizeList(listChoices, 0);
}
private void dataGridViewMetadata_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
var te = e.Control as DataGridViewTextBoxEditingControl;
if (te != null)
{
e.CancelEdit = true;
return;
// te.AutoCompleteMode = AutoCompleteMode.None;
te.AutoCompleteMode = AutoCompleteMode.Suggest;
te.AutoCompleteSource = AutoCompleteSource.CustomSource;
te.AutoCompleteCustomSource.Clear();
foreach (ListViewItem item in listChoices.Items)
{
var r = item.Tag as CUEMetadataEntry;
switch (dataGridViewMetadata.CurrentCell.RowIndex)
{
case 0:
foreach (CUETrackMetadata track in r.metadata.Tracks)
te.AutoCompleteCustomSource.Add(track.Artist);
te.AutoCompleteCustomSource.Add(r.metadata.Artist);
break;
case 1: te.AutoCompleteCustomSource.Add(r.metadata.Title); break;
case 2: te.AutoCompleteCustomSource.Add(r.metadata.Year); break;
case 3: te.AutoCompleteCustomSource.Add(r.metadata.Genre); break;
case 4: te.AutoCompleteCustomSource.Add(r.metadata.DiscNumber); break;
case 5: te.AutoCompleteCustomSource.Add(r.metadata.TotalDiscs); break;
case 6: te.AutoCompleteCustomSource.Add(r.metadata.DiscName); break;
case 7: te.AutoCompleteCustomSource.Add(r.metadata.Barcode); break;
case 8: te.AutoCompleteCustomSource.Add(r.metadata.ReleaseDate); break;
case 9: te.AutoCompleteCustomSource.Add(r.metadata.Label); break;
case 10: te.AutoCompleteCustomSource.Add(r.metadata.Country); break;
}
}
}
}
private void listTracks_AfterLabelEdit(object sender, LabelEditEventArgs e)
private void dataGridViewMetadata_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
CUEMetadataEntry ri = ChosenRelease;
if (ri != null && e.Label != null)
ri.metadata.Tracks[e.Item].Title = e.Label;
ListViewItem item = ChosenItem;
CUEMetadataEntry r = ChosenRelease;
var label = dataGridViewMetadata.Rows[e.RowIndex].Cells[1].Value as string;
if (label != null && item != null && r != null)
{
switch (e.RowIndex)
{
case 0:
foreach (CUETrackMetadata track in r.metadata.Tracks)
if (track.Artist == r.metadata.Artist)
track.Artist = label;
r.metadata.Artist = label;
break;
case 1: r.metadata.Title = label; break;
case 2: r.metadata.Year = label; break;
case 3: r.metadata.Genre = label; break;
case 4: r.metadata.DiscNumber = label; break;
case 5: r.metadata.TotalDiscs = label; break;
case 6: r.metadata.DiscName = label; break;
case 7: r.metadata.Barcode = label; break;
case 8: r.metadata.ReleaseDate = label; break;
case 9: r.metadata.Label = label; break;
case 10: r.metadata.Country = label; break;
}
item.Text = r.ToString();
}
}
private void dataGridViewMetadata_KeyDown(object sender, KeyEventArgs e)
{
CUEMetadataEntry r = ChosenRelease;
if (e.KeyCode == Keys.Delete && r != null)
{
var ee = new DataGridViewCellEventArgs(1, dataGridViewMetadata.CurrentCellAddress.Y);
dataGridViewMetadata.Rows[ee.RowIndex].Cells[1].Value = "";
dataGridViewMetadata_CellEndEdit(sender, ee);
}
}
private void dataGridViewTracks_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
CUEMetadataEntry ri = ChosenRelease;
var label = dataGridViewTracks.Rows[e.RowIndex].Cells[e.ColumnIndex].Value as string;
if (ri != null && label != null)
ri.metadata.Tracks[e.RowIndex].Title = label;
}
/*
private void listTracks_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (e.KeyCode == Keys.Enter)
@@ -262,91 +347,6 @@ namespace JDP
}
}
}
private void listMetadata_DoubleClick(object sender, EventArgs e)
{
listMetadata.FocusedItem.BeginEdit();
}
private void listMetadata_KeyDown(object sender, KeyEventArgs e)
{
CUEMetadataEntry r = ChosenRelease;
if (e.KeyCode == Keys.F2)
listMetadata.FocusedItem.BeginEdit();
if (e.KeyCode == Keys.Delete && r != null)
{
foreach (int i in listMetadata.SelectedIndices)
{
switch (i)
{
case 0:
foreach (CUETrackMetadata track in r.metadata.Tracks)
if (track.Artist == r.metadata.Artist)
track.Artist = "";
r.metadata.Artist = "";
break;
case 1: r.metadata.Title = ""; break;
case 2: r.metadata.Year = ""; break;
case 3: r.metadata.Genre = ""; break;
case 4: r.metadata.DiscNumber = ""; break;
case 5: r.metadata.TotalDiscs = ""; break;
case 6: r.metadata.DiscName = ""; break;
case 7: r.metadata.Barcode = ""; break;
case 8: r.metadata.ReleaseDate = ""; break;
case 9: r.metadata.Label = ""; break;
case 10: r.metadata.Country = ""; break;
}
listMetadata.Items[i].Text = "";
}
ListViewItem item = ChosenItem;
item.Text = r.ToString();
}
}
private void listMetadata_AfterLabelEdit(object sender, LabelEditEventArgs e)
{
ListViewItem item = ChosenItem;
CUEMetadataEntry r = ChosenRelease;
if (e.Label != null && item != null && r != null)
{
switch (e.Item)
{
case 0:
foreach (CUETrackMetadata track in r.metadata.Tracks)
if (track.Artist == r.metadata.Artist)
track.Artist = e.Label;
r.metadata.Artist = e.Label;
break;
case 1: r.metadata.Title = e.Label; break;
case 2: r.metadata.Year = e.Label; break;
case 3: r.metadata.Genre = e.Label; break;
case 4: r.metadata.DiscNumber = e.Label; break;
case 5: r.metadata.TotalDiscs = e.Label; break;
case 6: r.metadata.DiscName = e.Label; break;
case 7: r.metadata.Barcode = e.Label; break;
case 8: r.metadata.ReleaseDate = e.Label; break;
case 9: r.metadata.Label = e.Label; break;
case 10: r.metadata.Country = e.Label; break;
}
item.Text = r.ToString();
}
}
private void pictureBox1_DoubleClick(object sender, EventArgs e)
{
pictureBox1.SizeMode = pictureBox1.SizeMode == PictureBoxSizeMode.Zoom ?
PictureBoxSizeMode.CenterImage : PictureBoxSizeMode.Zoom;
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
e.Result = CUE.LookupAlbumInfo(false, false, this.ctdb, this.priorityMusicbrainz, this.priorityFreedb, this.priorityFreedbFuzzy);
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
foreach (object i in (e.Result as List<object>))
AddItem(i);
}
* */
}
}

View File

@@ -123,10 +123,13 @@
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="buttonOk.Location" type="System.Drawing.Point, System.Drawing">
<value>631, 3</value>
<value>841, 4</value>
</data>
<data name="buttonOk.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="buttonOk.Size" type="System.Drawing.Size, System.Drawing">
<value>154, 29</value>
<value>206, 35</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="buttonOk.TabIndex" type="System.Int32, mscorlib">
@@ -154,10 +157,13 @@
<value>Fill</value>
</data>
<data name="listChoices.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
<value>4, 4</value>
</data>
<data name="listChoices.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="listChoices.Size" type="System.Drawing.Size, System.Drawing">
<value>788, 144</value>
<value>1051, 177</value>
</data>
<metadata name="imageList1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
@@ -166,142 +172,159 @@
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAB4
HwAAAk1TRnQBSQFMAgEBBwEAAQwBAAEEAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEgBgABIB4AAx0BKgNDAXcDHQEqeAADJwE7AVIBUAFOAZQBdwFqAVwBzgGYAXoBWQHr
AZgBegFZAesBdwFqAVwBzgFSAVABTgGUAgAB4gH/AgAB4gH/VAADHQEpA0IBdAL/AfAB/wNCAXQDHQEp
bAADCgENAVIBUAFOAZYBrAF/AVMB+gHhAc0BuQH/AfEB4AHOAf8B+QHnAdYB/wH4AeYB1AH/AfAB3QHM
Af8B4QHNAbkB/wIAAeIB/wIAAeIB/wMKAQ1MAAMcASgDQAFxAv8B8AH/AukB2gP/AfEB/wNAAXEDHAEo
IAADNgFZA0IBdgNCAXYDMAFLBAADMAFLA0IBdgNCAXYDQgF2A0IBdgMwAUsEAAMwAUsDQgF2A0IBdgM2
AVkEAAMKAQ0BZgFfAVcBuAHZAb8BpQH/Af4B8gHkAv8B5wHPAf8B/AHbAbsB/wH5AdMBsgH/AfYB0AGs
Af8B9AHRAa4B/wH2AdgBuwH/AgAB4gH/AgAB4gH/AWYBXwFXAbgDCgENRAADHAEnA0ABbwL/AfAB/wHr
Ad0BsQH/AfcBwQEzAf8B7QHfAbMD/wHyAf8DQAFvAxwBJxwAA0EBcgL5AekB/wLzAeMB/wJWAVUBtQND
AXgDXQHDAvMB4wH/AvMB4wH/AvMB4wH/AvMB4wH/A10BwwNDAXgCVgFVAbUC8wHjAf8C+QHpAf8DQQFy
BAABUgFQAU4BlgHZAb8BpQL/AfgB6wL/AesB0QL/AeEBwwH/Af4B2wG6Af8B+wHWAbIB/wIAAeIB/wIA
AeIB/wIAAeIB/wIAAeIB/wIAAeIB/wIAAeIB/wIAAeIB/wIAAeIB/0AAA0ABbgL/AfAB/wLpAdoB/wHn
AasBHQH/AecBqwEdAf8B5wGrAR0B/wHqAdsBsAP/AfQB/wNAAW4DHAEnGAADQAFvAvQB5gH/AukB2gH/
Au8B4AH/AvQB5gH/Au8B4AH/AukB2gH/AukB2gH/AukB2gH/AukB2gH/Au8B4AH/AvQB5gH/Au8B4AH/
AukB2gH/AvQB5gH/A0ABbwMmATgBtQGHAVQB/QL+AfoC/wH5AekC/wHvAdgC/wHnAc0C/wHhAcIB/wH8
AdwBuwH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/QAADHAEn
Az8BbQL/AfEB/wHnAdcBqwH/AdcBlgEIAf8B1wGWAQgB/wHXAZYBCAH/AegB2AGuA/8B9QH/Az8BbQMc
AScUAANAAW4C9gHoAf8C6wHeAf8C6wHeAf8C6wHeAf8C6wHeAf8C6wHeAf8C6wHeAf8C6wHeAf8C6wHe
Af8C6wHeAf8C6wHeAf8C6wHeAf8C6wHeAf8C9gHoAf8DQAFuAVIBUAFOAZYB4gHOAboB/wH3Ad4BxgL/
AekB0QL/AfYB4gL/AfIB3QL/AfAB3QH/AfgB6gHZAf8B+AHmAdQB/wH7Ad8BxwH/AfUBzwGrAf8CAAHi
Af8CAAHiAf8B+AHdAcMB/wHiAc4BugH/AVIBUAFOAZZEAAMbASYDPwFsAv8B8gH/AeUB1AGpAf8BzQGJ
AQAB/wHNAYkBAAH/Ac0BiQEAAf8B6AHXAa8D/wH3Af8DPwFsAxsBJhAAAz8BbQL3AewB/wLuAeMB/wLu
AeMB/wLuAeMB/wLuAeMB/wLuAeMB/wLuAeMB/wLuAeMB/wLuAeMB/wLuAeMB/wLuAeMB/wLuAeMB/wLu
AeMB/wL3AewB/wM/AW0BeAFqAVsB0AHvAeAB0AH/AecBvgGWAf8B5wG8AZQB/wHwAcwBqQH/Af4B7AHa
Af8B3QHEAawB/wGRAXcBXAHnAZEBdwFcAecB3QHDAaoB/wH4Ad0BxAH/AgAB4gH/AgAB4gH/AfUB1gG4
Af8B8QHfAc8B/wF4AWoBWwHQSAADGwEmAz4BawL/AfQB/wHnAdYBrAH/AdEBjgEAAf8B0QGOAQAB/wHR
AY4BAAH/AewB2wGzA/8B+AH/Az4BawMbASYMAAM+AWsC+QHvAf8C8QHoAf8C8QHoAf8C8QHoAf8C8QHo
Af8C8QHoAf8DAAH/AUsBhQGTAf8BuALLAf8C8QHoAf8C8QHoAf8C8QHoAf8C8QHoAf8C+QHvAf8DPgFr
AZgBegFZAewB9QHkAdUB/wHpAb4BlwH/AegBvAGWAf8B5wG8AZQB/wHzAd4BygH/AZIBdwFZAeYDFAEb
AxQBGwGSAXcBWQHmAfYB4wHTAf8CAAHiAf8CAAHiAf8B7QHJAaQB/wH2AeQB0gH/AZgBegFZAexMAAMb
ASYDPgFrAv8B9QH/AesB3AGzAf8B3wGhARMB/wHfAaEBEwH/Ad8BoQETAf8B8QHiAbsD/wH6Af8DPgFr
AxsBJggAAz4BagL6AfMB/wL1Ae4B/wL1Ae4B/wL1Ae4B/wL1Ae4B/wL1Ae4B/wF2AbEBwAH/AdkB9AL/
ATkBnAGrAf8BtQHTAdQB/wL1Ae4B/wL1Ae4B/wL1Ae4B/wL6AfMB/wM+AWoBmAF6AVkB7AH1AeQB1QH/
AekBvwGZAf8B6QHAAZkB/wHpAcEBmgH/AfMB3QHJAf8BkgF3AVkB5gMUARsDFAEbAZIBdwFZAeYB+AHo
AdkB/wHyAdIBsgH/AfABzAGrAf8B8AHMAasB/wH2AeQB0wH/AZgBegFZAexQAAMbASYDPgFqAv8B9wH/
AfIB5AG7Af8B8AG4ASoB/wHwAbgBKgH/AfABuAEqAf8C+AH0A/8B+wH/Az4BagMaASUEAAM9AWkC/AH3
Af8C+AHzAf8C+AHzAf8C+AHzAf8C+AHzAf8C+AHzAf8B1AHmAecB/wFDAbQBwwH/AXMB5gH3Af8BOgGd
Aa0B/wG2AdUB1wH/AvgB8wH/AvgB8wH/AvwB9wH/Az0BaQF4AWoBWwHQAfAB4QHRAf8B6gHEAaEB/wHp
AcEBmwH/AekBwAGXAf8B8QHOAbIB/wHcAcMBqgH/AZEBdwFcAecBkQF3AVwB5wHdAcQBrAL/AfwB8wL/
AfQB5QL/Ae4B2gH/AfwB5QHRAf8B8QHhAdEB/wF4AWoBWwHQVAADGgElAz0BaQL/AfgB/wH3AeoBwwH/
Af0ByQE7Af8B+QHsAccB/wL7AfcB/wL8AfkD/wH8Af8DPQFpAxoBJQM9AWgC/QH6Af8C+wH3Af8C+wH3
Af8C+wH3Af8C+wH3Af8C+wH3Af8C+wH3Af8BvgHlAegB/wFEAbUBxQH/AXMB5gH3Af8BOwGeAa4B/wG5
AdgB2wH/AvsB9wH/Av0B+gH/Az0BaAFSAVABTgGWAeIBzgG6Af8B8QHSAbYB/wHrAcEBmwH/AesBvwGZ
Av8B5AHTAv8B6AHbAf8B8wHaAccB/wH4AfEB5AL/AfgB7QL/AfcB6QL/Af4B8QL/AfwB7wL/AfwB8gH/
AeIBzgG6Af8BUgFQAU4BllgAAxoBJQM9AWgC/wH6Af8C+AH0Af8C+wH3Af8C6AHeAf8C2AHJAf8C6AHe
A/8B/gH/Az0BaAM9AWgC/gH9Af8C/QH7Af8C/QH7Af8C/QH7Af8C/QH7Af8C/QH7Af8C/QH7Af8C/QH7
Af8BwAHmAesB/wFFAbUBxgH/AXMB5gH3Af8BOwGeAa8B/wG+AdgB3AH/Av4B/QH/Az0BaAMmATgBtQGH
AVQB/QH6Ae0B4QH/AewBxwGjAv8B7AHaBf8B9wHNAbYB/wHsAb0BlwL/AfQB3AP/AfcC/wH3AegD/wHz
A/8B+QH/Av4B+QH/AbUBhwFUAf0DJgE4XAADGgElAz0BaAL/AfsB/wL8AfkB/wLLAbsB/wQAAssBvAP/
Af4B/wM9AWgDPQFnJP8BwQHoAe4B/wFFAbYBxwH/AXMB5gH3Af8DkwH/A9UB/wM9AWcEAAFSAVABTgGW
AdkBvwGlAv8B+gHwBv8B/QHzAf8B8AHBAaMB/wHuAcYBoAH/Af0B8AHRA/8B/gL/Af0B8AL/Af0B8QX/
AdkBvwGlAf8BUgFQAU4BlmQAAxoBJQM9AWcC/wH8Af8C1AHKAf8CrwGfAf8C1AHLA/8B/gH/Az0BZwMx
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACQ
IwAAAk1TRnQBSQFMAgEBCAEAASQBAAEkAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABMAMAAQEBAAEgBgABMP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8ALgADHQEqA0MBdwMd
ASp4AAMnATsDTgGUAWIBXgFcAc4BgAFuAVkB6wGAAW4BWQHrAWIBXgFcAc4DTgGUAgAB4gH/AgAB4gH/
JAABaAFwAXgB/wFoAXABeAH/AWgBcAF4Af8BaAFwAXgB/yAAAx0BKQNCAXQC/wHwAf8DQgF0Ax0BKWwA
AwoBDQNOAZYBogF7AU8B+gHhAc0BuQH/AfEB4AHOAf8B+QHnAdYB/wH4AeYB1AH/AfAB3QHMAf8B4QHN
AbkB/wIAAeIB/wIAAeIB/wMKAQ0YAAFoAXABeAH/Az8B/wM/Af8BJgI2Af8DDQH/Aw0B/wMAAf8DDQH/
FAADHAEoA0ABcQL/AfAB/wLpAdoD/wHxAf8DQAFxAxwBKCAAAzYBWQNCAXYDQgF2AzABSwQAAzABSwNC
AXYDQgF2A0IBdgNCAXYDMAFLBAADMAFLA0IBdgNCAXYDNgFZBAADCgENA1cBuAHZAb8BpQH/Af4B8gHk
Av8B5wHPAf8B/AHbAbsB/wH5AdMBsgH/AfYB0AGsAf8B9AHRAa4B/wH2AdgBuwH/AgAB4gH/AgAB4gH/
A1cBuAMKAQ0QAAM/Af8BvQLGAf8BaAFwAXgB/wM/Af8BHgImAf8DDQH/Aw0B/wMAAf8DAAH/Aw0B/wwA
AxwBJwNAAW8C/wHwAf8B6wHdAbEB/wH3AcEBLwH/Ae0B3wGzA/8B8gH/A0ABbwMcASccAANBAXIC+QHp
Af8C8wHjAf8DVQG1A0MBeANbAcMC8wHjAf8C8wHjAf8C8wHjAf8C8wHjAf8DWwHDA0MBeANVAbUC8wHj
Af8C+QHpAf8DQQFyBAADTgGWAdkBvwGlAv8B+AHrAv8B6wHRAv8B4QHDAf8B/gHbAboB/wH7AdYBsgH/
AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/CAABHgImAf8DPwH/
AWgBcAF4Af8BvQLGAf8BaAFwAXgB/wEeAiYB/wMNAf8DDQH/AwAB/wMAAf8DAAH/Aw0B/wgAA0ABbgL/
AfAB/wLpAdoB/wHnAasBGQH/AecBqwEZAf8B5wGrARkB/wHqAdsBsAP/AfQB/wNAAW4DHAEnGAADQAFv
AvQB5gH/AukB2gH/Au8B4AH/AvQB5gH/Au8B4AH/AukB2gH/AukB2gH/AukB2gH/AukB2gH/Au8B4AH/
AvQB5gH/Au8B4AH/AukB2gH/AvQB5gH/A0ABbwMmATgBsQGHAVAB/QL+AfoC/wH5AekC/wHvAdgC/wHn
Ac0C/wHhAcIB/wH8AdwBuwH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/
AgAB4gH/BAABHgImAf8BJgI2Af8DPwH/Az8B/wFoAXABeAH/AWgBcAF4Af8BJgI2Af8BHgImAf8DDQH/
AwAB/wMAAf8DAAH/AwAB/wEeAiYB/wQAAxwBJwM/AW0C/wHxAf8B5wHXAasB/wHXAZYBBAH/AdcBlgEE
Af8B1wGWAQQB/wHoAdgBrgP/AfUB/wM/AW0DHAEnFAADQAFuAvYB6AH/AusB3gH/AusB3gH/AusB3gH/
AusB3gH/AusB3gH/AusB3gH/AusB3gH/AusB3gH/AusB3gH/AusB3gH/AusB3gH/AusB3gH/AvYB6AH/
A0ABbgNOAZYB4gHOAboB/wH3Ad4BxgL/AekB0QL/AfYB4gL/AfIB3QL/AfAB3QH/AfgB6gHZAf8B+AHm
AdQB/wH7Ad8BxwH/AfUBzwGrAf8CAAHiAf8CAAHiAf8B+AHdAcMB/wHiAc4BugH/A04BlgQAAw0B/wEe
AiYB/wEeAiYB/wEmAjYB/wEmAjYB/wMNAf8BFQFgAWgB/wEVAWABaAH/AwUB/wMFAf8DAAH/AwAB/wMA
Af8DAAH/CAADGwEmAz8BbAL/AfIB/wHlAdQBqQH/Ac0BiQEAAf8BzQGJAQAB/wHNAYkBAAH/AegB1wGv
A/8B9wH/Az8BbAMbASYQAAM/AW0C9wHsAf8C7gHjAf8C7gHjAf8C7gHjAf8C7gHjAf8C7gHjAf8C7gHj
Af8C7gHjAf8C7gHjAf8C7gHjAf8C7gHjAf8C7gHjAf8C7gHjAf8C9wHsAf8DPwFtAWIBXgFbAdAB7wHg
AdAB/wHnAb4BlgH/AecBvAGUAf8B8AHMAakB/wH+AewB2gH/Ad0BxAGsAf8BdwFrAVwB5wF3AWsBXAHn
Ad0BwwGqAf8B+AHdAcQB/wIAAeIB/wIAAeIB/wH1AdYBuAH/AfEB3wHPAf8BYgFeAVsB0AFoAXABeAH/
AwAB/wMNAf8DDQH/Aw0B/wMNAf8BAAHGAdYB/wEAAcYB1gH/AQABxgHWAf8BAAHGAdYB/wMFAf8DAAH/
AwAB/wMAAf8DAAH/AWgBcAF4Af8IAAMbASYDPgFrAv8B9AH/AecB1gGsAf8B0QGOAQAB/wHRAY4BAAH/
AdEBjgEAAf8B7AHbAbMD/wH4Af8DPgFrAxsBJgwAAz4BawL5Ae8B/wLxAegB/wLxAegB/wLxAegB/wLx
AegB/wLxAegB/wMAAf8BRwGFAZMB/wG4AssB/wLxAegB/wLxAegB/wLxAegB/wLxAegB/wL5Ae8B/wM+
AWsBgAFuAVkB7AH1AeQB1QH/AekBvgGXAf8B6AG8AZYB/wHnAbwBlAH/AfMB3gHKAf8BeAFqAVkB5gMU
ARsDFAEbAXgBagFZAeYB9gHjAdMB/wIAAeIB/wIAAeIB/wHtAckBpAH/AfYB5AHSAf8BgAFuAVkB7AFo
AXABeAH/AwAB/wMAAf8DAAH/AQACBQH/ARUBYAFoAf8BAAHGAdYB/wEAAcYB1gH/AQABxgHWAf8BAAHG
AdYB/wEVAWABaAH/AwAB/wMAAf8DAAH/AwAB/wFoAXABeAH/DAADGwEmAz4BawL/AfUB/wHrAdwBswH/
Ad8BoQEPAf8B3wGhAQ8B/wHfAaEBDwH/AfEB4gG7A/8B+gH/Az4BawMbASYIAAM+AWoC+gHzAf8C9QHu
Af8C9QHuAf8C9QHuAf8C9QHuAf8C9QHuAf8BcgGxAcAB/wHZAfQC/wE1AZwBqwH/AbUB0wHUAf8C9QHu
Af8C9QHuAf8C9QHuAf8C+gHzAf8DPgFqAYABbgFZAewB9QHkAdUB/wHpAb8BmQH/AekBwAGZAf8B6QHB
AZoB/wHzAd0ByQH/AXgBagFZAeYDFAEbAxQBGwF4AWoBWQHmAfgB6AHZAf8B8gHSAbIB/wHwAcwBqwH/
AfABzAGrAf8B9gHkAdMB/wGAAW4BWQHsAWgBcAF4Af8DAAH/AwAB/wMAAf8DAAH/ARUBYAFoAf8BAAHG
AdYB/wEAAcYB1gH/AQABxgHWAf8BAAHGAdYB/wEVAWABaAH/Aw0B/wMNAf8DDQH/Aw0B/wFoAXABeAH/
EAADGwEmAz4BagL/AfcB/wHyAeQBuwH/AfABuAEmAf8B8AG4ASYB/wHwAbgBJgH/AvgB9AP/AfsB/wM+
AWoDGgElBAADPQFpAvwB9wH/AvgB8wH/AvgB8wH/AvgB8wH/AvgB8wH/AvgB8wH/AdQB5gHnAf8BPwG0
AcMB/wFvAeYB9wH/ATYBnQGtAf8BtgHVAdcB/wL4AfMB/wL4AfMB/wL8AfcB/wM9AWkBYgFeAVsB0AHw
AeEB0QH/AeoBxAGhAf8B6QHBAZsB/wHpAcABlwH/AfEBzgGyAf8B3AHDAaoB/wF3AWsBXAHnAXcBawFc
AecB3QHEAawC/wH8AfMC/wH0AeUC/wHuAdoB/wH8AeUB0QH/AfEB4QHRAf8BYgFeAVsB0AFoAXABeAH/
AwAB/wMAAf8DAAH/AwAB/wMNAf8BAAHGAdYB/wEAAcYB1gH/AQABxgHWAf8BAAHGAdYB/wMNAf8BHgIm
Af8BHgImAf8DDQH/Aw0B/wFoAXABeAH/FAADGgElAz0BaQL/AfgB/wH3AeoBwwH/Af0ByQE3Af8B+QHs
AccB/wL7AfcB/wL8AfkD/wH8Af8DPQFpAxoBJQM9AWgC/QH6Af8C+wH3Af8C+wH3Af8C+wH3Af8C+wH3
Af8C+wH3Af8C+wH3Af8BvgHlAegB/wFAAbUBxQH/AW8B5gH3Af8BNwGeAa4B/wG5AdgB2wH/AvsB9wH/
Av0B+gH/Az0BaANOAZYB4gHOAboB/wHxAdIBtgH/AesBwQGbAf8B6wG/AZkC/wHkAdMC/wHoAdsB/wHz
AdoBxwH/AfgB8QHkAv8B+AHtAv8B9wHpAv8B/gHxAv8B/AHvAv8B/AHyAf8B4gHOAboB/wNOAZYEAAMN
Af8DAAH/AwAB/wMAAf8DAAH/Aw0B/wEVAWABaAH/ARUBYAFoAf8DDQH/Az8B/wM/Af8BHgImAf8BHgIm
Af8BHgImAf8cAAMaASUDPQFoAv8B+gH/AvgB9AH/AvsB9wH/AugB3gH/AtgByQH/AugB3gP/Af4B/wM9
AWgDPQFoAv4B/QH/Av0B+wH/Av0B+wH/Av0B+wH/Av0B+wH/Av0B+wH/Av0B+wH/Av0B+wH/AcAB5gHr
Af8BQQG1AcYB/wFvAeYB9wH/ATcBngGvAf8BvgHYAdwB/wL+Af0B/wM9AWgDJgE4AbEBhwFQAf0B+gHt
AeEB/wHsAccBowL/AewB2gX/AfcBzQG2Af8B7AG9AZcC/wH0AdwD/wH3Av8B9wHoA/8B8wP/AfkB/wL+
AfkB/wGxAYcBUAH9AyYBOAQAAz8B/wMAAf8DAAH/AwAB/wMNAf8DDQH/AR4CJgH/Az8B/wFoAXABeAH/
AWgCrQH/Az8B/wM/Af8BHgImAf8DPwH/IAADGgElAz0BaAL/AfsB/wL8AfkB/wLLAbsB/wQAAssBvAP/
Af4B/wM9AWgDPQFnJP8BwQHoAe4B/wFBAbYBxwH/AW8B5gH3Af8DkwH/A9UB/wM9AWcEAANOAZYB2QG/
AaUC/wH6AfAG/wH9AfMB/wHwAcEBowH/Ae4BxgGgAf8B/QHwAdED/wH+Av8B/QHwAv8B/QHxBf8B2QG/
AaUB/wNOAZYMAAEeAiYB/wMAAf8DAAH/Aw0B/wMNAf8BHgImAf8BJgI2Af8BaAFwAXgB/wG9AsYB/wFo
AXABeAH/ASYCNgH/Az8B/ygAAxoBJQM9AWcC/wH8Af8C1AHKAf8CrwGfAf8C1AHLA/8B/gH/Az0BZwMx
AU0DPAFmAzwBZgM8AWYDPAFmAzwBZgM8AWYDPAFmAzwBZgM8AWYDPAFmA0oBjANSAacD9wH/AlYBWAG7
A0QBegQAAwoBDQFmAV8BVwG4AdkBvwGlAf8B/gH9AfwC/wHxAeQB/wHyAcoBrgH/AfIB0gGtAf8B+QHt
AcgD/wH3A/8B/QH/Af4B/QH8Af8B2QG/AaUB/wFmAV8BVwG4AwoBDWgAAxoBJAM9AWcC/wH+A/8B/gP/
Af4F/wM9AWcwAAMaASQCRAFFAXwCgAL/AlUBWwHBCAADCgENAVIBUAFOAZYBrAF/AVMB+gHhAc0BuQH/
AfEB4gHUAf8B+QHsAd8B/wH7AfMB5QH/AfQB7QHkAf8B4gHOAbsB/wGsAX8BUwH6AVIBUAFOAZYDCgEN
cAADGgEkAzwBZgM8AWYDPAFmAzwBZgMxAU00AAMmATkCUwFWAa8DKgFAEAADJwE7AVIBUAFOAZQBdwFq
AVwBzgGYAXoBWQHrAZsBewFYAe8BgAFvAVsB2QFTAVABTwGXAycBO1wAAwIBAwMUARwDMAFMA0QBeQNQ
AZoDUAGkA1ABmgNEAXkDMAFMAxQBHAMDAQQIAAOWAf8BGQIAAf8BGQIAAf8BGQIAAf8BGQIAAf8BGQIA
Af8BGQIAAf8BGQIAAf8BGQIAAf8BGQIAAf8BGQIAAf8BGQIAAf8BGQIAAf8BGQIAAf8BGQIAAf8BGQIA
Af8EAAFMAcwC/wEZApkB/wEZApkB/wFMAcwC/wFMAcwC/wFMAcwC/wFMAcwC/wFMAcwC/wFMAcwC/wFM
AcwC/wFMAcwC/wFMAcwC/wFMAcwC/wFMAcwC/xAAAwIBAwMUARwDMAFMA0QBeQNQAZoDUAGkA1ABmgNE
AXkDMAFMAxQBHAMDAQQQAAMEAQYDJAE2A1MBsAFjAl4B5QFqAl8B+wGzAqkB/wFqAl8B+wNgAesDWgHT
A1MBrANHAYIDKAE8AwcBCQQAAcwCmQH/AYACAAH/AYACAAH/AYACAAH/AYACAAH/A+oB/wPqAf8D6gH/
AYACAAH/A+oB/wPqAf8D6gH/AYACAAH/AYACAAH/AUwCAAH/ARkCAAH/ARkCmQH/AwAB/wMPAf8DMwH/
AwAB/wMCAf8BTAHMAv8BTAHMAv8BTAHMAv8BTAHMAv8BTAHMAv8BTAHMAv8BTAHMAv8BTAHMAv8BTAHM
Av8BTAHMAv8IAAMEAQYDJAE2A1MBsAFjAl4B5QFqAl8B+wGzAqkB/wFqAl8B+wNgAesDWgHTA1MBrANH
AYIDKAE8AwcBCQgAAwIBAwMxAU8DXAHqAc8CtAL/At0C/wLiAv8C6AL/Au4C/wLzAf8DzwH/A18B8wNY
AcYDTAGSAygBPAMDAQQBzAKZAf8BgAIAAf8BgAIAAf8BgAIAAf8D8QH/AYACAAH/AYACAAH/A/EB/wGA
AgAB/wPxAf8BgAIAAf8BgAIAAf8D8QH/AYACAAH/AYACAAH/ARkCAAH/AwAB/wPMDf8DMwH/AwIB/wFM
AcwC/wFMAcwC/wFMAcwC/wFMAcwC/wFMAcwC/wFMAcwC/wFMAcwC/wFMAcwC/wFMAcwC/wQAAwIBAwMx
AU8DXAHqAc8CtAL/At0C/wLiAv8C6AL/Au4C/wLzAf8DzwH/A18B8wNYAcYDTAGSAygBPAMDAQQEAAMm
ATgDbQH3AfUCxwL/AtIC/wLYAv8C3QL/AuIC/wLoAv8C9AX/A/UB/wN/AfsDWAHGA0cBggMUARwBzAKZ
Af8BmQEAARkB/wGAAgAB/wGAAgAF/wGAAgAB/wGAAgAF/wGAAgAF/wGAAgAB/wGAAgAF/wGAAgAB/wGA
AgAB/wEZAgAB/wMAAf8DzBH/AwAB/wFMAcwC/wFMAcwC/wFMAcwC/wFMAcwC/wFMAcwC/wFMAcwC/wFM
AcwC/wFMAcwC/wFMAcwC/wQAAyYBOANtAfcB9QLHAv8C0gL/AtgC/wLdAv8C4gL/AugC/wL0Bf8D9QH/
A38B+wNYAcYDRwGCAxQBHAMHAQkDXgHdAfUCzQL/As8C/wLNAv8C0gL/AtgC/wLdAv8C4gL/AvoJ/wP1
Af8DXwHzA1MBrAMwAUwBzAKZAf8BmQEAARkB/wGAAgAB/wGAAgAB/wGAAgAN/wGAAgAN/wGAAgAB/wGA
AgAB/wGAAgAB/wEZAgAB/wEZApkB/wMCAf8DXQH/A8AB/wPAAf8DzAH/AwAB/wMPAf8DAAH/AwAB/wMA
Af8DAAH/Aw8B/wFMAcwC/wFMAcwC/wFMAcwC/wMHAQkDXgHdAfUCzQL/As8C/wLNAv8C0gL/AtgC/wLd
Av8C4gL/AvoJ/wP1Af8DXwHzA1MBrAMwAUwDPgFqAcYCsQL/AtkC/wLUAv8CzwL/As0C/wHUAdsC/wHX
AeIC/wHkAeoR/wHSAswB/wNaAdMDQwF3AcwCmQH/AZkBAAEZAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIA
Af8BgAIABf8BgAIABf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BGQIAAf8BTAHMAv8BGQKZ
Af8DAgH/AwAB/wMABf8DAAH/AwIB/wGkAqAJ/wOZAf8DDwH/Aw8B/wFMAcwC/wFMAcwC/wM+AWoBxgKx
Av8C2QL/AtQC/wLPAv8CzQL/AdQB2wL/AdcB4gL/AeQB6hH/AdICzAH/A1oB0wNDAXcDVgG2Af8C4wH/
AQABFAEVAf8BAAEUARUB/wEAARQBFQL/Ad4B5wH/AQABFAEVAv8B0QHzAf8BAAEUARUC/wH4Av8BVAJa
Af8BAAEUARUB/wFUAloB/wHMApkB/wFcAlUB6gNOAZQBzAKZAf8BmQEAARkB/wGAAgAB/wGAAgAB/wGA
AgAB/wGAAgAB/wGAAgAF/wGAAgAF/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wEZAgAB/wFM
AcwC/wFMAcwC/wFMAcwC/wFMAcwC/wMABf8DAAH/Aw8R/wPMAf8DAAH/AUwBzAL/AUwBzAL/A1YBtgH/
AuMB/wFUAloB/wEAARQBFQH/AVQCWgL/Ad4B5wH/AVQCWgH/AQABFAEVAf8BVAJaAv8B+AL/AQABFAEV
Af8BAAEUARUB/wEAARQBFQH/AcwCmQH/AVwCVQHqA04BlANhAeIB/wLnAf8BAAEUARUC/wLeAv8C4AL/
Ae8B/AH/AQABFAEVAv8B4gH8Af8BAAEUARUB/wH8AfAB+QH/AQABFAEVAf8BzAKZAf8BAAEUARUB/wHM
ApkB/wFtAmwB9wNRAaEBzAKZAf8BmQEAARkB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGA
AgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wEZAgAB/wGZAkwB/wGZ
AkwB/wGZAkwB/wGZAkwB/wMABf8DAAH/AwAB/wMzAf8DzA3/AwAB/wGZAkwB/wGZAkwB/wNhAeIB/wLn
Af8BAAEUARUC/wLeAf8BAAEUARUC/wHvAfwB/wEAARQBFQL/AeIB/AH/AQABFAEVAf8B/AHwAfkB/wEA
ARQBFQH/AcwCmQH/AcwCmQH/AcwCmQH/AW0CbAH3A1EBoQGeAowB/wHpAr4B/wEAARQBFQH/AQABFAEV
Af8B+QLWAv8B6QHzAf8BAAEUARUB/wEAARQBFQH/AQABFAEVAf8B+QHoAewB/wEAARQBFQH/AeYCugH/
AeYCvQH/AeYCwAH/AaYClAH/A04BlDT/A/EB/wPqAf8DgAH/AZkCTAH/AZkCTAH/AZkCTAH/AZkCTAH/
AwAF/wMAAf8DOwH/AwIB/wMAAf8DAAH/AwAF/wMAAf8BmQJMAf8BmQJMAf8BngKMAf8B6QK+Af8BAAEU
ARUB/wHzAsUB/wH5AtYC/wHpAfMB/wEAARQBFQL/AekB8wH/AQABFAEVAf8B+QHoAewB/wEAARQBFQH/
AQABFAEVAf8B5gK9Af8B5gLAAf8BpgKUAf8DTgGUA10B0gHbAqgB/wEAARQBFQH/AeoCtwH/AfMCzQL/
Ae4B/AH/AQABFAEVAv8B0gH1Af8BAAEUARUC/wH0AfwB/wEAARQBFQL/AtgB/wEAARQBFQL/AuIB/wNi
AfYDQwF3BP8BmQEAARkJ/wGAAgAN/wGAAgAB/wGAAgAN/wGAAgAB/wGAAgAB/wOAAf8BmQJMAf8BmQJM
Af8BmQJMAf8BmQJMAf8DAAX/AwIB/wMAAf8DDwH/AzsB/wM7Af8DAAX/AwAB/wGZAkwB/wGZAkwB/wNd
AdIB2wKoAf8BAAEUARUB/wHqArcB/wEAARQBFQL/Ae4B/AH/AQABFAEVAv8B0gH1Af8BAAEUARUC/wH0
AfwB/wEAARQBFQL/AtgC/wLdAv8C4gH/A2IB9gNDAXcDVgGxAdUCogH/AQABFAEVAf8BAAEUARUB/wEA
ARQBFQL/AfYC/wFUAloB/wEAARQBFQH/AVQCWgL/AeAB5wH/AVQCWgH/AQABFAEVAf8BVAJaAv8C3QH/
A1oB5AMwAUwE/wGZAQABGQn/AYACAAn/AYACABH/AYACAAH/A/EB/wPqAf8DgAH/AZkCTAH/AZkCTAH/
AZkCTAH/AZkCTAH/AwAJ/wOZAf8DDwH/AwAB/wMCAf8DAAX/AwAB/wGZAkwB/wGZAkwB/wNWAbEB1QKi
Af8BVAJaAf8BAAEUARUB/wFUAloC/wH2Av8BAAEUARUC/wHSAfUB/wEAARQBFQL/AeAB5wH/AQABFAEV
Af8BAAEUARUB/wEAARQBFQL/At0B/wNaAeQDMAFMAzIBUAHDAr8S/wHsAfEC/wHbAecC/wHZAd4C/wLU
Av8CzwL/As0C/wLSAf8BxgKtAf8DUwGsAxQBGwT/AZkBAAEZCf8BgAIACf8BgAIAAf8BgAIAAf8BgAIA
Af8BgAIABf8BgAIAAf8BgAIAAf8BgAIAAf8BGQIAAf8BmQJMAf8BmQJMAf8BmQJMAf8BmQJMAf8DAAH/
A8AN/wPMAf8DRQH/AwAF/wMAAf8BmQJMAf8BmQJMAf8DMgFQAcMCvxL/AewB8QL/AdsB5wL/AdkB3gL/
AtQC/wLPAv8CzQL/AtIB/wHGAq0B/wNTAawDFAEbBAADWgHAA/UK/wL+Av8C5wL/AuMC/wLeAv8C2QL/
AtQC/wLPAf8B9QLHAf8DXwHjAyMBNAMCAQME/wGZAQABGQH/AYACAAX/AYACAAn/AYACAAn/AYACAAX/
AYACAAH/A/EB/wPqAf8BGQIAAf8BmQJMAf8BmQJMAf8BmQJMAf8BmQJMAf8DDwH/AzMB/wPAGf8DAAH/
AZkCTAH/AZkCTAH/BAADWgHAA/UK/wL+Av8C5wL/AuMC/wLeAv8C2QL/AtQC/wLPAf8B9QLHAf8DXwHj
AyMBNAMCAQMEAAMXASADYgHvA/UG/wL4Av8C7AL/AucC/wLjAv8C3gL/AtkB/wH1As0B/wNtAfcDMAFN
AwQBBgQABP8BmQIZCf8BgAIAAf8BgAIACf8BgAIAAf8BgAIADf8BgAIAAf8BgAIAAf8DhgH/AZkCTAH/
AZkCTAH/AZkCTAH/AZkCTAH/AZkCTAH/Aw8B/wMAAf8DDwH/A5kR/wMAAf8BmQJMAf8BmQJMAf8EAAMX
ASADYgHvA/UG/wL4Av8C7AL/AucC/wLjAv8C3gL/AtkB/wH1As0B/wNtAfcDMAFNAwQBBgwAAxcBIANa
AcADxgL/AvcC/wLyAv8C7AL/AucC/wLjAf8BxgKxAf8DXgHQAyQBNgMCAQMIAAT/AZkCGS3/A/EB/wPq
Af8DhgH/AZkCTAH/AZkCTAH/AZkCTAH/AZkCTAH/AZkCTAH/AZkCTAH/AZkCTAH/Aw8B/wMAAf8DAgH/
A10B/wPMBf8DAAH/AZkCTAH/AZkCTAH/CAADFwEgA1oBwAPGAv8C9wL/AvIC/wLsAv8C5wL/AuMB/wHG
ArEB/wNeAdADJAE2AwIBAxgAAzIBUANRAaIDXQHSAYwCiQH/A2AB1ANUAaYDNwFaAwUBBxAACP8BzAKZ
Lf8D8QH/A8AB/wQAAZkCTAH/AZkCTAH/AZkCTAH/AZkCTAH/AZkCTAH/AZkCTAH/AZkCTAH/AZkCTAH/
AZkCTAH/AwIB/wMAAf8DMwH/Aw8B/wGZAkwB/xQAAzIBUANRAaIDXQHSAYwCiQH/A2AB1ANUAaYDNwFa
AwUBBxAAAUIBTQE+BwABPgMAASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/8BAAHjA/8B8AEHAgABwQP/
AcABAwIAAYAB/wEIARABgAEBAwABfwIAAYAEAAE/BwABHwYAAYABDwYAAcABBwYAAeABAwYAAfABAQYA
AfgHAAH8BwAB/gEIAgABgAEBAgAB/wMAAYABAQIAAf8BgAH/AfABwAEDAgAB/wHAAf8B+AHwAQ8CAAHg
AQMCAAGAAQEB4AEDAcABAQQAAcABAQGABQABgAEAAYAFAAGAQQABgAUAAYABAAGAAQEEAAGAAQEBwAED
BAABwAEDAfABDwIAAYABAQHwAQ8L
A0QBegQAAwoBDQNXAbgB2QG/AaUB/wH+Af0B/AL/AfEB5AH/AfIBygGuAf8B8gHSAa0B/wH5Ae0ByAP/
AfcD/wH9Af8B/gH9AfwB/wHZAb8BpQH/A1cBuAMKAQ0QAAM/Af8DAAH/Aw0B/wMNAf8BHgImAf8BJgI2
Af8DPwH/AWgBcAF4Af8BaAFwAXgB/wFoAXABeAH/MAADGgEkAz0BZwL/Af4D/wH+A/8B/gX/Az0BZzAA
AxoBJAJEAUUBfAKAAv8CVgFYAcEIAAMKAQ0DTgGWAaIBewFPAfoB4QHNAbkB/wHxAeIB1AH/AfkB7AHf
Af8B+wHzAeUB/wH0Ae0B5AH/AeIBzgG7Af8BogF7AU8B+gNOAZYDCgENGAABJgI2Af8BJgI2Af8DDQH/
Aw0B/wMNAf8BHgImAf8DPwH/Az8B/zgAAxoBJAM8AWYDPAFmAzwBZgM8AWYDMQFNNAADJgE5A1QBrwMq
AUAQAAMnATsDTgGUAWIBXgFcAc4BgAFuAVkB6wGDAW4BWAHvAWUBYAFbAdkDTwGXAycBOygAAWgBcAF4
Af8BaAFwAXgB/wFoAXABeAH/AWgBcAF4Af8kAAMCAQMDFAEcAzABTANEAXkDUAGaA1ABpANQAZoDRAF5
AzABTAMUARwDAwEECAADlgH/ARUCAAH/ARUCAAH/ARUCAAH/ARUCAAH/ARUCAAH/ARUCAAH/ARUCAAH/
ARUCAAH/ARUCAAH/ARUCAAH/ARUCAAH/ARUCAAH/ARUCAAH/ARUCAAH/ARUCAAH/BAABSAHMAv8BFQKZ
Af8BFQKZAf8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8BSAHM
Av8BSAHMAv8BSAHMAv8QAAMCAQMDFAEcAzABTANEAXkDUAGaA1ABpANQAZoDRAF5AzABTAMUARwDAwEE
EAADBAEGAyQBNgNTAbABYwJeAeUBYAJfAfsBswKpAf8BYAJfAfsDYAHrA1oB0wNTAawDRwGCAygBPAMH
AQkEAAHMApkB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wPqAf8D6gH/A+oB/wGAAgAB/wPqAf8D6gH/
A+oB/wGAAgAB/wGAAgAB/wFIAgAB/wEVAgAB/wEVApkB/wMAAf8DCwH/Ay8B/wMAAf8DAAH/AUgBzAL/
AUgBzAL/AUgBzAL/AUgBzAL/AUgBzAL/AUgBzAL/AUgBzAL/AUgBzAL/AUgBzAL/AUgBzAL/CAADBAEG
AyQBNgNTAbABYwJeAeUBYAJfAfsBswKpAf8BYAJfAfsDYAHrA1oB0wNTAawDRwGCAygBPAMHAQkIAAMC
AQMDMQFPA1wB6gHPArQC/wLdAv8C4gL/AugC/wLuAv8C8wH/A88B/wNfAfMDWAHGA0wBkgMoATwDAwEE
AcwCmQH/AYACAAH/AYACAAH/AYACAAH/A/EB/wGAAgAB/wGAAgAB/wPxAf8BgAIAAf8D8QH/AYACAAH/
AYACAAH/A/EB/wGAAgAB/wGAAgAB/wEVAgAB/wMAAf8DzA3/Ay8B/wMAAf8BSAHMAv8BSAHMAv8BSAHM
Av8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8EAAMCAQMDMQFPA1wB6gHPArQC/wLd
Av8C4gL/AugC/wLuAv8C8wH/A88B/wNfAfMDWAHGA0wBkgMoATwDAwEEBAADJgE4A20B9wH1AscC/wLS
Av8C2AL/At0C/wLiAv8C6AL/AvQF/wP1Af8DcwH7A1gBxgNHAYIDFAEcAcwCmQH/AZkBAAEVAf8BgAIA
Af8BgAIABf8BgAIAAf8BgAIABf8BgAIABf8BgAIAAf8BgAIABf8BgAIAAf8BgAIAAf8BFQIAAf8DAAH/
A8wR/wMAAf8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8BSAHMAv8BSAHM
Av8EAAMmATgDbQH3AfUCxwL/AtIC/wLYAv8C3QL/AuIC/wLoAv8C9AX/A/UB/wNzAfsDWAHGA0cBggMU
ARwDBwEJA14B3QH1As0C/wLPAv8CzQL/AtIC/wLYAv8C3QL/AuIC/wL6Cf8D9QH/A18B8wNTAawDMAFM
AcwCmQH/AZkBAAEVAf8BgAIAAf8BgAIAAf8BgAIADf8BgAIADf8BgAIAAf8BgAIAAf8BgAIAAf8BFQIA
Af8BFQKZAf8DAAH/A1kB/wPAAf8DwAH/A8wB/wMAAf8DCwH/AwAB/wMAAf8DAAH/AwAB/wMLAf8BSAHM
Av8BSAHMAv8BSAHMAv8DBwEJA14B3QH1As0C/wLPAv8CzQL/AtIC/wLYAv8C3QL/AuIC/wL6Cf8D9QH/
A18B8wNTAawDMAFMAz4BagHGArEC/wLZAv8C1AL/As8C/wLNAv8B1AHbAv8B1wHiAv8B5AHqEf8B0gLM
Af8DWgHTA0MBdwHMApkB/wGZAQABFQH/AYACAAH/AYACAAH/AYACAAH/AYACAAH/AYACAAX/AYACAAX/
AYACAAH/AYACAAH/AYACAAH/AYACAAH/AYACAAH/ARUCAAH/AUgBzAL/ARUCmQH/AwAB/wMAAf8DAAX/
AwAB/wMAAf8BpAKgCf8DmQH/AwsB/wMLAf8BSAHMAv8BSAHMAv8DPgFqAcYCsQL/AtkC/wLUAv8CzwL/
As0C/wHUAdsC/wHXAeIC/wHkAeoR/wHSAswB/wNaAdMDQwF3A1YBtgH/AuMB/wEAARABEQH/AQABEAER
Af8BAAEQAREC/wHeAecB/wEAARABEQL/AdEB8wH/AQABEAERAv8B+AL/AVACVgH/AQABEAERAf8BUAJW
Af8BzAKZAf8BXAJVAeoDTgGUAcwCmQH/AZkBAAEVAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIA
Bf8BgAIABf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BFQIAAf8BSAHMAv8BSAHMAv8BSAHM
Av8BSAHMAv8DAAX/AwAB/wMLEf8DzAH/AwAB/wFIAcwC/wFIAcwC/wNWAbYB/wLjAf8BUAJWAf8BAAEQ
AREB/wFQAlYC/wHeAecB/wFQAlYB/wEAARABEQH/AVACVgL/AfgC/wEAARABEQH/AQABEAERAf8BAAEQ
AREB/wHMApkB/wFcAlUB6gNOAZQDYQHiAf8C5wH/AQABEAERAv8C3gL/AuAC/wHvAfwB/wEAARABEQL/
AeIB/AH/AQABEAERAf8B/AHwAfkB/wEAARABEQH/AcwCmQH/AQABEAERAf8BzAKZAf8BbQJsAfcDUQGh
AcwCmQH/AZkBAAEVAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIA
Af8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BFQIAAf8BmQJIAf8BmQJIAf8BmQJIAf8BmQJI
Af8DAAX/AwAB/wMAAf8DLwH/A8wN/wMAAf8BmQJIAf8BmQJIAf8DYQHiAf8C5wH/AQABEAERAv8C3gH/
AQABEAERAv8B7wH8Af8BAAEQAREC/wHiAfwB/wEAARABEQH/AfwB8AH5Af8BAAEQAREB/wHMApkB/wHM
ApkB/wHMApkB/wFtAmwB9wNRAaEBngKMAf8B6QK+Af8BAAEQAREB/wEAARABEQH/AfkC1gL/AekB8wH/
AQABEAERAf8BAAEQAREB/wEAARABEQH/AfkB6AHsAf8BAAEQAREB/wHmAroB/wHmAr0B/wHmAsAB/wGm
ApQB/wNOAZQ0/wPxAf8D6gH/A4AB/wGZAkgB/wGZAkgB/wGZAkgB/wGZAkgB/wMABf8DAAH/AzcB/wMA
Af8DAAH/AwAB/wMABf8DAAH/AZkCSAH/AZkCSAH/AZ4CjAH/AekCvgH/AQABEAERAf8B8wLFAf8B+QLW
Av8B6QHzAf8BAAEQAREC/wHpAfMB/wEAARABEQH/AfkB6AHsAf8BAAEQAREB/wEAARABEQH/AeYCvQH/
AeYCwAH/AaYClAH/A04BlANdAdIB2wKoAf8BAAEQAREB/wHqArcB/wHzAs0C/wHuAfwB/wEAARABEQL/
AdIB9QH/AQABEAERAv8B9AH8Af8BAAEQAREC/wLYAf8BAAEQAREC/wLiAf8DYgH2A0MBdwT/AZkBAAEV
Cf8BgAIADf8BgAIAAf8BgAIADf8BgAIAAf8BgAIAAf8DgAH/AZkCSAH/AZkCSAH/AZkCSAH/AZkCSAH/
AwAF/wMAAf8DAAH/AwsB/wM3Af8DNwH/AwAF/wMAAf8BmQJIAf8BmQJIAf8DXQHSAdsCqAH/AQABEAER
Af8B6gK3Af8BAAEQAREC/wHuAfwB/wEAARABEQL/AdIB9QH/AQABEAERAv8B9AH8Af8BAAEQAREC/wLY
Av8C3QL/AuIB/wNiAfYDQwF3A1YBsQHVAqIB/wEAARABEQH/AQABEAERAf8BAAEQAREC/wH2Av8BUAJW
Af8BAAEQAREB/wFQAlYC/wHgAecB/wFQAlYB/wEAARABEQH/AVACVgL/At0B/wNaAeQDMAFMBP8BmQEA
ARUJ/wGAAgAJ/wGAAgAR/wGAAgAB/wPxAf8D6gH/A4AB/wGZAkgB/wGZAkgB/wGZAkgB/wGZAkgB/wMA
Cf8DmQH/AwsB/wMAAf8DAAH/AwAF/wMAAf8BmQJIAf8BmQJIAf8DVgGxAdUCogH/AVACVgH/AQABEAER
Af8BUAJWAv8B9gL/AQABEAERAv8B0gH1Af8BAAEQAREC/wHgAecB/wEAARABEQH/AQABEAERAf8BAAEQ
AREC/wLdAf8DWgHkAzABTAMyAVABwwK/Ev8B7AHxAv8B2wHnAv8B2QHeAv8C1AL/As8C/wLNAv8C0gH/
AcYCrQH/A1MBrAMUARsE/wGZAQABFQn/AYACAAn/AYACAAH/AYACAAH/AYACAAH/AYACAAX/AYACAAH/
AYACAAH/AYACAAH/ARUCAAH/AZkCSAH/AZkCSAH/AZkCSAH/AZkCSAH/AwAB/wPADf8DzAH/A0EB/wMA
Bf8DAAH/AZkCSAH/AZkCSAH/AzIBUAHDAr8S/wHsAfEC/wHbAecC/wHZAd4C/wLUAv8CzwL/As0C/wLS
Af8BxgKtAf8DUwGsAxQBGwQAA1oBwAP1Cv8C/gL/AucC/wLjAv8C3gL/AtkC/wLUAv8CzwH/AfUCxwH/
A18B4wMjATQDAgEDBP8BmQEAARUB/wGAAgAF/wGAAgAJ/wGAAgAJ/wGAAgAF/wGAAgAB/wPxAf8D6gH/
ARUCAAH/AZkCSAH/AZkCSAH/AZkCSAH/AZkCSAH/AwsB/wMvAf8DwBn/AwAB/wGZAkgB/wGZAkgB/wQA
A1oBwAP1Cv8C/gL/AucC/wLjAv8C3gL/AtkC/wLUAv8CzwH/AfUCxwH/A18B4wMjATQDAgEDBAADFwEg
A2IB7wP1Bv8C+AL/AuwC/wLnAv8C4wL/At4C/wLZAf8B9QLNAf8DbQH3AzABTQMEAQYEAAT/AZkCFQn/
AYACAAH/AYACAAn/AYACAAH/AYACAA3/AYACAAH/AYACAAH/A4YB/wGZAkgB/wGZAkgB/wGZAkgB/wGZ
AkgB/wGZAkgB/wMLAf8DAAH/AwsB/wOZEf8DAAH/AZkCSAH/AZkCSAH/BAADFwEgA2IB7wP1Bv8C+AL/
AuwC/wLnAv8C4wL/At4C/wLZAf8B9QLNAf8DbQH3AzABTQMEAQYMAAMXASADWgHAA8YC/wL3Av8C8gL/
AuwC/wLnAv8C4wH/AcYCsQH/A14B0AMkATYDAgEDCAAE/wGZAhUt/wPxAf8D6gH/A4YB/wGZAkgB/wGZ
AkgB/wGZAkgB/wGZAkgB/wGZAkgB/wGZAkgB/wGZAkgB/wMLAf8DAAH/AwAB/wNZAf8DzAX/AwAB/wGZ
AkgB/wGZAkgB/wgAAxcBIANaAcADxgL/AvcC/wLyAv8C7AL/AucC/wLjAf8BxgKxAf8DXgHQAyQBNgMC
AQMYAAMyAVADUQGiA10B0gGMAokB/wNgAdQDVAGmAzcBWgMFAQcQAAj/AcwCmS3/A/EB/wPAAf8EAAGZ
AkgB/wGZAkgB/wGZAkgB/wGZAkgB/wGZAkgB/wGZAkgB/wGZAkgB/wGZAkgB/wGZAkgB/wMAAf8DAAH/
Ay8B/wMLAf8BmQJIAf8UAAMyAVADUQGiA10B0gGMAokB/wNgAdQDVAGmAzcBWgMFAQcQAAFCAU0BPgcA
AT4DAAEoAwABQAMAATADAAEBAQABAQUAAYABARYAA/+BAAHjA/8B8AEHAfwBPwHBA/8BwAEDAfABDwGA
Af8BCAEQAYABAQHgAQcBAAF/AgABgAEAAcABAwEAAT8EAAGAAQEBAAEfBAABgAEBAYABDwYAAcABBwYA
AeABAwYAAfABAQYAAfgFAAGAAQEB/AUAAYABAQH+AQgCAAGAAQEBwAEDAf8DAAGAAQEB4AEHAf8BgAH/
AfABwAEDAfABDwH/AcAB/wH4AfABDwH8AT8B4AEDAgABgAEBAeABAwHAAQEEAAHAAQEBgAUAAYABAAGA
BQABgEEAAYAFAAGAAQABgAEBBAABgAEBAcABAwQAAcABAwHwAQ8CAAGAAQEB8AEPCw==
</value>
</data>
<data name="listChoices.TabIndex" type="System.Int32, mscorlib">
@@ -326,7 +349,10 @@
<value>Courier New, 8pt</value>
</data>
<data name="textBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 153</value>
<value>4, 189</value>
</data>
<data name="textBox1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="textBox1.Multiline" type="System.Boolean, mscorlib">
<value>True</value>
@@ -335,7 +361,7 @@
<value>Vertical</value>
</data>
<data name="textBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>788, 7</value>
<value>1051, 8</value>
</data>
<data name="textBox1.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@@ -362,13 +388,16 @@
<value>Fill</value>
</data>
<data name="tableLayoutPanel2.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 422</value>
<value>4, 519</value>
</data>
<data name="tableLayoutPanel2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="tableLayoutPanel2.RowCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tableLayoutPanel2.Size" type="System.Drawing.Size, System.Drawing">
<value>788, 35</value>
<value>1051, 43</value>
</data>
<data name="tableLayoutPanel2.TabIndex" type="System.Int32, mscorlib">
<value>30</value>
@@ -386,16 +415,19 @@
<value>0</value>
</data>
<data name="tableLayoutPanel2.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="buttonOk" Row="0" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,37,59399,Percent,22,93233,Percent,19,17293,Percent,20,11278" /&gt;&lt;Rows Styles="Percent,100" /&gt;&lt;/TableLayoutSettings&gt;</value>
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="buttonOk" Row="0" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,37.59399,Percent,22.93233,Percent,19.17293,Percent,20.11278" /&gt;&lt;Rows Styles="Percent,100" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="pictureBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="pictureBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 166</value>
<value>4, 205</value>
</data>
<data name="pictureBox1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="pictureBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>788, 7</value>
<value>1051, 8</value>
</data>
<data name="pictureBox1.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
<value>Zoom</value>
@@ -418,95 +450,116 @@
<data name="tableLayoutPanelMeta.ColumnCount" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="listMetadata.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="listMetadata.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
</data>
<data name="listMetadata.Size" type="System.Drawing.Size, System.Drawing">
<value>388, 231</value>
</data>
<data name="listMetadata.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="&gt;&gt;listMetadata.Name" xml:space="preserve">
<value>listMetadata</value>
</data>
<data name="&gt;&gt;listMetadata.Type" xml:space="preserve">
<value>System.Windows.Forms.ListView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;listMetadata.Parent" xml:space="preserve">
<value>tableLayoutPanelMeta</value>
</data>
<data name="&gt;&gt;listMetadata.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="Title.DisplayIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="Title.Text" xml:space="preserve">
<value>Title</value>
</data>
<data name="Title.Width" type="System.Int32, mscorlib">
<value>210</value>
</data>
<data name="TrackNo.DisplayIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="TrackNo.Text" xml:space="preserve">
<metadata name="dataGridViewTextBoxColumnTrackNo.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="dataGridViewTextBoxColumnTrackNo.HeaderText" xml:space="preserve">
<value>#</value>
</data>
<data name="TrackNo.Width" type="System.Int32, mscorlib">
<data name="dataGridViewTextBoxColumnTrackNo.MinimumWidth" type="System.Int32, mscorlib">
<value>30</value>
</data>
<data name="Start.Text" xml:space="preserve">
<data name="dataGridViewTextBoxColumnTrackNo.Width" type="System.Int32, mscorlib">
<value>30</value>
</data>
<metadata name="dataGridViewTextBoxColumnTrackTitle.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="dataGridViewTextBoxColumnTrackTitle.HeaderText" xml:space="preserve">
<value>Title</value>
</data>
<metadata name="dataGridViewTextBoxColumnTrackStart.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="dataGridViewTextBoxColumnTrackStart.HeaderText" xml:space="preserve">
<value>Start</value>
</data>
<data name="Start.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
<value>Right</value>
<data name="dataGridViewTextBoxColumnTrackStart.MinimumWidth" type="System.Int32, mscorlib">
<value>50</value>
</data>
<data name="Length.Text" xml:space="preserve">
<data name="dataGridViewTextBoxColumnTrackStart.Width" type="System.Int32, mscorlib">
<value>50</value>
</data>
<metadata name="dataGridViewTextBoxColumnTrackLength.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="dataGridViewTextBoxColumnTrackLength.HeaderText" xml:space="preserve">
<value>Length</value>
</data>
<data name="Length.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
<value>Right</value>
<data name="dataGridViewTextBoxColumnTrackLength.MinimumWidth" type="System.Int32, mscorlib">
<value>50</value>
</data>
<data name="listTracks.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<data name="dataGridViewTextBoxColumnTrackLength.Width" type="System.Int32, mscorlib">
<value>58</value>
</data>
<data name="dataGridViewTracks.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="listTracks.Location" type="System.Drawing.Point, System.Drawing">
<value>397, 3</value>
<data name="dataGridViewTracks.Location" type="System.Drawing.Point, System.Drawing">
<value>528, 3</value>
</data>
<data name="listTracks.Size" type="System.Drawing.Size, System.Drawing">
<value>388, 231</value>
<data name="dataGridViewTracks.Size" type="System.Drawing.Size, System.Drawing">
<value>520, 284</value>
</data>
<data name="listTracks.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
<data name="dataGridViewTracks.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
</data>
<data name="&gt;&gt;listTracks.Name" xml:space="preserve">
<value>listTracks</value>
<data name="&gt;&gt;dataGridViewTracks.Name" xml:space="preserve">
<value>dataGridViewTracks</value>
</data>
<data name="&gt;&gt;listTracks.Type" xml:space="preserve">
<value>System.Windows.Forms.ListView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<data name="&gt;&gt;dataGridViewTracks.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;listTracks.Parent" xml:space="preserve">
<data name="&gt;&gt;dataGridViewTracks.Parent" xml:space="preserve">
<value>tableLayoutPanelMeta</value>
</data>
<data name="&gt;&gt;listTracks.ZOrder" xml:space="preserve">
<data name="&gt;&gt;dataGridViewTracks.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<metadata name="Item.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Value.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="dataGridViewMetadata.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="dataGridViewMetadata.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
</data>
<data name="dataGridViewMetadata.Size" type="System.Drawing.Size, System.Drawing">
<value>519, 284</value>
</data>
<data name="dataGridViewMetadata.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="&gt;&gt;dataGridViewMetadata.Name" xml:space="preserve">
<value>dataGridViewMetadata</value>
</data>
<data name="&gt;&gt;dataGridViewMetadata.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewMetadata.Parent" xml:space="preserve">
<value>tableLayoutPanelMeta</value>
</data>
<data name="&gt;&gt;dataGridViewMetadata.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tableLayoutPanelMeta.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="tableLayoutPanelMeta.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 179</value>
<value>4, 221</value>
</data>
<data name="tableLayoutPanelMeta.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="tableLayoutPanelMeta.RowCount" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="tableLayoutPanelMeta.Size" type="System.Drawing.Size, System.Drawing">
<value>788, 237</value>
<value>1051, 290</value>
</data>
<data name="tableLayoutPanelMeta.TabIndex" type="System.Int32, mscorlib">
<value>32</value>
@@ -524,7 +577,7 @@
<value>4</value>
</data>
<data name="tableLayoutPanelMeta.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="listMetadata" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="listTracks" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,50,Percent,50" /&gt;&lt;Rows Styles="Percent,50" /&gt;&lt;/TableLayoutSettings&gt;</value>
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="dataGridViewTracks" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="dataGridViewMetadata" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,50,Percent,50" /&gt;&lt;Rows Styles="Percent,50" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
@@ -532,11 +585,14 @@
<data name="tableLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="tableLayoutPanel1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="tableLayoutPanel1.RowCount" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>794, 460</value>
<value>1059, 566</value>
</data>
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
<value>29</value>
@@ -554,29 +610,29 @@
<value>0</value>
</data>
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="tableLayoutPanel2" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="textBox1" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="listChoices" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="pictureBox1" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="tableLayoutPanelMeta" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,100" /&gt;&lt;Rows Styles="Absolute,150,Percent,5,Percent,5,Percent,90,Absolute,40" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="columnHeaderMetadataValue.DisplayIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="columnHeaderMetadataValue.Text" xml:space="preserve">
<value>Value</value>
</data>
<data name="columnHeaderMetadataValue.Width" type="System.Int32, mscorlib">
<value>240</value>
</data>
<data name="columnHeaderMetadataName.DisplayIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="columnHeaderMetadataName.Text" xml:space="preserve">
<value>Field</value>
</data>
<data name="columnHeaderMetadataName.Width" type="System.Int32, mscorlib">
<value>120</value>
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="tableLayoutPanel2" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="textBox1" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="listChoices" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="pictureBox1" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="tableLayoutPanelMeta" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,100" /&gt;&lt;Rows Styles="Absolute,185,Percent,5,Percent,5,Percent,90,Absolute,49" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<metadata name="backgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>127, 17</value>
</metadata>
<metadata name="Item.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="Item.HeaderText" xml:space="preserve">
<value>Column1</value>
</data>
<data name="Item.MinimumWidth" type="System.Int32, mscorlib">
<value>50</value>
</data>
<data name="Item.Width" type="System.Int32, mscorlib">
<value>50</value>
</data>
<metadata name="Value.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="Value.HeaderText" xml:space="preserve">
<value>Column1</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@@ -584,13 +640,16 @@
<value>51</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>6, 13</value>
<value>8, 16</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>794, 460</value>
<value>1059, 566</value>
</data>
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>591, 496</value>
<value>782, 600</value>
</data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterParent</value>
@@ -610,48 +669,48 @@
<data name="&gt;&gt;imageList1.Type" xml:space="preserve">
<value>System.Windows.Forms.ImageList, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;columnHeaderMetadataValue.Name" xml:space="preserve">
<value>columnHeaderMetadataValue</value>
</data>
<data name="&gt;&gt;columnHeaderMetadataValue.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;columnHeaderMetadataName.Name" xml:space="preserve">
<value>columnHeaderMetadataName</value>
</data>
<data name="&gt;&gt;columnHeaderMetadataName.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;Title.Name" xml:space="preserve">
<value>Title</value>
</data>
<data name="&gt;&gt;Title.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;TrackNo.Name" xml:space="preserve">
<value>TrackNo</value>
</data>
<data name="&gt;&gt;TrackNo.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;Start.Name" xml:space="preserve">
<value>Start</value>
</data>
<data name="&gt;&gt;Start.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;Length.Name" xml:space="preserve">
<value>Length</value>
</data>
<data name="&gt;&gt;Length.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;backgroundWorker1.Name" xml:space="preserve">
<value>backgroundWorker1</value>
</data>
<data name="&gt;&gt;backgroundWorker1.Type" xml:space="preserve">
<value>System.ComponentModel.BackgroundWorker, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumnTrackNo.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumnTrackNo</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumnTrackNo.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumnTrackTitle.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumnTrackTitle</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumnTrackTitle.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumnTrackStart.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumnTrackStart</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumnTrackStart.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumnTrackLength.Name" xml:space="preserve">
<value>dataGridViewTextBoxColumnTrackLength</value>
</data>
<data name="&gt;&gt;dataGridViewTextBoxColumnTrackLength.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;Item.Name" xml:space="preserve">
<value>Item</value>
</data>
<data name="&gt;&gt;Item.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;Value.Name" xml:space="preserve">
<value>Value</value>
</data>
<data name="&gt;&gt;Value.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>frmChoice</value>
</data>

View File

@@ -1144,7 +1144,7 @@ namespace JDP {
//
resources.ApplyResources(this.labelEncoderExtension, "labelEncoderExtension");
this.labelEncoderExtension.DataBindings.Add(new System.Windows.Forms.Binding("ImageKey", this.encodersBindingSource, "DotExtension", true, System.Windows.Forms.DataSourceUpdateMode.Never));
this.labelEncoderExtension.MinimumSize = new System.Drawing.Size(100, 16);
this.labelEncoderExtension.MinimumSize = new System.Drawing.Size(133, 21);
this.labelEncoderExtension.Name = "labelEncoderExtension";
//
// tabPage11
@@ -1222,7 +1222,7 @@ namespace JDP {
// labelDecoderExtension
//
resources.ApplyResources(this.labelDecoderExtension, "labelDecoderExtension");
this.labelDecoderExtension.MinimumSize = new System.Drawing.Size(100, 16);
this.labelDecoderExtension.MinimumSize = new System.Drawing.Size(133, 21);
this.labelDecoderExtension.Name = "labelDecoderExtension";
//
// tabPage4
@@ -1393,7 +1393,6 @@ namespace JDP {
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = btnCancel;
this.ControlBox = false;
this.Controls.Add(this.tabControl1);
this.Controls.Add(btnCancel);
this.Controls.Add(this.btnOK);

File diff suppressed because it is too large Load Diff