* option to purge records from local DB

* metadata editing window size is now saved in settings
* old musicbrainz library removed, musicbrainz metadata now only comes from CTDB
* confirmation dialog before submitting to CTDB
This commit is contained in:
chudov
2011-06-13 20:25:13 +00:00
parent 6982996ab9
commit e3b05e3e7f
28 changed files with 1883 additions and 1679 deletions

View File

@@ -156,10 +156,6 @@
<Project>{5ADCFD6D-BFEA-4B10-BB45-9083BBB56AF4}</Project>
<Name>Freedb</Name>
</ProjectReference>
<ProjectReference Include="..\MusicBrainz\MusicBrainz.csproj">
<Project>{74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533}</Project>
<Name>MusicBrainz</Name>
</ProjectReference>
<ProjectReference Include="..\ProgressODoom\ProgressODoom.csproj">
<Project>{8DD1E84B-0B03-4C0B-9B42-1E49F75E7CB1}</Project>
<Name>ProgressODoom</Name>

View File

@@ -1315,18 +1315,23 @@ namespace CUETools.AccurateRip
break;
}
if (extra == "")
{
int oiMin = _arOffsetRange;
int oiMax = -_arOffsetRange;
for (int oi = -_arOffsetRange; oi <= _arOffsetRange; oi++)
if (CRCLOG(iTrack) == CRCWONULL(iTrack, oi))
{
inLog = " W/O NULL ";
if (extra == "")
extra = string.Format(": offset {0}", oi);
else
{
extra = string.Format(": with offset");
break;
}
oiMin = Math.Min(oiMin, oi);
oiMax = Math.Max(oiMax, oi);
}
if (oiMax >= oiMin)
{
inLog = " W/O NULL ";
extra = oiMax == oiMin
? string.Format(": offset {0}", oiMin)
: string.Format(": offset {0}..{1}", oiMin, oiMax);
}
}
}
sw.WriteLine(" {0} {5,5:F1} [{1:X8}] [{2:X8}] {3,10}{4}",
iTrack == 0 ? "--" : string.Format("{0:00}", iTrack),

View File

@@ -30,7 +30,9 @@ namespace AudioDataPlugIn
bool m_test_mode = false;
IMetadataLookup m_data = null;
CDImageLayout TOC;
#if USEAR
string ArId;
#endif
AccurateRipVerify ar;
AccurateRipVerify arTest;
CUEToolsDB ctdb;
@@ -113,11 +115,11 @@ namespace AudioDataPlugIn
m_data.GetTrackPreemphasis(i)));
}
TOC[1][0].Start = 0U;
ArId = AccurateRipVerify.CalculateAccurateRipId(TOC);
ar = new AccurateRipVerify(TOC, null);
arTest = new AccurateRipVerify(TOC, null);
ctdb = new CUEToolsDB(TOC, null);
#if USEAR
ArId = AccurateRipVerify.CalculateAccurateRipId(TOC);
ar.ContactAccurateRip(ArId);
#endif
var form = new FormSubmitParity(ctdb, "EAC" + m_data.HostVersion + " CTDB 2.1.2", m_drivename);

View File

