This commit is contained in:
2026-04-17 14:55:32 -04:00
commit bc3ac1d4c9
18017 changed files with 4371742 additions and 0 deletions

View File

@@ -0,0 +1,477 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="DBConfiguration.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
</sectionGroup>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
</startup>
<applicationSettings>
<DBConfiguration.Properties.Settings>
<setting name="RegistryDataPROExe" serializeAs="String">
<value>DataPRO.exe</value>
</setting>
<setting name="ApplicationSettings" serializeAs="String">
<value>applicationSettings</value>
</setting>
<setting name="DataPRO" serializeAs="String">
<value>DataPRO</value>
</setting>
<setting name="LocalDbFolder" serializeAs="String">
<value>db</value>
</setting>
<setting name="Mdf" serializeAs="String">
<value>.mdf</value>
</setting>
<setting name="LogLdf" serializeAs="String">
<value>_log.ldf</value>
</setting>
<setting name="SqlLocalDBExe" serializeAs="String">
<value>SqlLocalDB.exe</value>
</setting>
<setting name="StopDataProInstance" serializeAs="String">
<value>stop DataPROInstance</value>
</setting>
<setting name="DeleteDataProInstance" serializeAs="String">
<value>delete DataPROInstance</value>
</setting>
<setting name="CreateAndStartDataProInstance" serializeAs="String">
<value>create DataPROInstance -s</value>
</setting>
<setting name="RegistrySoftwareMicrosoftMicrosoftSQLServerLocalDBInstalledVersions" serializeAs="String">
<value>SOFTWARE\\Microsoft\\Microsoft SQL Server Local DB\\Installed Versions</value>
</setting>
<setting name="InstanceAPIPath" serializeAs="String">
<value>InstanceAPIPath</value>
</setting>
<setting name="SqlUserInstanceDll" serializeAs="String">
<value>SqlUserInstance.dll</value>
</setting>
<setting name="LocalDB" serializeAs="String">
<value>LocalDB</value>
</setting>
<setting name="Tools" serializeAs="String">
<value>Tools</value>
</setting>
<setting name="ScriptsFolder" serializeAs="String">
<value>SQL Server Scripts</value>
</setting>
<setting name="AttachDBsbat" serializeAs="String">
<value>AttachDBs.bat</value>
</setting>
<setting name="InstallerDatabaseAttach_Status" serializeAs="String">
<value>Database Attach Status</value>
</setting>
<setting name="InstallerDatabaseAttach_SqlServerLocalDbNotInstalled" serializeAs="String">
<value>SQL Server LocalDb is not installed.</value>
</setting>
<setting name="InstallerDatabaseAttach_Success" serializeAs="String">
<value>Databases were successfully attached to (localdb)\DataPROInstance.</value>
</setting>
<setting name="Versions" serializeAs="String">
<value>versions</value>
</setting>
<setting name="ISO" serializeAs="String">
<value>ISO</value>
</setting>
<setting name="CreateDataProInstance" serializeAs="String">
<value>create DataPROInstance</value>
</setting>
<setting name="StartDataProInstance" serializeAs="String">
<value>start DataPROInstance</value>
</setting>
<setting name="DataPROInstallationCompletedSuccessfully" serializeAs="String">
<value>DataPRO installation completed successfully</value>
</setting>
<setting name="InstallationStatus" serializeAs="String">
<value>DataPRO Installation status</value>
</setting>
<setting name="SqlServerLocalDbNotInstalled" serializeAs="String">
<value>SQL Server LocalDb is not installed.</value>
</setting>
<setting name="InstallRedistributablesbat" serializeAs="String">
<value>InstallRedistributables.bat</value>
</setting>
<setting name="ShareDataProInstance" serializeAs="String">
<value>share DataPROInstance DataPROInstanceShared</value>
</setting>
<setting name="Db" serializeAs="String">
<value>.db</value>
</setting>
<setting name="LocalDbDataPROInstance" serializeAs="String">
<value>(localdb)\DataPROInstance</value>
</setting>
<setting name="DatabaseMigrationRequired" serializeAs="String">
<value>Database migration is required. This may take awhile.{0}Click OK to export data from previous database, or Cancel to postpone the update (this will require using the previous version of DataPRO until the update is completed manually at a more convenient time).</value>
</setting>
<setting name="Warning" serializeAs="String">
<value>Warning</value>
</setting>
<setting name="ActionRequired" serializeAs="String">
<value>Action required</value>
</setting>
<setting name="AttachEmptyDbOnCentralServer" serializeAs="String">
<value>An empty DataPROPre20 database must be attached on your central server.{0}Copy DataPROPre20.mdf and DataPROPre20_log.ldf from C:\DTS\DTS.Suite\&lt;version&gt;\DataPRO\db to your centralized server, and attach it.{0}Click OK when done or Cancel to continue using previous version of DataPRO.</value>
</setting>
<setting name="DatabaseImportCancelled" serializeAs="String">
<value>Database import was cancelled.{0}Previous version of DataPRO must be used (or blank local database may be used).</value>
</setting>
<setting name="DatabaseMigrationCancelled" serializeAs="String">
<value>Database migration was cancelled.{0}Previous version of DataPRO must be used (or blank local database may be used).</value>
</setting>
<setting name="DatabaseCopied" serializeAs="String">
<value>Database was successfully copied.</value>
</setting>
<setting name="Success" serializeAs="String">
<value>Success</value>
</setting>
<setting name="LocalDatabaseMigrationFailed" serializeAs="String">
<value>Local database migration has failed.{0}{0}The previous version of DataPRO must be used or this version can be used with its blank database.{0}{0}Please contact DTS Support.{0}{0}{1}{2}</value>
</setting>
<setting name="ImportChoice" serializeAs="String">
<value>The data from the previous version of DataPRO has been exported to {0}.{1}Importing this data into the new DataPRO database could take up to twice as long as the export just did.{1}Click OK to finish the migration, or Cancel to postpone the update (this will require using the previous version of DataPRO until the update is completed manually at a more convenient time).</value>
</setting>
<setting name="DatabaseVersionError" serializeAs="String">
<value>An error occurred while attempting to determine the previous database version. Database was not copied.{0}Please contact DTS support.</value>
</setting>
<setting name="DatabaseNotCopied" serializeAs="String">
<value>Database copy prior to migration has failed.{0}Previous version of DataPRO must be used. Please contact DTS Support.</value>
</setting>
<setting name="Pre20" serializeAs="String">
<value>Pre20</value>
</setting>
<setting name="DatabaseSwitchInstructions" serializeAs="String">
<value>The following steps are required and can be found in more detail in the DataPRO manual:{0}1) Backup the DataPRO database as DatePROPre20;{1}2) Detach the DataPRO database;{1}3) Restore the backup as DataPROPre20;{1}4) Copy DataPRO.mdf and DataPRO_log.ldf from C:\DTS\DTS.Suite\&lt;version&gt;\DataPRO\db to server;{1}5) Attach DataPRO database.{0}Click OK when all steps have been completed.</value>
</setting>
<setting name="DatabaseSwitchingRequired" serializeAs="String">
<value>Database migration is required.{0}This requires the following steps which can be found in more detail in the DataPRO manual:{0}1) Backup the centralized DataPRO database,{1}2) Detach the centralized DataPRO database,{1}3) Restore from the backup as DataPROPre20,{1}4) Copy DataPRO.mdf and DataPRO_log.ldf from C:\DTS\DTS.Suite\&lt;version&gt;\DataPRO\db,{1} 5) Attach DataPRO database.{0}Click OK to migrate the previous database, or Cancel to postpone the update (this will require using the previous version of DataPRO until the update is completed manually at a more convenient time).</value>
</setting>
<setting name="DetachDBsbat" serializeAs="String">
<value>DetachDBs.bat</value>
</setting>
<setting name="DataPROSQLFolder" serializeAs="String">
<value>DataPRO_SQL</value>
</setting>
<setting name="AttachDataPROPre20Remotebat" serializeAs="String">
<value>Attach_DataPROPre20_RemoteDB.bat</value>
</setting>
<setting name="SQLServerScriptsFolder" serializeAs="String">
<value>SQL Server Scripts</value>
</setting>
<setting name="AttachDataPRORemotebat" serializeAs="String">
<value>Attach_DataPRO_RemoteDB.bat</value>
</setting>
<setting name="AttachISORemotebat" serializeAs="String">
<value>Attach_ISO_RemoteDB.bat</value>
</setting>
<setting name="DetachRemoteDBbat" serializeAs="String">
<value>Detach_RemoteDB.bat</value>
</setting>
<setting name="BackupAlterDetachbat" serializeAs="String">
<value>Backup_Alter_Detach_RemoteDBs.bat</value>
</setting>
<setting name="RestoreAsDataPROPre20bat" serializeAs="String">
<value>Restore_As_DataPROPre20_RemoteDB.bat</value>
</setting>
<setting name="BackupBak" serializeAs="String">
<value>Backup.bak</value>
</setting>
<setting name="CentralizedDatabaseMigrationFailed" serializeAs="String">
<value>Database migration has failed.{0}{0}The previous version of DataPRO must be used with the previous database or this version can be used with a blank local database.{0}{0}Please contact DTS Support.{0}{0}{1}{2}</value>
</setting>
<setting name="Initial" serializeAs="String">
<value>Initial</value>
</setting>
<setting name="Backupbat" serializeAs="String">
<value>Backup_RemoteDB.bat</value>
</setting>
<setting name="NetworkError" serializeAs="String">
<value>Network error! {0}; Click 'OK' to retry or 'Abort' to terminate database setup.</value>
</setting>
<setting name="AccessError" serializeAs="String">
<value>Access error: {0}</value>
</setting>
<setting name="AccessRetry" serializeAs="String">
<value>To retry database migration, give this user Administrator privileges on the server and click 'OK'.</value>
</setting>
<setting name="DataPROInstallationCancelled" serializeAs="String">
<value>DataPRO installation was cancelled by user</value>
</setting>
<setting name="PreviousDatabaseNotCopied" serializeAs="String">
<value>Source database was not copied: </value>
</setting>
<setting name="ConfirmAbort" serializeAs="String">
<value>Are you sure you want to discontinue?</value>
</setting>
<setting name="DatabaseMigrationCompletedSuccessfully" serializeAs="String">
<value>Database migration completed successfully</value>
</setting>
<setting name="DatabaseStandAloneMigrationCancelled" serializeAs="String">
<value>Database migration was cancelled</value>
</setting>
<setting name="InstallerCustomActions" serializeAs="String">
<value>InstallerCustomActions</value>
</setting>
<setting name="ISOMMEDbLocation" serializeAs="String">
<value>ISO\mme_code.mdb</value>
</setting>
<setting name="SourceDbSameAsDestination" serializeAs="String">
<value>Source database is same as destination</value>
</setting>
<setting name="BlankDestinationDb" serializeAs="String">
<value>Destination database is blank and not allowed to be overwritten</value>
</setting>
<setting name="DataPROBlankMdf" serializeAs="String">
<value>DataPROBlank.mdf</value>
</setting>
<setting name="InvalidSourceDb" serializeAs="String">
<value>Invalid source database name</value>
</setting>
<setting name="LocalSourceDbToBeMigrated" serializeAs="String">
<value>Local source database to be migrated</value>
</setting>
<setting name="LocalSourceDbToBeMigratedVersion" serializeAs="String">
<value>Local source database to be migrated (Version {0})</value>
</setting>
<setting name="InvalidSourceDbVersion" serializeAs="String">
<value>Invalid source database version</value>
</setting>
<setting name="DbVersionsAreTheSame" serializeAs="String">
<value>Database versions are the same</value>
</setting>
<setting name="SourceDbVersionCannotBeGreaterThanDestination" serializeAs="String">
<value>Source database version cannot be greater than destination</value>
</setting>
<setting name="NetworkPathNotFound" serializeAs="String">
<value>The network path was not found</value>
</setting>
<setting name="ExceptionWhileUsingPrevDbStructure" serializeAs="String">
<value>Exception while using previous database structure: {0}</value>
</setting>
<setting name="ResultOnCentralServer" serializeAs="String">
<value>Result of querying tblDataPRODbVersion on central server is {0}</value>
</setting>
<setting name="ResultOnLocal" serializeAs="String">
<value>Result of querying tblDataPRODbVersion locally is {0}</value>
</setting>
<setting name="MigratingTempCentralizedDb" serializeAs="String">
<value>Migrating temporary centralized database from version {0} to {1}...</value>
</setting>
<setting name="DetachingTempLocalDb" serializeAs="String">
<value>Detaching temporary local database...</value>
</setting>
<setting name="MigratingTempLocalDb" serializeAs="String">
<value>Migrating temporary local database from version {0} to {1}...</value>
</setting>
<setting name="AttachingBlankDb" serializeAs="String">
<value>Attaching blank current database for migration...</value>
</setting>
<setting name="CopyingDataPRODb" serializeAs="String">
<value>Copying DataPRO database as {0}...</value>
</setting>
<setting name="WasCopied" serializeAs="String">
<value>{0} was copied as {1}</value>
</setting>
<setting name="AttachingRemoteISODb" serializeAs="String">
<value>Attaching remote ISO database...</value>
</setting>
<setting name="DeletingRemoteISOLog" serializeAs="String">
<value>Deleting remote ISO_log.ldf...</value>
</setting>
<setting name="CopyingISOToRemote" serializeAs="String">
<value>Copying newly-installed ISO.mdf to remote server...</value>
</setting>
<setting name="AttachingRemoteDb" serializeAs="String">
<value>Attaching remote {0} database...</value>
</setting>
<setting name="DeletingRemoteLog" serializeAs="String">
<value>Deleting remote {0}_Log.ldf..."</value>
</setting>
<setting name="CopyingNewDataPROMdfToRemote" serializeAs="String">
<value>Copying newly-installed DataPRO.mdf to remote server...</value>
</setting>
<setting name="AttachingRemotePre20Db" serializeAs="String">
<value>Attaching remote {0}Pre20 database...</value>
</setting>
<setting name="DeletingRemotePre20Log" serializeAs="String">
<value>Deleting remote {0}Pre20_Log.ldf...</value>
</setting>
<setting name="CopyingNewDataPROPre20MdfToRemote" serializeAs="String">
<value>Copying newly-installed DataPROPre20.mdf to remote server...</value>
</setting>
<setting name="MigratingPrevCentralizedDb" serializeAs="String">
<value>Migrating previous centralized database from version {0} to {1}...</value>
</setting>
<setting name="BackingUpRemoteDb" serializeAs="String">
<value>Backing up remote {0} database...</value>
</setting>
<setting name="DeletingRemoteDataPROBackupBak" serializeAs="String">
<value>Deleting remote DataPROBackup.bak...</value>
</setting>
<setting name="DetachingRemoteTempPre20Db" serializeAs="String">
<value>Detaching remote temporary {0}Pre20 database...</value>
</setting>
<setting name="MigratingPrevCentralizedDbToIntermediate" serializeAs="String">
<value>Migrating previous centralized database from version {0} to intermediate version {1}...</value>
</setting>
<setting name="RestoringRemoteDataPROAsPre20" serializeAs="String">
<value>Restoring remote DataPRO database as DataPROPre20...</value>
</setting>
<setting name="DeletingRemotePre20Mdf" serializeAs="String">
<value>Deleting remote {0}Pre20.mdf...</value>
</setting>
<setting name="BackingUpAlteringDetachingRemoteDbAndISO" serializeAs="String">
<value>Backing up, Altering, and Detaching remote {0} and ISO database...</value>
</setting>
<setting name="DeletingRemoteBackupBak" serializeAs="String">
<value>Deleting remote {0}Backup.bak ...</value>
</setting>
<setting name="BackingUpAlteringDetachingRemoteDb" serializeAs="String">
<value>Backing up, Altering, and Detaching remote {0} database...</value>
</setting>
<setting name="ImportingToNewCentralizedDb" serializeAs="String">
<value>Importing to new centralized database from {0}...</value>
</setting>
<setting name="ExportingPrevDb" serializeAs="String">
<value>Exporting previous database to {0}...</value>
</setting>
<setting name="MigratingPrevCentralizedDbFromVersion" serializeAs="String">
<value>Migrating previous centralized database from version {0}</value>
</setting>
<setting name="QueryingCentralizedDbVersion" serializeAs="String">
<value>Querying centralized database version...</value>
</setting>
<setting name="CopyingPrevLocalDbNoMigration" serializeAs="String">
<value>Copying previous local database; no migration is required...</value>
</setting>
<setting name="DetachingLocalISODb" serializeAs="String">
<value>Detaching local ISO database...</value>
</setting>
<setting name="MigratingPrevLocalDb" serializeAs="String">
<value>Migrating previous local database from version {0} to {1}...</value>
</setting>
<setting name="AttachingPrevLocalDb" serializeAs="String">
<value>Attaching copy of local source database...</value>
</setting>
<setting name="CopyingPrevLocalDb" serializeAs="String">
<value>Copying local source database...</value>
</setting>
<setting name="TempAttachingCopyPrevLocalDb" serializeAs="String">
<value>Temporarily attaching copy of local source database...</value>
</setting>
<setting name="ImportingToTempLocalDb" serializeAs="String">
<value>Importing to temporary local database from {0}...</value>
</setting>
<setting name="AttachingBlankLocalTempDb" serializeAs="String">
<value>Attaching new blank local temporary database for import from {0}...</value>
</setting>
<setting name="QueryingPrevLocalDbVersion" serializeAs="String">
<value>Querying local source database version...</value>
</setting>
<setting name="DataPROBlankLogLdf" serializeAs="String">
<value>DataPROBlank_log.ldf</value>
</setting>
<setting name="InvalidDestinationDb" serializeAs="String">
<value>Invalid destination database path</value>
</setting>
<setting name="DestinationPathIsNotAllowed" serializeAs="String">
<value>Destination database cannot be created in working directory</value>
</setting>
<setting name="Migrate" serializeAs="String">
<value>Migrate</value>
</setting>
<setting name="LocalDestDbPath" serializeAs="String">
<value>Local destination database path (Version will be {0})</value>
</setting>
<setting name="Quit" serializeAs="String">
<value>Quit</value>
</setting>
<setting name="WarningAllowStreamingModesWasNotMigrated" serializeAs="String">
<value>Warning: The AllowStreaming config setting was not migrated and has been set to False.{0}{0}An "Allow streaming modes" checkbox is now in the "Test setup settings" step of the "System Settings" tab.</value>
</setting>
<setting name="Initialize" serializeAs="String">
<value>Initialize</value>
</setting>
<setting name="LocalSourceDbToBeInitialized" serializeAs="String">
<value>Local source database to be initialized</value>
</setting>
<setting name="LocalDestDbToBeInitializedPath" serializeAs="String">
<value>Local destination database path</value>
</setting>
<setting name="DatabaseInitializationCompletedSuccessfully" serializeAs="String">
<value>Database initialization completed successfully</value>
</setting>
<setting name="DatabaseStandAloneInitializationCancelled" serializeAs="String">
<value>Database initialization was cancelled</value>
</setting>
<setting name="DatabaseInitializationVersionError" serializeAs="String">
<value>Invalid database version. Database initialization was not done.</value>
</setting>
<setting name="CreatingBackupDb" serializeAs="String">
<value>Creating a backup database...</value>
</setting>
<setting name="DetachingLocalMigratedDb" serializeAs="String">
<value>Detaching local {0} database...</value>
</setting>
<setting name="CentralizedDatabaseShouldBeBackedUp" serializeAs="String">
<value>Before proceeding with database migration, ensure that all data has been backed up. {0}</value>
</setting>
<setting name="CentralizedDatabaseMigrationCancelled" serializeAs="String">
<value>Database migration has been cancelled.</value>
</setting>
<setting name="DisplayDatabaseVersion" serializeAs="String">
<value>Database is version {0}</value>
</setting>
<setting name="NoMigrationNeeded" serializeAs="String">
<value>No migration was done.{0}Old db version: {1}; New db version: {2}</value>
</setting>
<setting name="InitializingDb" serializeAs="String">
<value>Initializing local database to be {0}-centric{1}...</value>
</setting>
<setting name="Aero" serializeAs="String">
<value>Aero</value>
</setting>
<setting name="Crash" serializeAs="String">
<value>Crash</value>
</setting>
<setting name="TSRAIR" serializeAs="String">
<value>TSR AIR</value>
</setting>
<setting name="ThirtySeconds" serializeAs="String">
<value> (this may take up to 30 seconds)</value>
</setting>
<setting name="DownloadFolder" serializeAs="String">
<value>DownloadFolder</value>
</setting>
<setting name="DataUpOneLevel" serializeAs="String">
<value>..\Data</value>
</setting>
<setting name="ConfigDidNotNeedToBeUpdated" serializeAs="String">
<value>DataPRO.exe.config did not need to be updated.</value>
</setting>
<setting name="ConfigWasUpdated" serializeAs="String">
<value>DataPRO.exe.config was updated from the {0} installation.</value>
</setting>
<setting name="UserSettings" serializeAs="String">
<value>userSettings</value>
</setting>
<setting name="Setting" serializeAs="String">
<value>DataPRO.exe</value>
</setting>
<setting name="NewSettingsCouldNotBeFound" serializeAs="String">
<value>Warning: DataPRO.exe.config was not updated because config settings from new version of DataPRO could not be found: {0}; {1}</value>
</setting>
<setting name="NewSettingsCouldNotBeProcessed" serializeAs="String">
<value>Warning: DataPRO.exe.config was not updated because config settings from new version of DataPRO could not be processed.</value>
</setting>
<setting name="ConfigMigrationStatus" serializeAs="String">
<value>Config migration status</value>
</setting>
<setting name="TSRAIRGoInstallationCompletedSuccessfully" serializeAs="String">
<value>TSR AIR Go installation completed successfully</value>
</setting>
</DBConfiguration.Properties.Settings>
</applicationSettings>
</configuration>