@@ -18,7 +18,7 @@ namespace CUETools.CTDB
{
public class CUEToolsDB
{
const string defaultServer = "http://db.cuetools.net";
const string defaultServer = "db.cuetools.net";
string urlbase;
string userAgent;
string driveName;
@@ -73,6 +73,7 @@ namespace CUETools.CTDB
req.UserAgent = this.userAgent;
req.Timeout = connectTimeout;
req.ReadWriteTimeout = socketTimeout;
req.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;
if (uploadHelper.onProgress != null)
uploadHelper.onProgress(this, new UploadProgressEventArgs(req.RequestUri.AbsoluteUri, 0));

View File

@@ -220,29 +220,6 @@ namespace CUETools.Processor
}
}
public void FillFromMusicBrainz(MusicBrainz.Release release, int firstAudio)
{
var evs = release.GetEvents();
if (evs.Count > 0)
{
var ev = evs[0];
ReleaseDate = ev.Date ?? "";
Year = (ev.Date ?? "").Substring(0, 4);
Barcode = ev.Barcode ?? "";
Country = ev.Country;
Label = ((ev.Label == null ? null : ev.Label.GetName()) ?? "") + (ev.Label == null ? "" : " ") + (ev.CatalogNumber ?? "");
}
Artist = release.GetArtist();
Title = release.GetTitle();
// How to get Genre: http://mm.musicbrainz.org/ws/1/release/6fe1e218-2aee-49ac-94f0-7910ba2151df.html?type=xml&inc=tags
for (int i = 0; i < Tracks.Count; i++)
{
MusicBrainz.Track track = release.GetTracks()[i + firstAudio]; // !!!!!! - _toc.FirstAudio?
Tracks[i].Title = track.GetTitle();
Tracks[i].Artist = track.GetArtist();
}
}
public void FillFromFreedb(Freedb.CDEntry cdEntry, int firstAudio)
{
Year = cdEntry.Year;

View File

@@ -109,10 +109,6 @@
<Project>{8A0426FA-0BC2-4C49-A6E5-1F9A68156F19}</Project>
<Name>CUETools.Codecs.LossyWAV</Name>
</ProjectReference>
<ProjectReference Include="..\MusicBrainz\MusicBrainz.csproj">
<Project>{74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533}</Project>
<Name>MusicBrainz</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">

View File

@@ -47,7 +47,6 @@ using CUETools.AccurateRip;
using CUETools.CTDB;
using CUETools.Ripper;
using CUETools.Compression;
using MusicBrainz;
using Freedb;
using CSScriptLibrary;
@@ -1146,6 +1145,8 @@ namespace CUETools.Processor
public bool CreateTOC { get; set; }
[DefaultValue(true), Category("CTDB"), DisplayName("Submit to CTDB")]
public bool CTDBSubmit { get; set; }
[DefaultValue(true), Category("CTDB"), DisplayName("Ask before submitting")]
public bool CTDBAsk { get; set; }
[DefaultValue("db.cuetools.net"), Category("CTDB"), DisplayName("CTDB Server")]
public string CTDBServer { get; set; }
@@ -1238,7 +1239,7 @@ namespace CUETools.Processor
writeArTagsOnEncode = true;
writeArLogOnConvert = true;
writeArTagsOnVerify = false;
writeArLogOnVerify = true;
writeArLogOnVerify = false;
autoCorrectFilenames = true;
preserveHTOA = true;
@@ -1547,7 +1548,7 @@ return processor.Go();
writeArTagsOnEncode = sr.LoadBoolean("ArWriteCRC") ?? true;
writeArLogOnConvert = sr.LoadBoolean("ArWriteLog") ?? true;
writeArTagsOnVerify = sr.LoadBoolean("ArWriteTagsOnVerify") ?? false;
writeArLogOnVerify = sr.LoadBoolean("ArWriteLogOnVerify") ?? true;
writeArLogOnVerify = sr.LoadBoolean("ArWriteLogOnVerify") ?? false;
preserveHTOA = sr.LoadBoolean("PreserveHTOA") ?? true;
autoCorrectFilenames = sr.LoadBoolean("AutoCorrectFilenames") ?? true;
@@ -1860,7 +1861,7 @@ return processor.Go();
public CUEAction _action = CUEAction.Encode;
public CUEStyle _CUEStyle = CUEStyle.SingleFileWithCUE;
public int _writeOffset = 0;
public bool _useFreeDb = true, _useMusicBrainz = true, _useAccurateRip = true, _useCUEToolsDB = true, _useLocalDB = true, _skipRecent = true;
public bool _useFreeDb = true, _useMusicBrainz = true, _useAccurateRip = true, _useCUEToolsDB = true, _useLocalDB = true, _skipRecent = false;
public string _name;
}
@@ -2206,11 +2207,9 @@ return processor.Go();
_localDB.Save();
}
public List<object> LookupAlbumInfo(bool useFreedb, bool useMusicBrainz, bool useCTDB, bool useCache, bool useCUE)
public List<object> LookupAlbumInfo(bool useFreedb, bool useCTDB, bool useCache, bool useCUE)
{
List<object> Releases = new List<object>();
StringCollection DiscIds = new StringCollection();
DiscIds.Add(_toc.MusicBrainzId);
CUEMetadata dbmeta = null;
@@ -2304,8 +2303,6 @@ return processor.Go();
CUEMetadata metadata = new CUEMetadata(TOC.TOCID, (int)TOC.AudioTracks);
metadata.FillFromFreedb(cdEntry, TOC.FirstAudio - 1);
CDImageLayout toc = TocFromCDEntry(cdEntry);
if (!DiscIds.Contains(toc.MusicBrainzId))
DiscIds.Add(toc.MusicBrainzId);
Releases.Add(new CUEMetadataEntry(metadata, toc, "freedb"));
}
}
@@ -2324,8 +2321,6 @@ return processor.Go();
CUEMetadata metadata = new CUEMetadata(TOC.TOCID, (int)TOC.AudioTracks);
metadata.FillFromFreedb(cdEntry, TOC.FirstAudio - 1);
CDImageLayout toc = TocFromCDEntry(cdEntry);
if (!DiscIds.Contains(toc.MusicBrainzId))
DiscIds.Add(toc.MusicBrainzId);
Releases.Add(new CUEMetadataEntry(metadata, toc,"freedb"));
}
}
@@ -2338,58 +2333,6 @@ return processor.Go();
}
}
if (useMusicBrainz && !ctdbFound)
{
ShowProgress("Looking up album via MusicBrainz...", 0.0, null, null);
//if (_tocFromLog != null && !DiscIds.Contains(_tocFromLog.MusicBrainzId))
// DiscIds.Add(_tocFromLog.MusicBrainzId);
MusicBrainzService.XmlRequest += new EventHandler<XmlRequestEventArgs>(MusicBrainz_LookupProgress);
MusicBrainzService.Proxy = proxy;
foreach (string DiscId in DiscIds)
{
ReleaseQueryParameters p = new ReleaseQueryParameters();
p.DiscId = DiscId;
Query<Release> results = Release.Query(p);
try
{
foreach (MusicBrainz.Release release in results)
{
release.GetEvents();
release.GetTracks();
try
{
foreach (MusicBrainz.Track track in release.GetTracks())
;
}
catch { }
try
{
foreach (MusicBrainz.Event ev in release.GetEvents())
;
}
catch { }
CUEMetadata metadata = new CUEMetadata(TOC.TOCID, (int)TOC.AudioTracks);
metadata.FillFromMusicBrainz(release, TOC.FirstAudio - 1);
Releases.Add(new CUEMetadataEntry(metadata, TOC, "musicbrainz"));
}
}
catch (Exception ex)
{
System.Diagnostics.Trace.WriteLine(ex.Message);
}
}
MusicBrainzService.Proxy = null;
MusicBrainzService.XmlRequest -= new EventHandler<XmlRequestEventArgs>(MusicBrainz_LookupProgress);
//if (release != null)
//{
// FillFromMusicBrainz(release);
// return;
//}
//if (cdEntry != null)
// FillFromFreedb(cdEntry);
}
ShowProgress("", 0, null, null);
return Releases;
}
@@ -3400,18 +3343,6 @@ return processor.Go();
// this.CUEToolsProgress(this, _progress);
//}
private void MusicBrainz_LookupProgress(object sender, XmlRequestEventArgs e)
{
if (this.CUEToolsProgress == null)
return;
_progress.percent = (1.0 + _progress.percent) / 2;
_progress.offset = 0;
_progress.input = e.Uri.ToString();
_progress.output = null;
_progress.status = "Looking up album via MusicBrainz";
this.CUEToolsProgress(this, _progress);
}
private void unzip_ExtractionProgress(object sender, CompressionExtractionProgressEventArgs e)
{
CheckStop();

View File

@@ -2,7 +2,7 @@
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{9253A314-1821-42BF-B02F-2BF986B1765D}</ProjectGuid>
<OutputType>Exe</OutputType>
@@ -54,6 +54,10 @@
<Project>{1DD41038-D885-46C5-8DDE-E0B82F066584}</Project>
<Name>CUETools.CDImage</Name>
</ProjectReference>
<ProjectReference Include="..\CUETools.CTDB\CUETools.CTDB.csproj">
<Project>{AA2A9A7E-45FB-4632-AD85-85B0E556F818}</Project>
<Name>CUETools.CTDB</Name>
</ProjectReference>
<ProjectReference Include="..\CUETools.Ripper.SCSI\CUETools.Ripper.SCSI.csproj">
<Project>{8CF07381-BEA2-4AFC-B3DD-9B2F21C65A3A}</Project>
<Name>CUETools.Ripper.SCSI</Name>
@@ -63,10 +67,6 @@
<Project>{D2700165-3E77-4B28-928D-551F5FC11954}</Project>
<Name>CUETools.Ripper</Name>
</ProjectReference>
<ProjectReference Include="..\MusicBrainz\MusicBrainz.csproj">
<Project>{74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533}</Project>
<Name>MusicBrainz</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.

View File

@@ -29,7 +29,7 @@ using CUETools.Ripper.SCSI;
using CUETools.Codecs;
using CUETools.CDImage;
using CUETools.AccurateRip;
using MusicBrainz;
using CUETools.CTDB;
namespace CUETools.ConsoleRipper
{
@@ -178,24 +178,19 @@ namespace CUETools.ConsoleRipper
AudioBuffer buff = new AudioBuffer(audioSource, 0x10000);
string CDDBId = AccurateRipVerify.CalculateCDDBId(audioSource.TOC);
string ArId = AccurateRipVerify.CalculateAccurateRipId(audioSource.TOC);
Release release;
ReleaseQueryParameters p = new ReleaseQueryParameters();
p.DiscId = audioSource.TOC.MusicBrainzId;
Query<Release> results = Release.Query(p);
var ctdb = new CUEToolsDB(audioSource.TOC, null);
ctdb.Init(arVerify);
ctdb.ContactDB(null, "CUETools.ConsoleRipper 2.1.2", audioSource.ARName, true, false);
arVerify.ContactAccurateRip(ArId);
try
CTDBResponseMeta meta = null;
foreach (var imeta in ctdb.Metadata)
{
release = results.First();
}
catch
{
release = null;
meta = imeta;
break;
}
//string destFile = (release == null) ? "cdimage.flac" : release.GetArtist() + " - " + release.GetTitle() + ".flac";
string destFile = (release == null) ? "cdimage.wav" : release.GetArtist() + " - " + release.GetTitle() + ".wav";
string destFile = (meta == null) ? "cdimage.wav" : meta.artist + " - " + meta.album + ".wav";
Console.WriteLine("Drive : {0}", audioSource.Path);
Console.WriteLine("Read offset : {0}", audioSource.DriveOffset);
@@ -204,7 +199,7 @@ namespace CUETools.ConsoleRipper
Console.WriteLine("Filename : {0}", destFile);
Console.WriteLine("Disk length : {0}", CDImageLayout.TimeToString(audioSource.TOC.AudioLength));
Console.WriteLine("AccurateRip : {0}", arVerify.ARStatus == null ? "ok" : arVerify.ARStatus);
Console.WriteLine("MusicBrainz : {0}", release == null ? "not found" : release.GetArtist() + " - " + release.GetTitle());
Console.WriteLine("MusicBrainz : {0}", meta == null ? "not found" : meta.artist + " - " + meta.album);
ProgressMeter meter = new ProgressMeter();
audioSource.ReadProgress += new EventHandler<ReadProgressArgs>(meter.ReadProgress);
@@ -215,24 +210,24 @@ namespace CUETools.ConsoleRipper
cueWriter.WriteLine("REM DISCID {0}", CDDBId);
cueWriter.WriteLine("REM ACCURATERIPID {0}", ArId);
cueWriter.WriteLine("REM COMMENT \"{0}\"", audioSource.RipperVersion);
if (release != null && release.GetEvents().Count > 0)
cueWriter.WriteLine("REM DATE {0}", release.GetEvents()[0].Date.Substring(0, 4));
if (meta != null && meta.year != "")
cueWriter.WriteLine("REM DATE {0}", meta.year);
if (audioSource.TOC.Barcode != null)
cueWriter.WriteLine("CATALOG {0}", audioSource.TOC.Barcode);
if (release != null)
if (meta != null)
{
cueWriter.WriteLine("PERFORMER \"{0}\"", release.GetArtist());
cueWriter.WriteLine("TITLE \"{0}\"", release.GetTitle());
cueWriter.WriteLine("PERFORMER \"{0}\"", meta.artist);
cueWriter.WriteLine("TITLE \"{0}\"", meta.album);
}
cueWriter.WriteLine("FILE \"{0}\" WAVE", destFile);
for (int track = 1; track <= audioSource.TOC.TrackCount; track++)
if (audioSource.TOC[track].IsAudio)
{
cueWriter.WriteLine(" TRACK {0:00} AUDIO", audioSource.TOC[track].Number);
if (release != null && release.GetTracks().Count >= audioSource.TOC[track].Number)
if (meta != null && meta.track.Length >= audioSource.TOC[track].Number)
{
cueWriter.WriteLine(" TITLE \"{0}\"", release.GetTracks()[(int)audioSource.TOC[track].Number - 1].GetTitle());
cueWriter.WriteLine(" PERFORMER \"{0}\"", release.GetTracks()[(int)audioSource.TOC[track].Number - 1].GetArtist());
cueWriter.WriteLine(" TITLE \"{0}\"", meta.track[(int)audioSource.TOC[track].Number - 1].name);
cueWriter.WriteLine(" PERFORMER \"{0}\"", meta.track[(int)audioSource.TOC[track].Number - 1].artist);
}
if (audioSource.TOC[track].ISRC != null)
cueWriter.WriteLine(" ISRC {0}", audioSource.TOC[track].ISRC);

View File

@@ -105,10 +105,6 @@
<Project>{5ADCFD6D-BFEA-4B10-BB45-9083BBB56AF4}</Project>
<Name>Freedb</Name>
</ProjectReference>
<ProjectReference Include="..\..\MusicBrainz\MusicBrainz.csproj">
<Project>{74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533}</Project>
<Name>MusicBrainz</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
</Project>

View File

@@ -89,10 +89,6 @@
<Project>{5ADCFD6D-BFEA-4B10-BB45-9083BBB56AF4}</Project>
<Name>Freedb</Name>
</ProjectReference>
<ProjectReference Include="..\..\MusicBrainz\MusicBrainz.csproj">
<Project>{74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533}</Project>
<Name>MusicBrainz</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
</Project>

View File

@@ -78,6 +78,12 @@
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="frmSubmit.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmSubmit.Designer.cs">
<DependentUpon>frmSubmit.cs</DependentUpon>
</Compile>
<Compile Include="frmAbout.cs">
<SubType>Form</SubType>
</Compile>
@@ -195,6 +201,15 @@
<SubType>Designer</SubType>
<DependentUpon>frmSettings.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmSubmit.de-DE.resx">
<DependentUpon>frmSubmit.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmSubmit.resx">
<DependentUpon>frmSubmit.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmSubmit.ru-RU.resx">
<DependentUpon>frmSubmit.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
@@ -250,10 +265,6 @@
<Project>{5ADCFD6D-BFEA-4B10-BB45-9083BBB56AF4}</Project>
<Name>Freedb</Name>
</ProjectReference>
<ProjectReference Include="..\MusicBrainz\MusicBrainz.csproj">
<Project>{74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533}</Project>
<Name>MusicBrainz</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="Resources\freedb.gif" />

View File

@@ -101,8 +101,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CUETools.CDImage", "..\CUET
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CUETools.AccurateRip", "..\CUETools.AccurateRip\CUETools.AccurateRip.csproj", "{5802C7E9-157E-4124-946D-70B5AE48A5A1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MusicBrainz", "..\MusicBrainz\MusicBrainz.csproj", "{74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CUERipper", "..\CUERipper\CUERipper.csproj", "{39B43BBB-BAFC-4D85-9BEA-3BCB7EFED89C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Freedb", "..\Freedb\Freedb.csproj", "{5ADCFD6D-BFEA-4B10-BB45-9083BBB56AF4}"
@@ -525,21 +523,6 @@ Global
{5802C7E9-157E-4124-946D-70B5AE48A5A1}.Release|Win32.ActiveCfg = Release|Any CPU
{5802C7E9-157E-4124-946D-70B5AE48A5A1}.Release|x64.ActiveCfg = Release|Any CPU
{5802C7E9-157E-4124-946D-70B5AE48A5A1}.Release|x86.ActiveCfg = Release|Any CPU
{74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533}.Debug|Any CPU.Build.0 = Debug|Any CPU
{74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533}.Debug|Win32.ActiveCfg = Debug|Any CPU
{74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533}.Debug|x64.ActiveCfg = Debug|Any CPU
{74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533}.Debug|x64.Build.0 = Debug|Any CPU
{74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533}.Debug|x86.ActiveCfg = Debug|Any CPU
{74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533}.Release|Any CPU.ActiveCfg = Release|Any CPU
{74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533}.Release|Any CPU.Build.0 = Release|Any CPU
{74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533}.Release|Win32.ActiveCfg = Release|Any CPU
{74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533}.Release|x64.ActiveCfg = Release|Any CPU
{74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533}.Release|x86.ActiveCfg = Release|Any CPU
{39B43BBB-BAFC-4D85-9BEA-3BCB7EFED89C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{39B43BBB-BAFC-4D85-9BEA-3BCB7EFED89C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{39B43BBB-BAFC-4D85-9BEA-3BCB7EFED89C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU

View File

@@ -33,6 +33,7 @@ namespace JDP
this.textBox1 = new System.Windows.Forms.TextBox();
this.button1 = new System.Windows.Forms.Button();
this.linkLabel2 = new System.Windows.Forms.LinkLabel();
this.linkLabel3 = new System.Windows.Forms.LinkLabel();
this.SuspendLayout();
//
// linkLabel1
@@ -41,6 +42,7 @@ namespace JDP
this.linkLabel1.Name = "linkLabel1";
this.linkLabel1.TabStop = true;
this.linkLabel1.UseCompatibleTextRendering = true;
this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
//
// textBox1
//
@@ -63,12 +65,20 @@ namespace JDP
this.linkLabel2.Name = "linkLabel2";
this.linkLabel2.TabStop = true;
this.linkLabel2.UseCompatibleTextRendering = true;
this.linkLabel2.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
//
// linkLabel3
//
resources.ApplyResources(this.linkLabel3, "linkLabel3");
this.linkLabel3.Name = "linkLabel3";
this.linkLabel3.UseCompatibleTextRendering = true;
//
// frmAbout
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.button1;
this.Controls.Add(this.linkLabel3);
this.Controls.Add(this.linkLabel2);
this.Controls.Add(this.button1);
this.Controls.Add(this.textBox1);
@@ -91,5 +101,6 @@ namespace JDP
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.LinkLabel linkLabel2;
private System.Windows.Forms.LinkLabel linkLabel3;
}
}

View File

@@ -14,5 +14,10 @@ namespace JDP
{
InitializeComponent();
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
System.Diagnostics.Process.Start((sender as LinkLabel).Text.Substring(e.Link.Start, e.Link.Length));
}
}
}

View File

@@ -118,8 +118,7 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="textBox1.Text" xml:space="preserve">
<value>AccurateRip, Monkey's Audio, Apple Lossless, RAR-Archive, Tag-
und HDCD-Unterstützung (c) Gregory S. Chudov, gchudov@gmail.com.
<value>
Dank geht an Christopher Key und Whitehobbit für Einsicht in AccurateRip-
Funktionen und Mr Spoon für die Genehmigung, die Datenbank zu nutzen.
@@ -134,14 +133,14 @@ hdcd.dll (c) Christopher Key</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="linkLabel2.LinkArea" type="System.Windows.Forms.LinkArea, System.Windows.Forms">
<value>26, 28</value>
<value>26, 23</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="linkLabel2.Size" type="System.Drawing.Size, System.Drawing">
<value>286, 17</value>
<value>253, 17</value>
</data>
<data name="linkLabel2.Text" xml:space="preserve">
<value>Unterstützung gibt es auf http://www.hydrogenaudio.org.</value>
<value>Unterstützung gibt es auf http://www.cuetools.net.</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Über CUETools</value>

View File

@@ -127,7 +127,7 @@
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="linkLabel1.Location" type="System.Drawing.Point, System.Drawing">
<value>87, 10</value>
<value>87, 34</value>
</data>
<data name="linkLabel1.Size" type="System.Drawing.Size, System.Drawing">
<value>265, 17</value>
@@ -151,23 +151,22 @@
<value>$this</value>
</data>
<data name="&gt;&gt;linkLabel1.ZOrder" xml:space="preserve">
<value>3</value>
<value>4</value>
</data>
<data name="textBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 41</value>
<value>12, 61</value>
</data>
<data name="textBox1.Multiline" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="textBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>415, 151</value>
<value>415, 131</value>
</data>
<data name="textBox1.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="textBox1.Text" xml:space="preserve">
<value>AccurateRip, Monkey's Audio, Apple Lossless, RAR archives, tags
and HDCD support (c) Gregory S. Chudov, gchudov@gmail.com.
<value>
Thanks go out to Christopher Key and Whitehobbit for insight on AccurateRip
functionality, and to Mr Spoon for permission to use the database.
@@ -190,7 +189,7 @@ hdcd.dll (c) Christopher Key</value>
<value>$this</value>
</data>
<data name="&gt;&gt;textBox1.ZOrder" xml:space="preserve">
<value>2</value>
<value>3</value>
</data>
<data name="button1.Location" type="System.Drawing.Point, System.Drawing">
<value>180, 228</value>
@@ -214,7 +213,7 @@ hdcd.dll (c) Christopher Key</value>
<value>$this</value>
</data>
<data name="&gt;&gt;button1.ZOrder" xml:space="preserve">
<value>1</value>
<value>2</value>
</data>
<data name="linkLabel2.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@@ -223,19 +222,19 @@ hdcd.dll (c) Christopher Key</value>
<value>NoControl</value>
</data>
<data name="linkLabel2.LinkArea" type="System.Windows.Forms.LinkArea, System.Windows.Forms">
<value>36, 28</value>
<value>24, 23</value>
</data>
<data name="linkLabel2.Location" type="System.Drawing.Point, System.Drawing">
<value>46, 195</value>
<value>96, 195</value>
</data>
<data name="linkLabel2.Size" type="System.Drawing.Size, System.Drawing">
<value>346, 17</value>
<value>247, 17</value>
</data>
<data name="linkLabel2.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="linkLabel2.Text" xml:space="preserve">
<value>Updates and support can be found at http://www.hydrogenaudio.org.</value>
<value>Updates can be found at http://www.cuetools.net</value>
</data>
<data name="linkLabel2.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleCenter</value>
@@ -250,6 +249,42 @@ hdcd.dll (c) Christopher Key</value>
<value>$this</value>
</data>
<data name="&gt;&gt;linkLabel2.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="linkLabel3.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="linkLabel3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="linkLabel3.LinkArea" type="System.Windows.Forms.LinkArea, System.Windows.Forms">
<value>0, 0</value>
</data>
<data name="linkLabel3.Location" type="System.Drawing.Point, System.Drawing">
<value>58, 9</value>
</data>
<data name="linkLabel3.Size" type="System.Drawing.Size, System.Drawing">
<value>322, 17</value>
</data>
<data name="linkLabel3.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
</data>
<data name="linkLabel3.Text" xml:space="preserve">
<value>Copyright 2008-2011 Gregory S. Chudov, gchudov@gmail.com</value>
</data>
<data name="linkLabel3.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleCenter</value>
</data>
<data name="&gt;&gt;linkLabel3.Name" xml:space="preserve">
<value>linkLabel3</value>
</data>
<data name="&gt;&gt;linkLabel3.Type" xml:space="preserve">
<value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;linkLabel3.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;linkLabel3.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">

View File

@@ -119,11 +119,10 @@
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="textBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>415, 214</value>
<value>415, 194</value>
</data>
<data name="textBox1.Text" xml:space="preserve">
<value>Поддержка AccurateRip, Monkey's Audio, Apple Lossless, RAR архивов,
тэгов и HDCD добавлена в 2008 году Григорием Чудовым, gchudov@gmail.com.
<value>
Спасибо Christopher Key и Whitehobbit за их исследования принципов работы
AccurateRip, и Mr Spoon за разрешение пользоваться базой данных.
@@ -141,16 +140,25 @@ hdcd.dll (c) Christopher Key
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="linkLabel2.LinkArea" type="System.Windows.Forms.LinkArea, System.Windows.Forms">
<value>39, 28</value>
<value>27, 23</value>
</data>
<data name="linkLabel2.Location" type="System.Drawing.Point, System.Drawing">
<value>22, 226</value>
<value>74, 226</value>
</data>
<data name="linkLabel2.Size" type="System.Drawing.Size, System.Drawing">
<value>394, 17</value>
<value>291, 17</value>
</data>
<data name="linkLabel2.Text" xml:space="preserve">
<value>Обновления и поддержку ищите на форуме http://www.hydrogenaudio.org.</value>
<value>Официальный сайт программы http://www.cuetools.net</value>
</data>
<data name="linkLabel3.Location" type="System.Drawing.Point, System.Drawing">
<value>65, 9</value>
</data>
<data name="linkLabel3.Size" type="System.Drawing.Size, System.Drawing">
<value>309, 17</value>
</data>
<data name="linkLabel3.Text" xml:space="preserve">
<value>Copyright 2008-2011 Григорий Чудов, gchudov@gmail.com</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>439, 296</value>

View File

@@ -419,6 +419,8 @@ namespace JDP {
bool _usePregapForFirstTrackInSingleFile;
bool _reducePriority;
string _defaultLosslessFormat, _defaultLossyFormat, _defaultHybridFormat, _defaultNoAudioFormat;
int _choiceWidth, _choiceHeight;
bool _choiceMaxed;
Thread _workThread;
CUESheet _workClass;
CUEToolsProfile _profile, _defaultProfile;
@@ -530,9 +532,19 @@ namespace JDP {
this.Invoke((MethodInvoker)delegate()
{
frmChoice dlg = new frmChoice();
if (_choiceWidth != 0 && _choiceHeight != 0)
dlg.Size = new Size(_choiceWidth, _choiceHeight);
if (_choiceMaxed)
dlg.WindowState = FormWindowState.Maximized;
dlg.Choices = e.choices;
if (dlg.ShowDialog(this) == DialogResult.OK)
e.selection = dlg.ChosenIndex;
_choiceMaxed = dlg.WindowState == FormWindowState.Maximized;
if (!_choiceMaxed)
{
_choiceHeight = dlg.Height;
_choiceWidth = dlg.Width;
}
});
}
@@ -903,9 +915,19 @@ namespace JDP {
if (_batchPaths.Count == 0 && action == CUEAction.Encode && (checkBoxUseFreeDb.Checked || checkBoxUseMusicBrainz.Checked))
{
frmChoice dlg = new frmChoice();
if (_choiceWidth != 0 && _choiceHeight != 0)
dlg.Size = new Size(_choiceWidth, _choiceHeight);
if (_choiceMaxed)
dlg.WindowState = FormWindowState.Maximized;
dlg.CUE = cueSheet;
dlg.LookupAlbumInfo(checkBoxUseFreeDb.Checked, false, checkBoxUseMusicBrainz.Checked, _profile._config.advanced.CacheMetadata, true);
dlg.LookupAlbumInfo(checkBoxUseFreeDb.Checked, checkBoxUseMusicBrainz.Checked, _profile._config.advanced.CacheMetadata, true);
dlgRes = dlg.ShowDialog(this);
_choiceMaxed = dlg.WindowState == FormWindowState.Maximized;
if (!_choiceMaxed)
{
_choiceHeight = dlg.Height;
_choiceWidth = dlg.Width;
}
if (dlgRes == DialogResult.Cancel)
{
cueSheet.Close();
@@ -980,7 +1002,7 @@ namespace JDP {
status = cueSheet.Go();
if (cueSheet.Config.advanced.CTDBSubmit
&& useAR
&& useCUEToolsDB
&& useCUEToolsDB
&& cueSheet.ArVerify.ARStatus == null
&& cueSheet.ArVerify.WorstConfidence() >= 2
&& (cueSheet.AccurateRipId == null || AccurateRipVerify.CalculateAccurateRipId(cueSheet.TOC) == cueSheet.AccurateRipId)
@@ -990,9 +1012,33 @@ namespace JDP {
)
)
{
cueSheet.CTDB.Submit((int)cueSheet.ArVerify.WorstConfidence(), 100, cueSheet.Metadata.Artist, cueSheet.Metadata.Title, cueSheet.Metadata.Barcode);
if (cueSheet.CTDB.SubStatus != null)
status += ", submit: " + cueSheet.CTDB.SubStatus;
DialogResult res = DialogResult.OK;
if (cueSheet.Config.advanced.CTDBAsk)
{
bool remember = true;
this.Invoke((MethodInvoker)delegate()
{
var confirm = new frmSubmit();
res = confirm.ShowDialog(this);
remember = confirm.checkBoxRemember.Checked;
});
if (remember)
{
cueSheet.Config.advanced.CTDBSubmit = res == DialogResult.OK;
cueSheet.Config.advanced.CTDBAsk = false;
}
}
if (res == DialogResult.OK)
{
cueSheet.CTDB.Submit(
(int)cueSheet.ArVerify.WorstConfidence(),
100,
cueSheet.Metadata.Artist,
cueSheet.Metadata.Title + (cueSheet.Metadata.Title != "" && cueSheet.Metadata.DiscNumberAndName != "" ? " (disc " + cueSheet.Metadata.DiscNumberAndName + ")" : ""),
cueSheet.Metadata.Barcode);
if (cueSheet.CTDB.SubStatus != null)
status += ", submit: " + cueSheet.CTDB.SubStatus;
}
}
}
else
@@ -1328,6 +1374,9 @@ namespace JDP {
profilePath = sr.ProfilePath;
_profile.Load(sr);
lastMOTD = sr.LoadDate("LastMOTD") ?? DateTime.FromBinary(0);
_choiceWidth = sr.LoadInt32("ChoiceWidth", null, null) ?? 0;
_choiceHeight = sr.LoadInt32("ChoiceHeight", null, null) ?? 0;
_choiceMaxed = sr.LoadBoolean("ChoiceMaxed") ?? false;
_defaultLosslessFormat = sr.Load("DefaultLosslessFormat") ?? "flac";
_defaultLossyFormat = sr.Load("DefaultLossyFormat") ?? "mp3";
_defaultHybridFormat = sr.Load("DefaultHybridFormat") ?? "lossy.flac";
@@ -1383,6 +1432,9 @@ namespace JDP {
SettingsWriter sw = new SettingsWriter("CUE Tools", "settings.txt", Application.ExecutablePath);
SaveScripts(SelectedAction);
sw.Save("LastMOTD", lastMOTD);
sw.Save("ChoiceWidth", _choiceWidth);
sw.Save("ChoiceHeight", _choiceHeight);
sw.Save("ChoiceMaxed", _choiceMaxed);
sw.Save("InputPath", InputPath);
sw.Save("DefaultLosslessFormat", _defaultLosslessFormat);
sw.Save("DefaultLossyFormat", _defaultLossyFormat);
@@ -2120,9 +2172,19 @@ namespace JDP {
}
CueSheet.UseLocalDB(_localDB);
frmChoice dlg = new frmChoice();
if (_choiceWidth != 0 && _choiceHeight != 0)
dlg.Size = new Size(_choiceWidth, _choiceHeight);
if (_choiceMaxed)
dlg.WindowState = FormWindowState.Maximized;
dlg.CUE = CueSheet;
dlg.LookupAlbumInfo(true, false, true, true, node is FileSystemTreeNodeLocalDBEntry);
dlg.LookupAlbumInfo(true, true, true, node is FileSystemTreeNodeLocalDBEntry);
var dlgRes = dlg.ShowDialog(this);
_choiceMaxed = dlg.WindowState == FormWindowState.Maximized;
if (!_choiceMaxed)
{
_choiceHeight = dlg.Height;
_choiceWidth = dlg.Width;
}
if (dlgRes == DialogResult.OK && dlg.ChosenRelease != null)
{
if (node is FileSystemTreeNodeLocalDBCollision)
@@ -2175,10 +2237,13 @@ namespace JDP {
else if (info.Node as FileSystemTreeNodeLocalDBEntry != null)
{
editMetadataToolStripMenuItem.Visible = true;
//removeItemFromDatabaseToolStripMenuItem.Visible = true;
}
else
return;
if (info.Node is FileSystemTreeNodeLocalDBGroup || info.Node is FileSystemTreeNodeLocalDBEntry)
{
removeItemFromDatabaseToolStripMenuItem.Visible = true;
}
fileSystemTreeView1.SelectedNode = info.Node;
contextMenuStripFileTree.Show(fileSystemTreeView1, e.Location);
}
@@ -2541,14 +2606,24 @@ namespace JDP {
private void removeItemFromDatabaseToolStripMenuItem_Click(object sender, EventArgs e)
{
var node = contextMenuStripFileTree.Tag as FileSystemTreeNodeLocalDBEntry;
if (node == null || node.Path == null)
var items = (contextMenuStripFileTree.Tag is FileSystemTreeNodeLocalDBGroup)
? new List<CUEToolsLocalDBEntry>((contextMenuStripFileTree.Tag as FileSystemTreeNodeLocalDBGroup).Group)
: (contextMenuStripFileTree.Tag is FileSystemTreeNodeLocalDBEntry)
? new List<CUEToolsLocalDBEntry>(new CUEToolsLocalDBEntry[] { (contextMenuStripFileTree.Tag as FileSystemTreeNodeLocalDBEntry).Item })
: null;
if (items == null)
return;
_localDB.Remove(node.Item);
_localDB.Dirty = true;
SaveDatabase();
node.Remove();
foreach (var node in fileSystemTreeView1.Nodes)
{
if (node is FileSystemTreeNodeLocalDB)
{
(node as FileSystemTreeNodeLocalDB).Purge(items);
//_localDB.RemoveAll(i => items.Contains(i));
_localDB.Dirty = true;
SaveDatabase();
return;
}
}
}
}
@@ -2621,6 +2696,20 @@ namespace JDP {
: base(icon_mgr, true)
{
}
public void Purge(List<CUEToolsLocalDBEntry> entries)
{
foreach (TreeNode child in this.Nodes)
{
if (child is FileSystemTreeNodeLocalDBFolder)
(child as FileSystemTreeNodeLocalDBFolder).Purge(entries);
if ((child is FileSystemTreeNodeLocalDBEntry && entries.Contains((child as FileSystemTreeNodeLocalDBEntry).Item))
|| (child is FileSystemTreeNodeLocalDBGroup && (child as FileSystemTreeNodeLocalDBGroup).Group.Count == 0))
child.Remove();
}
this.Group.RemoveAll(item => entries.Contains(item));
}
}
public class FileSystemTreeNodeLocalDBCollision : FileSystemTreeNodeLocalDBFolder

File diff suppressed because it is too large Load Diff

View File

@@ -38,16 +38,16 @@ namespace JDP
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker();
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.listMetadata = new System.Windows.Forms.ListView();
this.columnHeaderMetadataValue = new System.Windows.Forms.ColumnHeader();
this.columnHeaderMetadataName = new System.Windows.Forms.ColumnHeader();
this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker();
this.tableLayoutPanel1.SuspendLayout();
this.tableLayoutPanel2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
@@ -123,11 +123,6 @@ namespace JDP
this.pictureBox1.TabStop = false;
this.pictureBox1.DoubleClick += new System.EventHandler(this.pictureBox1_DoubleClick);
//
// backgroundWorker1
//
this.backgroundWorker1.DoWork += new System.ComponentModel.DoWorkEventHandler(this.backgroundWorker1_DoWork);
this.backgroundWorker1.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.backgroundWorker1_RunWorkerCompleted);
//
// tableLayoutPanelMeta
//
resources.ApplyResources(this.tableLayoutPanelMeta, "tableLayoutPanelMeta");
@@ -135,6 +130,29 @@ namespace JDP
this.tableLayoutPanelMeta.Controls.Add(this.listTracks, 1, 0);
this.tableLayoutPanelMeta.Name = "tableLayoutPanelMeta";
//
// listMetadata
//
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.DoubleClick += new System.EventHandler(this.listMetadata_DoubleClick);
//
// columnHeaderMetadataValue
//
resources.ApplyResources(this.columnHeaderMetadataValue, "columnHeaderMetadataValue");
//
// columnHeaderMetadataName
//
resources.ApplyResources(this.columnHeaderMetadataName, "columnHeaderMetadataName");
//
// listTracks
//
this.listTracks.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
@@ -167,28 +185,10 @@ namespace JDP
//
resources.ApplyResources(this.Length, "Length");
//
// listMetadata
// backgroundWorker1
//
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.DoubleClick += new System.EventHandler(this.listMetadata_DoubleClick);
//
// columnHeaderMetadataValue
//
resources.ApplyResources(this.columnHeaderMetadataValue, "columnHeaderMetadataValue");
//
// columnHeaderMetadataName
//
resources.ApplyResources(this.columnHeaderMetadataName, "columnHeaderMetadataName");
this.backgroundWorker1.DoWork += new System.ComponentModel.DoWorkEventHandler(this.backgroundWorker1_DoWork);
this.backgroundWorker1.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.backgroundWorker1_RunWorkerCompleted);
//
// frmChoice
//
@@ -196,7 +196,6 @@ namespace JDP
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.tableLayoutPanel1);
this.MaximizeBox = false;
this.Name = "frmChoice";
this.ShowIcon = false;
this.ShowInTaskbar = false;

View File

@@ -20,16 +20,15 @@ namespace JDP
public CUESheet CUE;
private bool freedb, musicbrainz, ctdb;
private bool freedb, ctdb;
public void LookupAlbumInfo(bool freedb, bool musicbrainz, bool ctdb, bool cache, bool cue)
public void LookupAlbumInfo(bool freedb, bool ctdb, bool cache, bool cue)
{
this.freedb = freedb;
this.musicbrainz = musicbrainz;
this.ctdb = ctdb;
var releases = CUE.LookupAlbumInfo(false, false, false, cache, cue);
var releases = CUE.LookupAlbumInfo(false, false, cache, cue);
this.Choices = releases;
if (freedb || musicbrainz || ctdb)
if (freedb || ctdb)
backgroundWorker1.RunWorkerAsync(null);
}
@@ -308,7 +307,7 @@ namespace JDP
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
e.Result = CUE.LookupAlbumInfo(this.freedb, this.musicbrainz, this.ctdb, false, false);
e.Result = CUE.LookupAlbumInfo(this.freedb, this.ctdb, false, false);
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)

View File

@@ -166,143 +166,142 @@
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACm
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAB+
HwAAAk1TRnQBSQFMAgEBBwEAAQwBAAEEAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEgBgABIB4AAx0BKgNDAXcDHQEqeAABLwEsASoBOwFxAWEBUQGUAZkBeQFaAc4BrAGC
AVkB6wGsAYIBWQHrAZkBeQFaAc4BcQFhAVEBlAIAAeIB/wIAAeIB/1QAAx0BKQNCAXQC/wHwAf8DQgF0
Ax0BKWwAAwoBDQFyAWEBUgGWAbQBhQFXAfoB4QHNAbkB/wHxAeABzgH/AfkB5wHWAf8B+AHmAdQB/wHw
Ad0BzAH/AeEBzQG5Af8CAAHiAf8CAAHiAf8DCgENTAADHAEoA0ABcQL/AfAB/wLpAdoD/wHxAf8DQAFx
AxwBKCAAAzYBWQNCAXYDQgF2AzABSwQAAzABSwNCAXYDQgF2A0IBdgNCAXYDMAFLBAADMAFLA0IBdgNC
AXYDNgFZBAADCgENAYoBcAFXAbgB2QG/AaUB/wH+AfIB5AL/AecBzwH/AfwB2wG7Af8B+QHTAbIB/wH2
AdABrAH/AfQB0QGuAf8B9gHYAbsB/wIAAeIB/wIAAeIB/wGKAXABVwG4AwoBDUQAAxwBJwNAAW8C/wHw
Af8B6wHdAbEB/wH3AcEBNQH/Ae0B3wGzA/8B8gH/A0ABbwMcASccAANBAXIC+QHpAf8C8wHjAf8CWwFZ
AbUDQwF4AmUBYwHDAvMB4wH/AvMB4wH/AvMB4wH/AvMB4wH/AmUBYwHDA0MBeAJbAVkBtQLzAeMB/wL5
AekB/wNBAXIEAAFyAWEBUgGWAdkBvwGlAv8B+AHrAv8B6wHRAv8B4QHDAf8B/gHbAboB/wH7AdYBsgH/
AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/QAADQAFuAv8B8AH/
AukB2gH/AecBqwEfAf8B5wGrAR8B/wHnAasBHwH/AeoB2wGwA/8B9AH/A0ABbgMcAScYAANAAW8C9AHm
Af8C6QHaAf8C7wHgAf8C9AHmAf8C7wHgAf8C6QHaAf8C6QHaAf8C6QHaAf8C6QHaAf8C7wHgAf8C9AHm
Af8C7wHgAf8C6QHaAf8C9AHmAf8DQAFvAS0BKgEoATgBtwGHAVcB/QL+AfoC/wH5AekC/wHvAdgC/wHn
Ac0C/wHhAcIB/wH8AdwBuwH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/
AgAB4gH/QAADHAEnAz8BbQL/AfEB/wHnAdcBqwH/AdcBlgEKAf8B1wGWAQoB/wHXAZYBCgH/AegB2AGu
A/8B9QH/Az8BbQMcAScUAANAAW4C9gHoAf8C6wHeAf8C6wHeAf8C6wHeAf8C6wHeAf8C6wHeAf8C6wHe
Af8C6wHeAf8C6wHeAf8C6wHeAf8C6wHeAf8C6wHeAf8C6wHeAf8C9gHoAf8DQAFuAXIBYQFSAZYB4gHO
AboB/wH3Ad4BxgL/AekB0QL/AfYB4gL/AfIB3QL/AfAB3QH/AfgB6gHZAf8B+AHmAdQB/wH7Ad8BxwH/
AfUBzwGrAf8CAAHiAf8CAAHiAf8B+AHdAcMB/wHiAc4BugH/AXIBYQFSAZZEAAMbASYDPwFsAv8B8gH/
AeUB1AGpAf8BzQGJAQAB/wHNAYkBAAH/Ac0BiQEAAf8B6AHXAa8D/wH3Af8DPwFsAxsBJhAAAz8BbQL3
AewB/wLuAeMB/wLuAeMB/wLuAeMB/wLuAeMB/wLuAeMB/wLuAeMB/wLuAeMB/wLuAeMB/wLuAeMB/wLu
AeMB/wLuAeMB/wLuAeMB/wL3AewB/wM/AW0BmgF5AVoB0AHvAeAB0AH/AecBvgGWAf8B5wG8AZQB/wHw
AcwBqQH/Af4B7AHaAf8B3QHEAawB/wGpAYEBWgHnAakBgQFaAecB3QHDAaoB/wH4Ad0BxAH/AgAB4gH/
AgAB4gH/AfUB1gG4Af8B8QHfAc8B/wGaAXkBWgHQSAADGwEmAz4BawL/AfQB/wHnAdYBrAH/AdEBjgEC
Af8B0QGOAQIB/wHRAY4BAgH/AewB2wGzA/8B+AH/Az4BawMbASYMAAM+AWsC+QHvAf8C8QHoAf8C8QHo
Af8C8QHoAf8C8QHoAf8C8QHoAf8DAAH/AU0BhQGTAf8BuALLAf8C8QHoAf8C8QHoAf8C8QHoAf8C8QHo
Af8C+QHvAf8DPgFrAawBggFZAewB9QHkAdUB/wHpAb4BlwH/AegBvAGWAf8B5wG8AZQB/wHzAd4BygH/
AagBgQFZAeYBFgEVARQBGwEWARUBFAEbAagBgQFZAeYB9gHjAdMB/wIAAeIB/wIAAeIB/wHtAckBpAH/
AfYB5AHSAf8BrAGCAVkB7EwAAxsBJgM+AWsC/wH1Af8B6wHcAbMB/wHfAaEBFQH/Ad8BoQEVAf8B3wGh
ARUB/wHxAeIBuwP/AfoB/wM+AWsDGwEmCAADPgFqAvoB8wH/AvUB7gH/AvUB7gH/AvUB7gH/AvUB7gH/
AvUB7gH/AXgBsQHAAf8B2QH0Av8BOwGcAasB/wG1AdMB1AH/AvUB7gH/AvUB7gH/AvUB7gH/AvoB8wH/
Az4BagGsAYIBWQHsAfUB5AHVAf8B6QG/AZkB/wHpAcABmQH/AekBwQGaAf8B8wHdAckB/wGoAYEBWQHm
ARYBFQEUARsBFgEVARQBGwGoAYEBWQHmAfgB6AHZAf8B8gHSAbIB/wHwAcwBqwH/AfABzAGrAf8B9gHk
AdMB/wGsAYIBWQHsUAADGwEmAz4BagL/AfcB/wHyAeQBuwH/AfABuAEsAf8B8AG4ASwB/wHwAbgBLAH/
AvgB9AP/AfsB/wM+AWoDGgElBAADPQFpAvwB9wH/AvgB8wH/AvgB8wH/AvgB8wH/AvgB8wH/AvgB8wH/
AdQB5gHnAf8BRQG0AcMB/wF1AeYB9wH/ATwBnQGtAf8BtgHVAdcB/wL4AfMB/wL4AfMB/wL8AfcB/wM9
AWkBmgF5AVoB0AHwAeEB0QH/AeoBxAGhAf8B6QHBAZsB/wHpAcABlwH/AfEBzgGyAf8B3AHDAaoB/wGp
AYEBWgHnAakBgQFaAecB3QHEAawC/wH8AfMC/wH0AeUC/wHuAdoB/wH8AeUB0QH/AfEB4QHRAf8BmgF5
AVoB0FQAAxoBJQM9AWkC/wH4Af8B9wHqAcMB/wH9AckBPQH/AfkB7AHHAf8C+wH3Af8C/AH5A/8B/AH/
Az0BaQMaASUDPQFoAv0B+gH/AvsB9wH/AvsB9wH/AvsB9wH/AvsB9wH/AvsB9wH/AvsB9wH/Ab4B5QHo
Af8BRgG1AcUB/wF1AeYB9wH/AT0BngGuAf8BuQHYAdsB/wL7AfcB/wL9AfoB/wM9AWgBcgFhAVIBlgHi
Ac4BugH/AfEB0gG2Af8B6wHBAZsB/wHrAb8BmQL/AeQB0wL/AegB2wH/AfMB2gHHAf8B+AHxAeQC/wH4
Ae0C/wH3AekC/wH+AfEC/wH8Ae8C/wH8AfIB/wHiAc4BugH/AXIBYQFSAZZYAAMaASUDPQFoAv8B+gH/
AvgB9AH/AvsB9wH/AugB3gH/AtgByQH/AugB3gP/Af4B/wM9AWgDPQFoAv4B/QH/Av0B+wH/Av0B+wH/
Av0B+wH/Av0B+wH/Av0B+wH/Av0B+wH/Av0B+wH/AcAB5gHrAf8BRwG1AcYB/wF1AeYB9wH/AT0BngGv
Af8BvgHYAdwB/wL+Af0B/wM9AWgBLQEqASgBOAG3AYcBVwH9AfoB7QHhAf8B7AHHAaMC/wHsAdoF/wH3
Ac0BtgH/AewBvQGXAv8B9AHcA/8B9wL/AfcB6AP/AfMD/wH5Af8C/gH5Af8BtwGHAVcB/QEtASoBKAE4
XAADGgElAz0BaAL/AfsB/wL8AfkB/wLLAbsB/wQAAssBvAP/Af4B/wM9AWgDPQFnJP8BwQHoAe4B/wFH
AbYBxwH/AXUB5gH3Af8DkwH/A9UB/wM9AWcEAAFyAWEBUgGWAdkBvwGlAv8B+gHwBv8B/QHzAf8B8AHB
AaMB/wHuAcYBoAH/Af0B8AHRA/8B/gL/Af0B8AL/Af0B8QX/AdkBvwGlAf8BcgFhAVIBlmQAAxoBJQM9
AWcC/wH8Af8C1AHKAf8CrwGfAf8C1AHLA/8B/gH/Az0BZwMxAU0DPAFmAzwBZgM8AWYDPAFmAzwBZgM8
AWYDPAFmAzwBZgM8AWYDPAFmA0sBjAJUAVIBpwP3Af8CVgFYAbsDRAF6BAADCgENAYoBcAFXAbgB2QG/
AaUB/wH+Af0B/AL/AfEB5AH/AfIBygGuAf8B8gHSAa0B/wH5Ae0ByAP/AfcD/wH9Af8B/gH9AfwB/wHZ
Ab8BpQH/AYoBcAFXAbgDCgENaAADGgEkAz0BZwL/Af4D/wH+A/8B/gX/Az0BZzAAAxoBJAJEAUUBfAKA
Av8CTwFiAcEIAAMKAQ0BcgFhAVIBlgG0AYUBVwH6AeEBzQG5Af8B8QHiAdQB/wH5AewB3wH/AfsB8wHl
Af8B9AHtAeQB/wHiAc4BuwH/AbQBhQFXAfoBcgFhAVIBlgMKAQ1wAAMaASQDPAFmAzwBZgM8AWYDPAFm
AzEBTTQAAyYBOQJPAVwBrwMqAUAQAAEvASwBKgE7AXEBYQFRAZQBmQF5AVoBzgGsAYIBWQHrAa0BgwFY
Ae8BoAF8AVkB2QFzAWIBUQGXAS8BLAEqATtcAAMCAQMDFAEcAzABTANEAXkDUAGaA1ABpANQAZoDRAF5
AzABTAMUARwDAwEECAADlgH/ARsCAAH/ARsCAAH/ARsCAAH/ARsCAAH/ARsCAAH/ARsCAAH/ARsCAAH/
ARsCAAH/ARsCAAH/ARsCAAH/ARsCAAH/ARsCAAH/ARsCAAH/ARsCAAH/ARsCAAH/BAABTgHMAv8BGwKZ
Af8BGwKZAf8BTgHMAv8BTgHMAv8BTgHMAv8BTgHMAv8BTgHMAv8BTgHMAv8BTgHMAv8BTgHMAv8BTgHM
Av8BTgHMAv8BTgHMAv8QAAMCAQMDFAEcAzABTANEAXkDUAGaA1ABpANQAZoDRAF5AzABTAMUARwDAwEE
EAADBAEGAyQBNgNTAbABYwJeAeUBcAJfAfsBswKpAf8BcAJiAfsDYAHrA1oB0wNTAawDRwGCAygBPAMH
AQkEAAHMApkB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wPqAf8D6gH/A+oB/wGAAgAB/wPqAf8D6gH/
A+oB/wGAAgAB/wGAAgAB/wFOAgAB/wEbAgAB/wEbApkB/wMAAf8DEQH/AzUB/wMAAf8DBAH/AU4BzAL/
AU4BzAL/AU4BzAL/AU4BzAL/AU4BzAL/AU4BzAL/AU4BzAL/AU4BzAL/AU4BzAL/AU4BzAL/CAADBAEG
AyQBNgNTAbABYwJeAeUBcAJfAfsBswKpAf8BcAJiAfsDYAHrA1oB0wNTAawDRwGCAygBPAMHAQkIAAMC
AQMDMQFPA1wB6gHPArQC/wLdAv8C4gL/AugC/wLuAv8C8wH/A88B/wNfAfMDWAHGA0wBkgMoATwDAwEE
AcwCmQH/AYACAAH/AYACAAH/AYACAAH/A/EB/wGAAgAB/wGAAgAB/wPxAf8BgAIAAf8D8QH/AYACAAH/
AYACAAH/A/EB/wGAAgAB/wGAAgAB/wEbAgAB/wMAAf8DzA3/AzUB/wMEAf8BTgHMAv8BTgHMAv8BTgHM
Av8BTgHMAv8BTgHMAv8BTgHMAv8BTgHMAv8BTgHMAv8BTgHMAv8EAAMCAQMDMQFPA1wB6gHPArQC/wLd
Av8C4gL/AugC/wLuAv8C8wH/A88B/wNfAfMDWAHGA0wBkgMoATwDAwEEBAADJgE4A20B9wH1AscC/wLS
Av8C2AL/At0C/wLiAv8C6AL/AvQF/wP1Af8DgQH7A1gBxgNHAYIDFAEcAcwCmQH/AZkBAAEbAf8BgAIA
Af8BgAIABf8BgAIAAf8BgAIABf8BgAIABf8BgAIAAf8BgAIABf8BgAIAAf8BgAIAAf8BGwIAAf8DAAH/
A8wR/wMAAf8BTgHMAv8BTgHMAv8BTgHMAv8BTgHMAv8BTgHMAv8BTgHMAv8BTgHMAv8BTgHMAv8BTgHM
Av8EAAMmATgDbQH3AfUCxwL/AtIC/wLYAv8C3QL/AuIC/wLoAv8C9AX/A/UB/wOBAfsDWAHGA0cBggMU
ARwDBwEJA14B3QH1As0C/wLPAv8CzQL/AtIC/wLYAv8C3QL/AuIC/wL6Cf8D9QH/A18B8wNTAawDMAFM
AcwCmQH/AZkBAAEbAf8BgAIAAf8BgAIAAf8BgAIADf8BgAIADf8BgAIAAf8BgAIAAf8BgAIAAf8BGwIA
Af8BGwKZAf8DBAH/A18B/wPAAf8DwAH/A8wB/wMAAf8DEQH/AwAB/wMAAf8DAAH/AwAB/wMRAf8BTgHM
Av8BTgHMAv8BTgHMAv8DBwEJA14B3QH1As0C/wLPAv8CzQL/AtIC/wLYAv8C3QL/AuIC/wL6Cf8D9QH/
A18B8wNTAawDMAFMAz4BagHGArEC/wLZAv8C1AL/As8C/wLNAv8B1AHbAv8B1wHiAv8B5AHqEf8B0gLM
Af8DWgHTA0MBdwHMApkB/wGZAQABGwH/AYACAAH/AYACAAH/AYACAAH/AYACAAH/AYACAAX/AYACAAX/
AYACAAH/AYACAAH/AYACAAH/AYACAAH/AYACAAH/ARsCAAH/AU4BzAL/ARsCmQH/AwQB/wMAAf8DAAX/
AwAB/wMEAf8BpAKgCf8DmQH/AxEB/wMRAf8BTgHMAv8BTgHMAv8DPgFqAcYCsQL/AtkC/wLUAv8CzwL/
As0C/wHUAdsC/wHXAeIC/wHkAeoR/wHSAswB/wNaAdMDQwF3A1YBtgH/AuMB/wEAARYBFwH/AQABFgEX
Af8BAAEWARcC/wHeAecB/wEAARYBFwL/AdEB8wH/AQABFgEXAv8B+AL/AVYCXAH/AQABFgEXAf8BVgJc
Af8BzAKZAf8BXAJVAeoDTgGUAcwCmQH/AZkBAAEbAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIA
Bf8BgAIABf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BGwIAAf8BTgHMAv8BTgHMAv8BTgHM
Av8BTgHMAv8DAAX/AwAB/wMREf8DzAH/AwAB/wFOAcwC/wFOAcwC/wNWAbYB/wLjAf8BVgJcAf8BAAEW
ARcB/wFWAlwC/wHeAecB/wFWAlwB/wEAARYBFwH/AVYCXAL/AfgC/wEAARYBFwH/AQABFgEXAf8BAAEW
ARcB/wHMApkB/wFcAlUB6gNOAZQDYQHiAf8C5wH/AQABFgEXAv8C3gL/AuAC/wHvAfwB/wEAARYBFwL/
AeIB/AH/AQABFgEXAf8B/AHwAfkB/wEAARYBFwH/AcwCmQH/AQABFgEXAf8BzAKZAf8BbQJsAfcDUQGh
AcwCmQH/AZkBAAEbAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIA
Af8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BGwIAAf8BmQJOAf8BmQJOAf8BmQJOAf8BmQJO
Af8DAAX/AwAB/wMAAf8DNQH/A8wN/wMAAf8BmQJOAf8BmQJOAf8DYQHiAf8C5wH/AQABFgEXAv8C3gH/
AQABFgEXAv8B7wH8Af8BAAEWARcC/wHiAfwB/wEAARYBFwH/AfwB8AH5Af8BAAEWARcB/wHMApkB/wHM
ApkB/wHMApkB/wFtAmwB9wNRAaEBngKMAf8B6QK+Af8BAAEWARcB/wEAARYBFwH/AfkC1gL/AekB8wH/
AQABFgEXAf8BAAEWARcB/wEAARYBFwH/AfkB6AHsAf8BAAEWARcB/wHmAroB/wHmAr0B/wHmAsAB/wGm
ApQB/wNOAZQ0/wPxAf8D6gH/A4AB/wGZAk4B/wGZAk4B/wGZAk4B/wGZAk4B/wMABf8DAAH/Az0B/wME
Af8DAAH/AwAB/wMABf8DAAH/AZkCTgH/AZkCTgH/AZ4CjAH/AekCvgH/AQABFgEXAf8B8wLFAf8B+QLW
Av8B6QHzAf8BAAEWARcC/wHpAfMB/wEAARYBFwH/AfkB6AHsAf8BAAEWARcB/wEAARYBFwH/AeYCvQH/
AeYCwAH/AaYClAH/A04BlANdAdIB2wKoAf8BAAEWARcB/wHqArcB/wHzAs0C/wHuAfwB/wEAARYBFwL/
AdIB9QH/AQABFgEXAv8B9AH8Af8BAAEWARcC/wLYAf8BAAEWARcC/wLiAf8DYgH2A0MBdwT/AZkBAAEb
Cf8BgAIADf8BgAIAAf8BgAIADf8BgAIAAf8BgAIAAf8DgAH/AZkCTgH/AZkCTgH/AZkCTgH/AZkCTgH/
AwAF/wMEAf8DAAH/AxEB/wM9Af8DPQH/AwAF/wMAAf8BmQJOAf8BmQJOAf8DXQHSAdsCqAH/AQABFgEX
Af8B6gK3Af8BAAEWARcC/wHuAfwB/wEAARYBFwL/AdIB9QH/AQABFgEXAv8B9AH8Af8BAAEWARcC/wLY
Av8C3QL/AuIB/wNiAfYDQwF3A1YBsQHVAqIB/wEAARYBFwH/AQABFgEXAf8BAAEWARcC/wH2Av8BVgJc
Af8BAAEWARcB/wFWAlwC/wHgAecB/wFWAlwB/wEAARYBFwH/AVYCXAL/At0B/wNaAeQDMAFMBP8BmQEA
ARsJ/wGAAgAJ/wGAAgAR/wGAAgAB/wPxAf8D6gH/A4AB/wGZAk4B/wGZAk4B/wGZAk4B/wGZAk4B/wMA
Cf8DmQH/AxEB/wMAAf8DBAH/AwAF/wMAAf8BmQJOAf8BmQJOAf8DVgGxAdUCogH/AVYCXAH/AQABFgEX
Af8BVgJcAv8B9gL/AQABFgEXAv8B0gH1Af8BAAEWARcC/wHgAecB/wEAARYBFwH/AQABFgEXAf8BAAEW
ARcC/wLdAf8DWgHkAzABTAMyAVABwwK/Ev8B7AHxAv8B2wHnAv8B2QHeAv8C1AL/As8C/wLNAv8C0gH/
AcYCrQH/A1MBrAMUARsE/wGZAQABGwn/AYACAAn/AYACAAH/AYACAAH/AYACAAH/AYACAAX/AYACAAH/
AYACAAH/AYACAAH/ARsCAAH/AZkCTgH/AZkCTgH/AZkCTgH/AZkCTgH/AwAB/wPADf8DzAH/A0cB/wMA
Bf8DAAH/AZkCTgH/AZkCTgH/AzIBUAHDAr8S/wHsAfEC/wHbAecC/wHZAd4C/wLUAv8CzwL/As0C/wLS
Af8BxgKtAf8DUwGsAxQBGwQAA1oBwAP1Cv8C/gL/AucC/wLjAv8C3gL/AtkC/wLUAv8CzwH/AfUCxwH/
A18B4wMjATQDAgEDBP8BmQEAARsB/wGAAgAF/wGAAgAJ/wGAAgAJ/wGAAgAF/wGAAgAB/wPxAf8D6gH/
ARsCAAH/AZkCTgH/AZkCTgH/AZkCTgH/AZkCTgH/AxEB/wM1Af8DwBn/AwAB/wGZAk4B/wGZAk4B/wQA
A1oBwAP1Cv8C/gL/AucC/wLjAv8C3gL/AtkC/wLUAv8CzwH/AfUCxwH/A18B4wMjATQDAgEDBAADFwEg
A2IB7wP1Bv8C+AL/AuwC/wLnAv8C4wL/At4C/wLZAf8B9QLNAf8DbQH3AzABTQMEAQYEAAT/AZkCGwn/
AYACAAH/AYACAAn/AYACAAH/AYACAA3/AYACAAH/AYACAAH/A4YB/wGZAk4B/wGZAk4B/wGZAk4B/wGZ
Ak4B/wGZAk4B/wMRAf8DAAH/AxEB/wOZEf8DAAH/AZkCTgH/AZkCTgH/BAADFwEgA2IB7wP1Bv8C+AL/
AuwC/wLnAv8C4wL/At4C/wLZAf8B9QLNAf8DbQH3AzABTQMEAQYMAAMXASADWgHAA8YC/wL3Av8C8gL/
AuwC/wLnAv8C4wH/AcYCsQH/A14B0AMkATYDAgEDCAAE/wGZAhst/wPxAf8D6gH/A4YB/wGZAk4B/wGZ
Ak4B/wGZAk4B/wGZAk4B/wGZAk4B/wGZAk4B/wGZAk4B/wMRAf8DAAH/AwQB/wNfAf8DzAX/AwAB/wGZ
Ak4B/wGZAk4B/wgAAxcBIANaAcADxgL/AvcC/wLyAv8C7AL/AucC/wLjAf8BxgKxAf8DXgHQAyQBNgMC
AQMYAAMyAVADUQGiA10B0gGMAokB/wNgAdQDVAGmAzcBWgMFAQcQAAj/AcwCmS3/A/EB/wPAAf8EAAGZ
Ak4B/wGZAk4B/wGZAk4B/wGZAk4B/wGZAk4B/wGZAk4B/wGZAk4B/wGZAk4B/wGZAk4B/wMEAf8DAAH/
AzUB/wMRAf8BmQJOAf8UAAMyAVADUQGiA10B0gGMAokB/wNgAdQDVAGmAzcBWgMFAQcQAAFCAU0BPgcA
AT4DAAEoAwABQAMAASADAAEBAQABAQYAAQEWAAP/AQAB4wP/AfABBwIAAcED/wHAAQMCAAGAAf8BCAEQ
AYABAQMAAX8CAAGABAABPwcAAR8GAAGAAQ8GAAHAAQcGAAHgAQMGAAHwAQEGAAH4BwAB/AcAAf4BCAIA
AYABAQIAAf8DAAGAAQECAAH/AYAB/wHwAcABAwIAAf8BwAH/AfgB8AEPAgAB4AEDAgABgAEBAeABAwHA
AQEEAAHAAQEBgAUAAYABAAGABQABgEEAAYAFAAGAAQABgAEBBAABgAEBAcABAwQAAcABAwHwAQ8CAAGA
AQEB8AEPCw==
AwABIAMAAQEBAAEgBgABIB4AAx0BKgNDAXcDHQEqeAABKAInATsBWgFUAU4BlAGFAXABWwHOAaIBfgFZ
AesBogF+AVkB6wGFAXABWwHOAVoBVAFOAZQCAAHiAf8CAAHiAf9UAAMdASkDQgF0Av8B8AH/A0IBdAMd
ASlsAAMKAQ0BWgFUAU8BlgGvAYIBVQH6AeEBzQG5Af8B8QHgAc4B/wH5AecB1gH/AfgB5gHUAf8B8AHd
AcwB/wHhAc0BuQH/AgAB4gH/AgAB4gH/AwoBDUwAAxwBKANAAXEC/wHwAf8C6QHaA/8B8QH/A0ABcQMc
ASggAAM2AVkDQgF2A0IBdgMwAUsEAAMwAUsDQgF2A0IBdgNCAXYDQgF2AzABSwQAAzABSwNCAXYDQgF2
AzYBWQQAAwoBDQFzAWUBVwG4AdkBvwGlAf8B/gHyAeQC/wHnAc8B/wH8AdsBuwH/AfkB0wGyAf8B9gHQ
AawB/wH0AdEBrgH/AfYB2AG7Af8CAAHiAf8CAAHiAf8BcwFlAVcBuAMKAQ1EAAMcAScDQAFvAv8B8AH/
AesB3QGxAf8B9wHBATQB/wHtAd8BswP/AfIB/wNAAW8DHAEnHAADQQFyAvkB6QH/AvMB4wH/AlkBVgG1
A0MBeANfAcMC8wHjAf8C8wHjAf8C8wHjAf8C8wHjAf8DXwHDA0MBeAJZAVYBtQLzAeMB/wL5AekB/wNB
AXIEAAFaAVQBTwGWAdkBvwGlAv8B+AHrAv8B6wHRAv8B4QHDAf8B/gHbAboB/wH7AdYBsgH/AgAB4gH/
AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/AgAB4gH/QAADQAFuAv8B8AH/AukB2gH/
AecBqwEeAf8B5wGrAR4B/wHnAasBHgH/AeoB2wGwA/8B9AH/A0ABbgMcAScYAANAAW8C9AHmAf8C6QHa
Af8C7wHgAf8C9AHmAf8C7wHgAf8C6QHaAf8C6QHaAf8C6QHaAf8C6QHaAf8C7wHgAf8C9AHmAf8C7wHg
Af8C6QHaAf8C9AHmAf8DQAFvAyYBOAG2AYcBVQH9Av4B+gL/AfkB6QL/Ae8B2AL/AecBzQL/AeEBwgH/
AfwB3AG7Af8CAAHiAf8CAAHiAf8CAAHiAf8CAAHiAf8CAAHiAf8CAAHiAf8CAAHiAf8CAAHiAf9AAAMc
AScDPwFtAv8B8QH/AecB1wGrAf8B1wGWAQkB/wHXAZYBCQH/AdcBlgEJAf8B6AHYAa4D/wH1Af8DPwFt
AxwBJxQAA0ABbgL2AegB/wLrAd4B/wLrAd4B/wLrAd4B/wLrAd4B/wLrAd4B/wLrAd4B/wLrAd4B/wLr
Ad4B/wLrAd4B/wLrAd4B/wLrAd4B/wLrAd4B/wL2AegB/wNAAW4BWgFUAU8BlgHiAc4BugH/AfcB3gHG
Av8B6QHRAv8B9gHiAv8B8gHdAv8B8AHdAf8B+AHqAdkB/wH4AeYB1AH/AfsB3wHHAf8B9QHPAasB/wIA
AeIB/wIAAeIB/wH4Ad0BwwH/AeIBzgG6Af8BWgFUAU8BlkQAAxsBJgM/AWwC/wHyAf8B5QHUAakB/wHN
AYkBAAH/Ac0BiQEAAf8BzQGJAQAB/wHoAdcBrwP/AfcB/wM/AWwDGwEmEAADPwFtAvcB7AH/Au4B4wH/
Au4B4wH/Au4B4wH/Au4B4wH/Au4B4wH/Au4B4wH/Au4B4wH/Au4B4wH/Au4B4wH/Au4B4wH/Au4B4wH/
Au4B4wH/AvcB7AH/Az8BbQGGAXABWwHQAe8B4AHQAf8B5wG+AZYB/wHnAbwBlAH/AfABzAGpAf8B/gHs
AdoB/wHdAcQBrAH/AZwBfAFcAecBnAF8AVwB5wHdAcMBqgH/AfgB3QHEAf8CAAHiAf8CAAHiAf8B9QHW
AbgB/wHxAd8BzwH/AYYBcAFbAdBIAAMbASYDPgFrAv8B9AH/AecB1gGsAf8B0QGOAQEB/wHRAY4BAQH/
AdEBjgEBAf8B7AHbAbMD/wH4Af8DPgFrAxsBJgwAAz4BawL5Ae8B/wLxAegB/wLxAegB/wLxAegB/wLx
AegB/wLxAegB/wMAAf8BTAGFAZMB/wG4AssB/wLxAegB/wLxAegB/wLxAegB/wLxAegB/wL5Ae8B/wM+
AWsBoQF9AVkB7AH1AeQB1QH/AekBvgGXAf8B6AG8AZYB/wHnAbwBlAH/AfMB3gHKAf8BnAF7AVkB5gMU
ARsDFAEbAZwBewFZAeYB9gHjAdMB/wIAAeIB/wIAAeIB/wHtAckBpAH/AfYB5AHSAf8BoQF9AVkB7EwA
AxsBJgM+AWsC/wH1Af8B6wHcAbMB/wHfAaEBFAH/Ad8BoQEUAf8B3wGhARQB/wHxAeIBuwP/AfoB/wM+
AWsDGwEmCAADPgFqAvoB8wH/AvUB7gH/AvUB7gH/AvUB7gH/AvUB7gH/AvUB7gH/AXcBsQHAAf8B2QH0
Av8BOgGcAasB/wG1AdMB1AH/AvUB7gH/AvUB7gH/AvUB7gH/AvoB8wH/Az4BagGhAX0BWQHsAfUB5AHV
Af8B6QG/AZkB/wHpAcABmQH/AekBwQGaAf8B8wHdAckB/wGcAXsBWQHmAxQBGwMUARsBnAF7AVkB5gH4
AegB2QH/AfIB0gGyAf8B8AHMAasB/wHwAcwBqwH/AfYB5AHTAf8BoQF9AVkB7FAAAxsBJgM+AWoC/wH3
Af8B8gHkAbsB/wHwAbgBKwH/AfABuAErAf8B8AG4ASsB/wL4AfQD/wH7Af8DPgFqAxoBJQQAAz0BaQL8
AfcB/wL4AfMB/wL4AfMB/wL4AfMB/wL4AfMB/wL4AfMB/wHUAeYB5wH/AUQBtAHDAf8BdAHmAfcB/wE7
AZ0BrQH/AbYB1QHXAf8C+AHzAf8C+AHzAf8C/AH3Af8DPQFpAYYBcAFbAdAB8AHhAdEB/wHqAcQBoQH/
AekBwQGbAf8B6QHAAZcB/wHxAc4BsgH/AdwBwwGqAf8BnAF8AVwB5wGcAXwBXAHnAd0BxAGsAv8B/AHz
Av8B9AHlAv8B7gHaAf8B/AHlAdEB/wHxAeEB0QH/AYYBcAFbAdBUAAMaASUDPQFpAv8B+AH/AfcB6gHD
Af8B/QHJATwB/wH5AewBxwH/AvsB9wH/AvwB+QP/AfwB/wM9AWkDGgElAz0BaAL9AfoB/wL7AfcB/wL7
AfcB/wL7AfcB/wL7AfcB/wL7AfcB/wL7AfcB/wG+AeUB6AH/AUUBtQHFAf8BdAHmAfcB/wE8AZ4BrgH/
AbkB2AHbAf8C+wH3Af8C/QH6Af8DPQFoAVoBVAFPAZYB4gHOAboB/wHxAdIBtgH/AesBwQGbAf8B6wG/
AZkC/wHkAdMC/wHoAdsB/wHzAdoBxwH/AfgB8QHkAv8B+AHtAv8B9wHpAv8B/gHxAv8B/AHvAv8B/AHy
Af8B4gHOAboB/wFaAVQBTwGWWAADGgElAz0BaAL/AfoB/wL4AfQB/wL7AfcB/wLoAd4B/wLYAckB/wLo
Ad4D/wH+Af8DPQFoAz0BaAL+Af0B/wL9AfsB/wL9AfsB/wL9AfsB/wL9AfsB/wL9AfsB/wL9AfsB/wL9
AfsB/wHAAeYB6wH/AUYBtQHGAf8BdAHmAfcB/wE8AZ4BrwH/Ab4B2AHcAf8C/gH9Af8DPQFoAyYBOAG2
AYcBVQH9AfoB7QHhAf8B7AHHAaMC/wHsAdoF/wH3Ac0BtgH/AewBvQGXAv8B9AHcA/8B9wL/AfcB6AP/
AfMD/wH5Af8C/gH5Af8BtgGHAVUB/QMmAThcAAMaASUDPQFoAv8B+wH/AvwB+QH/AssBuwH/BAACywG8
A/8B/gH/Az0BaAM9AWck/wHBAegB7gH/AUYBtgHHAf8BdAHmAfcB/wOTAf8D1QH/Az0BZwQAAVoBVAFP
AZYB2QG/AaUC/wH6AfAG/wH9AfMB/wHwAcEBowH/Ae4BxgGgAf8B/QHwAdED/wH+Av8B/QHwAv8B/QHx
Bf8B2QG/AaUB/wFaAVQBTwGWZAADGgElAz0BZwL/AfwB/wLUAcoB/wKvAZ8B/wLUAcsD/wH+Af8DPQFn
AzEBTQM8AWYDPAFmAzwBZgM8AWYDPAFmAzwBZgM8AWYDPAFmAzwBZgM8AWYDSgGMA1IBpwP3Af8CVgFY
AbsDRAF6BAADCgENAXMBZQFXAbgB2QG/AaUB/wH+Af0B/AL/AfEB5AH/AfIBygGuAf8B8gHSAa0B/wH5
Ae0ByAP/AfcD/wH9Af8B/gH9AfwB/wHZAb8BpQH/AXMBZQFXAbgDCgENaAADGgEkAz0BZwL/Af4D/wH+
A/8B/gX/Az0BZzAAAxoBJAJEAUUBfAKAAv8CUwFdAcEIAAMKAQ0BWgFUAU8BlgGvAYIBVQH6AeEBzQG5
Af8B8QHiAdQB/wH5AewB3wH/AfsB8wHlAf8B9AHtAeQB/wHiAc4BuwH/Aa8BggFVAfoBWgFUAU8BlgMK
AQ1wAAMaASQDPAFmAzwBZgM8AWYDPAFmAzEBTTQAAyYBOQJSAVgBrwMqAUAQAAEoAicBOwFaAVQBTgGU
AYUBcAFbAc4BogF+AVkB6wGjAX8BWAHvAY0BdAFaAdkBWwFUAU8BlwEoAicBO1wAAwIBAwMUARwDMAFM
A0QBeQNQAZoDUAGkA1ABmgNEAXkDMAFMAxQBHAMDAQQIAAOWAf8BGgIAAf8BGgIAAf8BGgIAAf8BGgIA
Af8BGgIAAf8BGgIAAf8BGgIAAf8BGgIAAf8BGgIAAf8BGgIAAf8BGgIAAf8BGgIAAf8BGgIAAf8BGgIA
Af8BGgIAAf8EAAFNAcwC/wEaApkB/wEaApkB/wFNAcwC/wFNAcwC/wFNAcwC/wFNAcwC/wFNAcwC/wFN
AcwC/wFNAcwC/wFNAcwC/wFNAcwC/wFNAcwC/wFNAcwC/xAAAwIBAwMUARwDMAFMA0QBeQNQAZoDUAGk
A1ABmgNEAXkDMAFMAxQBHAMDAQQQAAMEAQYDJAE2A1MBsAFjAl4B5QFtAl8B+wGzAqkB/wFtAmAB+wNg
AesDWgHTA1MBrANHAYIDKAE8AwcBCQQAAcwCmQH/AYACAAH/AYACAAH/AYACAAH/AYACAAH/A+oB/wPq
Af8D6gH/AYACAAH/A+oB/wPqAf8D6gH/AYACAAH/AYACAAH/AU0CAAH/ARoCAAH/ARoCmQH/AwAB/wMQ
Af8DNAH/AwAB/wMDAf8BTQHMAv8BTQHMAv8BTQHMAv8BTQHMAv8BTQHMAv8BTQHMAv8BTQHMAv8BTQHM
Av8BTQHMAv8BTQHMAv8IAAMEAQYDJAE2A1MBsAFjAl4B5QFtAl8B+wGzAqkB/wFtAmAB+wNgAesDWgHT
A1MBrANHAYIDKAE8AwcBCQgAAwIBAwMxAU8DXAHqAc8CtAL/At0C/wLiAv8C6AL/Au4C/wLzAf8DzwH/
A18B8wNYAcYDTAGSAygBPAMDAQQBzAKZAf8BgAIAAf8BgAIAAf8BgAIAAf8D8QH/AYACAAH/AYACAAH/
A/EB/wGAAgAB/wPxAf8BgAIAAf8BgAIAAf8D8QH/AYACAAH/AYACAAH/ARoCAAH/AwAB/wPMDf8DNAH/
AwMB/wFNAcwC/wFNAcwC/wFNAcwC/wFNAcwC/wFNAcwC/wFNAcwC/wFNAcwC/wFNAcwC/wFNAcwC/wQA
AwIBAwMxAU8DXAHqAc8CtAL/At0C/wLiAv8C6AL/Au4C/wLzAf8DzwH/A18B8wNYAcYDTAGSAygBPAMD
AQQEAAMmATgDbQH3AfUCxwL/AtIC/wLYAv8C3QL/AuIC/wLoAv8C9AX/A/UB/wOAAfsDWAHGA0cBggMU
ARwBzAKZAf8BmQEAARoB/wGAAgAB/wGAAgAF/wGAAgAB/wGAAgAF/wGAAgAF/wGAAgAB/wGAAgAF/wGA
AgAB/wGAAgAB/wEaAgAB/wMAAf8DzBH/AwAB/wFNAcwC/wFNAcwC/wFNAcwC/wFNAcwC/wFNAcwC/wFN
AcwC/wFNAcwC/wFNAcwC/wFNAcwC/wQAAyYBOANtAfcB9QLHAv8C0gL/AtgC/wLdAv8C4gL/AugC/wL0
Bf8D9QH/A4AB+wNYAcYDRwGCAxQBHAMHAQkDXgHdAfUCzQL/As8C/wLNAv8C0gL/AtgC/wLdAv8C4gL/
AvoJ/wP1Af8DXwHzA1MBrAMwAUwBzAKZAf8BmQEAARoB/wGAAgAB/wGAAgAB/wGAAgAN/wGAAgAN/wGA
AgAB/wGAAgAB/wGAAgAB/wEaAgAB/wEaApkB/wMDAf8DXgH/A8AB/wPAAf8DzAH/AwAB/wMQAf8DAAH/
AwAB/wMAAf8DAAH/AxAB/wFNAcwC/wFNAcwC/wFNAcwC/wMHAQkDXgHdAfUCzQL/As8C/wLNAv8C0gL/
AtgC/wLdAv8C4gL/AvoJ/wP1Af8DXwHzA1MBrAMwAUwDPgFqAcYCsQL/AtkC/wLUAv8CzwL/As0C/wHU
AdsC/wHXAeIC/wHkAeoR/wHSAswB/wNaAdMDQwF3AcwCmQH/AZkBAAEaAf8BgAIAAf8BgAIAAf8BgAIA
Af8BgAIAAf8BgAIABf8BgAIABf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BgAIAAf8BGgIAAf8BTQHM
Av8BGgKZAf8DAwH/AwAB/wMABf8DAAH/AwMB/wGkAqAJ/wOZAf8DEAH/AxAB/wFNAcwC/wFNAcwC/wM+
AWoBxgKxAv8C2QL/AtQC/wLPAv8CzQL/AdQB2wL/AdcB4gL/AeQB6hH/AdICzAH/A1oB0wNDAXcDVgG2
Af8C4wH/AQABFQEWAf8BAAEVARYB/wEAARUBFgL/Ad4B5wH/AQABFQEWAv8B0QHzAf8BAAEVARYC/wH4
Av8BVQJbAf8BAAEVARYB/wFVAlsB/wHMApkB/wFcAlUB6gNOAZQBzAKZAf8BmQEAARoB/wGAAgAB/wGA
AgAB/wGAAgAB/wGAAgAB/wGAAgAF/wGAAgAF/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wEa
AgAB/wFNAcwC/wFNAcwC/wFNAcwC/wFNAcwC/wMABf8DAAH/AxAR/wPMAf8DAAH/AU0BzAL/AU0BzAL/
A1YBtgH/AuMB/wFVAlsB/wEAARUBFgH/AVUCWwL/Ad4B5wH/AVUCWwH/AQABFQEWAf8BVQJbAv8B+AL/
AQABFQEWAf8BAAEVARYB/wEAARUBFgH/AcwCmQH/AVwCVQHqA04BlANhAeIB/wLnAf8BAAEVARYC/wLe
Av8C4AL/Ae8B/AH/AQABFQEWAv8B4gH8Af8BAAEVARYB/wH8AfAB+QH/AQABFQEWAf8BzAKZAf8BAAEV
ARYB/wHMApkB/wFtAmwB9wNRAaEBzAKZAf8BmQEAARoB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGA
AgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wGAAgAB/wEaAgAB/wGZ
Ak0B/wGZAk0B/wGZAk0B/wGZAk0B/wMABf8DAAH/AwAB/wM0Af8DzA3/AwAB/wGZAk0B/wGZAk0B/wNh
AeIB/wLnAf8BAAEVARYC/wLeAf8BAAEVARYC/wHvAfwB/wEAARUBFgL/AeIB/AH/AQABFQEWAf8B/AHw
AfkB/wEAARUBFgH/AcwCmQH/AcwCmQH/AcwCmQH/AW0CbAH3A1EBoQGeAowB/wHpAr4B/wEAARUBFgH/
AQABFQEWAf8B+QLWAv8B6QHzAf8BAAEVARYB/wEAARUBFgH/AQABFQEWAf8B+QHoAewB/wEAARUBFgH/
AeYCugH/AeYCvQH/AeYCwAH/AaYClAH/A04BlDT/A/EB/wPqAf8DgAH/AZkCTQH/AZkCTQH/AZkCTQH/
AZkCTQH/AwAF/wMAAf8DPAH/AwMB/wMAAf8DAAH/AwAF/wMAAf8BmQJNAf8BmQJNAf8BngKMAf8B6QK+
Af8BAAEVARYB/wHzAsUB/wH5AtYC/wHpAfMB/wEAARUBFgL/AekB8wH/AQABFQEWAf8B+QHoAewB/wEA
ARUBFgH/AQABFQEWAf8B5gK9Af8B5gLAAf8BpgKUAf8DTgGUA10B0gHbAqgB/wEAARUBFgH/AeoCtwH/
AfMCzQL/Ae4B/AH/AQABFQEWAv8B0gH1Af8BAAEVARYC/wH0AfwB/wEAARUBFgL/AtgB/wEAARUBFgL/
AuIB/wNiAfYDQwF3BP8BmQEAARoJ/wGAAgAN/wGAAgAB/wGAAgAN/wGAAgAB/wGAAgAB/wOAAf8BmQJN
Af8BmQJNAf8BmQJNAf8BmQJNAf8DAAX/AwMB/wMAAf8DEAH/AzwB/wM8Af8DAAX/AwAB/wGZAk0B/wGZ
Ak0B/wNdAdIB2wKoAf8BAAEVARYB/wHqArcB/wEAARUBFgL/Ae4B/AH/AQABFQEWAv8B0gH1Af8BAAEV
ARYC/wH0AfwB/wEAARUBFgL/AtgC/wLdAv8C4gH/A2IB9gNDAXcDVgGxAdUCogH/AQABFQEWAf8BAAEV
ARYB/wEAARUBFgL/AfYC/wFVAlsB/wEAARUBFgH/AVUCWwL/AeAB5wH/AVUCWwH/AQABFQEWAf8BVQJb
Av8C3QH/A1oB5AMwAUwE/wGZAQABGgn/AYACAAn/AYACABH/AYACAAH/A/EB/wPqAf8DgAH/AZkCTQH/
AZkCTQH/AZkCTQH/AZkCTQH/AwAJ/wOZAf8DEAH/AwAB/wMDAf8DAAX/AwAB/wGZAk0B/wGZAk0B/wNW
AbEB1QKiAf8BVQJbAf8BAAEVARYB/wFVAlsC/wH2Av8BAAEVARYC/wHSAfUB/wEAARUBFgL/AeAB5wH/
AQABFQEWAf8BAAEVARYB/wEAARUBFgL/At0B/wNaAeQDMAFMAzIBUAHDAr8S/wHsAfEC/wHbAecC/wHZ
Ad4C/wLUAv8CzwL/As0C/wLSAf8BxgKtAf8DUwGsAxQBGwT/AZkBAAEaCf8BgAIACf8BgAIAAf8BgAIA
Af8BgAIAAf8BgAIABf8BgAIAAf8BgAIAAf8BgAIAAf8BGgIAAf8BmQJNAf8BmQJNAf8BmQJNAf8BmQJN
Af8DAAH/A8AN/wPMAf8DRgH/AwAF/wMAAf8BmQJNAf8BmQJNAf8DMgFQAcMCvxL/AewB8QL/AdsB5wL/
AdkB3gL/AtQC/wLPAv8CzQL/AtIB/wHGAq0B/wNTAawDFAEbBAADWgHAA/UK/wL+Av8C5wL/AuMC/wLe
Av8C2QL/AtQC/wLPAf8B9QLHAf8DXwHjAyMBNAMCAQME/wGZAQABGgH/AYACAAX/AYACAAn/AYACAAn/
AYACAAX/AYACAAH/A/EB/wPqAf8BGgIAAf8BmQJNAf8BmQJNAf8BmQJNAf8BmQJNAf8DEAH/AzQB/wPA
Gf8DAAH/AZkCTQH/AZkCTQH/BAADWgHAA/UK/wL+Av8C5wL/AuMC/wLeAv8C2QL/AtQC/wLPAf8B9QLH
Af8DXwHjAyMBNAMCAQMEAAMXASADYgHvA/UG/wL4Av8C7AL/AucC/wLjAv8C3gL/AtkB/wH1As0B/wNt
AfcDMAFNAwQBBgQABP8BmQIaCf8BgAIAAf8BgAIACf8BgAIAAf8BgAIADf8BgAIAAf8BgAIAAf8DhgH/
AZkCTQH/AZkCTQH/AZkCTQH/AZkCTQH/AZkCTQH/AxAB/wMAAf8DEAH/A5kR/wMAAf8BmQJNAf8BmQJN
Af8EAAMXASADYgHvA/UG/wL4Av8C7AL/AucC/wLjAv8C3gL/AtkB/wH1As0B/wNtAfcDMAFNAwQBBgwA
AxcBIANaAcADxgL/AvcC/wLyAv8C7AL/AucC/wLjAf8BxgKxAf8DXgHQAyQBNgMCAQMIAAT/AZkCGi3/
A/EB/wPqAf8DhgH/AZkCTQH/AZkCTQH/AZkCTQH/AZkCTQH/AZkCTQH/AZkCTQH/AZkCTQH/AxAB/wMA
Af8DAwH/A14B/wPMBf8DAAH/AZkCTQH/AZkCTQH/CAADFwEgA1oBwAPGAv8C9wL/AvIC/wLsAv8C5wL/
AuMB/wHGArEB/wNeAdADJAE2AwIBAxgAAzIBUANRAaIDXQHSAYwCiQH/A2AB1ANUAaYDNwFaAwUBBxAA
CP8BzAKZLf8D8QH/A8AB/wQAAZkCTQH/AZkCTQH/AZkCTQH/AZkCTQH/AZkCTQH/AZkCTQH/AZkCTQH/
AZkCTQH/AZkCTQH/AwMB/wMAAf8DNAH/AxAB/wGZAk0B/xQAAzIBUANRAaIDXQHSAYwCiQH/A2AB1ANU
AaYDNwFaAwUBBxAAAUIBTQE+BwABPgMAASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/8BAAHjA/8B8AEH
AgABwQP/AcABAwIAAYAB/wEIARABgAEBAwABfwIAAYAEAAE/BwABHwYAAYABDwYAAcABBwYAAeABAwYA
AfABAQYAAfgHAAH8BwAB/gEIAgABgAEBAgAB/wMAAYABAQIAAf8BgAH/AfABwAEDAgAB/wHAAf8B+AHw
AQ8CAAHgAQMCAAGAAQEB4AEDAcABAQQAAcABAQGABQABgAEAAYAFAAGAQQABgAUAAYABAAGAAQEEAAGA
AQEBwAEDBAABwAEDAfABDwIAAYABAQHwAQ8L
</value>
</data>
<data name="listChoices.TabIndex" type="System.Int32, mscorlib">
@@ -611,11 +610,17 @@
<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;backgroundWorker1.Name" xml:space="preserve">
<value>backgroundWorker1</value>
<data name="&gt;&gt;columnHeaderMetadataValue.Name" xml:space="preserve">
<value>columnHeaderMetadataValue</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 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>
@@ -641,17 +646,11 @@
<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;columnHeaderMetadataValue.Name" xml:space="preserve">
<value>columnHeaderMetadataValue</value>
<data name="&gt;&gt;backgroundWorker1.Name" xml:space="preserve">
<value>backgroundWorker1</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 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;$this.Name" xml:space="preserve">
<value>frmChoice</value>

115
CUETools/frmSubmit.Designer.cs generated Normal file
View File

@@ -0,0 +1,115 @@
namespace JDP
{
partial class frmSubmit
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmSubmit));
this.textBox1 = new System.Windows.Forms.TextBox();
this.buttonOk = new System.Windows.Forms.Button();
this.buttonCancel = new System.Windows.Forms.Button();
this.checkBoxRemember = new System.Windows.Forms.CheckBox();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.AccessibleDescription = null;
this.textBox1.AccessibleName = null;
resources.ApplyResources(this.textBox1, "textBox1");
this.textBox1.BackColor = System.Drawing.SystemColors.Control;
this.textBox1.BackgroundImage = null;
this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.textBox1.Font = null;
this.textBox1.Name = "textBox1";
this.textBox1.ReadOnly = true;
this.textBox1.TabStop = false;
//
// buttonOk
//
this.buttonOk.AccessibleDescription = null;
this.buttonOk.AccessibleName = null;
resources.ApplyResources(this.buttonOk, "buttonOk");
this.buttonOk.BackgroundImage = null;
this.buttonOk.DialogResult = System.Windows.Forms.DialogResult.OK;
this.buttonOk.Font = null;
this.buttonOk.Name = "buttonOk";
this.buttonOk.UseVisualStyleBackColor = true;
//
// buttonCancel
//
this.buttonCancel.AccessibleDescription = null;
this.buttonCancel.AccessibleName = null;
resources.ApplyResources(this.buttonCancel, "buttonCancel");
this.buttonCancel.BackgroundImage = null;
this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.buttonCancel.Font = null;
this.buttonCancel.Name = "buttonCancel";
this.buttonCancel.UseVisualStyleBackColor = true;
//
// checkBoxRemember
//
this.checkBoxRemember.AccessibleDescription = null;
this.checkBoxRemember.AccessibleName = null;
resources.ApplyResources(this.checkBoxRemember, "checkBoxRemember");
this.checkBoxRemember.BackgroundImage = null;
this.checkBoxRemember.Checked = true;
this.checkBoxRemember.CheckState = System.Windows.Forms.CheckState.Checked;
this.checkBoxRemember.Font = null;
this.checkBoxRemember.Name = "checkBoxRemember";
this.checkBoxRemember.UseVisualStyleBackColor = true;
//
// frmSubmit
//
this.AcceptButton = this.buttonOk;
this.AccessibleDescription = null;
this.AccessibleName = null;
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackgroundImage = null;
this.CancelButton = this.buttonCancel;
this.Controls.Add(this.checkBoxRemember);
this.Controls.Add(this.buttonOk);
this.Controls.Add(this.buttonCancel);
this.Controls.Add(this.textBox1);
this.Font = null;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
this.Icon = null;
this.Name = "frmSubmit";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.Button buttonOk;
private System.Windows.Forms.Button buttonCancel;
internal System.Windows.Forms.CheckBox checkBoxRemember;
}
}

18
CUETools/frmSubmit.cs Normal file
View File

@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace JDP
{
public partial class frmSubmit : Form
{
public frmSubmit()
{
InitializeComponent();
}
}
}

View File

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

261
CUETools/frmSubmit.resx Normal file
View File

@@ -0,0 +1,261 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="&gt;&gt;textBox1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;textBox1.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;buttonCancel.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="buttonCancel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Right</value>
</data>
<data name="buttonCancel.Text" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="&gt;&gt;buttonOk.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="&gt;&gt;buttonCancel.Parent" xml:space="preserve">
<value>$this</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="buttonCancel.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>476, 97</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>CTDB submission confirmation</value>
</data>
<data name="checkBoxRemember.Size" type="System.Drawing.Size, System.Drawing">
<value>128, 17</value>
</data>
<data name="&gt;&gt;checkBoxRemember.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;textBox1.Name" xml:space="preserve">
<value>textBox1</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="buttonCancel.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="checkBoxRemember.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="textBox1.Multiline" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="&gt;&gt;textBox1.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;checkBoxRemember.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="buttonOk.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="$this.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>8, 8, 8, 8</value>
</data>
<data name="buttonOk.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value>
</data>
<data name="textBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Top</value>
</data>
<data name="buttonOk.Location" type="System.Drawing.Point, System.Drawing">
<value>304, 63</value>
</data>
<data name="&gt;&gt;checkBoxRemember.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="buttonCancel.Location" type="System.Drawing.Point, System.Drawing">
<value>385, 63</value>
</data>
<data name="&gt;&gt;buttonOk.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;buttonCancel.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="textBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>460, 45</value>
</data>
<data name="checkBoxRemember.Location" type="System.Drawing.Point, System.Drawing">
<value>11, 69</value>
</data>
<data name="&gt;&gt;buttonOk.Name" xml:space="preserve">
<value>buttonOk</value>
</data>
<data name="buttonOk.Text" xml:space="preserve">
<value>Ok</value>
</data>
<data name="textBox1.Text" xml:space="preserve">
<value>You are about to submit information about this CD to the CUETools Database. This information will help other users to repair their copy of this CD if it contains errors.</value>
</data>
<data name="textBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 8</value>
</data>
<data name="checkBoxRemember.Text" xml:space="preserve">
<value>Remember my choice</value>
</data>
<data name="checkBoxRemember.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<data name="checkBoxRemember.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="&gt;&gt;checkBoxRemember.Name" xml:space="preserve">
<value>checkBoxRemember</value>
</data>
<data name="&gt;&gt;buttonOk.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterParent</value>
</data>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>6, 13</value>
</data>
<data name="&gt;&gt;buttonCancel.Name" xml:space="preserve">
<value>buttonCancel</value>
</data>
<data name="buttonOk.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Right</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>frmSubmit</value>
</data>
<data name="textBox1.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>

View File

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