View File

@@ -0,0 +1,319 @@
using DTS.Common.Storage;
using DTS.Common.Enums;
using DBConfiguration.Properties;
using Microsoft.Win32;
using System.Diagnostics;
using System;
using System.Text;
using System.Windows.Forms;
using System.IO;
using DTS.Common.Utilities;
namespace DBConfiguration
{
public class CommonUtilities
{
public CommonUtilities()
{
log.Source = "DataPRODbMigratorInstaller";
}
private readonly EventLog log = new EventLog();
public void InitializeDbToTSRAIR(string targetDir)
{
var targetDbDir = $"{targetDir}\\{Settings.Default.LocalDbFolder}";
var scriptsDir = Path.Combine(targetDir, Settings.Default.ScriptsFolder);
DbOperations.Connection.DBName = "DataPRO"; //This cannot be changed during TSR AIR Go installation
ConfigInitializationHelper.UpdateTSRAIRAppSettings(targetDir, true);
var resultString = Attach(targetDbDir, scriptsDir);
DbOperations.Connection.Initialize(InitializationTypes.TSRAIR, targetDir);
_ = Detach(DbOperations.Connection.DBName, targetDbDir, scriptsDir);
MessageBox.Show(Settings.Default.TSRAIRGoInstallationCompletedSuccessfully,
Settings.Default.InstallationStatus,
MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1,
MessageBoxOptions.DefaultDesktopOnly);
}
public string Attach(string targetDbDir, string scriptsDir)
{
log.WriteEntry(Settings.Default.AttachingPrevLocalDb);
SetMigrationStatus(Settings.Default.AttachingPrevLocalDb);
var resultString = InstallDatabase(targetDbDir, DbOperations.Connection.DBName, scriptsDir);
return resultString;
}
public string InstallDatabase(string dBdir, string dbName, string scriptsDir)
{
string resultString = "";
try
{
DbOperations._usingCentralizedDB = false;
DbOperations._usingMSSQL = true;
DbOperations.Connection.Server = Settings.Default.LocalDbDataPROInstance;
DbOperations._usingNTLMAuthentication = true;
resultString = ProcessSqlLocalDbCommand(Settings.Default.StopDataProInstance);
if (resultString.Length != 0)
{
MessageBox.Show(resultString, Settings.Default.Warning, MessageBoxButtons.OK, MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button2, MessageBoxOptions.DefaultDesktopOnly);
}
resultString = ProcessSqlLocalDbCommand(Settings.Default.DeleteDataProInstance);
if (resultString.Length != 0)
{
MessageBox.Show(resultString, Settings.Default.Warning, MessageBoxButtons.OK, MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button2, MessageBoxOptions.DefaultDesktopOnly);
}
resultString = ProcessSqlLocalDbCommand(Settings.Default.CreateDataProInstance);
if (resultString.Length != 0)
{
MessageBox.Show(resultString, Settings.Default.Warning, MessageBoxButtons.OK, MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button2, MessageBoxOptions.DefaultDesktopOnly);
}
resultString = ProcessSqlLocalDbCommand(Settings.Default.StartDataProInstance);
if (resultString.Length != 0)
{
MessageBox.Show(resultString, Settings.Default.Warning, MessageBoxButtons.OK, MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button2, MessageBoxOptions.DefaultDesktopOnly);
}
Console.WriteLine("Attaching DataPRO");
//Attach the DataPRO database
var dbFileName = Path.Combine(dBdir, dbName) + Settings.Default.Mdf;
var logFileName = Path.Combine(dBdir, dbName) + Settings.Default.LogLdf;
Console.WriteLine($"dbFileName is {dbFileName}");
Console.WriteLine($"logFileName is {logFileName}");
Console.WriteLine($"_scriptsDir is {scriptsDir}");
resultString = AttachOrDetachDatabase(scriptsDir, dbName, dbFileName, logFileName, Settings.Default.AttachDBsbat);
if (resultString.Length != 0)
{
MessageBox.Show(resultString, Settings.Default.Warning, MessageBoxButtons.OK, MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button2, MessageBoxOptions.DefaultDesktopOnly);
}
Console.WriteLine("Attaching ISO");
//Attach the ISO database
dbFileName = Path.Combine(dBdir, Settings.Default.ISO) + Settings.Default.Mdf;
logFileName = Path.Combine(dBdir, Settings.Default.ISO) + Settings.Default.LogLdf;
resultString = AttachOrDetachDatabase(scriptsDir, Settings.Default.ISO, dbFileName, logFileName, Settings.Default.AttachDBsbat);
if (resultString.Length != 0)
{
MessageBox.Show(resultString, Settings.Default.Warning, MessageBoxButtons.OK, MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button2, MessageBoxOptions.DefaultDesktopOnly);
}
}
catch (Exception ex)
{
log.WriteEntry($"Exception while getting previous local database version: {ex.Message}; Stacktrace: {ex.StackTrace}");
throw;
}
return resultString;
}
public string Detach(string sourceDbName, string targetDbDir, string scriptsDir)
{
//Detach the databases
log.WriteEntry(string.Format(Settings.Default.DetachingLocalMigratedDb, sourceDbName));
SetMigrationStatus(string.Format(Settings.Default.DetachingLocalMigratedDb, sourceDbName));
var dbFileName = Path.Combine(targetDbDir, sourceDbName + Settings.Default.Mdf);
var logFileName = Path.Combine(targetDbDir, sourceDbName + Settings.Default.LogLdf);
var resultString = CommonUtilities.AttachOrDetachDatabase(scriptsDir, sourceDbName, dbFileName, logFileName, Settings.Default.DetachDBsbat);
if (resultString.Length != 0)
{
MessageBox.Show(resultString, Settings.Default.Warning, MessageBoxButtons.OK, MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button2, MessageBoxOptions.DefaultDesktopOnly);
}
log.WriteEntry(Settings.Default.DetachingLocalISODb);
SetMigrationStatus(Settings.Default.DetachingLocalISODb);
dbFileName = Path.Combine(targetDbDir, Settings.Default.ISO + Settings.Default.Mdf);
logFileName = Path.Combine(targetDbDir, Settings.Default.ISO + Settings.Default.LogLdf);
resultString = CommonUtilities.AttachOrDetachDatabase(scriptsDir, Settings.Default.ISO, dbFileName, logFileName, Settings.Default.DetachDBsbat);
return resultString;
}
public MigrationStatus SetMigrationStatus(string migrationStatus, bool output = false)
{
//Remove the previous status
SetStatus(string.Empty);
var migrationStatusClass = new MigrationStatus();
migrationStatusClass.StatusType = MigrationStatus.StatusTypes.MigrationStatus;
migrationStatusClass.StatusText = migrationStatus;
if (output)
{
Console.WriteLine(migrationStatus);
}
return migrationStatusClass;
}
private void SetStatus(string status, bool output = false)
{
var migrationStatusClass = new MigrationStatus();
migrationStatusClass.StatusType = MigrationStatus.StatusTypes.Status;
migrationStatusClass.StatusText = status;
if (output)
{
Console.WriteLine(status);
}
}
/// <summary>
/// Get the path to the latest version of SQL Server Express LocalDB
/// installed, and run the command passed in.
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
public string ProcessSqlLocalDbCommand(string command)
{
//SQL Server Express LocalDB 2014 is a Prerequisite of the DataPRO Installer,
//so it should be there unless it has been subsequently uninstalled.
var localDbPath = GetSqlServerLocalDBPath();
if (localDbPath == string.Empty)
{
log.WriteEntry($"localDbPath is empty");
//SQL Server LocalDb is not installed so display error and go away
return Settings.Default.SqlServerLocalDbNotInstalled;
}
var sqlLocalDbExeFileName = localDbPath + Settings.Default.SqlLocalDBExe;
log.WriteEntry($"sqlLocalDbExeFileName = {sqlLocalDbExeFileName}");
return SqlCommandProcessor(sqlLocalDbExeFileName, command);
}
public static string AttachOrDetachDatabase(string scriptsDir, string dbName, string sqlDbFileName, string sqlLogFileName, string attachOrDetach)
{
const string SqlCmdExe = "sqlcmd.exe";
var oDBCToolsPath = DTS.Common.Utils.Database.GetODBCToolsPath(null);
var fullSqlcmdPath = Path.Combine(oDBCToolsPath, SqlCmdExe); //e.g. $"\"C:\\Program Files\\Microsoft SQL Server\\Client SDK\\ODBC\\110\\Tools\\Binn\\sqlcmd.exe\""
var batchFileName = Path.Combine(scriptsDir, attachOrDetach);
return BatchCommandProcessor(batchFileName, dbName, sqlDbFileName, sqlLogFileName, fullSqlcmdPath);
}
private string GetSqlServerLocalDBPath()
{
var highestVersionInstalledPath = string.Empty;
var rk = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
var sk1 = rk.OpenSubKey(Settings.Default.RegistrySoftwareMicrosoftMicrosoftSQLServerLocalDBInstalledVersions);
if (sk1 == null)
{
log.WriteEntry($"sk1 is null; returning string.Empty");
return string.Empty;
}
var maxProductVersion = 0.0;
foreach (var productSubKeyName in sk1.GetSubKeyNames())
{
log.WriteEntry($"productSubKeyName is {productSubKeyName}");
var thisVersion = -1D;
if (!double.TryParse(productSubKeyName,
System.Globalization.NumberStyles.Float | System.Globalization.NumberStyles.AllowThousands,
System.Globalization.CultureInfo.InvariantCulture,
out thisVersion)) continue;
log.WriteEntry($"thisVersion is {thisVersion}/maxProductVersion is {maxProductVersion}");
if (thisVersion < maxProductVersion) continue;
maxProductVersion = thisVersion;
var newKey = sk1.OpenSubKey(productSubKeyName);
if (newKey == null)
{
log.WriteEntry($"newKey is null (productSubKeyName is {productSubKeyName}); continuing");
continue;
}
var val = newKey.GetValue(Settings.Default.InstanceAPIPath, -1, RegistryValueOptions.None).ToString();
log.WriteEntry($"val is {val}");
if ((val == "-1") || (!val.EndsWith(Settings.Default.SqlUserInstanceDll))) continue;
log.WriteEntry($"highestVersionInstalledPath = {highestVersionInstalledPath}");
highestVersionInstalledPath = val.Substring(0, val.Length - Settings.Default.SqlUserInstanceDll.Length);
}
log.WriteEntry($"Returning {highestVersionInstalledPath.Replace(Settings.Default.LocalDB, Settings.Default.Tools)}");
return highestVersionInstalledPath.Replace(Settings.Default.LocalDB, Settings.Default.Tools);
}
public static StringBuilder sb = new StringBuilder();
public static void OutputHandler(object sendingProcess, DataReceivedEventArgs outLine)
{
if (outLine.Data != null)
{
if (string.IsNullOrWhiteSpace(outLine.Data))
{
sb.Append(Environment.NewLine);
}
sb.Append(outLine.Data);
}
}
public static string SqlCommandProcessor(string sqlLocalDbExeFileName, string command)
{
var resultString = string.Empty;
sb.Clear();
var process = new Process
{
StartInfo =
{
FileName = sqlLocalDbExeFileName,
Arguments = command,
LoadUserProfile = true,
UseShellExecute = false,
RedirectStandardOutput = true,
RedirectStandardError = true,
CreateNoWindow = true
}
};
//* Set ONLY ONE handler here.
process.OutputDataReceived += new DataReceivedEventHandler(OutputHandler);
//* Start process
process.Start();
//* Read one element asynchronously
process.BeginErrorReadLine();
//* Read the other one synchronously
var output = process.StandardOutput.ReadToEnd();
Console.WriteLine(output);
process.WaitForExit();
if (sb.Length > 0)
{
resultString = sb.ToString();
}
return resultString;
}
public static string BatchCommandProcessor(string batchFileName, string dbName, string sqlDbFileName, string sqlLogFileName,
string fullSqlcmdPath)
{
var resultString = string.Empty;
sb.Clear();
var process = new Process
{
StartInfo =
{
FileName = batchFileName,
Arguments = dbName + " " + "\"" + sqlDbFileName + "\"" + " " + "\"" + sqlLogFileName + "\"" + " " + "\"" + fullSqlcmdPath + "\"",
LoadUserProfile = true,
UseShellExecute = false,
RedirectStandardOutput = true,
RedirectStandardError = true,
CreateNoWindow = true
}
};
//* Set ONLY ONE handler here.
process.OutputDataReceived += new DataReceivedEventHandler(OutputHandler);
//* Start process
process.Start();
//* Read one element asynchronously
process.BeginErrorReadLine();
//* Read the other one synchronously
var output = process.StandardOutput.ReadToEnd();
Console.WriteLine(output);
process.WaitForExit();
if (sb.Length > 0)
{
resultString = sb.ToString();
}
return resultString;
}
}
}

View File

@@ -0,0 +1,112 @@
//#define DEBUG
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace DBConfiguration
{
static class DBConfig
{
[DllImport("kernel32.dll")]
static extern IntPtr GetConsoleWindow();
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
const int SW_HIDE = 0;
const int SW_SHOW = 5;
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] args)
{
var targetDir = string.Empty;
var productVersion = new Version();
var noUI = string.Empty;
var architectureVersion = string.Empty;
var sourcePath = string.Empty;
var destPath = string.Empty;
var handle = GetConsoleWindow();
var tsrAirGo = false;
#if DEBUG
//To enable this section, check the "Define DEBUG constant" checkbox in the Build
//step of the Properties of the DBConfiguration project.
//this should be a real version installed on your system.
//it is what we are simulating migrating *to*, so install it with the migration check off
//if you are testing *from*, make sure to have a previous and in-the-registry copy as well
var _majorMinorVersion = "4.4.309";
var version = _majorMinorVersion + ".52976";
targetDir = "D:\\DTS\\DTS.Suite\\" + _majorMinorVersion + "\\DataPRO";
productVersion = new Version(version);
//Use this to test the TSR AIR Go installer
tsrAirGo = true;
#else
if (args.Length == 0)
{
//Don't display the command prompt window while processing (but see below)
ShowWindow(handle, SW_HIDE);
noUI = "STANDALONE";
}
else if (args.Length == 2)
{
//Display the command prompt window during and after processing.
ShowWindow(handle, SW_SHOW);
noUI = "STANDALONECMD";
sourcePath = args[0];
destPath = args[1];
}
else
{
//Don't display the command prompt window while processing from installer.
ShowWindow(handle, SW_HIDE);
for (var i = 0; i < args.Length; i++)
{
switch (i)
{
case 0:
targetDir = args[i];
break;
case 1:
productVersion = new Version(args[i]);
break;
case 2:
noUI = args[i];
break;
case 3:
if (bool.TryParse(args[i], out var b))
{
tsrAirGo = b;
}
break;
}
}
}
#endif
if (noUI != "TRUE")
{
if (tsrAirGo)
{
var commonUtilities = new CommonUtilities();
commonUtilities.InitializeDbToTSRAIR(targetDir);
}
else
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new DBTypeChoice(targetDir, productVersion, noUI, sourcePath, destPath));
if (args.Length == 0)
{
//If run in a command prompt window, don't close (the window will
//flash briefly if run by double-clicking DBConfiguration.exe).
ShowWindow(handle, SW_SHOW);
}
}
}
}
}
}

View File

@@ -0,0 +1,201 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{4C8891C6-24A7-47D8-8AAD-CEF2243A6202}</ProjectGuid>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>DBConfiguration</RootNamespace>
<AssemblyName>DBConfiguration</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<SccProjectName>
</SccProjectName>
<SccLocalPath>
</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>
</SccProvider>
<TargetFrameworkProfile />
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<StartupObject />
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.Data.SQLite">
<HintPath>..\..\..\..\Common\DTS.Common\lib\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="CommonUtilities.cs" />
<Compile Include="DBTypeChoice.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="DBTypeChoice.Designer.cs">
<DependentUpon>DBTypeChoice.cs</DependentUpon>
</Compile>
<Compile Include="DBConfig.cs" />
<Compile Include="MigrationStatus.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="DBTypeChoice.resx">
<DependentUpon>DBTypeChoice.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config">
<SubType>Designer</SubType>
</None>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\Common\DTS.Common.Storage\DTS.Common.Storage.csproj">
<Project>{e3be457c-0ac7-4a9c-bc81-eafeb3217878}</Project>
<Name>DTS.Common.Storage</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Common\DTS.Common.Utilities\DTS.Common.Utilities.csproj">
<Project>{d6da1b74-c711-43c2-91b1-1908a8d04dbf}</Project>
<Name>DTS.Common.Utilities</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Common\DTS.Common\DTS.Common.csproj">
<Project>{f7a0804f-61a4-40ae-83d0-f1137622b592}</Project>
<Name>DTS.Common</Name>
</ProjectReference>
<ProjectReference Include="..\..\DatabaseImporter\ConfigToDb\ConfigToDb.csproj">
<Project>{98a0afb3-7bbf-4e43-8c5b-552d69c8d3a9}</Project>
<Name>ConfigToDb</Name>
</ProjectReference>
<ProjectReference Include="..\..\DatabaseImporter\DatabaseImport\DatabaseImport.csproj">
<Project>{00b5442e-2279-47ae-8015-6db0ffeb6d88}</Project>
<Name>DatabaseImport</Name>
</ProjectReference>
<ProjectReference Include="..\..\PreviousDBVersions\Version57\DatabaseExport\DatabaseExport.csproj">
<Project>{0e52df76-b8a7-4c69-981c-cdc27b7ee5a9}</Project>
<Name>DatabaseExport</Name>
</ProjectReference>
<ProjectReference Include="..\Common\Installer.Common.csproj">
<Project>{7a025307-d06e-48ff-a443-dcd16530a6dd}</Project>
<Name>Installer.Common</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.5.2">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4.5.2 %28x86 and x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>if not exist "db" mkdir "db"
copy /y "$(SolutionDir)\..\Common\DTS.Common.Storage\DataPRO.mdf" "db\DataPROBlank.mdf"
copy /y "$(SolutionDir)\..\Common\DTS.Common.Storage\DataPRO_log.ldf" "db\DataPROBlank_log.ldf"
call $(SolutionDir)RobocopyWrapper.bat "$(SolutionDir)\..\Common\DTS.Common.Storage" "db" "mdf"
call $(SolutionDir)RobocopyWrapper.bat "$(SolutionDir)\..\Common\DTS.Common.Storage" "db" "ldf"
if not exist "ISO" mkdir "ISO"
call $(SolutionDir)RobocopyWrapper.bat "$(SolutionDir)\..\Common\DTS.Common.ISO\DBFiles" "ISO" "mdb"
if not exist "SQL Server Scripts" mkdir "SQL Server Scripts"
call $(SolutionDir)RobocopyWrapper.bat "$(SolutionDir)\..\Common\DTS.Common.Storage" "SQL Server Scripts" "sql"
call $(SolutionDir)RobocopyWrapper.bat "$(SolutionDir)\..\Common\DTS.Common.Storage" "SQL Server Scripts" "bat"
copy /y "$(SolutionDir)\..\DataPRO\SQLiteInterop\$(Platform)\SQLite.Interop.dll"
</PostBuildEvent>
</PropertyGroup>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@@ -0,0 +1,463 @@
namespace DBConfiguration
{
partial class DBTypeChoice
{
/// <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(DBTypeChoice));
this.lblSelectType = new System.Windows.Forms.Label();
this.rbLocal = new System.Windows.Forms.RadioButton();
this.rbCentralized = new System.Windows.Forms.RadioButton();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.rbBoth = new System.Windows.Forms.RadioButton();
this.lblDBHostname = new System.Windows.Forms.Label();
this.lblDBPassword = new System.Windows.Forms.Label();
this.lblDBName = new System.Windows.Forms.Label();
this.tbDBHostname = new System.Windows.Forms.TextBox();
this.tbDBPassword = new System.Windows.Forms.TextBox();
this.tbDBName = new System.Windows.Forms.TextBox();
this.btnOK = new System.Windows.Forms.Button();
this.cbShowPassword = new System.Windows.Forms.CheckBox();
this.cbUseNTLMAuthentication = new System.Windows.Forms.CheckBox();
this.lblDBUser = new System.Windows.Forms.Label();
this.tbDBUser = new System.Windows.Forms.TextBox();
this.btnCancel = new System.Windows.Forms.Button();
this.btnBrowseDestinationDB = new System.Windows.Forms.Button();
this.tbDestinationDB = new System.Windows.Forms.TextBox();
this.lblDestinationDB = new System.Windows.Forms.Label();
this.btnBrowseSourceDB = new System.Windows.Forms.Button();
this.tbSourceDB = new System.Windows.Forms.TextBox();
this.lblSourceDB = new System.Windows.Forms.Label();
this.gbMigrateOrInit = new System.Windows.Forms.GroupBox();
this.rbNoneOfTheAbove = new System.Windows.Forms.RadioButton();
this.rbTSRAIR = new System.Windows.Forms.RadioButton();
this.rbCrash = new System.Windows.Forms.RadioButton();
this.rbAero = new System.Windows.Forms.RadioButton();
this.rbMigrateLocal = new System.Windows.Forms.RadioButton();
this.cbCopyConfig = new System.Windows.Forms.CheckBox();
this.groupBox1.SuspendLayout();
this.gbMigrateOrInit.SuspendLayout();
this.SuspendLayout();
//
// lblSelectType
//
this.lblSelectType.AutoSize = true;
this.lblSelectType.Location = new System.Drawing.Point(24, 28);
this.lblSelectType.Name = "lblSelectType";
this.lblSelectType.Size = new System.Drawing.Size(227, 13);
this.lblSelectType.TabIndex = 0;
this.lblSelectType.Text = "The following database properties will be used:";
//
// rbLocal
//
this.rbLocal.AutoSize = true;
this.rbLocal.Location = new System.Drawing.Point(12, 19);
this.rbLocal.Name = "rbLocal";
this.rbLocal.Size = new System.Drawing.Size(98, 17);
this.rbLocal.TabIndex = 1;
this.rbLocal.Text = "Local database";
this.rbLocal.UseVisualStyleBackColor = true;
this.rbLocal.CheckedChanged += new System.EventHandler(this.rbLocal_CheckedChanged);
//
// rbCentralized
//
this.rbCentralized.AutoSize = true;
this.rbCentralized.Location = new System.Drawing.Point(11, 51);
this.rbCentralized.Name = "rbCentralized";
this.rbCentralized.Size = new System.Drawing.Size(124, 17);
this.rbCentralized.TabIndex = 2;
this.rbCentralized.Text = "Centralized database";
this.rbCentralized.UseVisualStyleBackColor = true;
this.rbCentralized.CheckedChanged += new System.EventHandler(this.rbCentralized_CheckedChanged);
//
// groupBox1
//
this.groupBox1.Controls.Add(this.rbBoth);
this.groupBox1.Controls.Add(this.rbCentralized);
this.groupBox1.Controls.Add(this.rbLocal);
this.groupBox1.Location = new System.Drawing.Point(27, 53);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(145, 106);
this.groupBox1.TabIndex = 3;
this.groupBox1.TabStop = false;
//
// rbBoth
//
this.rbBoth.AutoSize = true;
this.rbBoth.Location = new System.Drawing.Point(12, 83);
this.rbBoth.Name = "rbBoth";
this.rbBoth.Size = new System.Drawing.Size(47, 17);
this.rbBoth.TabIndex = 3;
this.rbBoth.TabStop = true;
this.rbBoth.Text = "Both";
this.rbBoth.UseVisualStyleBackColor = true;
this.rbBoth.CheckedChanged += new System.EventHandler(this.rbBoth_CheckedChanged);
//
// lblDBHostname
//
this.lblDBHostname.AutoSize = true;
this.lblDBHostname.Location = new System.Drawing.Point(57, 174);
this.lblDBHostname.Name = "lblDBHostname";
this.lblDBHostname.Size = new System.Drawing.Size(105, 13);
this.lblDBHostname.TabIndex = 7;
this.lblDBHostname.Text = "Database hostname:";
//
// lblDBPassword
//
this.lblDBPassword.AutoSize = true;
this.lblDBPassword.Location = new System.Drawing.Point(77, 333);
this.lblDBPassword.Name = "lblDBPassword";
this.lblDBPassword.Size = new System.Drawing.Size(104, 13);
this.lblDBPassword.TabIndex = 8;
this.lblDBPassword.Text = "Database password:";
//
// lblDBName
//
this.lblDBName.AutoSize = true;
this.lblDBName.Location = new System.Drawing.Point(57, 218);
this.lblDBName.Name = "lblDBName";
this.lblDBName.Size = new System.Drawing.Size(85, 13);
this.lblDBName.TabIndex = 9;
this.lblDBName.Text = "Database name:";
//
// tbDBHostname
//
this.tbDBHostname.Location = new System.Drawing.Point(60, 190);
this.tbDBHostname.Name = "tbDBHostname";
this.tbDBHostname.Size = new System.Drawing.Size(389, 20);
this.tbDBHostname.TabIndex = 10;
this.tbDBHostname.TextChanged += new System.EventHandler(this.tbDBHostname_TextChanged);
//
// tbDBPassword
//
this.tbDBPassword.Location = new System.Drawing.Point(80, 349);
this.tbDBPassword.Name = "tbDBPassword";
this.tbDBPassword.Size = new System.Drawing.Size(365, 20);
this.tbDBPassword.TabIndex = 11;
this.tbDBPassword.TextChanged += new System.EventHandler(this.tbDBPassword_TextChanged);
//
// tbDBName
//
this.tbDBName.Location = new System.Drawing.Point(60, 234);
this.tbDBName.Name = "tbDBName";
this.tbDBName.Size = new System.Drawing.Size(389, 20);
this.tbDBName.TabIndex = 12;
this.tbDBName.TextChanged += new System.EventHandler(this.tbDBName_TextChanged);
//
// btnOK
//
this.btnOK.Location = new System.Drawing.Point(98, 385);
this.btnOK.Name = "btnOK";
this.btnOK.Size = new System.Drawing.Size(95, 33);
this.btnOK.TabIndex = 13;
this.btnOK.Text = "OK";
this.btnOK.UseVisualStyleBackColor = true;
this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
//
// cbShowPassword
//
this.cbShowPassword.AutoSize = true;
this.cbShowPassword.Location = new System.Drawing.Point(344, 372);
this.cbShowPassword.Name = "cbShowPassword";
this.cbShowPassword.Size = new System.Drawing.Size(101, 17);
this.cbShowPassword.TabIndex = 14;
this.cbShowPassword.TabStop = false;
this.cbShowPassword.Text = "Show password";
this.cbShowPassword.UseVisualStyleBackColor = true;
this.cbShowPassword.CheckedChanged += new System.EventHandler(this.cbShowPassword_CheckedChanged);
//
// cbUseNTLMAuthentication
//
this.cbUseNTLMAuthentication.AutoSize = true;
this.cbUseNTLMAuthentication.Location = new System.Drawing.Point(60, 267);
this.cbUseNTLMAuthentication.Name = "cbUseNTLMAuthentication";
this.cbUseNTLMAuthentication.Size = new System.Drawing.Size(148, 17);
this.cbUseNTLMAuthentication.TabIndex = 15;
this.cbUseNTLMAuthentication.Text = "Use NTLM authentication";
this.cbUseNTLMAuthentication.UseVisualStyleBackColor = true;
this.cbUseNTLMAuthentication.CheckedChanged += new System.EventHandler(this.cbUseNTLMAuthentication_CheckedChanged);
//
// lblDBUser
//
this.lblDBUser.AutoSize = true;
this.lblDBUser.Location = new System.Drawing.Point(77, 287);
this.lblDBUser.Name = "lblDBUser";
this.lblDBUser.Size = new System.Drawing.Size(76, 13);
this.lblDBUser.TabIndex = 16;
this.lblDBUser.Text = "Database user";
//
// tbDBUser
//
this.tbDBUser.Location = new System.Drawing.Point(80, 303);
this.tbDBUser.Name = "tbDBUser";
this.tbDBUser.Size = new System.Drawing.Size(365, 20);
this.tbDBUser.TabIndex = 17;
this.tbDBUser.TextChanged += new System.EventHandler(this.tbDBUser_TextChanged);
//
// btnCancel
//
this.btnCancel.Location = new System.Drawing.Point(243, 385);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(95, 33);
this.btnCancel.TabIndex = 21;
this.btnCancel.Text = "Abort";
this.btnCancel.UseVisualStyleBackColor = true;
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
//
// btnBrowseDestinationDB
//
this.btnBrowseDestinationDB.Location = new System.Drawing.Point(618, 279);
this.btnBrowseDestinationDB.Name = "btnBrowseDestinationDB";
this.btnBrowseDestinationDB.Size = new System.Drawing.Size(75, 23);
this.btnBrowseDestinationDB.TabIndex = 33;
this.btnBrowseDestinationDB.Text = "Browse...";
this.btnBrowseDestinationDB.UseVisualStyleBackColor = true;
this.btnBrowseDestinationDB.Visible = false;
this.btnBrowseDestinationDB.Click += new System.EventHandler(this.btnBrowseDestinationDB_Click_1);
//
// tbDestinationDB
//
this.tbDestinationDB.Location = new System.Drawing.Point(204, 279);
this.tbDestinationDB.Name = "tbDestinationDB";
this.tbDestinationDB.Size = new System.Drawing.Size(401, 20);
this.tbDestinationDB.TabIndex = 32;
this.tbDestinationDB.Visible = false;
this.tbDestinationDB.TextChanged += new System.EventHandler(this.tbDestinationDB_TextChanged_1);
//
// lblDestinationDB
//
this.lblDestinationDB.AutoSize = true;
this.lblDestinationDB.Location = new System.Drawing.Point(204, 262);
this.lblDestinationDB.Name = "lblDestinationDB";
this.lblDestinationDB.Size = new System.Drawing.Size(158, 13);
this.lblDestinationDB.TabIndex = 31;
this.lblDestinationDB.Text = "Local destination database path";
this.lblDestinationDB.Visible = false;
//
// btnBrowseSourceDB
//
this.btnBrowseSourceDB.Location = new System.Drawing.Point(618, 234);
this.btnBrowseSourceDB.Name = "btnBrowseSourceDB";
this.btnBrowseSourceDB.Size = new System.Drawing.Size(75, 23);
this.btnBrowseSourceDB.TabIndex = 30;
this.btnBrowseSourceDB.Text = "Browse...";
this.btnBrowseSourceDB.UseVisualStyleBackColor = true;
this.btnBrowseSourceDB.Visible = false;
this.btnBrowseSourceDB.Click += new System.EventHandler(this.btnBrowseSourceDB_Click_1);
//
// tbSourceDB
//
this.tbSourceDB.Location = new System.Drawing.Point(204, 234);
this.tbSourceDB.Name = "tbSourceDB";
this.tbSourceDB.Size = new System.Drawing.Size(401, 20);
this.tbSourceDB.TabIndex = 29;
this.tbSourceDB.Visible = false;
this.tbSourceDB.TextChanged += new System.EventHandler(this.tbSourceDB_TextChanged_1);
//
// lblSourceDB
//
this.lblSourceDB.AutoSize = true;
this.lblSourceDB.Location = new System.Drawing.Point(204, 218);
this.lblSourceDB.Name = "lblSourceDB";
this.lblSourceDB.Size = new System.Drawing.Size(185, 13);
this.lblSourceDB.TabIndex = 28;
this.lblSourceDB.Text = "Local source database to be migrated";
this.lblSourceDB.Visible = false;
//
// gbMigrateOrInit
//
this.gbMigrateOrInit.Controls.Add(this.cbCopyConfig);
this.gbMigrateOrInit.Controls.Add(this.rbNoneOfTheAbove);
this.gbMigrateOrInit.Controls.Add(this.rbTSRAIR);
this.gbMigrateOrInit.Controls.Add(this.rbCrash);
this.gbMigrateOrInit.Controls.Add(this.rbAero);
this.gbMigrateOrInit.Controls.Add(this.rbMigrateLocal);
this.gbMigrateOrInit.Location = new System.Drawing.Point(254, 28);
this.gbMigrateOrInit.Margin = new System.Windows.Forms.Padding(2);
this.gbMigrateOrInit.Name = "gbMigrateOrInit";
this.gbMigrateOrInit.Padding = new System.Windows.Forms.Padding(2);
this.gbMigrateOrInit.Size = new System.Drawing.Size(350, 149);
this.gbMigrateOrInit.TabIndex = 34;
this.gbMigrateOrInit.TabStop = false;
//
// rbNoneOfTheAbove
//
this.rbNoneOfTheAbove.AutoSize = true;
this.rbNoneOfTheAbove.Location = new System.Drawing.Point(12, 121);
this.rbNoneOfTheAbove.Margin = new System.Windows.Forms.Padding(2);
this.rbNoneOfTheAbove.Name = "rbNoneOfTheAbove";
this.rbNoneOfTheAbove.Size = new System.Drawing.Size(145, 17);
this.rbNoneOfTheAbove.TabIndex = 4;
this.rbNoneOfTheAbove.TabStop = true;
this.rbNoneOfTheAbove.Text = "Start with blank database";
this.rbNoneOfTheAbove.UseVisualStyleBackColor = true;
this.rbNoneOfTheAbove.CheckedChanged += new System.EventHandler(this.rbNoneOfTheAbove_CheckedChanged);
//
// rbTSRAIR
//
this.rbTSRAIR.AutoSize = true;
this.rbTSRAIR.Location = new System.Drawing.Point(12, 99);
this.rbTSRAIR.Margin = new System.Windows.Forms.Padding(2);
this.rbTSRAIR.Name = "rbTSRAIR";
this.rbTSRAIR.Size = new System.Drawing.Size(206, 17);
this.rbTSRAIR.TabIndex = 3;
this.rbTSRAIR.TabStop = true;
this.rbTSRAIR.Text = "Initialize database to TSR AIR settings";
this.rbTSRAIR.UseVisualStyleBackColor = true;
this.rbTSRAIR.CheckedChanged += new System.EventHandler(this.rbTSRAIR_CheckedChanged);
//
// rbCrash
//
this.rbCrash.AutoSize = true;
this.rbCrash.Location = new System.Drawing.Point(12, 77);
this.rbCrash.Margin = new System.Windows.Forms.Padding(2);
this.rbCrash.Name = "rbCrash";
this.rbCrash.Size = new System.Drawing.Size(190, 17);
this.rbCrash.TabIndex = 2;
this.rbCrash.TabStop = true;
this.rbCrash.Text = "Initialize database to Crash settings";
this.rbCrash.UseVisualStyleBackColor = true;
this.rbCrash.CheckedChanged += new System.EventHandler(this.rbCrash_CheckedChanged);
//
// rbAero
//
this.rbAero.AutoSize = true;
this.rbAero.Location = new System.Drawing.Point(12, 55);
this.rbAero.Margin = new System.Windows.Forms.Padding(2);
this.rbAero.Name = "rbAero";
this.rbAero.Size = new System.Drawing.Size(185, 17);
this.rbAero.TabIndex = 1;
this.rbAero.TabStop = true;
this.rbAero.Text = "Initialize database to Aero settings";
this.rbAero.UseVisualStyleBackColor = true;
this.rbAero.CheckedChanged += new System.EventHandler(this.rbAero_CheckedChanged);
//
// rbMigrateLocal
//
this.rbMigrateLocal.AutoSize = true;
this.rbMigrateLocal.Location = new System.Drawing.Point(12, 11);
this.rbMigrateLocal.Margin = new System.Windows.Forms.Padding(2);
this.rbMigrateLocal.Name = "rbMigrateLocal";
this.rbMigrateLocal.Size = new System.Drawing.Size(326, 17);
this.rbMigrateLocal.TabIndex = 0;
this.rbMigrateLocal.TabStop = true;
this.rbMigrateLocal.Text = "Copy data from previous Local database to new Local database";
this.rbMigrateLocal.UseVisualStyleBackColor = true;
this.rbMigrateLocal.CheckedChanged += new System.EventHandler(this.rbMigrateLocal_CheckedChanged);
//
// cbCopyConfig
//
this.cbCopyConfig.AutoSize = true;
this.cbCopyConfig.Checked = true;
this.cbCopyConfig.CheckState = System.Windows.Forms.CheckState.Checked;
this.cbCopyConfig.Location = new System.Drawing.Point(39, 37);
this.cbCopyConfig.Name = "cbCopyConfig";
this.cbCopyConfig.Size = new System.Drawing.Size(232, 17);
this.cbCopyConfig.TabIndex = 5;
this.cbCopyConfig.Text = "Copy configuration from previous installation";
this.cbCopyConfig.UseVisualStyleBackColor = true;
//
// DBTypeChoice
//
this.AcceptButton = this.btnOK;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(707, 485);
this.ControlBox = false;
this.Controls.Add(this.gbMigrateOrInit);
this.Controls.Add(this.btnBrowseDestinationDB);
this.Controls.Add(this.tbDestinationDB);
this.Controls.Add(this.lblDestinationDB);
this.Controls.Add(this.btnBrowseSourceDB);
this.Controls.Add(this.tbSourceDB);
this.Controls.Add(this.lblSourceDB);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.tbDBUser);
this.Controls.Add(this.lblDBUser);
this.Controls.Add(this.cbUseNTLMAuthentication);
this.Controls.Add(this.cbShowPassword);
this.Controls.Add(this.btnOK);
this.Controls.Add(this.tbDBName);
this.Controls.Add(this.tbDBPassword);
this.Controls.Add(this.tbDBHostname);
this.Controls.Add(this.lblDBName);
this.Controls.Add(this.lblDBPassword);
this.Controls.Add(this.lblDBHostname);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.lblSelectType);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "DBTypeChoice";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "DataPRO Database Information";
this.TopMost = true;
this.Load += new System.EventHandler(this.DBTypeChoice_Load);
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.gbMigrateOrInit.ResumeLayout(false);
this.gbMigrateOrInit.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label lblSelectType;
private System.Windows.Forms.RadioButton rbLocal;
private System.Windows.Forms.RadioButton rbCentralized;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Label lblDBHostname;
private System.Windows.Forms.Label lblDBPassword;
private System.Windows.Forms.Label lblDBName;
private System.Windows.Forms.TextBox tbDBHostname;
private System.Windows.Forms.TextBox tbDBPassword;
private System.Windows.Forms.TextBox tbDBName;
private System.Windows.Forms.Button btnOK;
private System.Windows.Forms.CheckBox cbShowPassword;
private System.Windows.Forms.CheckBox cbUseNTLMAuthentication;
private System.Windows.Forms.Label lblDBUser;
private System.Windows.Forms.TextBox tbDBUser;
private System.Windows.Forms.RadioButton rbBoth;
private System.Windows.Forms.Button btnCancel;
private System.Windows.Forms.Button btnBrowseDestinationDB;
private System.Windows.Forms.TextBox tbDestinationDB;
private System.Windows.Forms.Label lblDestinationDB;
private System.Windows.Forms.Button btnBrowseSourceDB;
private System.Windows.Forms.TextBox tbSourceDB;
private System.Windows.Forms.Label lblSourceDB;
private System.Windows.Forms.GroupBox gbMigrateOrInit;
private System.Windows.Forms.RadioButton rbTSRAIR;
private System.Windows.Forms.RadioButton rbCrash;
private System.Windows.Forms.RadioButton rbAero;
private System.Windows.Forms.RadioButton rbMigrateLocal;
private System.Windows.Forms.RadioButton rbNoneOfTheAbove;
private System.Windows.Forms.CheckBox cbCopyConfig;
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,667 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAUAEBAAAAEAIABoBAAAVgAAABgYAAABACAAiAkAAL4EAAAgIAAAAQAgAKgQAABGDgAAMDAAAAEA
IACoJQAA7h4AADw8AAABACAASDoAAJZEAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAABgDwAAYA8AAAAA
AAAAAAAAt38S/7d/Ev+3fxL/t38S/7eAE/+1ewv/s3gF/7R6CP+zeAX/sncC/7d/Ef+4gBP/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7eAE/+2fQ3/v40t/9CrZf/ZvIP/1LJw/8ykVv+4fxL/tXwM/7iA
E/+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+2fhD/uYIX/9Owbf+/jSz/2r2G/+PNov/YuXz/5dGp/7yI
Iv+2fQ7/t38T/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38T/7iAE//BkDL/x5tF/+HKnP/UsnD/vYol/+TP
p//RrWb/s3cC/7iBFf+3fxL/t38S/7d/Ev+3fxL/t38S/7Z9D/+2fQ//tn4P/7R5CP/PqmL/0q9r/8ec
SP/SsGz/tn8U/7Z+EP+3fxP/t38S/7d/Ev+3fxL/t38S/7Z+EP+9hx7/vokg/7d/Ef+8hRv/u4IU/72H
Hf/Bjir/uYAR/8WSLf+4gBL/t34R/7d/Ev+3fxL/t38S/7iBFP+wdgX/3rVg/961YP+oagD/0qRH/+bB
cf/ft2P/2a1U/+S+bv/qxnn/3bNd/7N5Cf+4gBT/t38S/7d/Ev+4gRT/sXcH/9uxWv/tyn7/vYcd/8yc
PP/01Iz/7c2D/8ubOv/syn7/zp9A/+zIff+zeQr/uIAT/7d/Ev+3fxL/uIEU/7F2Bv/dtWH/6sd8/+fE
d//iu2n/68p//+S+bf/kvm3/6sl9/9OpT//ryoD/s3kJ/7iAFP+3fxL/t38S/7iAFP+zeQr/0qRG/+S7
ZP/ds1z/0aJC/+S8Z//huGT/yJUv/9isUP/lvmr/z58//7R7DP+4gBP/t38S/7d/Ev+3gBP/tXwN/8OW
PP/Wtnb/wI4u/8CQM//Qq2L/wY8v/8abR//HnEj/zqdd/8CQNP+2fQ3/t4AT/7d/Ev+3fxL/uIEW/7J2
Af/hyZz/6de2/+XRq//ZvYX/8ObQ/9q9hf/l0ar/1LR0//Hn0v/cwYz/snYB/7iBFv+3fxL/t38S/7iB
Ff+ydQD/4cmc/9W0dv/k0Kn/0a1n//Hn0v/dw5H/59Wx/8idSv/x5tH/27+I/7J1AP+4gRb/t38S/7d/
Ev+4gRb/snYB/+HKnf/n1K//6Nay/8KSNf/LpFX/yaBN//Hn0//BkTT/z6lf/76KJ/+2fQ7/t38T/7d/
Ev+3fxL/t4AT/7V8C//Hm0b/17h7/8OVPP+0eQf/s3cD/7d/E/++iib/tXoK/7N3A/+2fQ7/t38T/7d/
Ev+3fxL/t38S/7d/Ev+4gBP/tHoI/7F0AP+0ewn/uIAU/7iBFv+3fxL/tXwN/7iAFP+4gRX/t4AT/7d/
Ev+3fxL/t38S/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAoAAAAGAAAADAAAAABACAAAAAAAAAJAABgDwAAYA8AAAAAAAAAAAAAt38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4gBT/uIEV/7Z+EP+2fQ7/t38S/7iBFv+4gRX/t38T/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7iA
FP+0eQf/snYC/7mDG/+7hx//uIAU/7J1AP+ydwP/t38R/7iAFP+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uIAT/7V6Cf/InUv/38iZ/+LLn//r3L3/4cqd/+TP
pv/SsGv/t30P/7V6Cv+3gBT/t38R/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+4gBT/tHoJ/8aaQ//bvof/wZIz/7d9D//t4MX/486k/8qgTv/jzqT/7+PL/8OTNf+0egn/uIAU/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3gBT/tHsK/8WWPP/Im0b/xJU7/7mC
F//fxZT/38WU/9a2d//CkTP/5dKr//Hn0/+4gRX/t34R/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d+EP/Flz//y6BQ/9m8gv/t4MX/065r/7mDGf/Elj7/yqBR//Ts
2/+8iCL/tn0O/7d/E/+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3gBP/uIAU/7d/
Ev+1egn/s3gE/7iAFP/m06v/59Wx/8CPL//NpVn/5dGq/9CrYf+1ewn/uIEU/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+0fA3/tHsM/7h/E/+4gBP/uIEW/7N4CP+zeQr/wpI0/8OW
P//JoE7/vokk/69yAP+0ewz/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38T/7Z+
EP/Bjij/w48p/7d/Ef+3fxL/uH8S/8WSL/+/iyP/tnwM/8SPJ/+3fQv/tXwM/8qZOP/IlzP/uH8S/7Z+
EP+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uIAU/7N5Cv/ty3//8dGI/7V7Df+4gBT/uIAT//vf
nP/ftmD/y5s6///rr//Cjij/5sFw//PRiv/y0Yn/6MJz/7Z9D/+3fxP/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t4AU/7N6Cv/syHv/7ct//61xAP+0egz/uIEU//rbl//Zrlb/4Lhl//DNg/+7hBr//+ms/8yc
Pf/NnT7//+ip/72HHv+1fQ//t4AT/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uIAU/7R6C//qxnj/+dqV/9is
VP/HlTL/tn4R//bXkP/vzYP/++Gf/9qxWv+6hBj//+mr/8+gQv/PoUP//+Sl/76IH/+1fQ7/t4AT/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/uIAT/7N6C//qxnj/9daR/9qwWf/84Z//yZg2//PSi//syX3/3LNd//fY
kv/JmDb//+Wm/82dPv/Nnj7//+Wm/76JIP+1fA7/t4AT/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uIAU/7N5
Cv/uzYL/8NCH/7yFG///6Kr/0aVH//falf/guWb/xZIt///qrv/KmTn/+uGf/9ivV//ZsFj//eSk/7uE
Gf+2fhD/t38T/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uIAT/7V8Df/dtF3/78yB/+7Kfv/ju2r/u4QZ/+a/
bv/uzIH/7cp+/9uwWf+zeQf/0aJE/+zKf//tyX3/z6BB/7V8Df+4gBP/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38R/7eAEv+4ghn/vIgk/7qEHf+xdQP/tXsM/7mEG/+5ghj/t4EW/7J3Bf+8iST/tn4R/7Z/
FP+4ghr/t38V/7iAE/+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38T/7Z+Ef/v5c3/9Ozd//Pp
1//Rq2X/0K1m//Lp1f/v4sv/2Lp//86oXv/6+PH/1rZ3/+/kzP/r273/7d/D/7V8DP+3gBP/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/uH8S/7Z8Dv/59Or/1LNy/9u+h//y59T/zahe/+fVsf/u4sr/2r2F/+DH
lv/p2Lj/vIgj/+rcvv/l0ar/8ujV/7R5CP+4gBT/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7Z8
Dv/48+n/1rZ2/9m8hP/z6df/wZAx/9vAiv/069n/2Ll//93DkP/o17T/tn0P/9i6f//o1rT/8ujU/7R6
CP+3gBT/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7Z8Dv/48uj/0q9q/9a3ef/z6tj/w5U5//Ho
1P/y6db/zada/+7hyP/8+vb/yqBP/+bUr//27t//2r+H/7N5Bv+4gBT/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38R/7Z9EP/38OX/4suf/+fVs//v4sn/sXQA/7uGH/+9iST/sXUA/+bTrf/t38P/tHkI/7eA
E/++jCn/tnwN/7d/Ef+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev/bvof/5tSu/+DI
mv/AjzL/t30P/7Z+EP+2fQ//tn0P/8COLv/BkDL/tnwN/7d/Ev+1fAz/t4AT/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+zdwP/snUA/7J1AP+1fAv/t4AT/7d/E/+3fxP/t38T/7Z7
C/+1ewv/t38T/7d/Ev+3gBP/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+4gRb/uIIX/7iBFv+3gBP/uH8S/7d/Ev+3fxL/t38R/7eAFP+3gBT/t38R/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAA
AABAAAAAAQAgAAAAAAAAEAAAYA8AAGAPAAAAAAAAAAAAALd/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3gBP/uIAV/7iBFf+4gBT/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4gBT/uIAU/7V8Df+zeAX/s3gF/7V7Cv+3fxL/uIAV/7iB
Ff+3gBP/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38T/7N4BP+ydwT/vowr/8qiUv/KolH/xJU8/7d+
EP+ydwH/sngF/7d+EP+4gBP/t38S/7eAEv+4fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uH8S/7d/Ef+1ewv/0axm/+3fxf/p2bj/7d7B//Ts
3P/p2Lf/8+rZ/+3ix//Pq2L/uH4Q/7V5CP+5gBb/tn4R/7d/Ef+3fxH/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4gBT/tHoJ/9e4ev/n1LD/yZ5L/7uF
Hf+7gxr/9vDk/97Dkf/Dkzf/3L2H//r37//27+H/yJ5J/7N5Bf+3gBX/t38R/7h/E/+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7V+EP+5gxj/2Lh6/7J0
BP+vcgD/sHIA/7+MKv/48uj/59Ww/93Ej/+ydgT/tHgI/+PQpv//////x5hB/7N6CP+4gRP/tn8R/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t4AU/7d9
DP/Elj//2bqA/9m7gf/YuX3/t4AS/+fTrP/Pplz/07Jx/+bSqv/ZuX7/1LJv//fv4//m1K//tHoI/7mA
Ff+3fxH/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/tn0Q/7iBFf++iyf/u4Uf/9Wyb//n1bH/8ejU/+LLn/+tawD/uoUd/7qEHv+3fQ//8OXP/+TO
pP+zdwT/uIEU/7h/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+4fxP/tn8R/7Z8Df+3fQ//snYB/8OUOf/38eP/8ebQ/72KJv+6hh//yJxK/+jW
s//t4sf/voso/7V8DP+4gBP/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+4gBT/uIAU/7d/E/+3fxL/t38S/7aAEv+5gxj/tHgF/7+NK//Vtnf/1bR0/9q9
hP/gyJf/0axl/7h+D/+2fg7/uYEV/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38R/7N6C/+zeQn/tn8R/7iAEv+3fhH/uIAT/7Z7Dv+0egz/tHoL/7N3
BP+xdQD/r3MA/7F1AP+1eQX/tHsM/7J5Cf+zegr/t38R/7eAEv+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/tn8T/7d/Ef+4gBP/x5Y0/8mYNP+5gRT/t38R/7eAEv+2fg//wYwm/8uc
PP+/iiL/t38T/8iYNv/LmTr/uoQY/7V9D//Fki3/zp9A/8qXNP+5gRT/tX0P/7d/E/+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxP/tn0Q/7qDGf/43Jj//OOj/7yGHP+2fBD/uIEV/7N5
CP/dtmH///a8/9WmSf+7hBn//+ep//TWkf+3fxH/2a9X///jpP/215H//eGg/+zIff+7gxf/tn4R/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/E/+1fhD/uoQY//XVjv/53Jj/vIce/7d/
Ef+5ghb/s3kK/92zWv//7LP/z6BC/8ubOv//7bH/2rBY/7mAFP/74J7/99qU/7B0A//ftmL///C1/8ud
Pv+0egv/uIAU/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t4AT/7V+Ef+7gxj/9teR//rd
mP+1fA7/r3QC/7d9D/+yeQn/3LNc///us//MnTz/3bVg///rr//Djin/wIsj//3iof/11Y//r3QD/9yz
Xf//7bL/1KVK/7N5Cf+4gBT/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4fxP/tn4Q/7uE
Gf/11o///uKg/+W+b//ft2L/yZc1/692Bf/etF7//+mr/+3Lf//7353/+NuX/7mCF//Bjib//+Sj//XW
j/+vdQL/3LRe///us//TpEj/s3kK/7iAFP+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7h/
E/+2fhD/uoQZ//XWj//94qL/5L1s//LTi///56j/xJAq/9qvWP//663/7Ml9/+K7aP//56f/5Lxp/8CN
Jv//46P/9daR/7F2Bf/dtF///+2z/9GkSf+zeQr/uIAU/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/uH8T/7Z+EP+6gxj/9daP//rdmf+rbQD/xpIx///yuf/UqU3/16xT///vtP/Lmj7/p2kA//bY
kP/21ZH/xpIv//vfnf/11Y7/qWwA/9qwWf//77P/0qVJ/7N5Cf+4gBT/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+4fxP/tn4Q/7uEGf/325f//+ao/9SnS//nw3T//+6z/8mXNf/bslr///O5/+W/
b//UqEz//+iq/+3JgP+3fxL/8c+G//3mpv/Tpkv/8dGJ///mp//FkCz/tXwN/7iAE/+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+2fhD/uoMY/+bBcf/uzIP/8dCI//LQiP/WqE//s3kK/9ao
Tv/vzIT/786E//LRiv/huGT/wY0m/7V8Dv/Cjij/5b9v//LTjf/syX3/zJ0+/7V9Df+3fxP/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t34R/7eAEv+3fQ//rnEA/61uAP+rawD/rm8A/7J5
Cf+2fRH/sHMC/6xwAP+ubwD/rnEB/7N5Cf+ydgT/sXUA/7N3BP+vdAP/rGwA/61vAP+vcgD/uH4R/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3gBP/tHwN/7+NLP/n1bH/69u7/+7h
x//ZuoD/u4Qb/7mDGv/gyZ3/5M2h/9/Flf/av4f/tHsI/9Szcv/u5Mv/0q1p/8ukVv/r3b//2byD/+bS
rP+9iif/tnwN/7eAE/+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7iAFf+1egz/wpQ2////
///t4cj/3cCO///////bvoj/yKFO///////bwIr/+fbw/+fUsP++iCT//fv2//Ts2//In03/9vDi/+vb
u//n1K///////76LJ/+1fAz/t4AT/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uIAU/7V7
Cv/CkTT//////93DkP+zdwX//Pz6/+zdwP+5hB3/8ura/9e5ff/z69r/5tKs/7+NLP/+////27+J/65v
AP/hzKL/59Wy/9/Glv//////vYom/7V8DP+3gBP/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+4gBT/tXsK/8KRNv//////4sqc/7qEGv/9/fz/7d7D/7Z8Cv/QqmL/2LyD//r38f/k0q3/u4Uf//7+
/v/avoj/sHMA/8icR//UtHP/6dm7//////++iif/tXwM/7eAE/+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7iAFP+1ewr/wpE2///////iypz/uYMY//7+/f/q27v/voon///////hy5//+/nz/9/G
lf/MpVj//////+/jy//Aji7/69y+//Dl0P/q2bn/+vjx/7uFHP+2fQ7/t4AT/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/uIAU/7V7Cv/BkTX//////9/Ek/+0eQf//Pr3/+7hx/+wdAD/z6ti/+7j
y//iz6T/vIgf/9q+hf//////+fTr/8qhUP++jCr/5tSu/+7gxf/KolP/tHsK/7iAFP+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4gBP/tXsK/8KSOP//////6dm4/9Gua///////4s2h/7N2
BP+0ewr/sXQA/7R3A/+zegb/v4wr/////v/bwIz/sXIA/7d+EP+xdQD/sXQA/7V6Cf+4fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7eAFP+1fAz/wZAy//Dkzf/y6NX/9O7f/+DJ
nP+9iif/t34O/7iBFv+4gRb/uIEW/7Z+Ev+7hRz/y6FQ/8KSN/+4fhD/t4AU/7iBFv+4gRb/uIAU/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t34S/7eAEv+3fhD/tXkI/7R5
B/+0eAT/s3gF/7V9Dv+3gBP/t38S/7d/Ev+3fxL/t38S/7Z9EP+0dwT/tXsK/7d/E/+3fhH/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxH/t38S/7h/
Ev+3gBT/uIAU/7iAFP+4gRT/uIAS/7h/Ev+3fxL/t38S/7d/Ev+3fxL/uH8T/7mBFf+3gBT/t38S/7h/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxP/uIAS/7d/Ev+3gBL/uH8S/7Z/Ef+3gBL/uH8S/7d/Ev+3fxL/t38S/7d/Ev+2fxH/tn8T/7eA
Ef+3fxH/tn8T/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev8AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgA
AAAwAAAAYAAAAAEAIAAAAAAAACQAAGAPAABgDwAAAAAAAAAAAAC3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+4gBT/uIAU/7d/Ev+3fxH/t34R/7d+Ef+3fxL/t38S/7iAFP+4gBT/t4AT/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t34T/7h/Ev+3gBH/uIEV/7d/E/+0egj/s3cG/7R7Cv+2fA//t4AR/7iAEv+1fAz/tXsL/7R5
Bf+0eQf/tn0P/7iCGP+3gRL/tn8Q/7h/Ef+3gBD/toAT/7iBEv+4fxP/t38T/7d/Ef+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38P/7d/E/+4gBb/tXoM/7N5Cf+/kDH/xppH/9/Jm//u4sf/8erZ//Hn
0v/lz6f/2LqA/8SVPv/BkjD/uoYd/7B0AP+6fRD/uYAW/7d/EP+4fhX/tn4T/7d/Ef+4fxL/uH8S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4fxH/uX8T/7eAEv+2fQ3/vokm/+PNov//////+/jy/+7g
xf/kzKD/8ubQ/+/kzv/p2bn/+/jx////////////7N7C/86qYP+9iCP/snUA/7mBF/+5fxP/uH8R/7V+
Ef+2fxL/uH8R/7d/Ef+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uIAS/7Z9Dv+8iib/9u7g/+7g
yf/MpVf/xJY7/7eAFf+pYwD/3MCL//Pr2//Tr2z/vYkk/86pXv/fwZH/+/ft///////y6NT/1rNw/7N6
CP+0gBD/uH8T/7Z/Ev+4fhL/uH8T/7h/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uIAX/7R4
B//k0af/4MWV/7R9Df+zdwH/tn0O/7yEG/+0dQL/4s6j///////9/fr/2bt+/65wAP+1egv/wI4s/9m+
iP/9/v3//////+DMmv+4egj/t34V/7aAEf+2gBH/t34S/7h+E/+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+2gBL/toAT/7V6Bf/exI//tHgM/7FwAP+ydwL/sXMA/7R+Ef+0dwT/38WU//z79v/HnUn///75/+LP
pP+4ghb/rnAD/65qAP/BlDj/9e/h///////aun//sngC/7iBFP+4gBL/tn8R/7aAEf+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxP/t4AT/7l+Df/BkTn/1bR3/9m3ev/TsnH/2rp//8OUO/+sbQD/y6FO//z6
9f/NpFb/vIgl/+/l0P/w4sn/2bt8/9q5gP/Us3H/4s2j///////v5M7/uokl/7d9D/+6fxX/tn4S/7d+
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t4AS/7h+Ef+1fQ3/1LJw/9a3ev/TsG3/38SV//Pq
1f/avob/tH0N//Tp1v/z5dD/r3EA/7iBFv/Rrmb/2bqC/9e5f//bvYP/ypxM//z38f/58+n/xZc+/7R7
Bv+6gRf/t4AR/7d/Ef+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uH8S/7V+Ev+3fxL/snQB/7By
AP+xcwH/sXMA/8ifSf/37+P/7eLI//f06f/07Nz/uoIX/7mBF/+zeAX/r3QA/7BvAf+saQD/vY0v////
///q2rn/tn0Q/7d/FP+2gBH/uH8S/7h/E/+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+2fxH/un8T/7h/
E/+2fxH/uoAX/7iBFv+3gRj/vYAW/7N4B/+7hyD/6Ne1///////59u7/xZY9/69vAP+wdgL/snYE/7yG
Iv/RrGj/+vjy//Xy5v/MolL/s3kF/7mBFf+3fxH/t38T/7d+E/+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/tn4T/7aAEv+2gBH/t34S/7d/Ef+3gBL/toAQ/7aAFP+3fg//tHcC/+PPov/38+r/4MSU/9Gv
af/WuX//3cCL//Tt3P/59On/5M6g/8KPLv+zegj/t4AU/7h/Ev+4fxL/toAR/7aAEv+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t34T/7h/E/+4fhT/t38R/7Z/Ef+2fxL/t38T/7iAE/+3fxP/t34S/7uG
IP/EmUD/0apj/9Oyb//YuX7/2byD/9OvaP/BkTP/snUD/7d8Df+4gRT/t38R/7eAEf+3fxP/t38R/7d/
E/+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/uIAT/7iBFf+4gRX/toAT/7d/EP+3gBP/uH8S/7d/Ev+3gBP/uIAS/7l/
Ff+6gRT/uYIV/7d9Ef+0eAn/snYA/7N3Af+ydQD/rXMA/7N1AP+1fAr/uoMY/7mCGP+2gRX/uYET/7mB
Ff+3fxP/t38R/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+2fxP/t38S/7d/Ef+4gBH/s3wP/7B2Bv+xdgP/s3oL/7aAFP+5gBL/t38R/7d+
EP+4fxL/t38S/7N4Cv+ydgf/sHcG/7d+Ef+5gRf/tn8P/7J5Cf+zeAv/tX4O/7eBF/+7ghX/t34P/7J4
Bv+xdwb/sXcI/7J5B/+3fw//uIET/7Z+Ef+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+2fxL/t4AT/7eAEv+2fA3/wo8q/9OmSv/UqEv/x5Mu/7Z8
Df+2gBP/t4AQ/7h/E/+2gBD/uH8R/8ucPP/Upkv/0KVH/7yGG/+zeQz/wY0m/9OnTP/TpUv/yJQv/7d/
EP+zegz/vIcf/9GgQ//Rpkj/06ZJ/8+ePf++hx7/snsN/7eBFP+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3gBL/t34T/7mBFf+vdgj/2q5X///s
r///8bf/3bhm/7F3A/+6gBj/uH4U/7Z/Ev+4fxH/uH8V//HSiv//8LP//+uq/8aQKv+yeAj/3bdj///y
uf/+6q7/2KpU/7B4A//GlC7/8M2E///oq///87j///O5///lpv/wy4T/xpMt/7d7DP+3gBT/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uH8S/7iB
E/+yeAn/1qlN//zgnv//5KT/3bFa/7B3B/+3gRT/uH4R/7d/Ev+2fxH/uIET/+zKev/+4qP/+96c/8KN
JP+6gRL/6sh8///lpf/52ZT/vIce/7mBFv/syHz//+6u//TYkP/JlDX/yJo7//bak///7rH/6cR2/7d/
Ev+3fxL/t38T/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+4fxL/tX4T/7iBFP+xeQj/16pQ//7iof//5qf/2rJc/7F3Bv+5gRT/t38S/7Z/Ef+3fhP/uIAT/+/M
ff//46f//d+g/7+LIv+/iiT//N2b///lpf/pw3X/tHwN/8SOJ//01Y///+iq//DOhP+ydgX/snYF//DO
hP//6Kr/8tOK/7+NKP+1fA7/uIAT/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+4fxL/tH8T/7mBFP+zeAj/1alQ///jof//56f/3bNd/7N3Cf+6gxj/uoAU/7h/
E/+2fxH/uIAU/+7Lfv//5aX//eCc/8CMJf/Qpkr//+eq///oq//SpEb/s3cH/8eVM//425X//+eq//HP
hv+yew3/tXoL//DPhv//6Kr/+NiT/8aTL/+0ewz/uIAU/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4fxL/tn8T/7iBFv+zeAf/1qpQ//7iof//6Kb/2q9W/6xu
AP+xegr/tHoJ/7Z8Dv+0fw//uIAS/+3Kfv//5KX/+96c/72IHv/huWf//+ao//nalf/BjSj/snUH/8qb
OP/7357//+in//HPhf+zeQv/s3oJ/+/Phv//6Kr/+NeS/8aRLv+0ewz/uIAU/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4fxL/uH8S/7iBFP+yeAj/1qpQ///j
o//+46L/+duY//TSjf/01Iv/5r9v/8mUMv+zeg3/uYAX/+7Lfv//5aT//uKh//XWkP/94Z///+en//LR
iP+/iyP/rncF/8qZNv/93pv//+eo//HPhv+yegn/s3oI//HPhv//6K3/99iQ/8aSLf+0ewz/uIAU/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4fxL/t38S/7iB
Ff+yeAj/1qpQ///jo//+4qL/+NuY//LSi//53Jf//+an//vemv/JmDX/tnsN/+/Lgv//5KT//eGe//XW
kf/y0of/+d2a///mp//10ov/toAS/8mYNf/83pv//+ep/+/Phv+zegn/s3sM/+/Phv//6Kr/9teT/8SR
Lv+0ewz/uIAU/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+4fxL/t38S/7iBFf+yeAj/1qpQ//7iof//56f/2a9Y/6psAP/Cjir//N6c///rrv/humf/tn8Q/+7L
f///5aX//d+d/72IHv+ucQD/3LBZ///pqf//5aP/zps8/8WVMf/53p3//+eo//HPhv+1egz/tHsK//HP
hf//6Kv/9teT/8STLv+0ewz/uIAU/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+4fxL/t38S/7iBFf+yeAj/1qpQ//7iof//56f/3bNd/7F2Bf+4gBX/+9yc///o
qv/nw3H/uoQW/+3Kfv//5aj//eCe/8SPKv+udAP/zJ04///lpv/+4aL/1KJJ/8KOKP/22JL//+iq//DP
g/+weAX/sXcJ//DPhP//6an/9deQ/8SRLf+0ew3/uIAU/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4fxL/t38S/7iBFf+yeAj/1qlP//3gn///5KX/27Jd/7B1
A//LmTj//N6d///sr//dtV//tn0Q/+3Kff//46P/+96b/8KPKf+yegn/3bRe///prf/+5KT/zJs+/7mD
Fv/vzoT//+uu//PUjP+5hhz/wooi//TVkf//7K//7st//7uDGv+2fhH/t4AT/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38T/7mBFf+yeAj/2a1V///s
r///6q3//+iq///npv//6az//+eq//LRif/EkCz/tn0Q//XTif//7K///+ms///oqf//6Kv//+ip//3h
oP/qwnb/t4IU/7N5Cv/RoUb/+tuX///oqf//6Kv//+ms///opv/32JX/zp4//7N6C/+4gBT/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fhP/tn8R/7iA
FP+0ew3/yZo4/+O9av/ju2v/471p/+S8a//kvWz/37Rg/8CIIv+zegr/uYIT/9qtVv/ku2z/4rxp/+O9
av/jvW3/4LZh/8+fP/+4fhL/tn4O/7mAFf+0egn/xJIu/961YP/gvWz/5L1s/9yyW//FkS7/snsJ/7iB
E/+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxH/t38Q/7d/Ef+3gBP/tHkK/7B0AP+vdAP/rnMB/7BzAf+xcwX/snYH/7V+Ef+2fxT/uH8S/7B2
Bf+tdQH/r3UE/7BzAv+vdAH/sXYF/7R5Cv+4gBP/tn8Q/7d9D/+5gRH/s30Q/7F1Bf+udAD/sXMD/7B2
B/+0ewr/uX8S/7h/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+4fxL/tn4T/7aAEv+4fxH/uoIa/7mGHf+7hBv/vIMY/7qEGP+3gRj/tn4P/7aA
Ef+4fhT/tnwP/7uEGP+5hBX/un4P/7uDHf+7hRz/uYMW/7iBE/+5fRL/uIEa/7eCFv+5gBP/uH4Q/7eC
FP+8hRz/uX8R/7d+E/+6ghv/uoEX/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+2gBD/uIAR/7V/Fv+0ewn/5tOu///////8+vb////+////
///t3MD/0ahe/7iAEv+1ewv/0K5s//r49P/9+/f/3MKN//Xv4v/38+j/wZE0/7N5Bf/Ut3j//Pv2////
///r277/vosp/+HLoP//////7ePI/97Gl///////48+l/7J2Af+4gRb/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+2fhT/uX8V/7mAF/+0fAj/59Wx////
///59u7/4cyi/+3bwP////7//Pn2/8qfU/+3hRj/9vHl///////p2rf/7ODH///////38uX/voop/8KO
Lv/38ub///////Ps2f/Rrmv/1bV1///////48+n/5dGp//jy5f//////482i/7BzAP+5ghj/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4gBP/uIAU/7iA
Ff+0egn/59Sw///////x6dT/sHAA/8CLK//17+L//////+LJnP+zdwT/9/Ln///+/f+9izD/xZpO////
///48+j/vYkl/8eYQf/49e3//f///9GqZv+qaQD/0Kxk///////s3r//rGsA/+fUtP//////4Myh/7By
AP+5ghj/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/uIAS/7iAFP+1egv/59Sx///////z69r/uYQa/7+OLv/z7d7//////+POo/+tbAD/z65v////
///q3b//2r6E//39+//48+j/vYkl/8SXPf/59u///v38/8+qYv+1ewn/uoUc/+LRrP//////2r+I/+zb
vf//////4s2i/7ByAP+5ghj/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/uH8T/7iAFP+1egr/59Sx///////z6tn/uIAT/8COL//17uH//////+LM
oP+xdAD/uoYZ/8eYQf/jz6f/+PPq//7////28ub/vIop/8aaQf/49+///v3+/9CsZv+zegr/uYIY/7yH
If/UsGv/697C//r28f//////482j/7ByAP+5ghj/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uH8T/7iAFP+1egv/59Sx///////06tn/uYET/8CO
Lf/07uD//////+LMov+wcAD/5c2j/+7gxP/BlUX/xJZH///////28eb/uoQd/8KOMP/59O3//v/9/8mh
Uv+ubQD/yJxF/+vbvP/gypr/r3IK/+bRr///////4Mmc/7FzAP+5ghj/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uH8T/7iAFP+1egv/59Sx////
///z69n/uIAU/76OLP/17uD//////+POpP+sagD/6dW1///////y59P/7d7D///////v5Mz/uYMZ/+LM
oP/9/fz//v36//Hlzf/Op13/vYom//39+//+/fz/6day//nz5v//////1rV2/7N3Af+4gRf/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uH8T/7iA
FP+1egv/59Sx///////069r/u4IZ/8CPLv/17t///////+LNof+ucwD/vYoj/+LMoP///////////+/n
0//Flzz/wY4r//Tt3f///////Pv4///////gyZv/tnwL/8ujU//v6NP///////79/P/fyJr/toIV/7Z/
Ef+3fxP/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/uH8T/7iAFP+1egr/59Sx///////y6db/sXQA/7yIJ//z7N///////+LMnv+wcgD/t4AU/7d/
Ev+4gRn/uYIW/7iBE/+2fw3/tXwM/8aZQv/38+n//Pv4/8+qXv+zegX/uIAW/7d8Dv+4gRT/uYAW/7mC
F/+3fRD/uH0O/7eAEv+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/uIAR/7eBFP+1egv/59Ow///////38OP/0K1n/9zDkf/9+/j//v///9Gu
aP+zdQX/uIIX/7d/Ef+2fg//tn0P/7h+Ef+4ghX/tHoL/8ecRf/79u///////9Gua/+0dgP/uYEV/7eA
E/+0fxD/uH0Q/7d+Dv+3fxL/uX8U/7d/Ef+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+2fxP/t4AS/7eBFv+2ewz/6Naz///////+/fv////+////
///069z/2byG/7iBF/+4gBD/t38S/7d/Ev+3fxL/t38S/7d/Ev+4fxP/tH0Q/76KJP/Srmb/07Fw/8GP
Mv+4fA3/uIAU/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fhP/uIAT/7eBEf+0fhH/xI8w/8WY
Qf/Elj3/w5Q4/8OVPf++iyj/tXwP/7Z+D/+5fxP/uH8S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/tn8T/7d7
D/+0dAL/sHQA/7V8Cv+3gBL/tn4R/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+2fhH/t38S/7d/
Ev+3gBL/tnsK/7N4Bf+zeQj/tXkG/7R5Bf+0fAr/uH8T/7aAEv+2fxP/t38T/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/tn8R/7Z/E/+4gRf/uYMV/7iAFf+2fhH/uH4R/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxH/t34S/7h/Ef+3fhH/tn8T/7eAFP+4gBT/uIAU/7mAFP+3gBT/toAR/7p+Ef+4gBL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/uH8T/7h/Ev+3gBD/uoAS/7Z/Ev+3fxP/un4T/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxH/uH4S/7Z/Ev+5fxL/uH8T/7d/E/+4gBP/tH8T/7eAE/+5fhL/tIAQ/7iA
Ef+4fxP/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uH4S/7h+Ev+2fhT/tn8U/7aAEf+3fw//tn8S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uH8U/7aAEv+3fxL/uYAR/7Z+E/+2gBH/uIAS/7h/
Ev+3gBH/tIAS/7p/FP+4gBH/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t4AQ/7V/Ef+2fxP/uIAR/7aA
Ev+5fxH/t38U/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAPAAAAHgAAAABACAAAAAAAEA4
AABhDwAAYQ8AAAAAAAAAAAAAt38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7Z+E/+4fhT/t38Q/7eAEf+3fxL/t38S/7Z+Ef+4fxL/t30T/7Z/
EP+4fhX/t38S/7iAD/+4gBP/t38S/7h/Ev+3fxL/uIAP/7Z+Ef+4fxL/tX8U/7iBEv+0fxD/tn8Q/7h/
Ev+3gQ//t38S/7aBEv+5gRL/uH8S/7d/FP+3gBH/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/EP+2gA3/uH8W/7d/FP+4fhT/t38S/7eAEf+0fxH/uH4U/9S3
ev/dw43/7N/F/+vexP/s4MT/2Ld4/9W3fP/BjS//tn0U/7eBDv+4fxL/tX8U/7p/Ef+8fhT/tn0Q/7d/
EP+4fhT/tX4V/7h+FP+3gBH/uH8S/7h/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7p/Ef+4fxb/tn8Q/7d+Ef+4fhX/tn8Q/+PNpP/79/L//v7+////
/v///////f76//7+/v///v7//v3//////v///////f78//Xu2//hzqP/t4AR/7WAEv+5fhD/uH4U/7eA
Ef+5fxX/un8R/7R/EP+1fRD/tYAR/7p/Ev+2fxD/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7iAEf+3fhH/t4EP/7iAE//QqmL///79///7/P/v6M//3sOQ/8ie
S/+4fhT/vH8R/+3fw//Vt3z/x55J/9e4e//w4MP/+fr2///+/////v////79/+7fxf/Bjy//t4AR/7t/
Ff+0fxH/un8S/7d/FP+4fxL/t38S/7Z+Ef+6fxH/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7iAEf+4gBX/t34R/8acSf//////6NW0/7aAFf+6fxL/t38S/7Z+
D/+3fxT/t38O//3//////v7/8+XS/7d/Ev+3fxL/uH8S/8ybS//u4cH//f/+//7+/v////7/7Naz/7R/
Ef+2ghD/tH8R/7iAEf+0fxH/uX4R/7mAE/+3fxT/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7Z+E/+5fxb/t38S//Tu2//ZtXn/tH8Q/7eAEf+3gBH/t38S/7p/
Ef+8fhT/tn4R//79///+/v7//P7+//bu3f+/jy//t4AR/7h/Ev+3fxL/wo4w/+3n1P///v3//f////Xw
2/+7gBP/vH4U/7R9FP+4gBH/tYAR/7Z/EP+5fRP/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7OBEf+4fRD/toAN/+rYs/+5gRL/un8S/7d/FP+3fxD/uH8S/7N/
FP+3fxL/uX8V//fz6P/8/Pb/vo4u//v57v///PT/vI8u/7eAEf+3fxL/t38S/7p/Ev/fzJ////7///7+
/v/t38P/vH8R/7OBEf+3fw7/uYES/7Z+E/+1gQ//t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/FP+4gA//un8S/8+paP+2gBX/vH8R/7d/Ev+3fxL/uH8S/7h/
Ev+2gA7/un8S/+XOof//////yJxI/7h+FP/w59P//fv6/9q2ev+3gQ//un8S/7d+Ef+zgRH/6te2////
///7////x55J/7V/FP+6fhT/uH8S/7d/Ev+3fhH/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/FP+4fxL/un8R/7V/FP/x5tL//PXy//Do0f/17N7//vv2/+PN
pP+3fhH/tYAR/8ieS/////z/69i1/7d/Ev+4gBX/1bZ5//j15//89+7/+fbx//z27//99/D/28KQ///8
/v//////3sKT/7WAEf+3gQ//vH4U/7V/FP+3fhH/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7eAEf+4fxL/tn4R/7d+Ef+3gQ//tn4T/7eADf+3fRP/wY4y//Ho
zf/++/b/1bZ3/7aBE///+/j///n5/7h/Ev+3fhH/uIAR/7d/Ev+4fhT/tn4T/7eAEf+3fxL/un4U//34
7//9////38SM/7h+FP+4gA//t38U/7mBEv+4gA//t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fRP/tH8Q/7h/Ev+4fxL/uH8S/7d+Ef+3fxL/uH8S/7aB
E//lzaP//P7+//Ln0f/3+O///f///8KPL/+4fxL/t38U/7h/Ev+1gBH/t30U/7uAEv+3fhH/xZ5J//3/
/v//////v48v/7Z+E/+3fxT/tn8Q/7Z+Ef+4fhT/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7eAEf+9fhb/tYAS/7d+Ef+4fhT/un8R/7R+E/+4fhX/vn4S/7d/
Ev+3fxL/z6tl/////////////v7+/9a3ev+4fxL/t38Q/7R/Ef+3fxL/t34R/7d9E//Pq2X//Pv3//v/
///lzqH/uH8S/7eAEf+3fhH/t38Q/7mCE/+3fRP/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fRP/t4EP/7WAEf+4fhT/t38Q/7aBE/+3gBH/t38Q/7N/
FP+3fxL/uIAR/8GPL//7+e7///7//93Cj/+6fxH/tYAS/7d/Ev+3fxD/1rZ7//Tt3P//////+/rs/9Gr
Y/+3fxL/t38S/7d/EP+6gRT/tn4T/7Z+Ef+1gBL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7h+FP+zgBL/uIAV/7Z+Ef+3fxL/uIAP/7d9E/+3gBH/tYAS/7iA
Ef+3fxL/uH8S/7d+Ef/PrGL/3MiY/+7fxf/t3sT/8u7c//n28v///fz/+vfv/+7hwf/RqmX/uX4R/7l+
Ef+4fxL/tYAS/7h+FP+1fg//uYES/7iAEf+3gBH/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d+Ef+6fhT/uX4R/7h+Ff+3gBH/t34R/7SBE/+4fxL/uH4U/7iA
Ff+2fhP/t4AR/7d+Ff+4fxL/tn8Q/7iAEf+4fxL/t38Q/7p/Ef+1gBL/uX4R/7iAE/+2fhP/uIES/7h/
Ev+4gBP/t38Q/7iAEf+4gRL/tX4V/7Z+D/+3fhX/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+0fxD/uIAR/7WAEv+4fxL/un8S/7Z+E/+5gRL/t4AR/7d9
E/+6fxH/uH8S/7eAEf+3fRP/uH4U/7Z+Ef+3gBH/uIAV/7iAEf+yfxH/un8R/7eAEf+4fxL/t38S/7h/
Ev+zfxX/t38O/7h/Ev+4fxL/t38S/7h/Ev+3gBH/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+1fxT/t34R/7d/
Ev+4gA//tYAS/7d/FP+2fhH/tn8Q/7Z+Ef+yfhP/uYES/7uAE/+3fxL/tn0Q/7iAD/+4fhT/t38S/7h+
FP+4fxL/t38U/7eAEf+4fxL/t38U/7iAD/+3gBH/uH8S/7d9E/+5gRD/tH4T/7iAEf+7gBL/uIAR/7h/
Ev+3gQ//uH0W/7WAEv+3fxL/uIAR/7iCEP+3fhH/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+2fhP/uIES/7R/
Ef+4fxL/uH8S/7R+E/+3fxL/uIAR/7t/Dv+8fxH/tX8U/7WAEv+2gA7/t38U/7d/Ev+3gBH/uX4Q/7WA
Ev+3fRP/t38S/7J/Ef+6fxH/tn4R/7eAEf+3gBH/tH8R/7iAFf+3fw7/uIES/7Z+E/+2fxD/tH8Q/7p/
Ef+0fxH/uYES/7iAEf+4gA//t4AR/7d+Ff+1gBL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+1gBH/t38U/7mA
E/+3fw7/tX8U/+7Jef/+4qH//eOh//LVkP+0fhP/uoEO/7d+Ff+4gBH/uH8S/7eAEf+3gQ//t38U/+vH
e//+46D//uKh//fXjP+3fxT/tn0U/7qFHf/62pj//+Gi///gof/nuWv/t38O/7h/Ev+3fxT/2atX//bT
kf//5KH//uKi//7iof/yzIT/2qtV/7WAEf+5gBP/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+5gBP/tnwS/7h/
Ev+0fRT/uH4V/+zIfP/+4qH//uKh//PVjv+5gBP/t38Q/7d9Fv+4fhT/tH4T/7d/Ev+6fhT/t30T/+rI
fP/946H//uOg//fWjf+6fxH/uIAP/86gQf/94p///+Kh//zioP/On0P/t4AR/7WBD//ownD//uOg//7i
ov//4p///+Kh///kof/+4qH//+Gk/+bBcf+9fhD/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+2fhH/uIAT/7iA
D/+1gBH/un8R/+vIeP//46L//+Gi//fWjf+3fRP/tYAS/7Z/EP+5fhD/t38S/7iBEv+1gBH/uYIT/+zK
d//+4qL//uGk//bWj/+4fxL/uoAP/9uzYP/+46D//+Gi//3cl/+8hhv/uH4V/9CgQf//4qX//uSe//vj
of/MmDr/tX4W/8ygQ//946D//uSi//7iof/ImTf/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4gBP/tH0U/7h/
Ev+1gBL/uIAR/+3Jff/94aD//eKf//HUj/+3gBH/t4AR/7Z+Ef+1gBL/tn4R/7Z+Ef+4fxb/tn8Q/+7J
ef/+4qL//d+k//bVkP+3gBH/tn0U//PNhf/+4qH//+Gg/+fBc/+1fxT/uX8O/9yyX//946H//OGh//7j
oP+4fxL/vH8R/7d/Ev//4qH//+Gi///jnP/TrFf/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4fxL/tH8R/7iA
Ef+3fhH/t38U/+vHef//46L//uKi//bVjP+3fxT/t30T/7uAE/+6fhT/uX4R/7aBE/+5fRP/t38U/+3K
ev/94aH//uOg//bVjP+2fhH/wpQv//7joP/+4qX//OKf/9CgQf+4gBH/t34R/+W7aP/94p///+Gi///g
o/+1gBL/toAV/7l+EP//46L//eGh//7iov/ju2n/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4gBH/s38V/7d/
FP+6fxH/t38S/+zIfP/+4qH//uSe//XVjv+4gBH/uH8S/7OAEv+1gBH/u30R/7R+E/+3gQ//t38S/+vH
ef//46L//eGg//XVjv+3fxL/16xV///hov//4KH//uKh/7yFHP+5fRP/t38U/+jIfP/+4qH//uKh//7j
oP+4fxL/t30T/7iAEf/74qT//uOg//7iof/kuWj/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4fxL/t38S/7d/
Ev+3fxL/t38S/+zIfP/+4qH//uKh//bWi/+4fhT/t38U/7Z/EP+4fxL/un8S/7OBD/+2fhH/t4AR/+zI
ev/+4qL//+Gg//PVjv+3gBH/5sFx//7iov/+4qH/5sFx/7d/FP+4fhT/t38Q/+7Jef/94aT//uSe///h
oP+1fhX/t4EP/7Z+Ef/+4qH//+Ch//7iov/kuWj/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4fxL/t38S/7d/
Ev+3fxL/t38S/+zIfP/+4qH//uKh//3iov//4aL//+Kh///kof/wz4b/3KtV/7Z+E/+3fhX/t34V/+zI
ev/94p///+Oi///jov/84KD//+Oi//zioP/946H/6MFy/7WAEv+1gBH/s4AS/+7Hef/+4qH//eGh///i
of+3fxL/t38O/7eAEf/+4qL//uKl//3in//ku2b/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4fxL/t38S/7d/
Ev+3fxL/t38S/+zIfP/+4qH//uKh//7iof/94aH//eKi//7joP/94qL//uKh/+fCcP+3fxD/un8S/+7H
fP/94aD//eGg//3in//94aT//+Og//vjof/+4qL//uSi//XNhf+1gBL/uIAR/+vHef//4qH//uKh//3i
ov+0fxH/t38S/7SAFf/+4qH//+Gg///iof/guWr/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4fxL/t38S/7d/
Ev+3fxL/t38S/+zIfP/+4qH//uKh//HVjv+5fxX/t4AR/86fQ//+4qL//OKg//3hoP/Fky//tn4R/+rH
ff//46L//+Gg//bWjf+2fxD/t34R/9GhQv//4qP//eOh//7iof/Qn0P/tn8Q/+nJfv/94aH//uKi//7i
of+4fhT/u4EQ/7h/Ev/94aD//+Oi//3go//gumj/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4fxL/t38S/7d/
Ev+3fxL/t38S/+zIfP/+4qH//uKh//fXjP+2fRT/uIAR/7d+Ff//4KH//uKh///jo//UqEn/t38Q/+7J
ef/+4qH//uKi//bVkP+3fhH/uH8W/7iAE//214z//+Kh///jnv/brFb/uH8S/+TAcv/94qL//eGg//7i
of+5fhH/sn4T/7h/Ev//5KH//uKh//7iof/hvGj/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4fxL/t38S/7d/
Ev+3fxL/t38S/+zIfP/+4qH//uKh//bWj/+2fhP/uIAR/7d/FP/+4aT//uKh//7iof/SqEj/t38S/+rI
fP/+4qX//uKi//bWjf+3fhH/tYAS/7d/Dv/0143//eGk//zgo//brFj/uH4U/921XP/+4qH//eOh//7j
oP+0gA7/uIAR/7d/FP/+4qH//uOg//3joP/csl//t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4fxL/t38S/7d/
Ev+3fxL/t38S/+zIfP/+4qH//uKh//PUj/+3fxL/t34R/9CgQP//4aL//uKh///ioP/Fky//uH8S/+zI
ev//46D//+Gi//TWj/+3fxL/tn8Q/8qZN///4aT//eGg//7joP/PoEX/tn8Q/86gQf//4qH//eGg///i
oP/Fmjn/uX0T/9GhQv/94aT//+Oj//3in//Nmjr/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4fxL/t38S/7d/
Ev+3fxL/t38S/+zIfP/+4qH//uKh///hov/9453//+Kh//3iov//4aL//eKf/+bAcv+5gBP/t38U/+/J
e//94p///eGg///iof//4qH//uGk//3in///4qH//uKh//PMh/+1gQ//t38S/7h/Ev/sx33//uOg//7i
ov/946H//uKh//7kov/+5J7/++Cg/+jDcf+3fxT/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fRP/toET/7Z+
E/+7gBL/tX8U/+zJef/+4qH//+Gi//7iov/+4qH//eGg//7joP/725n/3KxU/7V/FP+3gBH/uIAT/+7I
ev/94aD//+Ch///jov/94p///uKh//7iof/vx3z/2K9T/7p9Ff+1gBH/t30T/7mAE/+3fRP/2q5V//bV
jP/+4qH//eCj//7iof/zz4P/26xY/7Z+E/+4gBH/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4fxL/tn4N/7iA
E/+0fxH/uIAT/7WAEv+4gBH/t38U/7d/Ev+3gA3/u34W/7h+FP+4gBP/t38U/7d8D/+3fxL/uIAP/7h+
Ff+4fhT/t38S/7WAEf+5gBP/tXwT/7iAEf+1fRD/uIAR/7d/Ev+4gQ7/uIAT/7d/EP+4ghD/sn4U/7p+
FP+ufxP/uIAP/7d/FP+1fxT/t38Q/7SADv+4ghD/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+2fxD/t38S/7d/
Ev+4gBH/uH4U/7l+EP+3fxD/t38S/7Z9FP+3fxL/tn4R/7h+FP+5fRP/t4AR/7SAFf+2fhP/uH4U/7d/
EP+ygBD/toET/7d9E/+3fhH/uIES/7h/Ev+4gBX/uH0Q/7iAFf+1fxT/tn4T/7p/Ev+4gBP/t38U/7d/
EP+6fxL/uX4R/7d9E/+3fxL/t38S/7p9Ff+6fhT/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4fhT/tn4T/7WA
Ev+4gBH/t38S/7iAFf+zgBL/t34R/7uAE/+4gBH/t38S/7N/FP+3gBH/s34Q/7p/Ev+4fhX/t38S/7qA
D/+4fxL/uoEO/7t/Ff+3fhX/t34R/7d/Ev+1gQ//uIAV/7p+FP+4fhT/tH8R/7eAEf+4fxL/uH8S/7aB
E/+0fxH/un8S/7d/Ev+3fRT/tnwS/7iAEf+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3gQ//t4AR/7R9
FP+1gBH/wo8x//3///////7////////+/v/9/////////+XLo//Nn1H/u4MU/7d+Ef+3fxL/zahk//n2
8f/8/v7/6tSw/8ypYP///////v7+/82qYf+5fhD/tH8Q/9KycP/+//3////+///////YuoP/uH8S/9m7
gv///v///v7+/9i8gP/bwpD///////3///+7hyL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+0fhP/u4AS/7h+
FP+1gBL/wpAw//3////+/v7//f////r//f///v///v7+//7//f//////zaZh/7eAEf+/kjH///////v9
/f////7//P/9//n27v/+/v7////+/8iiUP+5fBT/xZxA//3////+/v7/+//6//3////au4T/0rJw//v/
///8/v7///////r//f/+9u///f/+///+/f+5gRL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4fxb/uH4V/7h+
Ff+2fxD/wJEv//7+/v/////////8/8CNL/+4fhX/3bqC//79///8/v//8+TR/7Z+E//Io0////////z/
/f/cvYD/tX8U/+fSsv///v///////8qhUv+6fhT/2LJy//z+///7//7/8+bQ/7l+EP+0fxH/27uA///+
//////7/zKFQ/7yAFv/49uz///7///7+/v+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3gBH/uIAR/7d/
Ev+2fhH/wo8z/////v/9//7/+////8OQMv+0fxH/zaJR//r//v/+/v7//f///7p/Ev+7hyL//P7+////
///bwZL/t4EP/+DKoP/8//3//////8yhUv+0fxH/1rNx//z//f/9////4cuh/7d/FP+4gBH/zaph////
/v/+/v7/zqti/7R/Ef/27eD///////v///+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uH8S/7d/
Ev+4fxL/wI8z/////////////////8CQMf+4fxL/yaBR//z+/v///v7//////7d/Ev+2fhP/y6hk///+
//////7/1Lp+/+TNn//+/v7//v7+/8yhUP+3fxT/1LJw//79////////4sue/7d/Ev+3gBH/uH8S/9nC
kv/9//7/+fbx/8+qYP/27d/////8//////+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uH8S/7d/
Ev+4fxL/wI8z/////////////////8CQMf+4fxL/y6JT/////////////////7d/Ev+3fxL/toAN/8OQ
NP/Zu4L///7////+///8/v///////8ahUf+4fhT/07Vu//v//v/+/v7/48uh/7WAEf+2fhP/t38S/7h/
Ev/MoVD/5Mye//z+/v///f///P/9//////+3gBH/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uH8S/7d/
Ev+4fxL/wI8z/////////////////8KQMP+6gRT/yaBR//3////////////+/7Z+Ef/Aih//2r2A/9u6
gv/SsnD/soAQ/+PMnv/9/////P/9/8yhUv+3fxT/17Fx///+///+/v7/3sue/7h+FP+3fxT/x5lB/9q8
gf/ZvH//yKFT/7V/FP/27+D///////3///+4fhT/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uH8S/7d/
Ev+4fxL/wI8z/////////////////8GRMf+3fhH/y6NR//7+/v/+//3//v7+/7d/Ev+3fRP//PXy//3/
///y59H/t30T/+rUsf/+/v7////+/7+QNf+4fxL/07Bx//z+////////5c6g/7Z+Ef+4gBH/xplC//7+
/v/+/v7/3sOR/7l+Ef/79u3////8//Xu3/+4gA//t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uH8S/7d/
Ev+4fxL/wI8z/////////////////8GRMv+4fxL/x6FP/////////////////7eAEf+4fxL/48yf//3/
///+/v7///////z//f//////9e7d/7d/EP/Zu4D//f/8///+/f////7//////////v/KoFP/t38S//Pu
3////v//////////+/////z//f78/+LKoP+4gBH/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uH8S/7d/
Ev+4fxL/wI8z/////////////////8KPMf+6fxL/yqJQ/////v/+/f///v7+/7aBE/+1gBL/uIAR/9e6
ff///////P/9//7+/v/p3cH/wZEy/7qAD//Zu4D/+////////v/9/////f/////9///JoU//uIAR/8KQ
MP/dzZ/////+/////v//////4syi/7aBE/+0fxD/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uH8S/7d/
Ev+4fxL/wI8z/////////////////8CQMf+4fxL/yKBV//39/f///v/////7/7d/Ev+3fxL/t38U/7d/
Ev+4fxb/tn4T/7qCE/+2fxD/t4EP/7h/Ev+3fxL/1rJy//3/////////48ye/7aADv+3gBH/tn4T/7l/
Ff+6fxL/t38U/7h/Ev+3fxL/t34R/7l+Ef+4fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uH8S/7d/
Ev+4fxL/wI8z/////////////////8CQMP+1fxT/2buC//3//v///P//7+fQ/7l+EP+4fhT/t4AR/7WA
Ev+6fxL/s4ER/7t9Ef+4gBP/t4EP/7d+Ff+1gBL/1bJw//3//v/9////4M2i/7h/Ev+2fhP/t38Q/7h+
FP+zgg7/t34V/7p/Ef+3gBH/t38S/7p+FP+3gBH/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fhH/uIAP/7WA
Ev+3fxT/wo8z///////////////////////+//3//f///////v////7/zqpk/7h9D/+1fhX/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxT/1LNu//3////9////4syj/7h+FP+8fxH/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+1fxT/t38S/7d/
FP+4fxL/wJAx//3//v/9//7////////////9///////8/+HLov/KoFP/tn4R/7mBEv+6gQ7/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+yfhP/vYEQ/7d/EP+5fxX/t38S/7p/Ef+3fxL/t38U/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fRP/uYES/7eB
D/+yfxH/uX8V/7x/Ef+2fhP/t38U/7iAEf+3fxT/tn4T/7iAEf+1fRL/uIAT/7Z+Ef+5fxX/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/uXwU/7p/Ev+1fRD/t4AR/7d/Ev+3gBH/tn4R/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+2fhH/t38S/7h+
FP+4gBH/t38S/7p/Ev+3gBH/uH4U/7iAEf+2fhH/t4AR/7d/EP+4fhT/tH8R/7WAEf+4fhT/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+2fxD/t30T/7Z+E/+3gQ//t38U/7d/Ev+2fhH/t34R/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+2fxD/uH4U/7eA
Ef+2fhH/uIAT/7N+D/+2fhH/tYAS/7h/Ev+9gBL/tn4P/7WAEv+3gQ//u34Q/7h/Ev+2gRL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+1gBH/toES/7eAEf+8fxH/t38U/7Z+E/+3fxT/vH4S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4gBH/tn4R/7h/
Ev+5fhH/tn0Q/7l/Ff+4gRL/vH4S/7WAEf+yfhP/uYEW/7t9E/+zgBL/tn4R/7p/Ev+4fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev++fBX/uX4R/7d+Ef+5gRL/tH8R/7eAEf+3fxL/uH8S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+2fxD/un4U/7WA
Ev+3fxL/vIEU/7R/EP+3fRP/tYAS/7aAFf+3fhH/uIAR/7d+Ef+1gQ//uIAR/7iAEf+3fxT/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+0fxD/tYAS/7V+Fv+2fhP/toAV/7d/Dv+2fg//tYAS/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38U/7d/
Ev+1gBL/uX4Q/7iBEv+2fhP/uH8S/7eBD/+5fxX/t38Q/7iAE/+yfxH/uX8W/7p/Ef+3gBH/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+4gA//tn4T/7d/Ev+6gA//tYAS/7h/Ev+5gBP/t34V/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/Ev+3fxL/t38S/7d/
Ev+3fxL/t38S/7d/Ev+3fxL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA
</value>
</data>
</root>

View File

@@ -0,0 +1,15 @@
namespace DBConfiguration
{
public class MigrationStatus
{
public enum StatusTypes
{
Status,
MigrationStatus,
SourceDb
};
public StatusTypes StatusType { get; set; }
public string StatusText { get; set; }
}
}

View File

@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("DBConfiguration")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("DBConfiguration")]
[assembly: AssemblyCopyright("Copyright © 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("a5087f45-0949-4e27-b367-ccb6556fc68d")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -0,0 +1,63 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace DBConfiguration.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DBConfiguration.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}

View File

@@ -0,0 +1,117 @@
<?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.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: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" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</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" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,468 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="DBConfiguration.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="RegistryDataPROExe" Type="System.String" Scope="Application">
<Value Profile="(Default)">DataPRO.exe</Value>
</Setting>
<Setting Name="ApplicationSettings" Type="System.String" Scope="Application">
<Value Profile="(Default)">applicationSettings</Value>
</Setting>
<Setting Name="DataPRO" Type="System.String" Scope="Application">
<Value Profile="(Default)">DataPRO</Value>
</Setting>
<Setting Name="LocalDbFolder" Type="System.String" Scope="Application">
<Value Profile="(Default)">db</Value>
</Setting>
<Setting Name="Mdf" Type="System.String" Scope="Application">
<Value Profile="(Default)">.mdf</Value>
</Setting>
<Setting Name="LogLdf" Type="System.String" Scope="Application">
<Value Profile="(Default)">_log.ldf</Value>
</Setting>
<Setting Name="SqlLocalDBExe" Type="System.String" Scope="Application">
<Value Profile="(Default)">SqlLocalDB.exe</Value>
</Setting>
<Setting Name="StopDataProInstance" Type="System.String" Scope="Application">
<Value Profile="(Default)">stop DataPROInstance</Value>
</Setting>
<Setting Name="DeleteDataProInstance" Type="System.String" Scope="Application">
<Value Profile="(Default)">delete DataPROInstance</Value>
</Setting>
<Setting Name="CreateAndStartDataProInstance" Type="System.String" Scope="Application">
<Value Profile="(Default)">create DataPROInstance -s</Value>
</Setting>
<Setting Name="RegistrySoftwareMicrosoftMicrosoftSQLServerLocalDBInstalledVersions" Type="System.String" Scope="Application">
<Value Profile="(Default)">SOFTWARE\\Microsoft\\Microsoft SQL Server Local DB\\Installed Versions</Value>
</Setting>
<Setting Name="InstanceAPIPath" Type="System.String" Scope="Application">
<Value Profile="(Default)">InstanceAPIPath</Value>
</Setting>
<Setting Name="SqlUserInstanceDll" Type="System.String" Scope="Application">
<Value Profile="(Default)">SqlUserInstance.dll</Value>
</Setting>
<Setting Name="LocalDB" Type="System.String" Scope="Application">
<Value Profile="(Default)">LocalDB</Value>
</Setting>
<Setting Name="Tools" Type="System.String" Scope="Application">
<Value Profile="(Default)">Tools</Value>
</Setting>
<Setting Name="ScriptsFolder" Type="System.String" Scope="Application">
<Value Profile="(Default)">SQL Server Scripts</Value>
</Setting>
<Setting Name="AttachDBsbat" Type="System.String" Scope="Application">
<Value Profile="(Default)">AttachDBs.bat</Value>
</Setting>
<Setting Name="InstallerDatabaseAttach_Status" Type="System.String" Scope="Application">
<Value Profile="(Default)">Database Attach Status</Value>
</Setting>
<Setting Name="InstallerDatabaseAttach_SqlServerLocalDbNotInstalled" Type="System.String" Scope="Application">
<Value Profile="(Default)">SQL Server LocalDb is not installed.</Value>
</Setting>
<Setting Name="InstallerDatabaseAttach_Success" Type="System.String" Scope="Application">
<Value Profile="(Default)">Databases were successfully attached to (localdb)\DataPROInstance.</Value>
</Setting>
<Setting Name="Versions" Type="System.String" Scope="Application">
<Value Profile="(Default)">versions</Value>
</Setting>
<Setting Name="ISO" Type="System.String" Scope="Application">
<Value Profile="(Default)">ISO</Value>
</Setting>
<Setting Name="CreateDataProInstance" Type="System.String" Scope="Application">
<Value Profile="(Default)">create DataPROInstance</Value>
</Setting>
<Setting Name="StartDataProInstance" Type="System.String" Scope="Application">
<Value Profile="(Default)">start DataPROInstance</Value>
</Setting>
<Setting Name="DataPROInstallationCompletedSuccessfully" Type="System.String" Scope="Application">
<Value Profile="(Default)">DataPRO installation completed successfully</Value>
</Setting>
<Setting Name="InstallationStatus" Type="System.String" Scope="Application">
<Value Profile="(Default)">DataPRO Installation status</Value>
</Setting>
<Setting Name="SqlServerLocalDbNotInstalled" Type="System.String" Scope="Application">
<Value Profile="(Default)">SQL Server LocalDb is not installed.</Value>
</Setting>
<Setting Name="InstallRedistributablesbat" Type="System.String" Scope="Application">
<Value Profile="(Default)">InstallRedistributables.bat</Value>
</Setting>
<Setting Name="ShareDataProInstance" Type="System.String" Scope="Application">
<Value Profile="(Default)">share DataPROInstance DataPROInstanceShared</Value>
</Setting>
<Setting Name="Db" Type="System.String" Scope="Application">
<Value Profile="(Default)">.db</Value>
</Setting>
<Setting Name="LocalDbDataPROInstance" Type="System.String" Scope="Application">
<Value Profile="(Default)">(localdb)\DataPROInstance</Value>
</Setting>
<Setting Name="DatabaseMigrationRequired" Type="System.String" Scope="Application">
<Value Profile="(Default)">Database migration is required. This may take awhile.{0}Click OK to export data from previous database, or Cancel to postpone the update (this will require using the previous version of DataPRO until the update is completed manually at a more convenient time).</Value>
</Setting>
<Setting Name="Warning" Type="System.String" Scope="Application">
<Value Profile="(Default)">Warning</Value>
</Setting>
<Setting Name="ActionRequired" Type="System.String" Scope="Application">
<Value Profile="(Default)">Action required</Value>
</Setting>
<Setting Name="AttachEmptyDbOnCentralServer" Type="System.String" Scope="Application">
<Value Profile="(Default)">An empty DataPROPre20 database must be attached on your central server.{0}Copy DataPROPre20.mdf and DataPROPre20_log.ldf from C:\DTS\DTS.Suite\&lt;version&gt;\DataPRO\db to your centralized server, and attach it.{0}Click OK when done or Cancel to continue using previous version of DataPRO.</Value>
</Setting>
<Setting Name="DatabaseImportCancelled" Type="System.String" Scope="Application">
<Value Profile="(Default)">Database import was cancelled.{0}Previous version of DataPRO must be used (or blank local database may be used).</Value>
</Setting>
<Setting Name="DatabaseMigrationCancelled" Type="System.String" Scope="Application">
<Value Profile="(Default)">Database migration was cancelled.{0}Previous version of DataPRO must be used (or blank local database may be used).</Value>
</Setting>
<Setting Name="DatabaseCopied" Type="System.String" Scope="Application">
<Value Profile="(Default)">Database was successfully copied.</Value>
</Setting>
<Setting Name="Success" Type="System.String" Scope="Application">
<Value Profile="(Default)">Success</Value>
</Setting>
<Setting Name="LocalDatabaseMigrationFailed" Type="System.String" Scope="Application">
<Value Profile="(Default)">Local database migration has failed.{0}{0}The previous version of DataPRO must be used or this version can be used with its blank database.{0}{0}Please contact DTS Support.{0}{0}{1}{2}</Value>
</Setting>
<Setting Name="ImportChoice" Type="System.String" Scope="Application">
<Value Profile="(Default)">The data from the previous version of DataPRO has been exported to {0}.{1}Importing this data into the new DataPRO database could take up to twice as long as the export just did.{1}Click OK to finish the migration, or Cancel to postpone the update (this will require using the previous version of DataPRO until the update is completed manually at a more convenient time).</Value>
</Setting>
<Setting Name="DatabaseVersionError" Type="System.String" Scope="Application">
<Value Profile="(Default)">An error occurred while attempting to determine the previous database version. Database was not copied.{0}Please contact DTS support.</Value>
</Setting>
<Setting Name="DatabaseNotCopied" Type="System.String" Scope="Application">
<Value Profile="(Default)">Database copy prior to migration has failed.{0}Previous version of DataPRO must be used. Please contact DTS Support.</Value>
</Setting>
<Setting Name="Pre20" Type="System.String" Scope="Application">
<Value Profile="(Default)">Pre20</Value>
</Setting>
<Setting Name="DatabaseSwitchInstructions" Type="System.String" Scope="Application">
<Value Profile="(Default)">The following steps are required and can be found in more detail in the DataPRO manual:{0}1) Backup the DataPRO database as DatePROPre20;{1}2) Detach the DataPRO database;{1}3) Restore the backup as DataPROPre20;{1}4) Copy DataPRO.mdf and DataPRO_log.ldf from C:\DTS\DTS.Suite\&lt;version&gt;\DataPRO\db to server;{1}5) Attach DataPRO database.{0}Click OK when all steps have been completed.</Value>
</Setting>
<Setting Name="DatabaseSwitchingRequired" Type="System.String" Scope="Application">
<Value Profile="(Default)">Database migration is required.{0}This requires the following steps which can be found in more detail in the DataPRO manual:{0}1) Backup the centralized DataPRO database,{1}2) Detach the centralized DataPRO database,{1}3) Restore from the backup as DataPROPre20,{1}4) Copy DataPRO.mdf and DataPRO_log.ldf from C:\DTS\DTS.Suite\&lt;version&gt;\DataPRO\db,{1} 5) Attach DataPRO database.{0}Click OK to migrate the previous database, or Cancel to postpone the update (this will require using the previous version of DataPRO until the update is completed manually at a more convenient time).</Value>
</Setting>
<Setting Name="DetachDBsbat" Type="System.String" Scope="Application">
<Value Profile="(Default)">DetachDBs.bat</Value>
</Setting>
<Setting Name="DataPROSQLFolder" Type="System.String" Scope="Application">
<Value Profile="(Default)">DataPRO_SQL</Value>
</Setting>
<Setting Name="AttachDataPROPre20Remotebat" Type="System.String" Scope="Application">
<Value Profile="(Default)">Attach_DataPROPre20_RemoteDB.bat</Value>
</Setting>
<Setting Name="SQLServerScriptsFolder" Type="System.String" Scope="Application">
<Value Profile="(Default)">SQL Server Scripts</Value>
</Setting>
<Setting Name="AttachDataPRORemotebat" Type="System.String" Scope="Application">
<Value Profile="(Default)">Attach_DataPRO_RemoteDB.bat</Value>
</Setting>
<Setting Name="AttachISORemotebat" Type="System.String" Scope="Application">
<Value Profile="(Default)">Attach_ISO_RemoteDB.bat</Value>
</Setting>
<Setting Name="DetachRemoteDBbat" Type="System.String" Scope="Application">
<Value Profile="(Default)">Detach_RemoteDB.bat</Value>
</Setting>
<Setting Name="BackupAlterDetachbat" Type="System.String" Scope="Application">
<Value Profile="(Default)">Backup_Alter_Detach_RemoteDBs.bat</Value>
</Setting>
<Setting Name="RestoreAsDataPROPre20bat" Type="System.String" Scope="Application">
<Value Profile="(Default)">Restore_As_DataPROPre20_RemoteDB.bat</Value>
</Setting>
<Setting Name="BackupBak" Type="System.String" Scope="Application">
<Value Profile="(Default)">Backup.bak</Value>
</Setting>
<Setting Name="CentralizedDatabaseMigrationFailed" Type="System.String" Scope="Application">
<Value Profile="(Default)">Database migration has failed.{0}{0}The previous version of DataPRO must be used with the previous database or this version can be used with a blank local database.{0}{0}Please contact DTS Support.{0}{0}{1}{2}</Value>
</Setting>
<Setting Name="Initial" Type="System.String" Scope="Application">
<Value Profile="(Default)">Initial</Value>
</Setting>
<Setting Name="Backupbat" Type="System.String" Scope="Application">
<Value Profile="(Default)">Backup_RemoteDB.bat</Value>
</Setting>
<Setting Name="NetworkError" Type="System.String" Scope="Application">
<Value Profile="(Default)">Network error! {0}; Click 'OK' to retry or 'Abort' to terminate database setup.</Value>
</Setting>
<Setting Name="AccessError" Type="System.String" Scope="Application">
<Value Profile="(Default)">Access error: {0}</Value>
</Setting>
<Setting Name="AccessRetry" Type="System.String" Scope="Application">
<Value Profile="(Default)">To retry database migration, give this user Administrator privileges on the server and click 'OK'.</Value>
</Setting>
<Setting Name="DataPROInstallationCancelled" Type="System.String" Scope="Application">
<Value Profile="(Default)">DataPRO installation was cancelled by user</Value>
</Setting>
<Setting Name="PreviousDatabaseNotCopied" Type="System.String" Scope="Application">
<Value Profile="(Default)">Source database was not copied: </Value>
</Setting>
<Setting Name="ConfirmAbort" Type="System.String" Scope="Application">
<Value Profile="(Default)">Are you sure you want to discontinue?</Value>
</Setting>
<Setting Name="DatabaseMigrationCompletedSuccessfully" Type="System.String" Scope="Application">
<Value Profile="(Default)">Database migration completed successfully</Value>
</Setting>
<Setting Name="DatabaseStandAloneMigrationCancelled" Type="System.String" Scope="Application">
<Value Profile="(Default)">Database migration was cancelled</Value>
</Setting>
<Setting Name="InstallerCustomActions" Type="System.String" Scope="Application">
<Value Profile="(Default)">InstallerCustomActions</Value>
</Setting>
<Setting Name="ISOMMEDbLocation" Type="System.String" Scope="Application">
<Value Profile="(Default)">ISO\mme_code.mdb</Value>
</Setting>
<Setting Name="SourceDbSameAsDestination" Type="System.String" Scope="Application">
<Value Profile="(Default)">Source database is same as destination</Value>
</Setting>
<Setting Name="BlankDestinationDb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Destination database is blank and not allowed to be overwritten</Value>
</Setting>
<Setting Name="DataPROBlankMdf" Type="System.String" Scope="Application">
<Value Profile="(Default)">DataPROBlank.mdf</Value>
</Setting>
<Setting Name="InvalidSourceDb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Invalid source database name</Value>
</Setting>
<Setting Name="LocalSourceDbToBeMigrated" Type="System.String" Scope="Application">
<Value Profile="(Default)">Local source database to be migrated</Value>
</Setting>
<Setting Name="LocalSourceDbToBeMigratedVersion" Type="System.String" Scope="Application">
<Value Profile="(Default)">Local source database to be migrated (Version {0})</Value>
</Setting>
<Setting Name="InvalidSourceDbVersion" Type="System.String" Scope="Application">
<Value Profile="(Default)">Invalid source database version</Value>
</Setting>
<Setting Name="DbVersionsAreTheSame" Type="System.String" Scope="Application">
<Value Profile="(Default)">Database versions are the same</Value>
</Setting>
<Setting Name="SourceDbVersionCannotBeGreaterThanDestination" Type="System.String" Scope="Application">
<Value Profile="(Default)">Source database version cannot be greater than destination</Value>
</Setting>
<Setting Name="NetworkPathNotFound" Type="System.String" Scope="Application">
<Value Profile="(Default)">The network path was not found</Value>
</Setting>
<Setting Name="ExceptionWhileUsingPrevDbStructure" Type="System.String" Scope="Application">
<Value Profile="(Default)">Exception while using previous database structure: {0}</Value>
</Setting>
<Setting Name="ResultOnCentralServer" Type="System.String" Scope="Application">
<Value Profile="(Default)">Result of querying tblDataPRODbVersion on central server is {0}</Value>
</Setting>
<Setting Name="ResultOnLocal" Type="System.String" Scope="Application">
<Value Profile="(Default)">Result of querying tblDataPRODbVersion locally is {0}</Value>
</Setting>
<Setting Name="MigratingTempCentralizedDb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Migrating temporary centralized database from version {0} to {1}...</Value>
</Setting>
<Setting Name="DetachingTempLocalDb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Detaching temporary local database...</Value>
</Setting>
<Setting Name="MigratingTempLocalDb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Migrating temporary local database from version {0} to {1}...</Value>
</Setting>
<Setting Name="AttachingBlankDb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Attaching blank current database for migration...</Value>
</Setting>
<Setting Name="CopyingDataPRODb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Copying DataPRO database as {0}...</Value>
</Setting>
<Setting Name="WasCopied" Type="System.String" Scope="Application">
<Value Profile="(Default)">{0} was copied as {1}</Value>
</Setting>
<Setting Name="AttachingRemoteISODb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Attaching remote ISO database...</Value>
</Setting>
<Setting Name="DeletingRemoteISOLog" Type="System.String" Scope="Application">
<Value Profile="(Default)">Deleting remote ISO_log.ldf...</Value>
</Setting>
<Setting Name="CopyingISOToRemote" Type="System.String" Scope="Application">
<Value Profile="(Default)">Copying newly-installed ISO.mdf to remote server...</Value>
</Setting>
<Setting Name="AttachingRemoteDb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Attaching remote {0} database...</Value>
</Setting>
<Setting Name="DeletingRemoteLog" Type="System.String" Scope="Application">
<Value Profile="(Default)">Deleting remote {0}_Log.ldf..."</Value>
</Setting>
<Setting Name="CopyingNewDataPROMdfToRemote" Type="System.String" Scope="Application">
<Value Profile="(Default)">Copying newly-installed DataPRO.mdf to remote server...</Value>
</Setting>
<Setting Name="AttachingRemotePre20Db" Type="System.String" Scope="Application">
<Value Profile="(Default)">Attaching remote {0}Pre20 database...</Value>
</Setting>
<Setting Name="DeletingRemotePre20Log" Type="System.String" Scope="Application">
<Value Profile="(Default)">Deleting remote {0}Pre20_Log.ldf...</Value>
</Setting>
<Setting Name="CopyingNewDataPROPre20MdfToRemote" Type="System.String" Scope="Application">
<Value Profile="(Default)">Copying newly-installed DataPROPre20.mdf to remote server...</Value>
</Setting>
<Setting Name="MigratingPrevCentralizedDb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Migrating previous centralized database from version {0} to {1}...</Value>
</Setting>
<Setting Name="BackingUpRemoteDb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Backing up remote {0} database...</Value>
</Setting>
<Setting Name="DeletingRemoteDataPROBackupBak" Type="System.String" Scope="Application">
<Value Profile="(Default)">Deleting remote DataPROBackup.bak...</Value>
</Setting>
<Setting Name="DetachingRemoteTempPre20Db" Type="System.String" Scope="Application">
<Value Profile="(Default)">Detaching remote temporary {0}Pre20 database...</Value>
</Setting>
<Setting Name="MigratingPrevCentralizedDbToIntermediate" Type="System.String" Scope="Application">
<Value Profile="(Default)">Migrating previous centralized database from version {0} to intermediate version {1}...</Value>
</Setting>
<Setting Name="RestoringRemoteDataPROAsPre20" Type="System.String" Scope="Application">
<Value Profile="(Default)">Restoring remote DataPRO database as DataPROPre20...</Value>
</Setting>
<Setting Name="DeletingRemotePre20Mdf" Type="System.String" Scope="Application">
<Value Profile="(Default)">Deleting remote {0}Pre20.mdf...</Value>
</Setting>
<Setting Name="BackingUpAlteringDetachingRemoteDbAndISO" Type="System.String" Scope="Application">
<Value Profile="(Default)">Backing up, Altering, and Detaching remote {0} and ISO database...</Value>
</Setting>
<Setting Name="DeletingRemoteBackupBak" Type="System.String" Scope="Application">
<Value Profile="(Default)">Deleting remote {0}Backup.bak ...</Value>
</Setting>
<Setting Name="BackingUpAlteringDetachingRemoteDb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Backing up, Altering, and Detaching remote {0} database...</Value>
</Setting>
<Setting Name="ImportingToNewCentralizedDb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Importing to new centralized database from {0}...</Value>
</Setting>
<Setting Name="ExportingPrevDb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Exporting previous database to {0}...</Value>
</Setting>
<Setting Name="MigratingPrevCentralizedDbFromVersion" Type="System.String" Scope="Application">
<Value Profile="(Default)">Migrating previous centralized database from version {0}</Value>
</Setting>
<Setting Name="QueryingCentralizedDbVersion" Type="System.String" Scope="Application">
<Value Profile="(Default)">Querying centralized database version...</Value>
</Setting>
<Setting Name="CopyingPrevLocalDbNoMigration" Type="System.String" Scope="Application">
<Value Profile="(Default)">Copying previous local database; no migration is required...</Value>
</Setting>
<Setting Name="DetachingLocalISODb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Detaching local ISO database...</Value>
</Setting>
<Setting Name="MigratingPrevLocalDb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Migrating previous local database from version {0} to {1}...</Value>
</Setting>
<Setting Name="AttachingPrevLocalDb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Attaching copy of local source database...</Value>
</Setting>
<Setting Name="CopyingPrevLocalDb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Copying local source database...</Value>
</Setting>
<Setting Name="TempAttachingCopyPrevLocalDb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Temporarily attaching copy of local source database...</Value>
</Setting>
<Setting Name="ImportingToTempLocalDb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Importing to temporary local database from {0}...</Value>
</Setting>
<Setting Name="AttachingBlankLocalTempDb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Attaching new blank local temporary database for import from {0}...</Value>
</Setting>
<Setting Name="QueryingPrevLocalDbVersion" Type="System.String" Scope="Application">
<Value Profile="(Default)">Querying local source database version...</Value>
</Setting>
<Setting Name="DataPROBlankLogLdf" Type="System.String" Scope="Application">
<Value Profile="(Default)">DataPROBlank_log.ldf</Value>
</Setting>
<Setting Name="InvalidDestinationDb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Invalid destination database path</Value>
</Setting>
<Setting Name="DestinationPathIsNotAllowed" Type="System.String" Scope="Application">
<Value Profile="(Default)">Destination database cannot be created in working directory</Value>
</Setting>
<Setting Name="Migrate" Type="System.String" Scope="Application">
<Value Profile="(Default)">Migrate</Value>
</Setting>
<Setting Name="LocalDestDbPath" Type="System.String" Scope="Application">
<Value Profile="(Default)">Local destination database path (Version will be {0})</Value>
</Setting>
<Setting Name="Quit" Type="System.String" Scope="Application">
<Value Profile="(Default)">Quit</Value>
</Setting>
<Setting Name="WarningAllowStreamingModesWasNotMigrated" Type="System.String" Scope="Application">
<Value Profile="(Default)">Warning: The AllowStreaming config setting was not migrated and has been set to False.{0}{0}An "Allow streaming modes" checkbox is now in the "Test setup settings" step of the "System Settings" tab.</Value>
</Setting>
<Setting Name="Initialize" Type="System.String" Scope="Application">
<Value Profile="(Default)">Initialize</Value>
</Setting>
<Setting Name="LocalSourceDbToBeInitialized" Type="System.String" Scope="Application">
<Value Profile="(Default)">Local source database to be initialized</Value>
</Setting>
<Setting Name="LocalDestDbToBeInitializedPath" Type="System.String" Scope="Application">
<Value Profile="(Default)">Local destination database path</Value>
</Setting>
<Setting Name="DatabaseInitializationCompletedSuccessfully" Type="System.String" Scope="Application">
<Value Profile="(Default)">Database initialization completed successfully</Value>
</Setting>
<Setting Name="DatabaseStandAloneInitializationCancelled" Type="System.String" Scope="Application">
<Value Profile="(Default)">Database initialization was cancelled</Value>
</Setting>
<Setting Name="DatabaseInitializationVersionError" Type="System.String" Scope="Application">
<Value Profile="(Default)">Invalid database version. Database initialization was not done.</Value>
</Setting>
<Setting Name="CreatingBackupDb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Creating a backup database...</Value>
</Setting>
<Setting Name="DetachingLocalMigratedDb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Detaching local {0} database...</Value>
</Setting>
<Setting Name="CentralizedDatabaseShouldBeBackedUp" Type="System.String" Scope="Application">
<Value Profile="(Default)">Before proceeding with database migration, ensure that all data has been backed up. {0}</Value>
</Setting>
<Setting Name="CentralizedDatabaseMigrationCancelled" Type="System.String" Scope="Application">
<Value Profile="(Default)">Database migration has been cancelled.</Value>
</Setting>
<Setting Name="DisplayDatabaseVersion" Type="System.String" Scope="Application">
<Value Profile="(Default)">Database is version {0}</Value>
</Setting>
<Setting Name="NoMigrationNeeded" Type="System.String" Scope="Application">
<Value Profile="(Default)">No migration was done.{0}Old db version: {1}; New db version: {2}</Value>
</Setting>
<Setting Name="InitializingDb" Type="System.String" Scope="Application">
<Value Profile="(Default)">Initializing local database to be {0}-centric{1}...</Value>
</Setting>
<Setting Name="Aero" Type="System.String" Scope="Application">
<Value Profile="(Default)">Aero</Value>
</Setting>
<Setting Name="Crash" Type="System.String" Scope="Application">
<Value Profile="(Default)">Crash</Value>
</Setting>
<Setting Name="TSRAIR" Type="System.String" Scope="Application">
<Value Profile="(Default)">TSR AIR</Value>
</Setting>
<Setting Name="ThirtySeconds" Type="System.String" Scope="Application">
<Value Profile="(Default)"> (this may take up to 30 seconds)</Value>
</Setting>
<Setting Name="DownloadFolder" Type="System.String" Scope="Application">
<Value Profile="(Default)">DownloadFolder</Value>
</Setting>
<Setting Name="DataUpOneLevel" Type="System.String" Scope="Application">
<Value Profile="(Default)">..\Data</Value>
</Setting>
<Setting Name="ConfigDidNotNeedToBeUpdated" Type="System.String" Scope="Application">
<Value Profile="(Default)">DataPRO.exe.config did not need to be updated.</Value>
</Setting>
<Setting Name="ConfigWasUpdated" Type="System.String" Scope="Application">
<Value Profile="(Default)">DataPRO.exe.config was updated from the {0} installation.</Value>
</Setting>
<Setting Name="UserSettings" Type="System.String" Scope="Application">
<Value Profile="(Default)">userSettings</Value>
</Setting>
<Setting Name="Setting" Type="System.String" Scope="Application">
<Value Profile="(Default)">DataPRO.exe</Value>
</Setting>
<Setting Name="NewSettingsCouldNotBeFound" Type="System.String" Scope="Application">
<Value Profile="(Default)">Warning: DataPRO.exe.config was not updated because config settings from new version of DataPRO could not be found: {0}; {1}</Value>
</Setting>
<Setting Name="NewSettingsCouldNotBeProcessed" Type="System.String" Scope="Application">
<Value Profile="(Default)">Warning: DataPRO.exe.config was not updated because config settings from new version of DataPRO could not be processed.</Value>
</Setting>
<Setting Name="ConfigMigrationStatus" Type="System.String" Scope="Application">
<Value Profile="(Default)">Config migration status</Value>
</Setting>
<Setting Name="TSRAIRGoInstallationCompletedSuccessfully" Type="System.String" Scope="Application">
<Value Profile="(Default)">TSR AIR Go installation completed successfully</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = "")]

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]