Robert 7 сар өмнө
parent
commit
3a0b9b9c8a
66 өөрчлөгдсөн 10001 нэмэгдсэн , 1727 устгасан
  1. 4 1
      ApiTest/MainWindow.xaml.cs
  2. 4 4
      ApiTest/Properties/AssemblyInfo.cs
  3. 12 0
      AwInitilizer.sln
  4. 92 91
      AwInitilizer/App.xaml.cs
  5. 6 6
      AwInitilizer/Initializer.csproj
  6. 109 234
      AwInitilizer/MainWindow.xaml.cs
  7. 31 30
      AwInitilizer/Model/UpdateData.cs
  8. 57 27
      AwInitilizer/Procedure/ButtonStatusCheckPorcedure.cs
  9. 2 1
      AwInitilizer/Procedure/DsiableChargeAuthProcedure.cs
  10. 4 1
      AwInitilizer/Procedure/FirmwareBundleUploadProcedure.cs
  11. 2 1
      AwInitilizer/Procedure/FirmwareCheckVersionProcedure.cs
  12. 1 0
      AwInitilizer/Procedure/FirmwareUpdateProcedure.cs
  13. 1 0
      AwInitilizer/Procedure/FirmwareUploadProcedure.cs
  14. 4 4
      AwInitilizer/Properties/AssemblyInfo.cs
  15. 0 132
      AwInitilizer/SettingConfig.cs
  16. 4 3
      AwInitilizer/SigninDialog.xaml.cs
  17. 1 1
      AwInitilizer/packages.config
  18. 6628 1155
      AwInitlizerInstaller__Shinewave/AwInitlizerInstaller.vdproj
  19. 6 0
      ConfigEditor/App.config
  20. 9 0
      ConfigEditor/App.xaml
  21. 17 0
      ConfigEditor/App.xaml.cs
  22. 212 0
      ConfigEditor/ConfigEditor.csproj
  23. 28 0
      ConfigEditor/Converter/IsModelSelectdConverter.cs
  24. 34 0
      ConfigEditor/MainWindow.xaml
  25. 52 0
      ConfigEditor/MainWindow.xaml.cs
  26. 35 0
      ConfigEditor/NewModelNameDlg.xaml
  27. 53 0
      ConfigEditor/NewModelNameDlg.xaml.cs
  28. 56 0
      ConfigEditor/Properties/AssemblyInfo.cs
  29. 71 0
      ConfigEditor/Properties/Resources.Designer.cs
  30. 117 0
      ConfigEditor/Properties/Resources.resx
  31. 30 0
      ConfigEditor/Properties/Settings.Designer.cs
  32. 7 0
      ConfigEditor/Properties/Settings.settings
  33. 66 0
      ConfigEditor/SubPage/AppConfig/AppConfigPanel.xaml
  34. 69 0
      ConfigEditor/SubPage/AppConfig/AppConfigPanel.xaml.cs
  35. 190 0
      ConfigEditor/SubPage/EvseConfig/EvseConfigPanel.xaml
  36. 318 0
      ConfigEditor/SubPage/EvseConfig/EvseConfigPanel.xaml.cs
  37. 39 0
      ConfigEditor/SubPage/EvseConfig/FirmwareVersionPanel.xaml
  38. 124 0
      ConfigEditor/SubPage/EvseConfig/FirmwareVersionPanel.xaml.cs
  39. 52 0
      ConfigEditor/SubPage/EvseConfig/FirmwareVersionPaneltem.xaml
  40. 226 0
      ConfigEditor/SubPage/EvseConfig/FirmwareVersionPaneltem.xaml.cs
  41. 79 0
      ConfigEditor/app.manifest
  42. 14 0
      ConfigEditor/packages.config
  43. 6 0
      Editor/App.config
  44. 9 0
      Editor/App.xaml
  45. 17 0
      Editor/App.xaml.cs
  46. 97 0
      Editor/Editor.csproj
  47. 12 0
      Editor/MainWindow.xaml
  48. 28 0
      Editor/MainWindow.xaml.cs
  49. 56 0
      Editor/Properties/AssemblyInfo.cs
  50. 71 0
      Editor/Properties/Resources.Designer.cs
  51. 117 0
      Editor/Properties/Resources.resx
  52. 30 0
      Editor/Properties/Settings.Designer.cs
  53. 7 0
      Editor/Properties/Settings.settings
  54. 1 1
      GitVersion.yml
  55. 134 0
      InitializerModel/AppSettingConfig.cs
  56. 9 3
      InitializerModel/AppSettingConfigModel.cs
  57. 286 0
      InitializerModel/EvseSettingConfig.cs
  58. 15 4
      InitializerModel/EvseSettingConfigModel.cs
  59. 20 20
      InitializerModel/FirmwareUpdateModel.cs
  60. 62 0
      InitializerModel/InitializerModel.csproj
  61. 100 0
      InitializerModel/PredefinedVersionPair.cs
  62. 37 0
      InitializerModel/Properties/AssemblyInfo.cs
  63. 5 0
      InitializerModel/packages.config
  64. 3 3
      Initilizer/AssemblyInfo.cs
  65. 4 4
      MesAdaptor/Properties/AssemblyInfo.cs
  66. 9 1
      MesAdaptor/SajetConnect.cs

+ 4 - 1
ApiTest/MainWindow.xaml.cs

@@ -26,7 +26,10 @@ namespace ApiTest
         {
             InitializeComponent();
 
-            uxIp.Text = "192.168.80.129";
+            //uxIp.Text = "192.168.80.129";
+            //uxAccount.Text = "zerova";
+            //uxPass.Text = "t6sji4j83";
+            uxIp.Text = "192.168.1.100";
             uxAccount.Text = "zerova";
             uxPass.Text = "t6sji4j83";
         }

+ 4 - 4
ApiTest/Properties/AssemblyInfo.cs

@@ -50,7 +50,7 @@ using System.Windows;
 //
 // 您可以指定所有的值,也可以使用 '*' 將組建和修訂編號
 // 設為預設,如下所示:
-// [assembly: AssemblyVersion("1.12.1.0")]
-[assembly: AssemblyVersion("1.12.1.0")]
-[assembly: AssemblyFileVersion("1.12.1.0")]
-[assembly: AssemblyInformationalVersion("3be3a19")]
+// [assembly: AssemblyVersion("1.13.0.0")]
+[assembly: AssemblyVersion("1.13.0.0")]
+[assembly: AssemblyFileVersion("1.13.0.0")]
+[assembly: AssemblyInformationalVersion("0942119")]

+ 12 - 0
AwInitilizer.sln

@@ -15,6 +15,10 @@ Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "InitlizerInstaller_Sajet2",
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ApiTest", "ApiTest\ApiTest.csproj", "{C52DE85F-C266-4DE4-A6F3-1E9C8DD43318}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConfigEditor", "ConfigEditor\ConfigEditor.csproj", "{DC9E5E67-78A0-43E3-9FD6-BA72E1AC6EF7}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InitializerModel", "InitializerModel\InitializerModel.csproj", "{68A79486-7973-42BF-8CAF-43296BEB1107}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -39,6 +43,14 @@ Global
 		{C52DE85F-C266-4DE4-A6F3-1E9C8DD43318}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{C52DE85F-C266-4DE4-A6F3-1E9C8DD43318}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{C52DE85F-C266-4DE4-A6F3-1E9C8DD43318}.Release|Any CPU.Build.0 = Release|Any CPU
+		{DC9E5E67-78A0-43E3-9FD6-BA72E1AC6EF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{DC9E5E67-78A0-43E3-9FD6-BA72E1AC6EF7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{DC9E5E67-78A0-43E3-9FD6-BA72E1AC6EF7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{DC9E5E67-78A0-43E3-9FD6-BA72E1AC6EF7}.Release|Any CPU.Build.0 = Release|Any CPU
+		{68A79486-7973-42BF-8CAF-43296BEB1107}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{68A79486-7973-42BF-8CAF-43296BEB1107}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{68A79486-7973-42BF-8CAF-43296BEB1107}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{68A79486-7973-42BF-8CAF-43296BEB1107}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

+ 92 - 91
AwInitilizer/App.xaml.cs

@@ -1,91 +1,92 @@
-using MesAdaptor;
-using System;
-using System.Collections.Generic;
-using System.Configuration;
-using System.Data;
-using System.IO;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows;
-
-namespace AwInitilizer
-{
-    /// <summary>
-    /// Interaction logic for App.xaml
-    /// </summary>
-    public partial class App : Application
-    {
-        public App() : base()
-        {
-            SetUiLanguage();
-            DispatcherUnhandledException += App_DispatcherUnhandledException;
-        }
-
-        private bool onlyOnce = true;
-        private async void Test()
-        {
-            if (!onlyOnce)
-            {
-                return;
-            }
-            onlyOnce = false;
-
-            //var test = new SajectConnectSajet2("ATC_TEST01");
-            //bool result = false;
-            //result = test.SajetTransStart();
-            //await Task.Delay(5_000);
-            //string userId = "001";
-            //result = test.SajetTransSignIn(ref userId);
-            //await Task.Delay(5_000);
-            //result = test.SajetTransSnCheck("6300D000033-R00", "PL110001006");
-            //result = test.SajetTransReport("6300D000033-R00", "PL110001006" , new Dictionary<string, string>() { {"Header1","Value1"} });
-            //result = test.SajetTranFinishFail("6300D000033-R00", "PL110001006", MesErrorCode.BlueButtonTestFail);
-            //result = test.SajetTranFinishSuccess("6300D000033-R00", "PL110001006");
-            //result = test.SajetTransClose();
-        }
-
-        protected override void OnActivated(EventArgs e)
-        {
-            base.OnActivated(e);
-
-            SetUiLanguage();
-
-            Test();
-        }
-
-        private void SetUiLanguage()
-        {
-            var langSetting = AppSettingConfig.Language;
-
-            if (langSetting.ToLower() == "zh-chs")
-            {
-                Resx.AppResources.Culture = System.Globalization.CultureInfo.GetCultureInfo("zh-CHS");
-            }
-            else
-            {
-                Resx.AppResources.Culture = System.Globalization.CultureInfo.GetCultureInfo("en-US");
-            }
-        }
-
-        private void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
-        {
-            var fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt";
-            var msg = e.Exception.Message + "\n" + e.Exception.StackTrace;
-            File.WriteAllText(fileName, msg);
-            MessageBox.Show($"App crashed,Please report error and send back {fileName}");
-            Application.Current.Shutdown();
-        }
-
-        protected override void OnExit(ExitEventArgs e)
-        {
-            base.OnExit(e);
-
-            if (SajetConnect.Instance != null)
-            {
-                var stopResult = SajetConnect.SajetTransClose();
-            }
-            Environment.Exit(0);
-        }
-    }
-}
+using InitializerModel;
+using MesAdaptor;
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Data;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+
+namespace AwInitilizer
+{
+    /// <summary>
+    /// Interaction logic for App.xaml
+    /// </summary>
+    public partial class App : Application
+    {
+        public App() : base()
+        {
+            SetUiLanguage();
+            DispatcherUnhandledException += App_DispatcherUnhandledException;
+        }
+
+        private bool onlyOnce = true;
+        private async void Test()
+        {
+            if (!onlyOnce)
+            {
+                return;
+            }
+            onlyOnce = false;
+
+            //var test = new SajectConnectSajet2("ATC_TEST01");
+            //bool result = false;
+            //result = test.SajetTransStart();
+            //await Task.Delay(5_000);
+            //string userId = "001";
+            //result = test.SajetTransSignIn(ref userId);
+            //await Task.Delay(5_000);
+            //result = test.SajetTransSnCheck("6300D000033-R00", "PL110001006");
+            //result = test.SajetTransReport("6300D000033-R00", "PL110001006" , new Dictionary<string, string>() { {"Header1","Value1"} });
+            //result = test.SajetTranFinishFail("6300D000033-R00", "PL110001006", MesErrorCode.BlueButtonTestFail);
+            //result = test.SajetTranFinishSuccess("6300D000033-R00", "PL110001006");
+            //result = test.SajetTransClose();
+        }
+
+        protected override void OnActivated(EventArgs e)
+        {
+            base.OnActivated(e);
+
+            SetUiLanguage();
+
+            Test();
+        }
+
+        private void SetUiLanguage()
+        {
+            var langSetting = AppSettingConfig.Instance.Language;
+
+            if (langSetting.ToLower() == "zh-chs")
+            {
+                Resx.AppResources.Culture = System.Globalization.CultureInfo.GetCultureInfo("zh-CHS");
+            }
+            else
+            {
+                Resx.AppResources.Culture = System.Globalization.CultureInfo.GetCultureInfo("en-US");
+            }
+        }
+
+        private void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
+        {
+            var fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt";
+            var msg = e.Exception.Message + "\n" + e.Exception.StackTrace;
+            File.WriteAllText(fileName, msg);
+            MessageBox.Show($"App crashed,Please report error and send back {fileName}");
+            Application.Current.Shutdown();
+        }
+
+        protected override void OnExit(ExitEventArgs e)
+        {
+            base.OnExit(e);
+
+            if (SajetConnect.Instance != null)
+            {
+                var stopResult = SajetConnect.SajetTransClose();
+            }
+            Environment.Exit(0);
+        }
+    }
+}

+ 6 - 6
AwInitilizer/Initializer.csproj

@@ -68,8 +68,8 @@
     <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
       <HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
     </Reference>
-    <Reference Include="PhihongEv.Lib, Version=1.0.16.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\packages\PhihongEv.Lib.1.0.16\lib\net40\PhihongEv.Lib.dll</HintPath>
+    <Reference Include="PhihongEv.Lib, Version=1.4.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\PhihongEv.Lib.1.4.0\lib\net40\PhihongEv.Lib.dll</HintPath>
     </Reference>
     <Reference Include="RestSharp, Version=106.15.0.0, Culture=neutral, PublicKeyToken=598062e77f915f75, processorArchitecture=MSIL">
       <HintPath>..\packages\RestSharp.106.15.0\lib\net452\RestSharp.dll</HintPath>
@@ -120,7 +120,6 @@
     <Compile Include="ManualSn.xaml.cs">
       <DependentUpon>ManualSn.xaml</DependentUpon>
     </Compile>
-    <Compile Include="Model\AppSettingConfig.cs" />
     <Compile Include="Model\SimStatusString.cs" />
     <Compile Include="ProcedureLog\LogWriter.cs" />
     <Compile Include="Procedure\FirmwareFtpUploadProcedure.cs" />
@@ -137,7 +136,6 @@
       <DesignTime>True</DesignTime>
       <DependentUpon>AppResources.resx</DependentUpon>
     </Compile>
-    <Compile Include="SettingConfig.cs" />
     <Compile Include="SigninDialog.xaml.cs">
       <DependentUpon>SigninDialog.xaml</DependentUpon>
     </Compile>
@@ -182,8 +180,6 @@
   </ItemGroup>
   <ItemGroup>
     <Compile Include="Model\ButtonStatus.cs" />
-    <Compile Include="Model\FirmwareUpdateModel.cs" />
-    <Compile Include="Model\SettingConfig.cs" />
     <Compile Include="Model\UploadFile.cs" />
     <Compile Include="Procedure\ButtonStatusCheckPorcedure.cs" />
     <Compile Include="Model\EvseSerialResponseModel.cs" />
@@ -232,6 +228,10 @@
     </BootstrapperPackage>
   </ItemGroup>
   <ItemGroup>
+    <ProjectReference Include="..\InitializerModel\InitializerModel.csproj">
+      <Project>{68a79486-7973-42bf-8caf-43296beb1107}</Project>
+      <Name>InitializerModel</Name>
+    </ProjectReference>
     <ProjectReference Include="..\MesAdaptor\MesAdaptor.csproj">
       <Project>{6b69cf23-270b-429b-a21d-ad98c2dff678}</Project>
       <Name>MesAdaptor</Name>

+ 109 - 234
AwInitilizer/MainWindow.xaml.cs

@@ -1,6 +1,7 @@
 using AwInitilizer.Assist;
 using AwInitilizer.Model;
 using AwInitilizer.Procedure;
+using InitializerModel;
 using MesAdaptor;
 using Microsoft.Win32;
 using Newtonsoft.Json;
@@ -23,6 +24,7 @@ using System.Windows.Input;
 using System.Windows.Interop;
 using System.Windows.Media;
 using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
 using System.Windows.Navigation;
 using System.Windows.Threading;
 
@@ -82,9 +84,9 @@ namespace AwInitilizer
             keyinListener = new KeyinListener(this);
             keyinListener.OnSystemIDReseived += KeyinListener_OnSystemIDReseived;
 
-            if (!string.IsNullOrEmpty(AppSettingConfig.JohnSenLedComPort))
+            if (!string.IsNullOrEmpty(AppSettingConfig.Instance.JohnSenLedComPort))
             {
-                ledControl = new ZhongShengLedControl(AppSettingConfig.JohnSenLedComPort, this);
+                ledControl = new ZhongShengLedControl(AppSettingConfig.Instance.JohnSenLedComPort, this);
             }
 
             Loaded += MainWindow_Loaded;
@@ -618,87 +620,119 @@ namespace AwInitilizer
 
         private bool LoadConfigBySystemID(SystemID systemID)
         {
-            string settingRootFolder;
-            try
-            {
-                var defaultPath = AppSettingConfig.FirmwareRoot;
-                if (string.IsNullOrEmpty(defaultPath))
-                {
-                    defaultPath = ".\\";
-                }
-                settingRootFolder = Path.GetFullPath(defaultPath);
-            }
-            catch
-            {
-                //HintDialog.ShowMessage("Firmware root path ERROR");
+            var result = EvseSettingConfig.TryLoad(systemID.ModelName.ToString());
+            EvseSettingConfigLoadError error = result.Error;
+
+            if (error == EvseSettingConfigLoadError.LoadConfigRootFolderNotfound)
+            {
                 HintDialog.ShowMessage(Resx.AppResources.LoadConfigRootFolderNotfoundAlert);
-                return false;
+                return false;
             }
 
-            if (!Directory.Exists(settingRootFolder))
-            {
-                //HintDialog.ShowMessage("Firmware root path not exist");
+            if (error == EvseSettingConfigLoadError.LoadConfigFolderNotfound)
+            {
                 HintDialog.ShowMessage(Resx.AppResources.LoadConfigFolderNotfoundAlert);
-                return false;
-            }
-
-            string modelDirectoy = Path.Combine(settingRootFolder, systemID.ModelName.ToString());
-            if (!Directory.Exists(modelDirectoy))
-            {
-                //HintDialog.ShowMessage("Model firmware root path not exist");
+                return false;
+            }
+
+            if (error == EvseSettingConfigLoadError.LoadConfigModelFolderNotfound)
+            {
                 HintDialog.ShowMessage(Resx.AppResources.LoadConfigModelFolderNotfoundAlert);
-                return false;
-            }
-
-            string modelSeettingFilePath = Path.Combine(modelDirectoy, systemID.ModelName.ToString() + ".ini");
-            if (!File.Exists(modelSeettingFilePath))
-            {
-                //HintDialog.ShowMessage("Model firmware setting not exist");
+                return false;
+            }
+
+            if (error == EvseSettingConfigLoadError.LoadConfigModelInitNotfound)
+            {
                 HintDialog.ShowMessage(Resx.AppResources.LoadConfigModelInitNotfoundAlert);
-                return false;
-            }
-
-            //check format
-            var settingString = File.ReadAllText(modelSeettingFilePath);
-            SettingConfig setting;
-            try
+                return false;
+            }
+
+            if (error == EvseSettingConfigLoadError.LoadConfigModelInitFormatError)
+            {
+                HintDialog.ShowMessage(Resx.AppResources.LoadConfigModelInitFormatErrorAlert);
+                return false;
+            }
+
+            if (error == EvseSettingConfigLoadError.InitModelNameEmpty)
             {
-                setting = JsonConvert.DeserializeObject<SettingConfig>(settingString);
-            }
-            catch
+                HintDialog.ShowMessage(Resx.AppResources.InitModelNameEmptyAlert);
+                return false;
+            }
+
+            if (error == EvseSettingConfigLoadError.InitModelNameError)
             {
-                //HintDialog.ShowMessage("Setting file ERROR");
-                HintDialog.ShowMessage(Resx.AppResources.LoadConfigModelInitFormatErrorAlert);
-                return false;
-            }
+                HintDialog.ShowMessage(Resx.AppResources.InitModelNameErrorAlert);
+                return false;
+            }
+
+            if (error == EvseSettingConfigLoadError.InitIccidEmpty)
+            {
+                HintDialog.ShowMessage(Resx.AppResources.InitIccidEmptyAlert);
+                return false;
+            }
+
+            if (error == EvseSettingConfigLoadError.InitImsiEmpty)
+            {
+                HintDialog.ShowMessage(Resx.AppResources.InitImsiEmptyAlert);
+                return false;
+            }
+
+            if (error == EvseSettingConfigLoadError.InitFirmwareNameEmpty)
+            {
+                HintDialog.ShowMessage(Resx.AppResources.InitFirmwareNameEmptyAlert);
+                return false;
+            }
+
+            if (error == EvseSettingConfigLoadError.InitFirmwareVersionEmpty)
+            {
+                HintDialog.ShowMessage(string.Format(Resx.AppResources.InitFirmwareVersionEmptyAlert, result.ErrorFirmware));
+                return false;
+            }
+
+            if (error == EvseSettingConfigLoadError.InitFirmwareFileEmpty)
+            {
+                HintDialog.ShowMessage(string.Format(Resx.AppResources.InitFirmwareFileEmptyAlert, result.ErrorFirmware));
+                return false;
+            }
+
+            if (error == EvseSettingConfigLoadError.InitFirmwareFileMissing)
+            {
+                HintDialog.ShowMessage(string.Format(Resx.AppResources.InitFirmwareFileMissingAlert, result.ErrorFirmware));
+                return false;
+            }
+
+            if (error == EvseSettingConfigLoadError.InitFirmwareFileHeaderFormat)
+            {
+                HintDialog.ShowMessage(string.Format(Resx.AppResources.InitFirmwareFileHeaderFormatAlert, result.ErrorFirmware));
+                return false;
+            }
+
+            var setting = result.Result;
+
+            ViewModel.SystemID = systemID;
+            ViewModel.ModelName = systemID.ModelName.ToString();
+            ViewModel.SerialNumber = systemID.SerialNumber;
+
+            ViewModel.SettingModelName = setting.ModelName;
+            //ViewModel.SettingFileName = Path.GetFileName(modelSeettingFilePath);
+            ViewModel.FourGenModuleVersion = setting.FourGenModuleVersion;
+            ViewModel.SubFourGenModuleVersion = setting.SubFourGenModuleVersion;
+            ViewModel.IsSimInsert = setting.IsSimInsert;
+            ViewModel.SimICCID = setting.SimICCID;// string.IsNullOrEmpty(setting.ICCID) ? setting.SimICCID : setting.ICCID;
+            ViewModel.SimIMSI = setting.SimIMSI;// string.IsNullOrEmpty(setting.IMSI) ? setting.SimIMSI: setting.IMSI;
+            ViewModel.IsSubSimInsert = setting.IsSubSimInsert;
+            ViewModel.SubSimICCID = setting.SubSimICCID;
+            ViewModel.SubSimIMSI = setting.SubSimIMSI;
+            ViewModel.ButtonTestMode = setting.ButtonTestMode;
+            //ViewModel.SkipEmergencyButton = setting.SkipEmergencyButton;
+            //ViewModel.SkipButtonTest = setting.SkipButtonTest;
+            ViewModel.IpAddress = setting.IpAddress;
+            ViewModel.FirmwareUpdateModels = setting.FirmwareUpdateList
+                .Where(x => !string.IsNullOrEmpty(x.Module) && !string.IsNullOrEmpty(x.FirmwareFileName)
+                ).ToList();
 
-            if (CheckSettingConfig(System.IO.Path.GetDirectoryName(modelSeettingFilePath), ref setting))
-            {
-                ViewModel.SystemID = systemID;
-                ViewModel.ModelName = systemID.ModelName.ToString();
-                ViewModel.SerialNumber = systemID.SerialNumber;
-
-                ViewModel.SettingModelName = setting.ModelName;
-                ViewModel.SettingFileName = Path.GetFileName(modelSeettingFilePath);
-                ViewModel.FourGenModuleVersion = setting.FourGenModuleVersion;
-                ViewModel.SubFourGenModuleVersion = setting.SubFourGenModuleVersion;
-                ViewModel.IsSimInsert = setting.IsSimInsert;
-                ViewModel.SimICCID = string.IsNullOrEmpty(setting.ICCID) ? setting.SimICCID : setting.ICCID;
-                ViewModel.SimIMSI = string.IsNullOrEmpty(setting.IMSI) ? setting.SimIMSI: setting.IMSI;
-                ViewModel.IsSubSimInsert = setting.IsSubSimInsert;
-                ViewModel.SubSimICCID = setting.SubSimICCID;
-                ViewModel.SubSimIMSI = setting.SubSimIMSI;
-                ViewModel.ButtonTestMode = setting.ButtonTestMode;
-                ViewModel.SkipEmergencyButton = setting.SkipEmergencyButton;
-                ViewModel.SkipButtonTest = setting.SkipButtonTest;
-                ViewModel.IpAddress = setting.IpAddress;
-                ViewModel.FirmwareUpdateModels = setting.FirmwareUpdateList
-                    .Where(x => !string.IsNullOrEmpty(x.Module) && !string.IsNullOrEmpty(x.FirmwareFileName)
-                    ).ToList();
-
-                UpdateProcedure();
-                ViewModel.IsInputCheckpassed = CheckInputData();
-            }
+            UpdateProcedure();
+            ViewModel.IsInputCheckpassed = CheckInputData();
             return true;
         }
 
@@ -718,7 +752,7 @@ namespace AwInitilizer
             procedures.Add(new Procedure.ButtonStatusCheck.ButtonStatusCheckPorcedure());
             procedures.Add(new Procedure.RestarttoIdle.RestarttoIdleProcedure());
             procedures.Add(new Procedure.VersionLog.VersionLogProcedure());
-            if (AppSettingConfig.IsDisableAuthRequired)
+            if (AppSettingConfig.Instance.IsDisableAuthRequired)
             {
                 procedures.Add(new Procedure.FactoryAssist.DsiableChargeAuthProcedure());
             }
@@ -746,165 +780,6 @@ namespace AwInitilizer
             }
 
             //uxProcedureDataGrid.ItemsSource = procedures;
-        }
-
-        private bool CheckSettingConfig(string folderPath, ref SettingConfig setting)
-        {
-            if (setting == null)
-                return false;
-            bool isCheckPassed = true;
-
-            if (string.IsNullOrEmpty(setting.ModelName))
-            {
-                //HintDialog.ShowMessage("ModelName is requred");
-                HintDialog.ShowMessage(Resx.AppResources.InitModelNameEmptyAlert);
-                isCheckPassed = false;
-            }
-            else if (!ModelName.TryLooseParse(setting.ModelName, out _))
-            {
-                //HintDialog.ShowMessage("ModelName format Error");
-                HintDialog.ShowMessage(Resx.AppResources.InitModelNameErrorAlert);
-                isCheckPassed = false;
-            }
-
-            if (setting.IsSimInsert)
-            {
-                if (string.IsNullOrEmpty(setting.ICCID))
-                {
-                    //HintDialog.ShowMessage("ICCID should not empty while IsSimInsert is set");
-                    HintDialog.ShowMessage(Resx.AppResources.InitIccidEmptyAlert);
-                    isCheckPassed = false;
-                }
-
-                if (string.IsNullOrEmpty(setting.IMSI))
-                {
-                    //HintDialog.ShowMessage("IMSI should not empty while IsSimInsert is set");
-                    HintDialog.ShowMessage(Resx.AppResources.InitImsiEmptyAlert);
-                    isCheckPassed = false;
-                }
-            }
-
-            if (setting.FirmwareUpdateList != null)
-            {
-                for (int firmwareIndex = 0; firmwareIndex < setting.FirmwareUpdateList.Count; firmwareIndex++)
-                {
-                    var model = setting.FirmwareUpdateList[firmwareIndex];
-                    bool isVersionVaild = !string.IsNullOrEmpty(model.Version);
-                    bool isFileNameVaild = !string.IsNullOrEmpty(model.FirmwareFileName);
-                    bool isNoduleNameVaild = !string.IsNullOrEmpty(model.Module);
-
-                    if (!isNoduleNameVaild)
-                    {
-                        //HintDialog.ShowMessage("Firmware module name should not empty");
-                        HintDialog.ShowMessage(Resx.AppResources.InitFirmwareNameEmptyAlert);
-                        isCheckPassed = false;
-                    }
-                    if (isVersionVaild || isFileNameVaild)
-                    {
-                        if (!isVersionVaild)
-                        {
-                            //HintDialog.ShowMessage($"Version should not empty while {model.Module} firmware is set");
-                            HintDialog.ShowMessage(string.Format(Resx.AppResources.InitFirmwareVersionEmptyAlert, model.Module));
-                            isCheckPassed = false;
-                        }
-
-                        if (!isFileNameVaild)
-                        {
-                            //HintDialog.ShowMessage($"File name should not empty while {model.Module} version is set");
-                            HintDialog.ShowMessage(string.Format(Resx.AppResources.InitFirmwareFileEmptyAlert, model.Module));
-                            isCheckPassed = false;
-                        }
-
-                        if (isVersionVaild && isFileNameVaild)
-                        {
-                            var filePath = System.IO.Path.Combine(folderPath, model.FirmwareFileName);
-                            //check file exist
-                            if (!File.Exists(filePath))
-                            {
-                                //HintDialog.ShowMessage($"{model.Module} Firemware file is missing");
-                                HintDialog.ShowMessage(string.Format(Resx.AppResources.InitFirmwareFileMissingAlert, model.Module));
-                                isCheckPassed = false;
-                            }
-                            else
-                            {
-                                try
-                                {
-                                    //isCheckPassed = CheckFileHeaderModel(setting, isCheckPassed, model, filePath);
-                                }
-                                catch
-                                {
-                                    //HintDialog.ShowMessage($"{model.Module} Firemware header ERROR");
-                                    HintDialog.ShowMessage(string.Format(Resx.AppResources.InitFirmwareFileHeaderFormatAlert, model.Module));
-                                    isCheckPassed = false;
-                                }
-
-                                model.FirmwareFileName = filePath;
-                            }
-                        }
-                    }
-                }
-            }
-
-            return isCheckPassed;
-        }
-
-        private static bool CheckFileHeaderModel(SettingConfig setting, bool isCheckPassed, FirmwareUpdateModel model, string filePath)
-        {
-            using (var fs = File.OpenRead(filePath))
-            {
-                byte[] systemIDBytes = new byte[16];
-                if (fs.Read(systemIDBytes, 0, 16) == 16)
-                {
-                    if (systemIDBytes.ToList().Contains(0x00))
-                    {
-                        int endIndex = Array.FindIndex(systemIDBytes, (x) => { return x == 0x00; });
-                        //int endIndex = parameter.FindIndex((x) => { return x == 0x00; });
-                        if (endIndex != default && endIndex != -1)
-                        {
-                            systemIDBytes = systemIDBytes.Take(endIndex).ToArray();
-                        }
-                    }
-
-                    if (ModelName.TryLooseParse(systemIDBytes, out var modelName))
-                    {
-                        if (modelName.ToString() != setting.ModelName)
-                        {
-                            //HintDialog.ShowMessage($"{model.Module} Firemware and ModelName is Mismatched");
-                            HintDialog.ShowMessage(string.Format(Resx.AppResources.InitFirmwareFileHeaderMismatchAlert, model.Module));
-                            isCheckPassed = false;
-                        }
-                    }
-                    else
-                    {
-                        // HintDialog.ShowMessage($"{model.Module} Firemware header ERROR");
-                        HintDialog.ShowMessage(string.Format(Resx.AppResources.InitFirmwareFileHeaderFormatAlert, model.Module));
-                        isCheckPassed = false;
-                    }
-                }
-                else
-                {
-                    //HintDialog.ShowMessage($"{model.Module} Firemware header ERROR");
-                    HintDialog.ShowMessage(string.Format(Resx.AppResources.InitFirmwareFileHeaderFormatAlert, model.Module));
-                    isCheckPassed = false;
-                }
-
-                //byte[] imgType = new byte[4];
-                //if (fs.Read(imgType, 0, 4) == 4)
-                //{
-                //    if (!imgType.SequenceEqual(new byte[] { 0x10, 0x00, 0x00, 0x04, }))
-                //    {
-                //        HintDialog.ShowMessage($"{model.Module} Firemware type ERROR");
-                //        isCheckPassed = false;
-                //    }
-                //}
-                //else
-                //{
-                //    HintDialog.ShowMessage($"{model.Module} Firemware header ERROR");
-                //    isCheckPassed = false;
-                //}
-            }
-
-            return isCheckPassed;
         }
 
         private void ResetLogoutTimer()

+ 31 - 30
AwInitilizer/Model/UpdateData.cs

@@ -1,4 +1,5 @@
-using PhihongEv.Lib;
+using InitializerModel;
+using PhihongEv.Lib;
 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
@@ -168,8 +169,8 @@ namespace AwInitilizer.Model
         public string UiSimICCID => string.IsNullOrEmpty(SubSimICCID) ? SimICCID : $"{SimICCID}/{SubSimICCID}";
         public string UiSimIMSI => string.IsNullOrEmpty(SubSimIMSI) ? SimIMSI : $"{SimIMSI}/{SubSimIMSI}";
 
-        private string _ButtonTestMode;
-        public string ButtonTestMode
+        private ButtonTestModeType _ButtonTestMode;
+        public ButtonTestModeType ButtonTestMode
         {
             get => _ButtonTestMode;
             set
@@ -182,33 +183,33 @@ namespace AwInitilizer.Model
             }
         }
 
-        private bool _SkipEmergencyButton;
-        public bool SkipEmergencyButton
-        {
-            get => _SkipEmergencyButton;
-            set
-            {
-                if (_SkipEmergencyButton != value)
-                {
-                    _SkipEmergencyButton = value;
-                    RaisePropertyChanged("SkipEmergencyButton");
-                }
-            }
-        }
-
-        private bool _SkipButtonTest;
-        public bool SkipButtonTest
-        {
-            get => _SkipButtonTest;
-            set
-            {
-                if (_SkipButtonTest != value)
-                {
-                    _SkipButtonTest = value;
-                    RaisePropertyChanged("SkipButtonTest");
-                }
-            }
-        }
+        //private bool _SkipEmergencyButton;
+        //public bool SkipEmergencyButton
+        //{
+        //    get => _SkipEmergencyButton;
+        //    set
+        //    {
+        //        if (_SkipEmergencyButton != value)
+        //        {
+        //            _SkipEmergencyButton = value;
+        //            RaisePropertyChanged("SkipEmergencyButton");
+        //        }
+        //    }
+        //}
+
+        //private bool _SkipButtonTest;
+        //public bool SkipButtonTest
+        //{
+        //    get => _SkipButtonTest;
+        //    set
+        //    {
+        //        if (_SkipButtonTest != value)
+        //        {
+        //            _SkipButtonTest = value;
+        //            RaisePropertyChanged("SkipButtonTest");
+        //        }
+        //    }
+        //}
 
         private string _IpAddress;
         public string IpAddress

+ 57 - 27
AwInitilizer/Procedure/ButtonStatusCheckPorcedure.cs

@@ -1,5 +1,6 @@
 using AwInitilizer.Assist;
 using AwInitilizer.Model;
+using InitializerModel;
 using Newtonsoft.Json;
 using System;
 using System.Collections.Generic;
@@ -61,8 +62,7 @@ namespace AwInitilizer.Procedure.ButtonStatusCheck
 
         internal override async Task<bool> Run()
         {
-            if (UpdateData.ButtonTestMode == "SkipButtonTest" ||
-                UpdateData.SkipButtonTest)
+            if (UpdateData.ButtonTestMode == ButtonTestModeType.SkipButtonTest)
             {
                 return true;
             }
@@ -81,7 +81,7 @@ namespace AwInitilizer.Procedure.ButtonStatusCheck
             }
 
             //stage 1 - unpress all
-            if(!await CheckUnpressAllBtn())
+            if (!await CheckUnpressAllBtn())
             {
                 return false;
             }
@@ -94,14 +94,13 @@ namespace AwInitilizer.Procedure.ButtonStatusCheck
             for (int testType = 0; testType < 3; testType++)
             {
                 if ((testType == 1 || testType == 0) &&
-                    UpdateData.ButtonTestMode == "SkipNormalButton")
+                    UpdateData.ButtonTestMode == ButtonTestModeType.SkipNormalButton)
                 {
                     continue;
                 }
 
                 if (testType == 2 &&
-                    (UpdateData.ButtonTestMode == "SkipEmergencyButton" ||
-                    UpdateData.SkipEmergencyButton))
+                    UpdateData.ButtonTestMode == ButtonTestModeType.SkipEmergencyButton)
                 {
                     continue;
                 }
@@ -150,7 +149,7 @@ namespace AwInitilizer.Procedure.ButtonStatusCheck
             bool isAllMatched = true;
             if (status != null)
             {
-                if (UpdateData.ButtonTestMode != "SkipNormalButton")
+                if (UpdateData.ButtonTestMode != ButtonTestModeType.SkipNormalButton)
                 {
                     if (status.Button1 != 0)
                     {
@@ -168,8 +167,7 @@ namespace AwInitilizer.Procedure.ButtonStatusCheck
                     }
                 }
 
-                if (UpdateData.ButtonTestMode != "SkipEmergencyButton" &&
-                    !UpdateData.SkipEmergencyButton)
+                if (UpdateData.ButtonTestMode != ButtonTestModeType.SkipEmergencyButton)
                 {
                     if (status.EmergencyButton != 0)
                     {
@@ -206,7 +204,7 @@ namespace AwInitilizer.Procedure.ButtonStatusCheck
             string btn, btnLang, imgUrl;
             (btn, btnLang, imgUrl) = GetBtnParam(btnInt);
 
-            if(btnInt == 2)
+            if (btnInt == 2)
             {
                 ShowEmergencyBtnPressRequestDialog(imgUrl);
             }
@@ -230,8 +228,8 @@ namespace AwInitilizer.Procedure.ButtonStatusCheck
                     GetBtnStatusString(btnStatus.EmergencyButton)));
 
             DismisDialog();
-            var btnStatusIsMatchedRequred = CheckBtnStatus(btnInt,btnStatus);
-            LogWriter.Report($"{btn}PressTest", string.Format("{0}{1}{2}", btnStatus.Button1, btnStatus.Button2, btnStatus.EmergencyButton),isError: !btnStatusIsMatchedRequred);
+            var btnStatusIsMatchedRequred = CheckBtnStatus(btnInt, btnStatus);
+            LogWriter.Report($"{btn}PressTest", string.Format("{0}{1}{2}", btnStatus.Button1, btnStatus.Button2, btnStatus.EmergencyButton), isError: !btnStatusIsMatchedRequred);
             return btnStatusIsMatchedRequred;
         }
 
@@ -249,10 +247,29 @@ namespace AwInitilizer.Procedure.ButtonStatusCheck
                     return null;
                 }
 
+                var isAnyButtonIsPressed = false;
+
+                if (UpdateData.ButtonTestMode != ButtonTestModeType.SkipNormalButton)
+                {
+                    if (pressStatus.Button1 != 0 || pressStatus.Button2 != 0 )
+                    {
+                        isAnyButtonIsPressed = true;
+                    }
+                }
+
+                if (UpdateData.ButtonTestMode != ButtonTestModeType.SkipEmergencyButton)
+                {
+                    if (pressStatus.EmergencyButton != 0)
+                    {
+                        isAnyButtonIsPressed = true;
+                    }
+                }
+
                 //if any button is pressed
-                if (pressStatus.Button1 != 0 ||
-                    pressStatus.Button2 != 0 ||
-                    pressStatus.EmergencyButton != 0)
+                //if (pressStatus.Button1 != 0 ||
+                //    pressStatus.Button2 != 0 ||
+                //    pressStatus.EmergencyButton != 0)
+                if (isAnyButtonIsPressed)
                 {
                     await WaitAllBtnRelease();
                     break;
@@ -335,11 +352,31 @@ namespace AwInitilizer.Procedure.ButtonStatusCheck
                     //Logger.Print("Get Butoon state failed");
                     continue;
                 }
-                if (status.Button1 == 0 &&
-                    status.Button2 == 0 &&
-                    status.EmergencyButton == 0)
+
+                bool isAllBtnReleased = true;
+
+                if (UpdateData.ButtonTestMode != ButtonTestModeType.SkipNormalButton)
+                {
+                    if (status.Button1 != 0 || status.Button2 != 0)
+                    {
+                        isAllBtnReleased = false;
+                    }
+                }
+
+                if (UpdateData.ButtonTestMode != ButtonTestModeType.SkipEmergencyButton)
+                {
+                    if (status.EmergencyButton != 0)
+                    {
+                        isAllBtnReleased = false;
+                    }
+                }
+
+                //if (status.Button1 == 0 &&
+                //    status.Button2 == 0 &&
+                //    status.EmergencyButton == 0)
+                if (isAllBtnReleased)
                 {
-                    break ;
+                    break;
                 }
             }
         }
@@ -359,13 +396,6 @@ namespace AwInitilizer.Procedure.ButtonStatusCheck
                     Error = ErrorType.GetStatusFail;
                     LogWriter.Log("Get Button Status Failed", isError: true);
                     LogWriter.Log(e.Message, isDebugLog: true);
-
-                    //InfoLog += "Get Button Status Failed\n";
-                    //InfoLog += e.Message;
-                    //InfoLog += "\n";
-
-                    //Logger.Print("Get Button Status Failed", isError: true);
-                    //Logger.Print(e.Message + "", isError: true);
                 }
             }
 
@@ -382,7 +412,7 @@ namespace AwInitilizer.Procedure.ButtonStatusCheck
                 return status.ToString();
         }
 
-        private void ShowDialog(string msg,string title, string btnText,string imgUrl, bool cancelAble)
+        private void ShowDialog(string msg, string title, string btnText, string imgUrl, bool cancelAble)
         {
             hintDialog = new HintDialog();
 

+ 2 - 1
AwInitilizer/Procedure/DsiableChargeAuthProcedure.cs

@@ -1,4 +1,5 @@
 using AwInitilizer.Assist;
+using InitializerModel;
 using Newtonsoft.Json;
 using System;
 using System.Collections.Generic;
@@ -36,7 +37,7 @@ namespace AwInitilizer.Procedure.FactoryAssist
 
         internal override async Task<bool> Run()
         {
-            if (!AppSettingConfig.IsDisableAuthRequired)
+            if (!AppSettingConfig.Instance.IsDisableAuthRequired)
             {
                 return false;
             }

+ 4 - 1
AwInitilizer/Procedure/FirmwareBundleUploadProcedure.cs

@@ -182,7 +182,10 @@ namespace AwInitilizer.Procedure.FirmwareBundleUpload
         private async Task<bool> UploadWithApiClass()
         {
             var updateList = UpdateData.FirmwareUpdateModels;
-            var updateNameList = updateList.Select(x => x.FirmwareFileName).ToList();
+            var updateNameList = updateList
+                .Where(x => !string.IsNullOrEmpty(x.FirmwareFileName))
+                .Select(x => x.FirmwareFileName)
+                .ToList();
             var uploadResult = await EvHttpClient.GetUploadfirmwareResultString(updateNameList);
             LogWriter.Log(uploadResult.Msg);
             return uploadResult.IsSuccess;

+ 2 - 1
AwInitilizer/Procedure/FirmwareCheckVersionProcedure.cs

@@ -1,5 +1,6 @@
 
 using AwInitilizer.Assist;
+using InitializerModel;
 using Newtonsoft.Json;
 using System;
 using System.Collections.Generic;
@@ -99,7 +100,7 @@ namespace AwInitilizer.Procedure.FirmwareCheckVersion
             return true;
         }
 
-        private bool CheckModelbyList(Model.FirmwareUpdateModel model, Dictionary<string,string> versionPair)
+        private bool CheckModelbyList(FirmwareUpdateModel model, Dictionary<string,string> versionPair)
         {
             if (string.IsNullOrEmpty(model.Module))
             {

+ 1 - 0
AwInitilizer/Procedure/FirmwareUpdateProcedure.cs

@@ -1,5 +1,6 @@
 using AwInitilizer.Assist;
 using AwInitilizer.Model;
+using InitializerModel;
 using Newtonsoft.Json;
 using System;
 using System.Collections.Generic;

+ 1 - 0
AwInitilizer/Procedure/FirmwareUploadProcedure.cs

@@ -1,5 +1,6 @@
 using AwInitilizer.Assist;
 using AwInitilizer.Model;
+using InitializerModel;
 using System;
 using System.Collections.Generic;
 using System.Collections.Specialized;

+ 4 - 4
AwInitilizer/Properties/AssemblyInfo.cs

@@ -31,7 +31,7 @@ using System.Runtime.InteropServices;
 //
 // You can specify all the values or you can default the Build and Revision Numbers
 // by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.12.1.0")]
-[assembly: AssemblyVersion("1.12.1.0")]
-[assembly: AssemblyFileVersion("1.12.1.0")]
-[assembly: AssemblyInformationalVersion("3be3a19")]
+// [assembly: AssemblyVersion("1.13.0.0")]
+[assembly: AssemblyVersion("1.13.0.0")]
+[assembly: AssemblyFileVersion("1.13.0.0")]
+[assembly: AssemblyInformationalVersion("0942119")]

+ 0 - 132
AwInitilizer/SettingConfig.cs

@@ -1,132 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace AwInitilizer
-{
-    public class AppSettingConfig
-    {
-        public static string FirmwareRoot
-        { 
-            get
-            {
-                if(Instance == null)
-                {
-                    Instance = new AppSettingConfig();
-                }
-                return Instance._FirmwareRoot;
-            }
-        }
-
-        public static string Language
-        {
-            get
-            {
-                if (Instance == null)
-                {
-                    Instance = new AppSettingConfig();
-                }
-                return Instance._Language;
-            }
-        }
-
-        public static string MES
-        {
-            get
-            {
-                if (Instance == null)
-                {
-                    Instance = new AppSettingConfig();
-                }
-                return Instance._MES;
-            }
-        }
-
-        public static string MechineCode
-        {
-            get
-            {
-                if (Instance == null)
-                {
-                    Instance = new AppSettingConfig();
-                }
-                return Instance._MechineCode;
-            }
-        }
-
-        public static bool IsDisableAuthRequired
-        {
-            get
-            {
-                if (Instance == null)
-                {
-                    Instance = new AppSettingConfig();
-                }
-                return Instance._IsDisableAuthRequired;
-            }
-        }
-
-        public static string JohnSenLedComPort
-        {
-            get
-            {
-                if (Instance == null)
-                {
-                    Instance = new AppSettingConfig();
-                }
-                return Instance._JohnSenLedComPort;
-            }
-        }
-
-        private static AppSettingConfig Instance;
-
-        private string _FirmwareRoot, _Language, _MES , _MechineCode;
-        private bool _IsDisableAuthRequired;
-        private string _JohnSenLedComPort;
-        private static string settingFileName = "config.ini";
-
-        public AppSettingConfig()
-        {
-            if(!File.Exists(settingFileName))
-            {
-                LoadDefaultSetting();
-            }
-            else
-            {
-                LoadSettingFromDefaultFile();
-            }
-        }
-
-        private void LoadSettingFromDefaultFile()
-        {
-            try
-            {
-                LoadDefaultSetting();
-
-                var configStr = File.ReadAllText(settingFileName);
-                var config = Newtonsoft.Json.JsonConvert.DeserializeObject<Model.AppSettingConfig>(configStr);
-                _FirmwareRoot = config.FirmwareRoot;
-                _Language = config.Language;
-                _MES = config.MES;
-                _MechineCode = config.MechineCode;
-                _IsDisableAuthRequired = config.IsDisableAuthRequired;
-                _JohnSenLedComPort = config.JohnSenLedComPort;
-            }
-            catch
-            {
-                
-            }
-        }
-
-        private void LoadDefaultSetting()
-        {
-            _FirmwareRoot = "./Firmware";
-            _Language = "zh-chs";
-            _MES = "sajet2";
-            _MechineCode = "testMechineCode";
-        }
-    }
-}

+ 4 - 3
AwInitilizer/SigninDialog.xaml.cs

@@ -1,4 +1,5 @@
-using MesAdaptor;
+using InitializerModel;
+using MesAdaptor;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -111,8 +112,8 @@ namespace AwInitilizer
 
         private void SetMes()
         {
-            var mesSetting = AppSettingConfig.MES.ToLower();
-            SajetConnect.SetMes(mesSetting, AppSettingConfig.MechineCode);
+            var mesSetting = AppSettingConfig.Instance.MES.ToLower();
+            SajetConnect.SetMes(mesSetting, AppSettingConfig.Instance.MechineCode);
 
             //if (mesSetting == "php" || mesSetting == "shinewave")
             //{

+ 1 - 1
AwInitilizer/packages.config

@@ -4,7 +4,7 @@
   <package id="FluentModbus" version="5.2.0" targetFramework="net48" />
   <package id="Microsoft.Extensions.Logging.Abstractions" version="5.0.0" targetFramework="net48" />
   <package id="Newtonsoft.Json" version="13.0.3" targetFramework="net48" />
-  <package id="PhihongEv.Lib" version="1.0.16" targetFramework="net48" />
+  <package id="PhihongEv.Lib" version="1.4.0" targetFramework="net48" />
   <package id="RestSharp" version="106.15.0" targetFramework="net48" />
   <package id="System.Buffers" version="4.5.1" targetFramework="net48" />
   <package id="System.IO.Ports" version="5.0.0" targetFramework="net48" />

+ 6628 - 1155
AwInitlizerInstaller__Shinewave/AwInitlizerInstaller.vdproj

@@ -1,1155 +1,6628 @@
-"DeployProject"
-{
-"VSVersion" = "3:800"
-"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}"
-"IsWebType" = "8:FALSE"
-"ProjectName" = "8:InitlizerInstaller_Shinewave"
-"LanguageId" = "3:2052"
-"CodePage" = "3:936"
-"UILanguageId" = "3:2052"
-"SccProjectName" = "8:"
-"SccLocalPath" = "8:"
-"SccAuxPath" = "8:"
-"SccProvider" = "8:"
-    "Hierarchy"
-    {
-        "Entry"
-        {
-        "MsmKey" = "8:_23B850A280A34D138F86E4E3E9D9A29B"
-        "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_345BC9EA136298FFA558E53796E8ACAC"
-        "OwnerKey" = "8:_75A660E899044A1CAA106DA8B79AB179"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_4AEE97E130964665E33D636753B2D15C"
-        "OwnerKey" = "8:_75A660E899044A1CAA106DA8B79AB179"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_5953AA619F714E40AA045177A7CEBEB0"
-        "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_6CAC7C2066C3422CB67C80DFBD98B3B0"
-        "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_757BA0BD19C3D246BA621DB64DE2384D"
-        "OwnerKey" = "8:_75A660E899044A1CAA106DA8B79AB179"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_75A660E899044A1CAA106DA8B79AB179"
-        "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_76EFA1FBF8D720C3406B63D63277EE1E"
-        "OwnerKey" = "8:_75A660E899044A1CAA106DA8B79AB179"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_B1FBDC82E7E41681C1E9AFA9010D95E6"
-        "OwnerKey" = "8:_F08EBB091DD37320D1C2E50E8832071F"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_B1FBDC82E7E41681C1E9AFA9010D95E6"
-        "OwnerKey" = "8:_75A660E899044A1CAA106DA8B79AB179"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_F08EBB091DD37320D1C2E50E8832071F"
-        "OwnerKey" = "8:_75A660E899044A1CAA106DA8B79AB179"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_FC54EA0B74F94E9BB6358BFC450FAB07"
-        "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_UNDEFINED"
-        "OwnerKey" = "8:_75A660E899044A1CAA106DA8B79AB179"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_UNDEFINED"
-        "OwnerKey" = "8:_5953AA619F714E40AA045177A7CEBEB0"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_UNDEFINED"
-        "OwnerKey" = "8:_76EFA1FBF8D720C3406B63D63277EE1E"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_UNDEFINED"
-        "OwnerKey" = "8:_4AEE97E130964665E33D636753B2D15C"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_UNDEFINED"
-        "OwnerKey" = "8:_345BC9EA136298FFA558E53796E8ACAC"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_UNDEFINED"
-        "OwnerKey" = "8:_F08EBB091DD37320D1C2E50E8832071F"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_UNDEFINED"
-        "OwnerKey" = "8:_B1FBDC82E7E41681C1E9AFA9010D95E6"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_UNDEFINED"
-        "OwnerKey" = "8:_757BA0BD19C3D246BA621DB64DE2384D"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-    }
-    "Configurations"
-    {
-        "Debug"
-        {
-        "DisplayName" = "8:Debug"
-        "IsDebugOnly" = "11:TRUE"
-        "IsReleaseOnly" = "11:FALSE"
-        "OutputFilename" = "8:Debug\\AwInitlizerInstaller.msi"
-        "PackageFilesAs" = "3:2"
-        "PackageFileSize" = "3:-2147483648"
-        "CabType" = "3:1"
-        "Compression" = "3:2"
-        "SignOutput" = "11:FALSE"
-        "CertificateFile" = "8:"
-        "PrivateKeyFile" = "8:"
-        "TimeStampServer" = "8:"
-        "InstallerBootstrapper" = "3:2"
-            "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
-            {
-            "Enabled" = "11:TRUE"
-            "PromptEnabled" = "11:TRUE"
-            "PrerequisitesLocation" = "2:1"
-            "Url" = "8:"
-            "ComponentsUrl" = "8:"
-                "Items"
-                {
-                    "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.8"
-                    {
-                    "Name" = "8:Microsoft .NET Framework 4.8 (x86 and x64)"
-                    "ProductCode" = "8:.NETFramework,Version=v4.8"
-                    }
-                    "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.NetCore.CoreRuntime.3.1.x86"
-                    {
-                    "Name" = "8:.NET Core Runtime 3.1.13 (x86)"
-                    "ProductCode" = "8:Microsoft.NetCore.CoreRuntime.3.1.x86"
-                    }
-                }
-            }
-        }
-        "Release"
-        {
-        "DisplayName" = "8:Release"
-        "IsDebugOnly" = "11:FALSE"
-        "IsReleaseOnly" = "11:TRUE"
-        "OutputFilename" = "8:Release\\DCInitializerr.msi"
-        "PackageFilesAs" = "3:2"
-        "PackageFileSize" = "3:-2147483648"
-        "CabType" = "3:1"
-        "Compression" = "3:2"
-        "SignOutput" = "11:FALSE"
-        "CertificateFile" = "8:"
-        "PrivateKeyFile" = "8:"
-        "TimeStampServer" = "8:"
-        "InstallerBootstrapper" = "3:2"
-            "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
-            {
-            "Enabled" = "11:FALSE"
-            "PromptEnabled" = "11:TRUE"
-            "PrerequisitesLocation" = "2:2"
-            "Url" = "8:"
-            "ComponentsUrl" = "8:"
-                "Items"
-                {
-                    "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.7.2"
-                    {
-                    "Name" = "8:Microsoft .NET Framework 4.7.2 (x86 and x64)"
-                    "ProductCode" = "8:.NETFramework,Version=v4.7.2"
-                    }
-                }
-            }
-        }
-    }
-    "Deployable"
-    {
-        "CustomAction"
-        {
-        }
-        "DefaultFeature"
-        {
-        "Name" = "8:DefaultFeature"
-        "Title" = "8:"
-        "Description" = "8:"
-        }
-        "ExternalPersistence"
-        {
-            "LaunchCondition"
-            {
-                "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_D0C82ED0E2FD42C1BFE77BB01DDECAF4"
-                {
-                "Name" = "8:.NET Framework"
-                "Message" = "8:[VSDNETMSG]"
-                "FrameworkVersion" = "8:.NETFramework,Version=v4.8"
-                "AllowLaterVersions" = "11:FALSE"
-                "InstallUrl" = "8:https://go.microsoft.com/fwlink/?linkid=2088631"
-                }
-            }
-        }
-        "File"
-        {
-            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_23B850A280A34D138F86E4E3E9D9A29B"
-            {
-            "SourcePath" = "8:..\\..\\..\\MES\\shinewave_6.2.41.6\\SajetConnect.dll"
-            "TargetName" = "8:SajetConnect.dll"
-            "Tag" = "8:"
-            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
-            "Condition" = "8:"
-            "Transitive" = "11:FALSE"
-            "Vital" = "11:TRUE"
-            "ReadOnly" = "11:FALSE"
-            "Hidden" = "11:FALSE"
-            "System" = "11:FALSE"
-            "Permanent" = "11:FALSE"
-            "SharedLegacy" = "11:FALSE"
-            "PackageAs" = "3:1"
-            "Register" = "3:1"
-            "Exclude" = "11:FALSE"
-            "IsDependency" = "11:FALSE"
-            "IsolateTo" = "8:"
-            }
-            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_345BC9EA136298FFA558E53796E8ACAC"
-            {
-            "AssemblyRegister" = "3:1"
-            "AssemblyIsInGAC" = "11:FALSE"
-            "AssemblyAsmDisplayName" = "8:FluentFTP, Version=37.0.2.0, Culture=neutral, PublicKeyToken=f4af092b1d8df44f, processorArchitecture=MSIL"
-                "ScatterAssemblies"
-                {
-                    "_345BC9EA136298FFA558E53796E8ACAC"
-                    {
-                    "Name" = "8:FluentFTP.dll"
-                    "Attributes" = "3:512"
-                    }
-                }
-            "SourcePath" = "8:FluentFTP.dll"
-            "TargetName" = "8:"
-            "Tag" = "8:"
-            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
-            "Condition" = "8:"
-            "Transitive" = "11:FALSE"
-            "Vital" = "11:TRUE"
-            "ReadOnly" = "11:FALSE"
-            "Hidden" = "11:FALSE"
-            "System" = "11:FALSE"
-            "Permanent" = "11:FALSE"
-            "SharedLegacy" = "11:FALSE"
-            "PackageAs" = "3:1"
-            "Register" = "3:1"
-            "Exclude" = "11:FALSE"
-            "IsDependency" = "11:TRUE"
-            "IsolateTo" = "8:"
-            }
-            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_4AEE97E130964665E33D636753B2D15C"
-            {
-            "AssemblyRegister" = "3:1"
-            "AssemblyIsInGAC" = "11:FALSE"
-            "AssemblyAsmDisplayName" = "8:Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"
-                "ScatterAssemblies"
-                {
-                    "_4AEE97E130964665E33D636753B2D15C"
-                    {
-                    "Name" = "8:Newtonsoft.Json.dll"
-                    "Attributes" = "3:512"
-                    }
-                }
-            "SourcePath" = "8:Newtonsoft.Json.dll"
-            "TargetName" = "8:"
-            "Tag" = "8:"
-            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
-            "Condition" = "8:"
-            "Transitive" = "11:FALSE"
-            "Vital" = "11:TRUE"
-            "ReadOnly" = "11:FALSE"
-            "Hidden" = "11:FALSE"
-            "System" = "11:FALSE"
-            "Permanent" = "11:FALSE"
-            "SharedLegacy" = "11:FALSE"
-            "PackageAs" = "3:1"
-            "Register" = "3:1"
-            "Exclude" = "11:FALSE"
-            "IsDependency" = "11:TRUE"
-            "IsolateTo" = "8:"
-            }
-            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5953AA619F714E40AA045177A7CEBEB0"
-            {
-            "AssemblyRegister" = "3:1"
-            "AssemblyIsInGAC" = "11:FALSE"
-            "AssemblyAsmDisplayName" = "8:AwInitilizer.resources, Version=1.10.1.0, Culture=zh-CHS, processorArchitecture=MSIL"
-                "ScatterAssemblies"
-                {
-                    "_5953AA619F714E40AA045177A7CEBEB0"
-                    {
-                    "Name" = "8:AwInitilizer.resources.dll"
-                    "Attributes" = "3:512"
-                    }
-                }
-            "SourcePath" = "8:..\\AwInitilizer\\bin\\Release\\zh-CHS\\AwInitilizer.resources.dll"
-            "TargetName" = "8:"
-            "Tag" = "8:"
-            "Folder" = "8:_8F566B14076B4C1D82C6453657F4DA04"
-            "Condition" = "8:"
-            "Transitive" = "11:FALSE"
-            "Vital" = "11:TRUE"
-            "ReadOnly" = "11:FALSE"
-            "Hidden" = "11:FALSE"
-            "System" = "11:FALSE"
-            "Permanent" = "11:FALSE"
-            "SharedLegacy" = "11:FALSE"
-            "PackageAs" = "3:1"
-            "Register" = "3:1"
-            "Exclude" = "11:FALSE"
-            "IsDependency" = "11:FALSE"
-            "IsolateTo" = "8:"
-            }
-            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_6CAC7C2066C3422CB67C80DFBD98B3B0"
-            {
-            "SourcePath" = "8:..\\..\\..\\MES\\shinewave_6.2.41.6\\DLL.INI"
-            "TargetName" = "8:DLL.INI"
-            "Tag" = "8:"
-            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
-            "Condition" = "8:"
-            "Transitive" = "11:FALSE"
-            "Vital" = "11:TRUE"
-            "ReadOnly" = "11:FALSE"
-            "Hidden" = "11:FALSE"
-            "System" = "11:FALSE"
-            "Permanent" = "11:FALSE"
-            "SharedLegacy" = "11:FALSE"
-            "PackageAs" = "3:1"
-            "Register" = "3:1"
-            "Exclude" = "11:FALSE"
-            "IsDependency" = "11:FALSE"
-            "IsolateTo" = "8:"
-            }
-            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_757BA0BD19C3D246BA621DB64DE2384D"
-            {
-            "AssemblyRegister" = "3:1"
-            "AssemblyIsInGAC" = "11:FALSE"
-            "AssemblyAsmDisplayName" = "8:System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
-                "ScatterAssemblies"
-                {
-                    "_757BA0BD19C3D246BA621DB64DE2384D"
-                    {
-                    "Name" = "8:System.Net.Http.dll"
-                    "Attributes" = "3:512"
-                    }
-                }
-            "SourcePath" = "8:System.Net.Http.dll"
-            "TargetName" = "8:"
-            "Tag" = "8:"
-            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
-            "Condition" = "8:"
-            "Transitive" = "11:FALSE"
-            "Vital" = "11:TRUE"
-            "ReadOnly" = "11:FALSE"
-            "Hidden" = "11:FALSE"
-            "System" = "11:FALSE"
-            "Permanent" = "11:FALSE"
-            "SharedLegacy" = "11:FALSE"
-            "PackageAs" = "3:1"
-            "Register" = "3:1"
-            "Exclude" = "11:FALSE"
-            "IsDependency" = "11:TRUE"
-            "IsolateTo" = "8:"
-            }
-            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_76EFA1FBF8D720C3406B63D63277EE1E"
-            {
-            "AssemblyRegister" = "3:1"
-            "AssemblyIsInGAC" = "11:FALSE"
-            "AssemblyAsmDisplayName" = "8:RestSharp, Version=106.15.0.0, Culture=neutral, PublicKeyToken=598062e77f915f75, processorArchitecture=MSIL"
-                "ScatterAssemblies"
-                {
-                    "_76EFA1FBF8D720C3406B63D63277EE1E"
-                    {
-                    "Name" = "8:RestSharp.dll"
-                    "Attributes" = "3:512"
-                    }
-                }
-            "SourcePath" = "8:RestSharp.dll"
-            "TargetName" = "8:"
-            "Tag" = "8:"
-            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
-            "Condition" = "8:"
-            "Transitive" = "11:FALSE"
-            "Vital" = "11:TRUE"
-            "ReadOnly" = "11:FALSE"
-            "Hidden" = "11:FALSE"
-            "System" = "11:FALSE"
-            "Permanent" = "11:FALSE"
-            "SharedLegacy" = "11:FALSE"
-            "PackageAs" = "3:1"
-            "Register" = "3:1"
-            "Exclude" = "11:FALSE"
-            "IsDependency" = "11:TRUE"
-            "IsolateTo" = "8:"
-            }
-            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_B1FBDC82E7E41681C1E9AFA9010D95E6"
-            {
-            "AssemblyRegister" = "3:1"
-            "AssemblyIsInGAC" = "11:FALSE"
-            "AssemblyAsmDisplayName" = "8:PhihongEv.Lib, Version=1.0.12.0, Culture=neutral, processorArchitecture=MSIL"
-                "ScatterAssemblies"
-                {
-                    "_B1FBDC82E7E41681C1E9AFA9010D95E6"
-                    {
-                    "Name" = "8:PhihongEv.Lib.dll"
-                    "Attributes" = "3:512"
-                    }
-                }
-            "SourcePath" = "8:PhihongEv.Lib.dll"
-            "TargetName" = "8:"
-            "Tag" = "8:"
-            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
-            "Condition" = "8:"
-            "Transitive" = "11:FALSE"
-            "Vital" = "11:TRUE"
-            "ReadOnly" = "11:FALSE"
-            "Hidden" = "11:FALSE"
-            "System" = "11:FALSE"
-            "Permanent" = "11:FALSE"
-            "SharedLegacy" = "11:FALSE"
-            "PackageAs" = "3:1"
-            "Register" = "3:1"
-            "Exclude" = "11:FALSE"
-            "IsDependency" = "11:TRUE"
-            "IsolateTo" = "8:"
-            }
-            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F08EBB091DD37320D1C2E50E8832071F"
-            {
-            "AssemblyRegister" = "3:1"
-            "AssemblyIsInGAC" = "11:FALSE"
-            "AssemblyAsmDisplayName" = "8:MesAdaptor, Version=1.10.1.0, Culture=neutral, processorArchitecture=MSIL"
-                "ScatterAssemblies"
-                {
-                    "_F08EBB091DD37320D1C2E50E8832071F"
-                    {
-                    "Name" = "8:MesAdaptor.dll"
-                    "Attributes" = "3:512"
-                    }
-                }
-            "SourcePath" = "8:MesAdaptor.dll"
-            "TargetName" = "8:"
-            "Tag" = "8:"
-            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
-            "Condition" = "8:"
-            "Transitive" = "11:FALSE"
-            "Vital" = "11:TRUE"
-            "ReadOnly" = "11:FALSE"
-            "Hidden" = "11:FALSE"
-            "System" = "11:FALSE"
-            "Permanent" = "11:FALSE"
-            "SharedLegacy" = "11:FALSE"
-            "PackageAs" = "3:1"
-            "Register" = "3:1"
-            "Exclude" = "11:FALSE"
-            "IsDependency" = "11:TRUE"
-            "IsolateTo" = "8:"
-            }
-            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_FC54EA0B74F94E9BB6358BFC450FAB07"
-            {
-            "SourcePath" = "8:config.ini"
-            "TargetName" = "8:config.ini"
-            "Tag" = "8:"
-            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
-            "Condition" = "8:"
-            "Transitive" = "11:FALSE"
-            "Vital" = "11:TRUE"
-            "ReadOnly" = "11:FALSE"
-            "Hidden" = "11:FALSE"
-            "System" = "11:FALSE"
-            "Permanent" = "11:FALSE"
-            "SharedLegacy" = "11:FALSE"
-            "PackageAs" = "3:1"
-            "Register" = "3:1"
-            "Exclude" = "11:FALSE"
-            "IsDependency" = "11:FALSE"
-            "IsolateTo" = "8:"
-            }
-        }
-        "FileType"
-        {
-        }
-        "Folder"
-        {
-            "{1525181F-901A-416C-8A58-119130FE478E}:_5D843E07890C4EEA8A900CE8C1AA8C33"
-            {
-            "Name" = "8:#1916"
-            "AlwaysCreate" = "11:FALSE"
-            "Condition" = "8:"
-            "Transitive" = "11:FALSE"
-            "Property" = "8:DesktopFolder"
-                "Folders"
-                {
-                }
-            }
-            "{1525181F-901A-416C-8A58-119130FE478E}:_DB6D2134535C495EB36F82997F6BD5FC"
-            {
-            "Name" = "8:#1919"
-            "AlwaysCreate" = "11:FALSE"
-            "Condition" = "8:"
-            "Transitive" = "11:FALSE"
-            "Property" = "8:ProgramMenuFolder"
-                "Folders"
-                {
-                }
-            }
-            "{3C67513D-01DD-4637-8A68-80971EB9504F}:_DE11C1EA8CD74CA9820344EFA2A02676"
-            {
-            "DefaultLocation" = "8:[ProgramFiles64Folder][Manufacturer]\\[ProductName]"
-            "Name" = "8:#1925"
-            "AlwaysCreate" = "11:FALSE"
-            "Condition" = "8:"
-            "Transitive" = "11:FALSE"
-            "Property" = "8:TARGETDIR"
-                "Folders"
-                {
-                    "{9EF0B969-E518-4E46-987F-47570745A589}:_8F566B14076B4C1D82C6453657F4DA04"
-                    {
-                    "Name" = "8:zh-CHS"
-                    "AlwaysCreate" = "11:FALSE"
-                    "Condition" = "8:"
-                    "Transitive" = "11:FALSE"
-                    "Property" = "8:_05AB4EB6BDE64AF38FCE5FECC53B7F1B"
-                        "Folders"
-                        {
-                        }
-                    }
-                    "{9EF0B969-E518-4E46-987F-47570745A589}:_A6A879D1C9544DE8B19D209DB640D876"
-                    {
-                    "Name" = "8:Firmware"
-                    "AlwaysCreate" = "11:TRUE"
-                    "Condition" = "8:"
-                    "Transitive" = "11:FALSE"
-                    "Property" = "8:_A7A39A06DBC846059B6F427CBE277A1A"
-                        "Folders"
-                        {
-                        }
-                    }
-                }
-            }
-        }
-        "LaunchCondition"
-        {
-        }
-        "Locator"
-        {
-        }
-        "MsiBootstrapper"
-        {
-        "LangId" = "3:2052"
-        "RequiresElevation" = "11:FALSE"
-        }
-        "Product"
-        {
-        "Name" = "8:Microsoft Visual Studio"
-        "ProductName" = "8:DCInitializer"
-        "ProductCode" = "8:{57BF893C-BD30-40C3-8C04-55FFFC6E3FFE}"
-        "PackageCode" = "8:{78DF6F27-8A0C-4ACF-B67B-5FBAC01AF6A6}"
-        "UpgradeCode" = "8:{926B8A82-19A1-436D-A0E4-216EF638690B}"
-        "AspNetVersion" = "8:4.0.30319.0"
-        "RestartWWWService" = "11:FALSE"
-        "RemovePreviousVersions" = "11:TRUE"
-        "DetectNewerInstalledVersion" = "11:TRUE"
-        "InstallAllUsers" = "11:FALSE"
-        "ProductVersion" = "8:1.0.0"
-        "Manufacturer" = "8:Zerova"
-        "ARPHELPTELEPHONE" = "8:"
-        "ARPHELPLINK" = "8:"
-        "Title" = "8:DCInitializer"
-        "Subject" = "8:"
-        "ARPCONTACT" = "8:Zerova"
-        "Keywords" = "8:"
-        "ARPCOMMENTS" = "8:"
-        "ARPURLINFOABOUT" = "8:"
-        "ARPPRODUCTICON" = "8:"
-        "ARPIconIndex" = "3:0"
-        "SearchPath" = "8:"
-        "UseSystemSearchPath" = "11:TRUE"
-        "TargetPlatform" = "3:1"
-        "PreBuildEvent" = "8:"
-        "PostBuildEvent" = "8:"
-        "RunPostBuildEvent" = "3:0"
-        }
-        "Registry"
-        {
-            "HKLM"
-            {
-                "Keys"
-                {
-                    "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_17B89C226D6C4EB5A6FF1ED7FDD0E25F"
-                    {
-                    "Name" = "8:Software"
-                    "Condition" = "8:"
-                    "AlwaysCreate" = "11:FALSE"
-                    "DeleteAtUninstall" = "11:FALSE"
-                    "Transitive" = "11:FALSE"
-                        "Keys"
-                        {
-                            "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_0A0DC6423FE34C32A1CD864F2CB1B5A0"
-                            {
-                            "Name" = "8:[Manufacturer]"
-                            "Condition" = "8:"
-                            "AlwaysCreate" = "11:FALSE"
-                            "DeleteAtUninstall" = "11:FALSE"
-                            "Transitive" = "11:FALSE"
-                                "Keys"
-                                {
-                                }
-                                "Values"
-                                {
-                                }
-                            }
-                        }
-                        "Values"
-                        {
-                        }
-                    }
-                }
-            }
-            "HKCU"
-            {
-                "Keys"
-                {
-                    "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_CFCFC0DBDD6748B3A3544EEAF668F0CD"
-                    {
-                    "Name" = "8:Software"
-                    "Condition" = "8:"
-                    "AlwaysCreate" = "11:FALSE"
-                    "DeleteAtUninstall" = "11:FALSE"
-                    "Transitive" = "11:FALSE"
-                        "Keys"
-                        {
-                            "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_CAF5704912144E62A27E7A8701449E91"
-                            {
-                            "Name" = "8:[Manufacturer]"
-                            "Condition" = "8:"
-                            "AlwaysCreate" = "11:FALSE"
-                            "DeleteAtUninstall" = "11:FALSE"
-                            "Transitive" = "11:FALSE"
-                                "Keys"
-                                {
-                                }
-                                "Values"
-                                {
-                                }
-                            }
-                        }
-                        "Values"
-                        {
-                        }
-                    }
-                }
-            }
-            "HKCR"
-            {
-                "Keys"
-                {
-                }
-            }
-            "HKU"
-            {
-                "Keys"
-                {
-                }
-            }
-            "HKPU"
-            {
-                "Keys"
-                {
-                }
-            }
-        }
-        "Sequences"
-        {
-        }
-        "Shortcut"
-        {
-            "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_E050C15677214F69A86F0DF50FBF9EFB"
-            {
-            "Name" = "8:Initilizer"
-            "Arguments" = "8:"
-            "Description" = "8:"
-            "ShowCmd" = "3:1"
-            "IconIndex" = "3:0"
-            "Transitive" = "11:FALSE"
-            "Target" = "8:_75A660E899044A1CAA106DA8B79AB179"
-            "Folder" = "8:_5D843E07890C4EEA8A900CE8C1AA8C33"
-            "WorkingFolder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
-            "Icon" = "8:"
-            "Feature" = "8:"
-            }
-        }
-        "UserInterface"
-        {
-            "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_06B6D267F4E94BE5B425D30AB4731E67"
-            {
-            "UseDynamicProperties" = "11:FALSE"
-            "IsDependency" = "11:FALSE"
-            "SourcePath" = "8:<VsdDialogDir>\\VsdUserInterface.wim"
-            }
-            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_11C821D245024749A30BCA5D0F3EFE2A"
-            {
-            "Name" = "8:#1900"
-            "Sequence" = "3:2"
-            "Attributes" = "3:1"
-                "Dialogs"
-                {
-                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_382FAC5B9172407CB8C32A56B66A9257"
-                    {
-                    "Sequence" = "3:200"
-                    "DisplayName" = "8:Installation Folder"
-                    "UseDynamicProperties" = "11:TRUE"
-                    "IsDependency" = "11:FALSE"
-                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminFolderDlg.wid"
-                        "Properties"
-                        {
-                            "BannerBitmap"
-                            {
-                            "Name" = "8:BannerBitmap"
-                            "DisplayName" = "8:#1001"
-                            "Description" = "8:#1101"
-                            "Type" = "3:8"
-                            "ContextData" = "8:Bitmap"
-                            "Attributes" = "3:4"
-                            "Setting" = "3:1"
-                            "UsePlugInResources" = "11:TRUE"
-                            }
-                        }
-                    }
-                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_8FDA95A71D3C48EEAD1B0075AF17E068"
-                    {
-                    "Sequence" = "3:100"
-                    "DisplayName" = "8:Welcome"
-                    "UseDynamicProperties" = "11:TRUE"
-                    "IsDependency" = "11:FALSE"
-                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminWelcomeDlg.wid"
-                        "Properties"
-                        {
-                            "BannerBitmap"
-                            {
-                            "Name" = "8:BannerBitmap"
-                            "DisplayName" = "8:#1001"
-                            "Description" = "8:#1101"
-                            "Type" = "3:8"
-                            "ContextData" = "8:Bitmap"
-                            "Attributes" = "3:4"
-                            "Setting" = "3:1"
-                            "UsePlugInResources" = "11:TRUE"
-                            }
-                            "CopyrightWarning"
-                            {
-                            "Name" = "8:CopyrightWarning"
-                            "DisplayName" = "8:#1002"
-                            "Description" = "8:#1102"
-                            "Type" = "3:3"
-                            "ContextData" = "8:"
-                            "Attributes" = "3:0"
-                            "Setting" = "3:1"
-                            "Value" = "8:#1202"
-                            "DefaultValue" = "8:#1202"
-                            "UsePlugInResources" = "11:TRUE"
-                            }
-                            "Welcome"
-                            {
-                            "Name" = "8:Welcome"
-                            "DisplayName" = "8:#1003"
-                            "Description" = "8:#1103"
-                            "Type" = "3:3"
-                            "ContextData" = "8:"
-                            "Attributes" = "3:0"
-                            "Setting" = "3:1"
-                            "Value" = "8:#1203"
-                            "DefaultValue" = "8:#1203"
-                            "UsePlugInResources" = "11:TRUE"
-                            }
-                        }
-                    }
-                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_EB7B70C73D8A467999FC732E05E00E46"
-                    {
-                    "Sequence" = "3:300"
-                    "DisplayName" = "8:Confirm Installation"
-                    "UseDynamicProperties" = "11:TRUE"
-                    "IsDependency" = "11:FALSE"
-                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminConfirmDlg.wid"
-                        "Properties"
-                        {
-                            "BannerBitmap"
-                            {
-                            "Name" = "8:BannerBitmap"
-                            "DisplayName" = "8:#1001"
-                            "Description" = "8:#1101"
-                            "Type" = "3:8"
-                            "ContextData" = "8:Bitmap"
-                            "Attributes" = "3:4"
-                            "Setting" = "3:1"
-                            "UsePlugInResources" = "11:TRUE"
-                            }
-                        }
-                    }
-                }
-            }
-            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_197810A4CE9A4933BE1D260892BC9EB1"
-            {
-            "Name" = "8:#1902"
-            "Sequence" = "3:1"
-            "Attributes" = "3:3"
-                "Dialogs"
-                {
-                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_B4E6D2822F744BB283A55F8080139BB3"
-                    {
-                    "Sequence" = "3:100"
-                    "DisplayName" = "8:Finished"
-                    "UseDynamicProperties" = "11:TRUE"
-                    "IsDependency" = "11:FALSE"
-                    "SourcePath" = "8:<VsdDialogDir>\\VsdFinishedDlg.wid"
-                        "Properties"
-                        {
-                            "BannerBitmap"
-                            {
-                            "Name" = "8:BannerBitmap"
-                            "DisplayName" = "8:#1001"
-                            "Description" = "8:#1101"
-                            "Type" = "3:8"
-                            "ContextData" = "8:Bitmap"
-                            "Attributes" = "3:4"
-                            "Setting" = "3:1"
-                            "UsePlugInResources" = "11:TRUE"
-                            }
-                            "UpdateText"
-                            {
-                            "Name" = "8:UpdateText"
-                            "DisplayName" = "8:#1058"
-                            "Description" = "8:#1158"
-                            "Type" = "3:15"
-                            "ContextData" = "8:"
-                            "Attributes" = "3:0"
-                            "Setting" = "3:1"
-                            "Value" = "8:#1258"
-                            "DefaultValue" = "8:#1258"
-                            "UsePlugInResources" = "11:TRUE"
-                            }
-                        }
-                    }
-                }
-            }
-            "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_58B0B576C36C4F93BCC853F919FAFB00"
-            {
-            "UseDynamicProperties" = "11:FALSE"
-            "IsDependency" = "11:FALSE"
-            "SourcePath" = "8:<VsdDialogDir>\\VsdBasicDialogs.wim"
-            }
-            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_6D2887B2FB1E44A98409BB0855469F6E"
-            {
-            "Name" = "8:#1900"
-            "Sequence" = "3:1"
-            "Attributes" = "3:1"
-                "Dialogs"
-                {
-                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_6114B5A02ACD4C91B4E0B00C00E5CB02"
-                    {
-                    "Sequence" = "3:210"
-                    "DisplayName" = "8:Installation Folder"
-                    "UseDynamicProperties" = "11:TRUE"
-                    "IsDependency" = "11:FALSE"
-                    "SourcePath" = "8:<VsdDialogDir>\\VsdFolderDlg.wid"
-                        "Properties"
-                        {
-                            "BannerBitmap"
-                            {
-                            "Name" = "8:BannerBitmap"
-                            "DisplayName" = "8:#1001"
-                            "Description" = "8:#1101"
-                            "Type" = "3:8"
-                            "ContextData" = "8:Bitmap"
-                            "Attributes" = "3:4"
-                            "Setting" = "3:1"
-                            "UsePlugInResources" = "11:TRUE"
-                            }
-                            "InstallAllUsersVisible"
-                            {
-                            "Name" = "8:InstallAllUsersVisible"
-                            "DisplayName" = "8:#1059"
-                            "Description" = "8:#1159"
-                            "Type" = "3:5"
-                            "ContextData" = "8:1;True=1;False=0"
-                            "Attributes" = "3:0"
-                            "Setting" = "3:0"
-                            "Value" = "3:1"
-                            "DefaultValue" = "3:1"
-                            "UsePlugInResources" = "11:TRUE"
-                            }
-                        }
-                    }
-                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_F9B783E6180B435EB0E312FCE0CBD325"
-                    {
-                    "Sequence" = "3:300"
-                    "DisplayName" = "8:Confirm Installation"
-                    "UseDynamicProperties" = "11:TRUE"
-                    "IsDependency" = "11:FALSE"
-                    "SourcePath" = "8:<VsdDialogDir>\\VsdConfirmDlg.wid"
-                        "Properties"
-                        {
-                            "BannerBitmap"
-                            {
-                            "Name" = "8:BannerBitmap"
-                            "DisplayName" = "8:#1001"
-                            "Description" = "8:#1101"
-                            "Type" = "3:8"
-                            "ContextData" = "8:Bitmap"
-                            "Attributes" = "3:4"
-                            "Setting" = "3:1"
-                            "UsePlugInResources" = "11:TRUE"
-                            }
-                        }
-                    }
-                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_FC12A22254AB4D858289B87A3D8D8C16"
-                    {
-                    "Sequence" = "3:200"
-                    "DisplayName" = "8:Welcome"
-                    "UseDynamicProperties" = "11:TRUE"
-                    "IsDependency" = "11:FALSE"
-                    "SourcePath" = "8:<VsdDialogDir>\\VsdWelcomeDlg.wid"
-                        "Properties"
-                        {
-                            "BannerBitmap"
-                            {
-                            "Name" = "8:BannerBitmap"
-                            "DisplayName" = "8:#1001"
-                            "Description" = "8:#1101"
-                            "Type" = "3:8"
-                            "ContextData" = "8:Bitmap"
-                            "Attributes" = "3:4"
-                            "Setting" = "3:1"
-                            "UsePlugInResources" = "11:TRUE"
-                            }
-                            "CopyrightWarning"
-                            {
-                            "Name" = "8:CopyrightWarning"
-                            "DisplayName" = "8:#1002"
-                            "Description" = "8:#1102"
-                            "Type" = "3:3"
-                            "ContextData" = "8:"
-                            "Attributes" = "3:0"
-                            "Setting" = "3:1"
-                            "Value" = "8:#1202"
-                            "DefaultValue" = "8:#1202"
-                            "UsePlugInResources" = "11:TRUE"
-                            }
-                            "Welcome"
-                            {
-                            "Name" = "8:Welcome"
-                            "DisplayName" = "8:#1003"
-                            "Description" = "8:#1103"
-                            "Type" = "3:3"
-                            "ContextData" = "8:"
-                            "Attributes" = "3:0"
-                            "Setting" = "3:1"
-                            "Value" = "8:#1203"
-                            "DefaultValue" = "8:#1203"
-                            "UsePlugInResources" = "11:TRUE"
-                            }
-                        }
-                    }
-                }
-            }
-            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_9D40FD712F6347DEAAAACBE1518231AE"
-            {
-            "Name" = "8:#1901"
-            "Sequence" = "3:2"
-            "Attributes" = "3:2"
-                "Dialogs"
-                {
-                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_2A2E22C10C584BEF9C06EA4D0FA97D01"
-                    {
-                    "Sequence" = "3:100"
-                    "DisplayName" = "8:Progress"
-                    "UseDynamicProperties" = "11:TRUE"
-                    "IsDependency" = "11:FALSE"
-                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminProgressDlg.wid"
-                        "Properties"
-                        {
-                            "BannerBitmap"
-                            {
-                            "Name" = "8:BannerBitmap"
-                            "DisplayName" = "8:#1001"
-                            "Description" = "8:#1101"
-                            "Type" = "3:8"
-                            "ContextData" = "8:Bitmap"
-                            "Attributes" = "3:4"
-                            "Setting" = "3:1"
-                            "UsePlugInResources" = "11:TRUE"
-                            }
-                            "ShowProgress"
-                            {
-                            "Name" = "8:ShowProgress"
-                            "DisplayName" = "8:#1009"
-                            "Description" = "8:#1109"
-                            "Type" = "3:5"
-                            "ContextData" = "8:1;True=1;False=0"
-                            "Attributes" = "3:0"
-                            "Setting" = "3:0"
-                            "Value" = "3:1"
-                            "DefaultValue" = "3:1"
-                            "UsePlugInResources" = "11:TRUE"
-                            }
-                        }
-                    }
-                }
-            }
-            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_A2A033ED28E649819E0194D4FF1FDE82"
-            {
-            "Name" = "8:#1902"
-            "Sequence" = "3:2"
-            "Attributes" = "3:3"
-                "Dialogs"
-                {
-                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_56B01EEFD27A43B494E43ECB4D911FC9"
-                    {
-                    "Sequence" = "3:100"
-                    "DisplayName" = "8:Finished"
-                    "UseDynamicProperties" = "11:TRUE"
-                    "IsDependency" = "11:FALSE"
-                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminFinishedDlg.wid"
-                        "Properties"
-                        {
-                            "BannerBitmap"
-                            {
-                            "Name" = "8:BannerBitmap"
-                            "DisplayName" = "8:#1001"
-                            "Description" = "8:#1101"
-                            "Type" = "3:8"
-                            "ContextData" = "8:Bitmap"
-                            "Attributes" = "3:4"
-                            "Setting" = "3:1"
-                            "UsePlugInResources" = "11:TRUE"
-                            }
-                        }
-                    }
-                }
-            }
-            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_A9002406B7E245889212FA2336B41A3B"
-            {
-            "Name" = "8:#1901"
-            "Sequence" = "3:1"
-            "Attributes" = "3:2"
-                "Dialogs"
-                {
-                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_3EC5FDC9ACBF4FF58132B7390516C1DA"
-                    {
-                    "Sequence" = "3:100"
-                    "DisplayName" = "8:Progress"
-                    "UseDynamicProperties" = "11:TRUE"
-                    "IsDependency" = "11:FALSE"
-                    "SourcePath" = "8:<VsdDialogDir>\\VsdProgressDlg.wid"
-                        "Properties"
-                        {
-                            "BannerBitmap"
-                            {
-                            "Name" = "8:BannerBitmap"
-                            "DisplayName" = "8:#1001"
-                            "Description" = "8:#1101"
-                            "Type" = "3:8"
-                            "ContextData" = "8:Bitmap"
-                            "Attributes" = "3:4"
-                            "Setting" = "3:1"
-                            "UsePlugInResources" = "11:TRUE"
-                            }
-                            "ShowProgress"
-                            {
-                            "Name" = "8:ShowProgress"
-                            "DisplayName" = "8:#1009"
-                            "Description" = "8:#1109"
-                            "Type" = "3:5"
-                            "ContextData" = "8:1;True=1;False=0"
-                            "Attributes" = "3:0"
-                            "Setting" = "3:0"
-                            "Value" = "3:1"
-                            "DefaultValue" = "3:1"
-                            "UsePlugInResources" = "11:TRUE"
-                            }
-                        }
-                    }
-                }
-            }
-        }
-        "MergeModule"
-        {
-        }
-        "ProjectOutput"
-        {
-            "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_75A660E899044A1CAA106DA8B79AB179"
-            {
-            "SourcePath" = "8:..\\AwInitilizer\\obj\\Debug\\AwInitilizer.exe"
-            "TargetName" = "8:"
-            "Tag" = "8:"
-            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
-            "Condition" = "8:"
-            "Transitive" = "11:FALSE"
-            "Vital" = "11:TRUE"
-            "ReadOnly" = "11:FALSE"
-            "Hidden" = "11:FALSE"
-            "System" = "11:FALSE"
-            "Permanent" = "11:FALSE"
-            "SharedLegacy" = "11:FALSE"
-            "PackageAs" = "3:1"
-            "Register" = "3:1"
-            "Exclude" = "11:FALSE"
-            "IsDependency" = "11:FALSE"
-            "IsolateTo" = "8:"
-            "ProjectOutputGroupRegister" = "3:1"
-            "OutputConfiguration" = "8:"
-            "OutputGroupCanonicalName" = "8:Built"
-            "OutputProjectGuid" = "8:{7A23D514-38E1-423E-9238-464B0E2AFCC0}"
-            "ShowKeyOutput" = "11:TRUE"
-                "ExcludeFilters"
-                {
-                }
-            }
-        }
-    }
-}
+"DeployProject"
+{
+"VSVersion" = "3:800"
+"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}"
+"IsWebType" = "8:FALSE"
+"ProjectName" = "8:InitlizerInstaller_Shinewave"
+"LanguageId" = "3:2052"
+"CodePage" = "3:936"
+"UILanguageId" = "3:2052"
+"SccProjectName" = "8:"
+"SccLocalPath" = "8:"
+"SccAuxPath" = "8:"
+"SccProvider" = "8:"
+    "Hierarchy"
+    {
+        "Entry"
+        {
+        "MsmKey" = "8:_01640BC10B1D6912CF73721B24DC9F66"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_02B298B1336BA6617D22658348203E95"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_075A24B98982891C1926A7D9A90A19AE"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_13AD68BBCF1898833BE1866AF28CBC83"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_15B8736B5AE40B1E6F647D90050B180B"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_1615FEE0C7083A1448AC7C123F606958"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_16B50F4EF9312E329521BD95EB6F8F5A"
+        "OwnerKey" = "8:_5B564BFA29E2E8FFAC2C080F126C6C84"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_16B50F4EF9312E329521BD95EB6F8F5A"
+        "OwnerKey" = "8:_EF8740181F7A96F8F588B56F16E1C572"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_1E707F5B83FC3618950A3CC696F2FF02"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_21468B8D81AFD6F09C95C4A625074111"
+        "OwnerKey" = "8:_EF8740181F7A96F8F588B56F16E1C572"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_21468B8D81AFD6F09C95C4A625074111"
+        "OwnerKey" = "8:_4C1B04A932A275484E942C278D6EF4F1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_21A4158DD00CDD864FF8ED0E5701B6E6"
+        "OwnerKey" = "8:_6FC415ED4DC4623722D05AACDC581D2D"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_21A4158DD00CDD864FF8ED0E5701B6E6"
+        "OwnerKey" = "8:_BECED55ADAD74CAB913C0C956FAA41C7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_23B850A280A34D138F86E4E3E9D9A29B"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_257990C3493552B56D4237E18F4A285A"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_2C7A6BCC1E0B4E5E7A5D8572FDFA0248"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_2E230F7AA95390264AA7DCE57346DD20"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_2EA85837A25EED32DBEF2EFA60843CBC"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_2ED16BEF1F8F9006B518E8FCC930C00E"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_32113D380756096FA8823FC87C099FA0"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_32C93F284C543324839E64385611ACD9"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_32CE52386B5908AE9214E367AE550972"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_339FF8D92403BD629E058806FD3B9099"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_345BC9EA136298FFA558E53796E8ACAC"
+        "OwnerKey" = "8:_BECED55ADAD74CAB913C0C956FAA41C7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_35BFAD88F283DDF171B04DAB0903A9E8"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_3CF260188394E3AD0B0FDA0EC222D123"
+        "OwnerKey" = "8:_6FC415ED4DC4623722D05AACDC581D2D"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_3CF260188394E3AD0B0FDA0EC222D123"
+        "OwnerKey" = "8:_BECED55ADAD74CAB913C0C956FAA41C7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_425990421856F8C7DBB34DBF0FD56A30"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_444AE77368A783BEF4A7673B40094331"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_45A93DF5542B4DA8A407D98F6657D1C2"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_48A68ACE4C45A017710524235164B3B3"
+        "OwnerKey" = "8:_3CF260188394E3AD0B0FDA0EC222D123"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_48A68ACE4C45A017710524235164B3B3"
+        "OwnerKey" = "8:_BECED55ADAD74CAB913C0C956FAA41C7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_48A68ACE4C45A017710524235164B3B3"
+        "OwnerKey" = "8:_6FC415ED4DC4623722D05AACDC581D2D"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_492CC97CCC66D24897FE2A25AAD95BB8"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_4C1B04A932A275484E942C278D6EF4F1"
+        "OwnerKey" = "8:_CCDD232AD10EF46D101C215B0509E880"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_503788E7BBFC86AD2B304F65AFF22B3D"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_5084EC12D55682C0238A44B4BD8B8419"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_510141267BDB78CD181781D6F06DC3BA"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_51C8105F8FED38E63AE8EF301B6D6AFF"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_527F7727E57B49C12275C7494383C919"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_52E0539A24EC65ADAFF05882B2C9B554"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_52EA79ABE7DF9CFDF1BC4E05E43958D4"
+        "OwnerKey" = "8:_6FC415ED4DC4623722D05AACDC581D2D"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_52EA79ABE7DF9CFDF1BC4E05E43958D4"
+        "OwnerKey" = "8:_BECED55ADAD74CAB913C0C956FAA41C7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_5819385AEB8F9D25544F695186094BA6"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_5953AA619F714E40AA045177A7CEBEB0"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_5B564BFA29E2E8FFAC2C080F126C6C84"
+        "OwnerKey" = "8:_EF8740181F7A96F8F588B56F16E1C572"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_5B564BFA29E2E8FFAC2C080F126C6C84"
+        "OwnerKey" = "8:_075A24B98982891C1926A7D9A90A19AE"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_5D1044CE7CAE99DC11ED9479FB4FEACB"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_5DADBCEA5C102D1B1D3CE8DDAA65B0C4"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_5EAC882A6F73970A34A9E57A0564797D"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_5F5E81472AA7F9AEC005E0E3D187E102"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_6360061F4094A1ABDD9CE8108C925153"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_6399B603CBCD10985B3566B3A06C63B0"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_6667D3BED40D06851BB2104403F4D33B"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_67E822BA109DE9B8926263FCE3B08238"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_6B9FE6B9EDD330EC7C47D9B8E957DC64"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_6CAC7C2066C3422CB67C80DFBD98B3B0"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_6D87DB1298AD49525692C9C5800C8336"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_6F14EF34ADB25B8FD3751EBB0996F339"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_6F6EE3F5730D291C73FBBE965D28BBCC"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_6FC415ED4DC4623722D05AACDC581D2D"
+        "OwnerKey" = "8:_BECED55ADAD74CAB913C0C956FAA41C7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_71C6911EC9E27690E98E9295D0ACF2F1"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_757BA0BD19C3D246BA621DB64DE2384D"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_757BA0BD19C3D246BA621DB64DE2384D"
+        "OwnerKey" = "8:_BECED55ADAD74CAB913C0C956FAA41C7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_76EFA1FBF8D720C3406B63D63277EE1E"
+        "OwnerKey" = "8:_BECED55ADAD74CAB913C0C956FAA41C7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_77A1F37C17C874B062A7E7394B1D4689"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_787F5B0B5072E5F31FAFC4AC372FC7F4"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_79255554BF165C42A3110323F381E067"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_7A6237EF4F7CD6000979CA92D4711D67"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_7A6237EF4F7CD6000979CA92D4711D67"
+        "OwnerKey" = "8:_B72EDAF281291A127C81F537EB2645D9"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_7A6237EF4F7CD6000979CA92D4711D67"
+        "OwnerKey" = "8:_91A8A6A9395A03E0AC17A1718AEC4EB3"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_7A6237EF4F7CD6000979CA92D4711D67"
+        "OwnerKey" = "8:_32113D380756096FA8823FC87C099FA0"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_7AB7095F074C0F563F59128C6E796EF1"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_7BCE13DEB6D802D103C4F6BEA67ED366"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_80ED60907BFC265E51028E2128B26900"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_811071E04CF03E1775C75E6C99ED27C0"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_812C58377CD36B6BF8B49C8073C9DFB9"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_85939BEAAAD3A46CC6BF6091545529D0"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_85F2E70D362334182B8AA52940F69E34"
+        "OwnerKey" = "8:_6FC415ED4DC4623722D05AACDC581D2D"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_85F2E70D362334182B8AA52940F69E34"
+        "OwnerKey" = "8:_BECED55ADAD74CAB913C0C956FAA41C7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_85F2E70D362334182B8AA52940F69E34"
+        "OwnerKey" = "8:_3CF260188394E3AD0B0FDA0EC222D123"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_886A7A0EB7BFF551129CE642356ED62D"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_88ED403CBE69989A87425BF2F423FE16"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_8D0A35597700627CCFE6694503A06BE3"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_8EFC96B43CA3DD9092F20E844197D252"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_91A8A6A9395A03E0AC17A1718AEC4EB3"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_91A8A6A9395A03E0AC17A1718AEC4EB3"
+        "OwnerKey" = "8:_B72EDAF281291A127C81F537EB2645D9"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_93C4BE51C1EAAE5B75B5F64A74DDB75D"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_9499CDF55F2C641C162DE14026677A4C"
+        "OwnerKey" = "8:_BECED55ADAD74CAB913C0C956FAA41C7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_9499CDF55F2C641C162DE14026677A4C"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_967F49031824161783AE0380F0445D70"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_9725FF51E11768EDEFEC5904A9FBF3A6"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_979A4D1BB79E7DAA3343D733A4C1C91F"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_98588F03B6CE7C84C9924605C3E562C8"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_98F0CB58A95E7D8833D547E9E02832E9"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_9A8FF37FABCA4D724F06C9A93C2D1EC7"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_9E70E5FFB51D957C204A4954472697CA"
+        "OwnerKey" = "8:_3CF260188394E3AD0B0FDA0EC222D123"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_9E70E5FFB51D957C204A4954472697CA"
+        "OwnerKey" = "8:_BECED55ADAD74CAB913C0C956FAA41C7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_9ECC6514F3308B68EC133B0541BCB6BB"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_A0F0B7F2302DC6462E683D96F02A5266"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_A119702460980CCCB7C53F154515C61E"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_A1475FB73B0B2F239E0F7DB3F22B4EDA"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_A459149CAAC21F23AF04BC81C01B9681"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_A707E58F615BBB66CD50AE021FBE0BF5"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_A99C06FB2BE8544D5B9CB93D3D0A5447"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_AAD8B2FD9BC33BCF336B2DD3F5652AAD"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_AAFF3397C6120ADA5772B0CEC58457A8"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_AC11CC172B6295CFACC4FFBFE11A3AB2"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_B497ABAE97A2BF433D7934E14466E9E8"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_B72EDAF281291A127C81F537EB2645D9"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_BBBF89E8AF042F1966A1BB0821A90F93"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_BECED55ADAD74CAB913C0C956FAA41C7"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_C0CB539E0313484FF8A42E2A2CDD9B38"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_C258D465BF70A5FA87AC1D64BD3A1495"
+        "OwnerKey" = "8:_EF8740181F7A96F8F588B56F16E1C572"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_C3766C21F6A5D70DEA7F3F4DE01AD4DE"
+        "OwnerKey" = "8:_9499CDF55F2C641C162DE14026677A4C"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_C3766C21F6A5D70DEA7F3F4DE01AD4DE"
+        "OwnerKey" = "8:_BECED55ADAD74CAB913C0C956FAA41C7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_C3766C21F6A5D70DEA7F3F4DE01AD4DE"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_C59F4510F6AF728C1569AAED246D2103"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_C7FA67FF2D364927A1C8EA63A47482F5"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_C8342AED1C171709037422CD1CD74538"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_C85835A235531834B8F4BF75E3731EF1"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_C86372D08CA251C84030DB78765D32F4"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_C8D45D07D4ECB8B47ED755CCE8C651CC"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_C98FD45A4EBC80F4E3D18AE6D5941E47"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_CA68A41A8A1637BC61821D501D054065"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_CA82DF86EED26293BFA314A131C2F889"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_CCDD232AD10EF46D101C215B0509E880"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_D6F020A5C08354AA83A1EF4A3D29B8F0"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_D72D79BDE6CE7112557D194F7437BC6A"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_DAA0229E5479EB35DC03AEDC6A4ADCAA"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_DBE8242675FCA9C068044D5E4B34D026"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_DCAB9386BB6F42A3CBCB8C82EB10E43F"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_DF0A9D7BC34B82A40530E9B8B8442714"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_E054FE3BBD173BA3A4E6FE8E43BAA89D"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_E114AA36E3B06480D8B8638FC5C1A4EC"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_E452310563C6811369D95391C46BD9A8"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_E61D1C368C456652BA2FA21206CF5FAB"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_E6F1DD709DD671DCBE35CD514D4D4823"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_E97E35434DD64CBC40B97E3DBE902A8D"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_EE7B0F16315C7CC20E8A75A4AF6B2DE4"
+        "OwnerKey" = "8:_F08EBB091DD37320D1C2E50E8832071F"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_EE7B0F16315C7CC20E8A75A4AF6B2DE4"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_EE7B0F16315C7CC20E8A75A4AF6B2DE4"
+        "OwnerKey" = "8:_BECED55ADAD74CAB913C0C956FAA41C7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_EECC2C36430D3AE03224CB110BCDE007"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_EF8740181F7A96F8F588B56F16E1C572"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_EF8740181F7A96F8F588B56F16E1C572"
+        "OwnerKey" = "8:_6FC415ED4DC4623722D05AACDC581D2D"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_EF8740181F7A96F8F588B56F16E1C572"
+        "OwnerKey" = "8:_BECED55ADAD74CAB913C0C956FAA41C7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_EFB46CFC14D5D836DB33062C252254A5"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_F01193984429302BC166AE209C928F3F"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_F08EBB091DD37320D1C2E50E8832071F"
+        "OwnerKey" = "8:_BECED55ADAD74CAB913C0C956FAA41C7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_F08EBB091DD37320D1C2E50E8832071F"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_F1406589BBD0DB45F8D794C102189023"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_F19A3D8DD8F07C28849B3DB8343BF9B8"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_F3F202B495C258C5067CCC936B08E090"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_F4CE0A6293F4FE7E3541861CC513A097"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_F772A14631AD85EDA7B5CE9790CF5CAA"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_F97B90DDD8EB3E7FF744E750A6404559"
+        "OwnerKey" = "8:_9499CDF55F2C641C162DE14026677A4C"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_F97B90DDD8EB3E7FF744E750A6404559"
+        "OwnerKey" = "8:_BECED55ADAD74CAB913C0C956FAA41C7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_F97B90DDD8EB3E7FF744E750A6404559"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_FC54EA0B74F94E9BB6358BFC450FAB07"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_FF164C64AF5B9869897E2A9C0236758B"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_F08EBB091DD37320D1C2E50E8832071F"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_EE7B0F16315C7CC20E8A75A4AF6B2DE4"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_9499CDF55F2C641C162DE14026677A4C"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_5953AA619F714E40AA045177A7CEBEB0"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_BECED55ADAD74CAB913C0C956FAA41C7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_76EFA1FBF8D720C3406B63D63277EE1E"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_3CF260188394E3AD0B0FDA0EC222D123"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_48A68ACE4C45A017710524235164B3B3"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_9E70E5FFB51D957C204A4954472697CA"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_52EA79ABE7DF9CFDF1BC4E05E43958D4"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_85F2E70D362334182B8AA52940F69E34"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_21A4158DD00CDD864FF8ED0E5701B6E6"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_345BC9EA136298FFA558E53796E8ACAC"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_B72EDAF281291A127C81F537EB2645D9"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_91A8A6A9395A03E0AC17A1718AEC4EB3"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_32113D380756096FA8823FC87C099FA0"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_886A7A0EB7BFF551129CE642356ED62D"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_7A6237EF4F7CD6000979CA92D4711D67"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_A0F0B7F2302DC6462E683D96F02A5266"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_32C93F284C543324839E64385611ACD9"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_5DADBCEA5C102D1B1D3CE8DDAA65B0C4"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_67E822BA109DE9B8926263FCE3B08238"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_444AE77368A783BEF4A7673B40094331"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_E6F1DD709DD671DCBE35CD514D4D4823"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_5819385AEB8F9D25544F695186094BA6"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_1615FEE0C7083A1448AC7C123F606958"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_F01193984429302BC166AE209C928F3F"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_B497ABAE97A2BF433D7934E14466E9E8"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_EFB46CFC14D5D836DB33062C252254A5"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_A119702460980CCCB7C53F154515C61E"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_2ED16BEF1F8F9006B518E8FCC930C00E"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_A1475FB73B0B2F239E0F7DB3F22B4EDA"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_A459149CAAC21F23AF04BC81C01B9681"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_13AD68BBCF1898833BE1866AF28CBC83"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_5F5E81472AA7F9AEC005E0E3D187E102"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_AC11CC172B6295CFACC4FFBFE11A3AB2"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_80ED60907BFC265E51028E2128B26900"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_DCAB9386BB6F42A3CBCB8C82EB10E43F"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_8D0A35597700627CCFE6694503A06BE3"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_6667D3BED40D06851BB2104403F4D33B"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_F772A14631AD85EDA7B5CE9790CF5CAA"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_C8D45D07D4ECB8B47ED755CCE8C651CC"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_01640BC10B1D6912CF73721B24DC9F66"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_5EAC882A6F73970A34A9E57A0564797D"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_DF0A9D7BC34B82A40530E9B8B8442714"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_812C58377CD36B6BF8B49C8073C9DFB9"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_979A4D1BB79E7DAA3343D733A4C1C91F"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_98588F03B6CE7C84C9924605C3E562C8"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_C98FD45A4EBC80F4E3D18AE6D5941E47"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_45A93DF5542B4DA8A407D98F6657D1C2"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_F19A3D8DD8F07C28849B3DB8343BF9B8"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_C8342AED1C171709037422CD1CD74538"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_C59F4510F6AF728C1569AAED246D2103"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_AAFF3397C6120ADA5772B0CEC58457A8"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_E97E35434DD64CBC40B97E3DBE902A8D"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_527F7727E57B49C12275C7494383C919"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_77A1F37C17C874B062A7E7394B1D4689"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_492CC97CCC66D24897FE2A25AAD95BB8"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_9A8FF37FABCA4D724F06C9A93C2D1EC7"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_967F49031824161783AE0380F0445D70"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_85939BEAAAD3A46CC6BF6091545529D0"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_AAD8B2FD9BC33BCF336B2DD3F5652AAD"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_F1406589BBD0DB45F8D794C102189023"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_C85835A235531834B8F4BF75E3731EF1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_32CE52386B5908AE9214E367AE550972"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_6360061F4094A1ABDD9CE8108C925153"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_E114AA36E3B06480D8B8638FC5C1A4EC"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_98F0CB58A95E7D8833D547E9E02832E9"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_DAA0229E5479EB35DC03AEDC6A4ADCAA"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_6D87DB1298AD49525692C9C5800C8336"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_6B9FE6B9EDD330EC7C47D9B8E957DC64"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_E61D1C368C456652BA2FA21206CF5FAB"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_510141267BDB78CD181781D6F06DC3BA"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_C86372D08CA251C84030DB78765D32F4"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_D72D79BDE6CE7112557D194F7437BC6A"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_DBE8242675FCA9C068044D5E4B34D026"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_6F14EF34ADB25B8FD3751EBB0996F339"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_425990421856F8C7DBB34DBF0FD56A30"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_9725FF51E11768EDEFEC5904A9FBF3A6"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_CA68A41A8A1637BC61821D501D054065"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_CCDD232AD10EF46D101C215B0509E880"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_4C1B04A932A275484E942C278D6EF4F1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_02B298B1336BA6617D22658348203E95"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_52E0539A24EC65ADAFF05882B2C9B554"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_EECC2C36430D3AE03224CB110BCDE007"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_CA82DF86EED26293BFA314A131C2F889"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_35BFAD88F283DDF171B04DAB0903A9E8"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_F4CE0A6293F4FE7E3541861CC513A097"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_15B8736B5AE40B1E6F647D90050B180B"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_7BCE13DEB6D802D103C4F6BEA67ED366"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_811071E04CF03E1775C75E6C99ED27C0"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_787F5B0B5072E5F31FAFC4AC372FC7F4"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_5084EC12D55682C0238A44B4BD8B8419"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_79255554BF165C42A3110323F381E067"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_BBBF89E8AF042F1966A1BB0821A90F93"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_075A24B98982891C1926A7D9A90A19AE"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_E054FE3BBD173BA3A4E6FE8E43BAA89D"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_6399B603CBCD10985B3566B3A06C63B0"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_C7FA67FF2D364927A1C8EA63A47482F5"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_339FF8D92403BD629E058806FD3B9099"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_D6F020A5C08354AA83A1EF4A3D29B8F0"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_A707E58F615BBB66CD50AE021FBE0BF5"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_F3F202B495C258C5067CCC936B08E090"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_2E230F7AA95390264AA7DCE57346DD20"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_51C8105F8FED38E63AE8EF301B6D6AFF"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_257990C3493552B56D4237E18F4A285A"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_6F6EE3F5730D291C73FBBE965D28BBCC"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_9ECC6514F3308B68EC133B0541BCB6BB"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_2C7A6BCC1E0B4E5E7A5D8572FDFA0248"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_5D1044CE7CAE99DC11ED9479FB4FEACB"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_93C4BE51C1EAAE5B75B5F64A74DDB75D"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_1E707F5B83FC3618950A3CC696F2FF02"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_A99C06FB2BE8544D5B9CB93D3D0A5447"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_FF164C64AF5B9869897E2A9C0236758B"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_7AB7095F074C0F563F59128C6E796EF1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_8EFC96B43CA3DD9092F20E844197D252"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_503788E7BBFC86AD2B304F65AFF22B3D"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_88ED403CBE69989A87425BF2F423FE16"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_71C6911EC9E27690E98E9295D0ACF2F1"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_C0CB539E0313484FF8A42E2A2CDD9B38"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_E452310563C6811369D95391C46BD9A8"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_2EA85837A25EED32DBEF2EFA60843CBC"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_C3766C21F6A5D70DEA7F3F4DE01AD4DE"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_F97B90DDD8EB3E7FF744E750A6404559"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_757BA0BD19C3D246BA621DB64DE2384D"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_EF8740181F7A96F8F588B56F16E1C572"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_21468B8D81AFD6F09C95C4A625074111"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_5B564BFA29E2E8FFAC2C080F126C6C84"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_16B50F4EF9312E329521BD95EB6F8F5A"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_UNDEFINED"
+        "OwnerKey" = "8:_C258D465BF70A5FA87AC1D64BD3A1495"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+    }
+    "Configurations"
+    {
+        "Debug"
+        {
+        "DisplayName" = "8:Debug"
+        "IsDebugOnly" = "11:TRUE"
+        "IsReleaseOnly" = "11:FALSE"
+        "OutputFilename" = "8:Debug\\AwInitlizerInstaller.msi"
+        "PackageFilesAs" = "3:2"
+        "PackageFileSize" = "3:-2147483648"
+        "CabType" = "3:1"
+        "Compression" = "3:2"
+        "SignOutput" = "11:FALSE"
+        "CertificateFile" = "8:"
+        "PrivateKeyFile" = "8:"
+        "TimeStampServer" = "8:"
+        "InstallerBootstrapper" = "3:2"
+            "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
+            {
+            "Enabled" = "11:TRUE"
+            "PromptEnabled" = "11:TRUE"
+            "PrerequisitesLocation" = "2:1"
+            "Url" = "8:"
+            "ComponentsUrl" = "8:"
+                "Items"
+                {
+                    "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.8"
+                    {
+                    "Name" = "8:Microsoft .NET Framework 4.8 (x86 and x64)"
+                    "ProductCode" = "8:.NETFramework,Version=v4.8"
+                    }
+                    "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.NetCore.CoreRuntime.3.1.x86"
+                    {
+                    "Name" = "8:.NET Core Runtime 3.1.13 (x86)"
+                    "ProductCode" = "8:Microsoft.NetCore.CoreRuntime.3.1.x86"
+                    }
+                }
+            }
+        }
+        "Release"
+        {
+        "DisplayName" = "8:Release"
+        "IsDebugOnly" = "11:FALSE"
+        "IsReleaseOnly" = "11:TRUE"
+        "OutputFilename" = "8:Release\\DCInitializerr.msi"
+        "PackageFilesAs" = "3:2"
+        "PackageFileSize" = "3:-2147483648"
+        "CabType" = "3:1"
+        "Compression" = "3:2"
+        "SignOutput" = "11:FALSE"
+        "CertificateFile" = "8:"
+        "PrivateKeyFile" = "8:"
+        "TimeStampServer" = "8:"
+        "InstallerBootstrapper" = "3:2"
+            "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
+            {
+            "Enabled" = "11:FALSE"
+            "PromptEnabled" = "11:TRUE"
+            "PrerequisitesLocation" = "2:2"
+            "Url" = "8:"
+            "ComponentsUrl" = "8:"
+                "Items"
+                {
+                    "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.7.2"
+                    {
+                    "Name" = "8:Microsoft .NET Framework 4.7.2 (x86 and x64)"
+                    "ProductCode" = "8:.NETFramework,Version=v4.7.2"
+                    }
+                }
+            }
+        }
+    }
+    "Deployable"
+    {
+        "CustomAction"
+        {
+        }
+        "DefaultFeature"
+        {
+        "Name" = "8:DefaultFeature"
+        "Title" = "8:"
+        "Description" = "8:"
+        }
+        "ExternalPersistence"
+        {
+            "LaunchCondition"
+            {
+                "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_D0C82ED0E2FD42C1BFE77BB01DDECAF4"
+                {
+                "Name" = "8:.NET Framework"
+                "Message" = "8:[VSDNETMSG]"
+                "FrameworkVersion" = "8:.NETFramework,Version=v4.8"
+                "AllowLaterVersions" = "11:FALSE"
+                "InstallUrl" = "8:https://go.microsoft.com/fwlink/?linkid=2088631"
+                }
+            }
+        }
+        "File"
+        {
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_01640BC10B1D6912CF73721B24DC9F66"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Security.Cryptography.X509Certificates, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_01640BC10B1D6912CF73721B24DC9F66"
+                    {
+                    "Name" = "8:System.Security.Cryptography.X509Certificates.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Security.Cryptography.X509Certificates.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_02B298B1336BA6617D22658348203E95"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Linq.Queryable, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_02B298B1336BA6617D22658348203E95"
+                    {
+                    "Name" = "8:System.Linq.Queryable.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Linq.Queryable.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_075A24B98982891C1926A7D9A90A19AE"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.IO.Compression.ZipFile, Version=4.0.3.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
+                "ScatterAssemblies"
+                {
+                    "_075A24B98982891C1926A7D9A90A19AE"
+                    {
+                    "Name" = "8:System.IO.Compression.ZipFile.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.IO.Compression.ZipFile.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_13AD68BBCF1898833BE1866AF28CBC83"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Text.Encoding.Extensions, Version=4.0.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_13AD68BBCF1898833BE1866AF28CBC83"
+                    {
+                    "Name" = "8:System.Text.Encoding.Extensions.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Text.Encoding.Extensions.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_15B8736B5AE40B1E6F647D90050B180B"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.IO.MemoryMappedFiles, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_15B8736B5AE40B1E6F647D90050B180B"
+                    {
+                    "Name" = "8:System.IO.MemoryMappedFiles.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.IO.MemoryMappedFiles.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_1615FEE0C7083A1448AC7C123F606958"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Threading.Timer, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_1615FEE0C7083A1448AC7C123F606958"
+                    {
+                    "Name" = "8:System.Threading.Timer.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Threading.Timer.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_16B50F4EF9312E329521BD95EB6F8F5A"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:TRUE"
+            "AssemblyAsmDisplayName" = "8:System.IO.Compression, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_16B50F4EF9312E329521BD95EB6F8F5A"
+                    {
+                    "Name" = "8:System.IO.Compression.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.IO.Compression.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_1E707F5B83FC3618950A3CC696F2FF02"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.ComponentModel.TypeConverter, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_1E707F5B83FC3618950A3CC696F2FF02"
+                    {
+                    "Name" = "8:System.ComponentModel.TypeConverter.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.ComponentModel.TypeConverter.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_21468B8D81AFD6F09C95C4A625074111"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:TRUE"
+            "AssemblyAsmDisplayName" = "8:System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_21468B8D81AFD6F09C95C4A625074111"
+                    {
+                    "Name" = "8:System.Net.Http.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Net.Http.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_21A4158DD00CDD864FF8ED0E5701B6E6"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:Microsoft.Extensions.Logging.Abstractions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_21A4158DD00CDD864FF8ED0E5701B6E6"
+                    {
+                    "Name" = "8:Microsoft.Extensions.Logging.Abstractions.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:Microsoft.Extensions.Logging.Abstractions.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_23B850A280A34D138F86E4E3E9D9A29B"
+            {
+            "SourcePath" = "8:..\\..\\..\\MES\\shinewave_6.2.41.6\\SajetConnect.dll"
+            "TargetName" = "8:SajetConnect.dll"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_257990C3493552B56D4237E18F4A285A"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Diagnostics.Process, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_257990C3493552B56D4237E18F4A285A"
+                    {
+                    "Name" = "8:System.Diagnostics.Process.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Diagnostics.Process.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2C7A6BCC1E0B4E5E7A5D8572FDFA0248"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Diagnostics.Contracts, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_2C7A6BCC1E0B4E5E7A5D8572FDFA0248"
+                    {
+                    "Name" = "8:System.Diagnostics.Contracts.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Diagnostics.Contracts.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2E230F7AA95390264AA7DCE57346DD20"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Diagnostics.TextWriterTraceListener, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_2E230F7AA95390264AA7DCE57346DD20"
+                    {
+                    "Name" = "8:System.Diagnostics.TextWriterTraceListener.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Diagnostics.TextWriterTraceListener.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2EA85837A25EED32DBEF2EFA60843CBC"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:Microsoft.Win32.Primitives, Version=4.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_2EA85837A25EED32DBEF2EFA60843CBC"
+                    {
+                    "Name" = "8:Microsoft.Win32.Primitives.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:Microsoft.Win32.Primitives.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2ED16BEF1F8F9006B518E8FCC930C00E"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Threading.Overlapped, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_2ED16BEF1F8F9006B518E8FCC930C00E"
+                    {
+                    "Name" = "8:System.Threading.Overlapped.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Threading.Overlapped.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_32113D380756096FA8823FC87C099FA0"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:Microsoft.WindowsAPICodePack.Sensors, Version=8.0.4.0, Culture=neutral, PublicKeyToken=8afb38e9204fc0a9, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_32113D380756096FA8823FC87C099FA0"
+                    {
+                    "Name" = "8:Microsoft.WindowsAPICodePack.Sensors.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:Microsoft.WindowsAPICodePack.Sensors.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_32C93F284C543324839E64385611ACD9"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Xml.XPath, Version=4.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_32C93F284C543324839E64385611ACD9"
+                    {
+                    "Name" = "8:System.Xml.XPath.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Xml.XPath.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_32CE52386B5908AE9214E367AE550972"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Reflection.Extensions, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_32CE52386B5908AE9214E367AE550972"
+                    {
+                    "Name" = "8:System.Reflection.Extensions.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Reflection.Extensions.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_339FF8D92403BD629E058806FD3B9099"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Dynamic.Runtime, Version=4.0.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_339FF8D92403BD629E058806FD3B9099"
+                    {
+                    "Name" = "8:System.Dynamic.Runtime.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Dynamic.Runtime.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_345BC9EA136298FFA558E53796E8ACAC"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:FluentFTP, Version=37.0.2.0, Culture=neutral, PublicKeyToken=f4af092b1d8df44f, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_345BC9EA136298FFA558E53796E8ACAC"
+                    {
+                    "Name" = "8:FluentFTP.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:FluentFTP.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_35BFAD88F283DDF171B04DAB0903A9E8"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.IO.UnmanagedMemoryStream, Version=4.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_35BFAD88F283DDF171B04DAB0903A9E8"
+                    {
+                    "Name" = "8:System.IO.UnmanagedMemoryStream.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.IO.UnmanagedMemoryStream.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_3CF260188394E3AD0B0FDA0EC222D123"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_3CF260188394E3AD0B0FDA0EC222D123"
+                    {
+                    "Name" = "8:System.Memory.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Memory.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_425990421856F8C7DBB34DBF0FD56A30"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Net.Ping, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_425990421856F8C7DBB34DBF0FD56A30"
+                    {
+                    "Name" = "8:System.Net.Ping.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Net.Ping.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_444AE77368A783BEF4A7673B40094331"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Xml.XDocument, Version=4.0.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_444AE77368A783BEF4A7673B40094331"
+                    {
+                    "Name" = "8:System.Xml.XDocument.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Xml.XDocument.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_45A93DF5542B4DA8A407D98F6657D1C2"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Runtime.Serialization.Primitives, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_45A93DF5542B4DA8A407D98F6657D1C2"
+                    {
+                    "Name" = "8:System.Runtime.Serialization.Primitives.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Runtime.Serialization.Primitives.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_48A68ACE4C45A017710524235164B3B3"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_48A68ACE4C45A017710524235164B3B3"
+                    {
+                    "Name" = "8:System.Runtime.CompilerServices.Unsafe.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Runtime.CompilerServices.Unsafe.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_492CC97CCC66D24897FE2A25AAD95BB8"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Runtime.Extensions, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_492CC97CCC66D24897FE2A25AAD95BB8"
+                    {
+                    "Name" = "8:System.Runtime.Extensions.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Runtime.Extensions.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_4C1B04A932A275484E942C278D6EF4F1"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:TRUE"
+            "AssemblyAsmDisplayName" = "8:System.Net.Http.WebRequest, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_4C1B04A932A275484E942C278D6EF4F1"
+                    {
+                    "Name" = "8:System.Net.Http.WebRequest.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Net.Http.WebRequest.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_503788E7BBFC86AD2B304F65AFF22B3D"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Collections.Specialized, Version=4.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_503788E7BBFC86AD2B304F65AFF22B3D"
+                    {
+                    "Name" = "8:System.Collections.Specialized.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Collections.Specialized.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5084EC12D55682C0238A44B4BD8B8419"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.IO.FileSystem.DriveInfo, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_5084EC12D55682C0238A44B4BD8B8419"
+                    {
+                    "Name" = "8:System.IO.FileSystem.DriveInfo.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.IO.FileSystem.DriveInfo.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_510141267BDB78CD181781D6F06DC3BA"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Net.WebHeaderCollection, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_510141267BDB78CD181781D6F06DC3BA"
+                    {
+                    "Name" = "8:System.Net.WebHeaderCollection.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Net.WebHeaderCollection.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_51C8105F8FED38E63AE8EF301B6D6AFF"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Diagnostics.StackTrace, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_51C8105F8FED38E63AE8EF301B6D6AFF"
+                    {
+                    "Name" = "8:System.Diagnostics.StackTrace.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Diagnostics.StackTrace.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_527F7727E57B49C12275C7494383C919"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Runtime.InteropServices, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_527F7727E57B49C12275C7494383C919"
+                    {
+                    "Name" = "8:System.Runtime.InteropServices.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Runtime.InteropServices.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_52E0539A24EC65ADAFF05882B2C9B554"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Linq.Parallel, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_52E0539A24EC65ADAFF05882B2C9B554"
+                    {
+                    "Name" = "8:System.Linq.Parallel.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Linq.Parallel.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_52EA79ABE7DF9CFDF1BC4E05E43958D4"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.IO.Ports, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_52EA79ABE7DF9CFDF1BC4E05E43958D4"
+                    {
+                    "Name" = "8:System.IO.Ports.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.IO.Ports.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5819385AEB8F9D25544F695186094BA6"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.ValueTuple, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51"
+                "ScatterAssemblies"
+                {
+                    "_5819385AEB8F9D25544F695186094BA6"
+                    {
+                    "Name" = "8:System.ValueTuple.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.ValueTuple.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5953AA619F714E40AA045177A7CEBEB0"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:AwInitilizer.resources, Version=1.12.1.0, Culture=zh-CHS, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_5953AA619F714E40AA045177A7CEBEB0"
+                    {
+                    "Name" = "8:AwInitilizer.resources.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:..\\AwInitilizer\\bin\\Release\\zh-CHS\\AwInitilizer.resources.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_8F566B14076B4C1D82C6453657F4DA04"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5B564BFA29E2E8FFAC2C080F126C6C84"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:TRUE"
+            "AssemblyAsmDisplayName" = "8:System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_5B564BFA29E2E8FFAC2C080F126C6C84"
+                    {
+                    "Name" = "8:System.IO.Compression.FileSystem.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.IO.Compression.FileSystem.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5D1044CE7CAE99DC11ED9479FB4FEACB"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Data.Common, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_5D1044CE7CAE99DC11ED9479FB4FEACB"
+                    {
+                    "Name" = "8:System.Data.Common.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Data.Common.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5DADBCEA5C102D1B1D3CE8DDAA65B0C4"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Xml.XmlSerializer, Version=4.0.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_5DADBCEA5C102D1B1D3CE8DDAA65B0C4"
+                    {
+                    "Name" = "8:System.Xml.XmlSerializer.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Xml.XmlSerializer.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5EAC882A6F73970A34A9E57A0564797D"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Security.Cryptography.Primitives, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_5EAC882A6F73970A34A9E57A0564797D"
+                    {
+                    "Name" = "8:System.Security.Cryptography.Primitives.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Security.Cryptography.Primitives.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5F5E81472AA7F9AEC005E0E3D187E102"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Text.Encoding, Version=4.0.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_5F5E81472AA7F9AEC005E0E3D187E102"
+                    {
+                    "Name" = "8:System.Text.Encoding.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Text.Encoding.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_6360061F4094A1ABDD9CE8108C925153"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Reflection.Emit.Lightweight, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_6360061F4094A1ABDD9CE8108C925153"
+                    {
+                    "Name" = "8:System.Reflection.Emit.Lightweight.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Reflection.Emit.Lightweight.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_6399B603CBCD10985B3566B3A06C63B0"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Globalization, Version=4.0.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_6399B603CBCD10985B3566B3A06C63B0"
+                    {
+                    "Name" = "8:System.Globalization.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Globalization.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_6667D3BED40D06851BB2104403F4D33B"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.ServiceModel.Duplex, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_6667D3BED40D06851BB2104403F4D33B"
+                    {
+                    "Name" = "8:System.ServiceModel.Duplex.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.ServiceModel.Duplex.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_67E822BA109DE9B8926263FCE3B08238"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Xml.XmlDocument, Version=4.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_67E822BA109DE9B8926263FCE3B08238"
+                    {
+                    "Name" = "8:System.Xml.XmlDocument.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Xml.XmlDocument.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_6B9FE6B9EDD330EC7C47D9B8E957DC64"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Net.WebSockets, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_6B9FE6B9EDD330EC7C47D9B8E957DC64"
+                    {
+                    "Name" = "8:System.Net.WebSockets.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Net.WebSockets.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_6CAC7C2066C3422CB67C80DFBD98B3B0"
+            {
+            "SourcePath" = "8:..\\..\\..\\MES\\shinewave_6.2.41.6\\DLL.INI"
+            "TargetName" = "8:DLL.INI"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_6D87DB1298AD49525692C9C5800C8336"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.ObjectModel, Version=4.0.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_6D87DB1298AD49525692C9C5800C8336"
+                    {
+                    "Name" = "8:System.ObjectModel.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.ObjectModel.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_6F14EF34ADB25B8FD3751EBB0996F339"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Net.Primitives, Version=4.0.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_6F14EF34ADB25B8FD3751EBB0996F339"
+                    {
+                    "Name" = "8:System.Net.Primitives.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Net.Primitives.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_6F6EE3F5730D291C73FBBE965D28BBCC"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Diagnostics.FileVersionInfo, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_6F6EE3F5730D291C73FBBE965D28BBCC"
+                    {
+                    "Name" = "8:System.Diagnostics.FileVersionInfo.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Diagnostics.FileVersionInfo.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_6FC415ED4DC4623722D05AACDC581D2D"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:FluentModbus, Version=5.0.0.0, Culture=neutral, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_6FC415ED4DC4623722D05AACDC581D2D"
+                    {
+                    "Name" = "8:FluentModbus.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:FluentModbus.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_71C6911EC9E27690E98E9295D0ACF2F1"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Collections, Version=4.0.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_71C6911EC9E27690E98E9295D0ACF2F1"
+                    {
+                    "Name" = "8:System.Collections.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Collections.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_757BA0BD19C3D246BA621DB64DE2384D"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_757BA0BD19C3D246BA621DB64DE2384D"
+                    {
+                    "Name" = "8:System.Net.Http.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Net.Http.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_76EFA1FBF8D720C3406B63D63277EE1E"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:RestSharp, Version=106.15.0.0, Culture=neutral, PublicKeyToken=598062e77f915f75, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_76EFA1FBF8D720C3406B63D63277EE1E"
+                    {
+                    "Name" = "8:RestSharp.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:RestSharp.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_77A1F37C17C874B062A7E7394B1D4689"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Runtime.Handles, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_77A1F37C17C874B062A7E7394B1D4689"
+                    {
+                    "Name" = "8:System.Runtime.Handles.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Runtime.Handles.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_787F5B0B5072E5F31FAFC4AC372FC7F4"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.IO.FileSystem.Primitives, Version=4.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_787F5B0B5072E5F31FAFC4AC372FC7F4"
+                    {
+                    "Name" = "8:System.IO.FileSystem.Primitives.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.IO.FileSystem.Primitives.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_79255554BF165C42A3110323F381E067"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.IO.FileSystem, Version=4.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_79255554BF165C42A3110323F381E067"
+                    {
+                    "Name" = "8:System.IO.FileSystem.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.IO.FileSystem.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_7A6237EF4F7CD6000979CA92D4711D67"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:Microsoft.WindowsAPICodePack.Core, Version=8.0.4.0, Culture=neutral, PublicKeyToken=8afb38e9204fc0a9, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_7A6237EF4F7CD6000979CA92D4711D67"
+                    {
+                    "Name" = "8:Microsoft.WindowsAPICodePack.Core.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:Microsoft.WindowsAPICodePack.Core.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_7AB7095F074C0F563F59128C6E796EF1"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.ComponentModel, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_7AB7095F074C0F563F59128C6E796EF1"
+                    {
+                    "Name" = "8:System.ComponentModel.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.ComponentModel.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_7BCE13DEB6D802D103C4F6BEA67ED366"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.IO.IsolatedStorage, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_7BCE13DEB6D802D103C4F6BEA67ED366"
+                    {
+                    "Name" = "8:System.IO.IsolatedStorage.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.IO.IsolatedStorage.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_80ED60907BFC265E51028E2128B26900"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.ServiceModel.Primitives, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_80ED60907BFC265E51028E2128B26900"
+                    {
+                    "Name" = "8:System.ServiceModel.Primitives.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.ServiceModel.Primitives.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_811071E04CF03E1775C75E6C99ED27C0"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.IO.FileSystem.Watcher, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_811071E04CF03E1775C75E6C99ED27C0"
+                    {
+                    "Name" = "8:System.IO.FileSystem.Watcher.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.IO.FileSystem.Watcher.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_812C58377CD36B6BF8B49C8073C9DFB9"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Security.Cryptography.Csp, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_812C58377CD36B6BF8B49C8073C9DFB9"
+                    {
+                    "Name" = "8:System.Security.Cryptography.Csp.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Security.Cryptography.Csp.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_85939BEAAAD3A46CC6BF6091545529D0"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Resources.Writer, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_85939BEAAAD3A46CC6BF6091545529D0"
+                    {
+                    "Name" = "8:System.Resources.Writer.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Resources.Writer.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_85F2E70D362334182B8AA52940F69E34"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_85F2E70D362334182B8AA52940F69E34"
+                    {
+                    "Name" = "8:System.Buffers.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Buffers.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_886A7A0EB7BFF551129CE642356ED62D"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:Microsoft.WindowsAPICodePack.ExtendedLinguisticServices, Version=8.0.4.0, Culture=neutral, PublicKeyToken=8afb38e9204fc0a9, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_886A7A0EB7BFF551129CE642356ED62D"
+                    {
+                    "Name" = "8:Microsoft.WindowsAPICodePack.ExtendedLinguisticServices.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:Microsoft.WindowsAPICodePack.ExtendedLinguisticServices.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_88ED403CBE69989A87425BF2F423FE16"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Collections.NonGeneric, Version=4.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_88ED403CBE69989A87425BF2F423FE16"
+                    {
+                    "Name" = "8:System.Collections.NonGeneric.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Collections.NonGeneric.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_8D0A35597700627CCFE6694503A06BE3"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.ServiceModel.Http, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_8D0A35597700627CCFE6694503A06BE3"
+                    {
+                    "Name" = "8:System.ServiceModel.Http.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.ServiceModel.Http.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_8EFC96B43CA3DD9092F20E844197D252"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.ComponentModel.Annotations, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_8EFC96B43CA3DD9092F20E844197D252"
+                    {
+                    "Name" = "8:System.ComponentModel.Annotations.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.ComponentModel.Annotations.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_91A8A6A9395A03E0AC17A1718AEC4EB3"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:Microsoft.WindowsAPICodePack.Shell, Version=8.0.4.0, Culture=neutral, PublicKeyToken=8afb38e9204fc0a9, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_91A8A6A9395A03E0AC17A1718AEC4EB3"
+                    {
+                    "Name" = "8:Microsoft.WindowsAPICodePack.Shell.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:Microsoft.WindowsAPICodePack.Shell.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_93C4BE51C1EAAE5B75B5F64A74DDB75D"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Console, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_93C4BE51C1EAAE5B75B5F64A74DDB75D"
+                    {
+                    "Name" = "8:System.Console.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Console.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_9499CDF55F2C641C162DE14026677A4C"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:InitializerModel, Version=1.12.1.0, Culture=neutral, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_9499CDF55F2C641C162DE14026677A4C"
+                    {
+                    "Name" = "8:InitializerModel.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:InitializerModel.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_967F49031824161783AE0380F0445D70"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Runtime.CompilerServices.VisualC, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_967F49031824161783AE0380F0445D70"
+                    {
+                    "Name" = "8:System.Runtime.CompilerServices.VisualC.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Runtime.CompilerServices.VisualC.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_9725FF51E11768EDEFEC5904A9FBF3A6"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Net.NetworkInformation, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_9725FF51E11768EDEFEC5904A9FBF3A6"
+                    {
+                    "Name" = "8:System.Net.NetworkInformation.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Net.NetworkInformation.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_979A4D1BB79E7DAA3343D733A4C1C91F"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Security.Cryptography.Algorithms, Version=4.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_979A4D1BB79E7DAA3343D733A4C1C91F"
+                    {
+                    "Name" = "8:System.Security.Cryptography.Algorithms.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Security.Cryptography.Algorithms.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_98588F03B6CE7C84C9924605C3E562C8"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Security.Claims, Version=4.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_98588F03B6CE7C84C9924605C3E562C8"
+                    {
+                    "Name" = "8:System.Security.Claims.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Security.Claims.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_98F0CB58A95E7D8833D547E9E02832E9"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Reflection.Emit, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_98F0CB58A95E7D8833D547E9E02832E9"
+                    {
+                    "Name" = "8:System.Reflection.Emit.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Reflection.Emit.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_9A8FF37FABCA4D724F06C9A93C2D1EC7"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Runtime, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_9A8FF37FABCA4D724F06C9A93C2D1EC7"
+                    {
+                    "Name" = "8:System.Runtime.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Runtime.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_9E70E5FFB51D957C204A4954472697CA"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_9E70E5FFB51D957C204A4954472697CA"
+                    {
+                    "Name" = "8:System.Numerics.Vectors.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Numerics.Vectors.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_9ECC6514F3308B68EC133B0541BCB6BB"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Diagnostics.Debug, Version=4.0.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_9ECC6514F3308B68EC133B0541BCB6BB"
+                    {
+                    "Name" = "8:System.Diagnostics.Debug.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Diagnostics.Debug.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_A0F0B7F2302DC6462E683D96F02A5266"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Xml.XPath.XDocument, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_A0F0B7F2302DC6462E683D96F02A5266"
+                    {
+                    "Name" = "8:System.Xml.XPath.XDocument.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Xml.XPath.XDocument.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_A119702460980CCCB7C53F154515C61E"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Threading.Tasks, Version=4.0.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_A119702460980CCCB7C53F154515C61E"
+                    {
+                    "Name" = "8:System.Threading.Tasks.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Threading.Tasks.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_A1475FB73B0B2F239E0F7DB3F22B4EDA"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Threading, Version=4.0.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_A1475FB73B0B2F239E0F7DB3F22B4EDA"
+                    {
+                    "Name" = "8:System.Threading.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Threading.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_A459149CAAC21F23AF04BC81C01B9681"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Text.RegularExpressions, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_A459149CAAC21F23AF04BC81C01B9681"
+                    {
+                    "Name" = "8:System.Text.RegularExpressions.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Text.RegularExpressions.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_A707E58F615BBB66CD50AE021FBE0BF5"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Diagnostics.TraceSource, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_A707E58F615BBB66CD50AE021FBE0BF5"
+                    {
+                    "Name" = "8:System.Diagnostics.TraceSource.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Diagnostics.TraceSource.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_A99C06FB2BE8544D5B9CB93D3D0A5447"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.ComponentModel.Primitives, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_A99C06FB2BE8544D5B9CB93D3D0A5447"
+                    {
+                    "Name" = "8:System.ComponentModel.Primitives.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.ComponentModel.Primitives.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_AAD8B2FD9BC33BCF336B2DD3F5652AAD"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Resources.ResourceManager, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_AAD8B2FD9BC33BCF336B2DD3F5652AAD"
+                    {
+                    "Name" = "8:System.Resources.ResourceManager.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Resources.ResourceManager.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_AAFF3397C6120ADA5772B0CEC58457A8"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Runtime.InteropServices.WindowsRuntime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_AAFF3397C6120ADA5772B0CEC58457A8"
+                    {
+                    "Name" = "8:System.Runtime.InteropServices.WindowsRuntime.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Runtime.InteropServices.WindowsRuntime.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_AC11CC172B6295CFACC4FFBFE11A3AB2"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.ServiceModel.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_AC11CC172B6295CFACC4FFBFE11A3AB2"
+                    {
+                    "Name" = "8:System.ServiceModel.Security.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.ServiceModel.Security.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_B497ABAE97A2BF433D7934E14466E9E8"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Threading.Thread, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_B497ABAE97A2BF433D7934E14466E9E8"
+                    {
+                    "Name" = "8:System.Threading.Thread.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Threading.Thread.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_B72EDAF281291A127C81F537EB2645D9"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:Microsoft.WindowsAPICodePack.ShellExtensions, Version=8.0.4.0, Culture=neutral, PublicKeyToken=8afb38e9204fc0a9, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_B72EDAF281291A127C81F537EB2645D9"
+                    {
+                    "Name" = "8:Microsoft.WindowsAPICodePack.ShellExtensions.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:Microsoft.WindowsAPICodePack.ShellExtensions.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_BBBF89E8AF042F1966A1BB0821A90F93"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.IO, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_BBBF89E8AF042F1966A1BB0821A90F93"
+                    {
+                    "Name" = "8:System.IO.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.IO.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C0CB539E0313484FF8A42E2A2CDD9B38"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Collections.Concurrent, Version=4.0.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_C0CB539E0313484FF8A42E2A2CDD9B38"
+                    {
+                    "Name" = "8:System.Collections.Concurrent.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Collections.Concurrent.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C258D465BF70A5FA87AC1D64BD3A1495"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:TRUE"
+            "AssemblyAsmDisplayName" = "8:System.Diagnostics.Tracing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_C258D465BF70A5FA87AC1D64BD3A1495"
+                    {
+                    "Name" = "8:System.Diagnostics.Tracing.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Diagnostics.Tracing.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C3766C21F6A5D70DEA7F3F4DE01AD4DE"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:PhihongEv.Lib, Version=1.0.16.0, Culture=neutral, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_C3766C21F6A5D70DEA7F3F4DE01AD4DE"
+                    {
+                    "Name" = "8:PhihongEv.Lib.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:PhihongEv.Lib.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C59F4510F6AF728C1569AAED246D2103"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Runtime.Numerics, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_C59F4510F6AF728C1569AAED246D2103"
+                    {
+                    "Name" = "8:System.Runtime.Numerics.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Runtime.Numerics.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C7FA67FF2D364927A1C8EA63A47482F5"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Globalization.Calendars, Version=4.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_C7FA67FF2D364927A1C8EA63A47482F5"
+                    {
+                    "Name" = "8:System.Globalization.Calendars.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Globalization.Calendars.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C8342AED1C171709037422CD1CD74538"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Runtime.Serialization.Formatters, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_C8342AED1C171709037422CD1CD74538"
+                    {
+                    "Name" = "8:System.Runtime.Serialization.Formatters.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Runtime.Serialization.Formatters.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C85835A235531834B8F4BF75E3731EF1"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Reflection.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_C85835A235531834B8F4BF75E3731EF1"
+                    {
+                    "Name" = "8:System.Reflection.Primitives.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Reflection.Primitives.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C86372D08CA251C84030DB78765D32F4"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Net.Sockets, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_C86372D08CA251C84030DB78765D32F4"
+                    {
+                    "Name" = "8:System.Net.Sockets.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Net.Sockets.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C8D45D07D4ECB8B47ED755CCE8C651CC"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Security.Principal, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_C8D45D07D4ECB8B47ED755CCE8C651CC"
+                    {
+                    "Name" = "8:System.Security.Principal.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Security.Principal.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C98FD45A4EBC80F4E3D18AE6D5941E47"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Runtime.Serialization.Xml, Version=4.1.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_C98FD45A4EBC80F4E3D18AE6D5941E47"
+                    {
+                    "Name" = "8:System.Runtime.Serialization.Xml.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Runtime.Serialization.Xml.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_CA68A41A8A1637BC61821D501D054065"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Net.NameResolution, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_CA68A41A8A1637BC61821D501D054065"
+                    {
+                    "Name" = "8:System.Net.NameResolution.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Net.NameResolution.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_CA82DF86EED26293BFA314A131C2F889"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Linq, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_CA82DF86EED26293BFA314A131C2F889"
+                    {
+                    "Name" = "8:System.Linq.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Linq.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_CCDD232AD10EF46D101C215B0509E880"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Net.Http.Rtc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_CCDD232AD10EF46D101C215B0509E880"
+                    {
+                    "Name" = "8:System.Net.Http.Rtc.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Net.Http.Rtc.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D6F020A5C08354AA83A1EF4A3D29B8F0"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Drawing.Primitives, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_D6F020A5C08354AA83A1EF4A3D29B8F0"
+                    {
+                    "Name" = "8:System.Drawing.Primitives.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Drawing.Primitives.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D72D79BDE6CE7112557D194F7437BC6A"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Net.Security, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_D72D79BDE6CE7112557D194F7437BC6A"
+                    {
+                    "Name" = "8:System.Net.Security.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Net.Security.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_DAA0229E5479EB35DC03AEDC6A4ADCAA"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Reflection, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_DAA0229E5479EB35DC03AEDC6A4ADCAA"
+                    {
+                    "Name" = "8:System.Reflection.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Reflection.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_DBE8242675FCA9C068044D5E4B34D026"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Net.Requests, Version=4.0.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_DBE8242675FCA9C068044D5E4B34D026"
+                    {
+                    "Name" = "8:System.Net.Requests.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Net.Requests.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_DCAB9386BB6F42A3CBCB8C82EB10E43F"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.ServiceModel.NetTcp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_DCAB9386BB6F42A3CBCB8C82EB10E43F"
+                    {
+                    "Name" = "8:System.ServiceModel.NetTcp.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.ServiceModel.NetTcp.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_DF0A9D7BC34B82A40530E9B8B8442714"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Security.Cryptography.Encoding, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_DF0A9D7BC34B82A40530E9B8B8442714"
+                    {
+                    "Name" = "8:System.Security.Cryptography.Encoding.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Security.Cryptography.Encoding.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_E054FE3BBD173BA3A4E6FE8E43BAA89D"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Globalization.Extensions, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_E054FE3BBD173BA3A4E6FE8E43BAA89D"
+                    {
+                    "Name" = "8:System.Globalization.Extensions.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Globalization.Extensions.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_E114AA36E3B06480D8B8638FC5C1A4EC"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Reflection.Emit.ILGeneration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_E114AA36E3B06480D8B8638FC5C1A4EC"
+                    {
+                    "Name" = "8:System.Reflection.Emit.ILGeneration.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Reflection.Emit.ILGeneration.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_E452310563C6811369D95391C46BD9A8"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.AppContext, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_E452310563C6811369D95391C46BD9A8"
+                    {
+                    "Name" = "8:System.AppContext.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.AppContext.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_E61D1C368C456652BA2FA21206CF5FAB"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Net.WebSockets.Client, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_E61D1C368C456652BA2FA21206CF5FAB"
+                    {
+                    "Name" = "8:System.Net.WebSockets.Client.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Net.WebSockets.Client.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_E6F1DD709DD671DCBE35CD514D4D4823"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Xml.ReaderWriter, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_E6F1DD709DD671DCBE35CD514D4D4823"
+                    {
+                    "Name" = "8:System.Xml.ReaderWriter.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Xml.ReaderWriter.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_E97E35434DD64CBC40B97E3DBE902A8D"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Runtime.InteropServices.RuntimeInformation, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_E97E35434DD64CBC40B97E3DBE902A8D"
+                    {
+                    "Name" = "8:System.Runtime.InteropServices.RuntimeInformation.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Runtime.InteropServices.RuntimeInformation.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_EE7B0F16315C7CC20E8A75A4AF6B2DE4"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:PhihongEv.Lib, Version=1.0.12.0, Culture=neutral, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_EE7B0F16315C7CC20E8A75A4AF6B2DE4"
+                    {
+                    "Name" = "8:PhihongEv.Lib.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:PhihongEv.Lib.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_EECC2C36430D3AE03224CB110BCDE007"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Linq.Expressions, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_EECC2C36430D3AE03224CB110BCDE007"
+                    {
+                    "Name" = "8:System.Linq.Expressions.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Linq.Expressions.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_EF8740181F7A96F8F588B56F16E1C572"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51"
+                "ScatterAssemblies"
+                {
+                    "_EF8740181F7A96F8F588B56F16E1C572"
+                    {
+                    "Name" = "8:netstandard.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:netstandard.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_EFB46CFC14D5D836DB33062C252254A5"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Threading.Tasks.Parallel, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_EFB46CFC14D5D836DB33062C252254A5"
+                    {
+                    "Name" = "8:System.Threading.Tasks.Parallel.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Threading.Tasks.Parallel.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F01193984429302BC166AE209C928F3F"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Threading.ThreadPool, Version=4.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_F01193984429302BC166AE209C928F3F"
+                    {
+                    "Name" = "8:System.Threading.ThreadPool.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Threading.ThreadPool.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F08EBB091DD37320D1C2E50E8832071F"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:MesAdaptor, Version=1.12.1.0, Culture=neutral, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_F08EBB091DD37320D1C2E50E8832071F"
+                    {
+                    "Name" = "8:MesAdaptor.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:MesAdaptor.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F1406589BBD0DB45F8D794C102189023"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Resources.Reader, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_F1406589BBD0DB45F8D794C102189023"
+                    {
+                    "Name" = "8:System.Resources.Reader.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Resources.Reader.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F19A3D8DD8F07C28849B3DB8343BF9B8"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Runtime.Serialization.Json, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_F19A3D8DD8F07C28849B3DB8343BF9B8"
+                    {
+                    "Name" = "8:System.Runtime.Serialization.Json.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Runtime.Serialization.Json.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F3F202B495C258C5067CCC936B08E090"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Diagnostics.Tools, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_F3F202B495C258C5067CCC936B08E090"
+                    {
+                    "Name" = "8:System.Diagnostics.Tools.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Diagnostics.Tools.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F4CE0A6293F4FE7E3541861CC513A097"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.IO.Pipes, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_F4CE0A6293F4FE7E3541861CC513A097"
+                    {
+                    "Name" = "8:System.IO.Pipes.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.IO.Pipes.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F772A14631AD85EDA7B5CE9790CF5CAA"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.Security.SecureString, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_F772A14631AD85EDA7B5CE9790CF5CAA"
+                    {
+                    "Name" = "8:System.Security.SecureString.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.Security.SecureString.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F97B90DDD8EB3E7FF744E750A6404559"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"
+                "ScatterAssemblies"
+                {
+                    "_F97B90DDD8EB3E7FF744E750A6404559"
+                    {
+                    "Name" = "8:Newtonsoft.Json.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:Newtonsoft.Json.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_FC54EA0B74F94E9BB6358BFC450FAB07"
+            {
+            "SourcePath" = "8:config.ini"
+            "TargetName" = "8:config.ini"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "IsolateTo" = "8:"
+            }
+            "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_FF164C64AF5B9869897E2A9C0236758B"
+            {
+            "AssemblyRegister" = "3:1"
+            "AssemblyIsInGAC" = "11:FALSE"
+            "AssemblyAsmDisplayName" = "8:System.ComponentModel.EventBasedAsync, Version=4.0.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
+                "ScatterAssemblies"
+                {
+                    "_FF164C64AF5B9869897E2A9C0236758B"
+                    {
+                    "Name" = "8:System.ComponentModel.EventBasedAsync.dll"
+                    "Attributes" = "3:512"
+                    }
+                }
+            "SourcePath" = "8:System.ComponentModel.EventBasedAsync.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+        }
+        "FileType"
+        {
+        }
+        "Folder"
+        {
+            "{1525181F-901A-416C-8A58-119130FE478E}:_5D843E07890C4EEA8A900CE8C1AA8C33"
+            {
+            "Name" = "8:#1916"
+            "AlwaysCreate" = "11:FALSE"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Property" = "8:DesktopFolder"
+                "Folders"
+                {
+                }
+            }
+            "{1525181F-901A-416C-8A58-119130FE478E}:_DB6D2134535C495EB36F82997F6BD5FC"
+            {
+            "Name" = "8:#1919"
+            "AlwaysCreate" = "11:FALSE"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Property" = "8:ProgramMenuFolder"
+                "Folders"
+                {
+                }
+            }
+            "{3C67513D-01DD-4637-8A68-80971EB9504F}:_DE11C1EA8CD74CA9820344EFA2A02676"
+            {
+            "DefaultLocation" = "8:[ProgramFiles64Folder][Manufacturer]\\[ProductName]"
+            "Name" = "8:#1925"
+            "AlwaysCreate" = "11:FALSE"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Property" = "8:TARGETDIR"
+                "Folders"
+                {
+                    "{9EF0B969-E518-4E46-987F-47570745A589}:_8F566B14076B4C1D82C6453657F4DA04"
+                    {
+                    "Name" = "8:zh-CHS"
+                    "AlwaysCreate" = "11:FALSE"
+                    "Condition" = "8:"
+                    "Transitive" = "11:FALSE"
+                    "Property" = "8:_05AB4EB6BDE64AF38FCE5FECC53B7F1B"
+                        "Folders"
+                        {
+                        }
+                    }
+                    "{9EF0B969-E518-4E46-987F-47570745A589}:_A6A879D1C9544DE8B19D209DB640D876"
+                    {
+                    "Name" = "8:Firmware"
+                    "AlwaysCreate" = "11:TRUE"
+                    "Condition" = "8:"
+                    "Transitive" = "11:FALSE"
+                    "Property" = "8:_A7A39A06DBC846059B6F427CBE277A1A"
+                        "Folders"
+                        {
+                        }
+                    }
+                }
+            }
+        }
+        "LaunchCondition"
+        {
+        }
+        "Locator"
+        {
+        }
+        "MsiBootstrapper"
+        {
+        "LangId" = "3:2052"
+        "RequiresElevation" = "11:FALSE"
+        }
+        "Product"
+        {
+        "Name" = "8:Microsoft Visual Studio"
+        "ProductName" = "8:DCInitializer"
+        "ProductCode" = "8:{57BF893C-BD30-40C3-8C04-55FFFC6E3FFE}"
+        "PackageCode" = "8:{CFDC621A-FA84-4434-8FC5-E8658E026EF0}"
+        "UpgradeCode" = "8:{926B8A82-19A1-436D-A0E4-216EF638690B}"
+        "AspNetVersion" = "8:4.0.30319.0"
+        "RestartWWWService" = "11:FALSE"
+        "RemovePreviousVersions" = "11:TRUE"
+        "DetectNewerInstalledVersion" = "11:TRUE"
+        "InstallAllUsers" = "11:FALSE"
+        "ProductVersion" = "8:1.0.0"
+        "Manufacturer" = "8:Zerova"
+        "ARPHELPTELEPHONE" = "8:"
+        "ARPHELPLINK" = "8:"
+        "Title" = "8:DCInitializer"
+        "Subject" = "8:"
+        "ARPCONTACT" = "8:Zerova"
+        "Keywords" = "8:"
+        "ARPCOMMENTS" = "8:"
+        "ARPURLINFOABOUT" = "8:"
+        "ARPPRODUCTICON" = "8:"
+        "ARPIconIndex" = "3:0"
+        "SearchPath" = "8:"
+        "UseSystemSearchPath" = "11:TRUE"
+        "TargetPlatform" = "3:1"
+        "PreBuildEvent" = "8:"
+        "PostBuildEvent" = "8:"
+        "RunPostBuildEvent" = "3:0"
+        }
+        "Registry"
+        {
+            "HKLM"
+            {
+                "Keys"
+                {
+                    "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_17B89C226D6C4EB5A6FF1ED7FDD0E25F"
+                    {
+                    "Name" = "8:Software"
+                    "Condition" = "8:"
+                    "AlwaysCreate" = "11:FALSE"
+                    "DeleteAtUninstall" = "11:FALSE"
+                    "Transitive" = "11:FALSE"
+                        "Keys"
+                        {
+                            "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_0A0DC6423FE34C32A1CD864F2CB1B5A0"
+                            {
+                            "Name" = "8:[Manufacturer]"
+                            "Condition" = "8:"
+                            "AlwaysCreate" = "11:FALSE"
+                            "DeleteAtUninstall" = "11:FALSE"
+                            "Transitive" = "11:FALSE"
+                                "Keys"
+                                {
+                                }
+                                "Values"
+                                {
+                                }
+                            }
+                        }
+                        "Values"
+                        {
+                        }
+                    }
+                }
+            }
+            "HKCU"
+            {
+                "Keys"
+                {
+                    "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_CFCFC0DBDD6748B3A3544EEAF668F0CD"
+                    {
+                    "Name" = "8:Software"
+                    "Condition" = "8:"
+                    "AlwaysCreate" = "11:FALSE"
+                    "DeleteAtUninstall" = "11:FALSE"
+                    "Transitive" = "11:FALSE"
+                        "Keys"
+                        {
+                            "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_CAF5704912144E62A27E7A8701449E91"
+                            {
+                            "Name" = "8:[Manufacturer]"
+                            "Condition" = "8:"
+                            "AlwaysCreate" = "11:FALSE"
+                            "DeleteAtUninstall" = "11:FALSE"
+                            "Transitive" = "11:FALSE"
+                                "Keys"
+                                {
+                                }
+                                "Values"
+                                {
+                                }
+                            }
+                        }
+                        "Values"
+                        {
+                        }
+                    }
+                }
+            }
+            "HKCR"
+            {
+                "Keys"
+                {
+                }
+            }
+            "HKU"
+            {
+                "Keys"
+                {
+                }
+            }
+            "HKPU"
+            {
+                "Keys"
+                {
+                }
+            }
+        }
+        "Sequences"
+        {
+        }
+        "Shortcut"
+        {
+            "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_77F6EE70129C4A81B328437720E5939D"
+            {
+            "Name" = "8:Initilizer"
+            "Arguments" = "8:"
+            "Description" = "8:"
+            "ShowCmd" = "3:1"
+            "IconIndex" = "3:0"
+            "Transitive" = "11:FALSE"
+            "Target" = "8:_BECED55ADAD74CAB913C0C956FAA41C7"
+            "Folder" = "8:_5D843E07890C4EEA8A900CE8C1AA8C33"
+            "WorkingFolder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Icon" = "8:"
+            "Feature" = "8:"
+            }
+        }
+        "UserInterface"
+        {
+            "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_06B6D267F4E94BE5B425D30AB4731E67"
+            {
+            "UseDynamicProperties" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "SourcePath" = "8:<VsdDialogDir>\\VsdUserInterface.wim"
+            }
+            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_11C821D245024749A30BCA5D0F3EFE2A"
+            {
+            "Name" = "8:#1900"
+            "Sequence" = "3:2"
+            "Attributes" = "3:1"
+                "Dialogs"
+                {
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_382FAC5B9172407CB8C32A56B66A9257"
+                    {
+                    "Sequence" = "3:200"
+                    "DisplayName" = "8:安裝資料夾"
+                    "UseDynamicProperties" = "11:TRUE"
+                    "IsDependency" = "11:FALSE"
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminFolderDlg.wid"
+                        "Properties"
+                        {
+                            "BannerBitmap"
+                            {
+                            "Name" = "8:BannerBitmap"
+                            "DisplayName" = "8:#1001"
+                            "Description" = "8:#1101"
+                            "Type" = "3:8"
+                            "ContextData" = "8:Bitmap"
+                            "Attributes" = "3:4"
+                            "Setting" = "3:1"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                        }
+                    }
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_8FDA95A71D3C48EEAD1B0075AF17E068"
+                    {
+                    "Sequence" = "3:100"
+                    "DisplayName" = "8:歡迎"
+                    "UseDynamicProperties" = "11:TRUE"
+                    "IsDependency" = "11:FALSE"
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminWelcomeDlg.wid"
+                        "Properties"
+                        {
+                            "BannerBitmap"
+                            {
+                            "Name" = "8:BannerBitmap"
+                            "DisplayName" = "8:#1001"
+                            "Description" = "8:#1101"
+                            "Type" = "3:8"
+                            "ContextData" = "8:Bitmap"
+                            "Attributes" = "3:4"
+                            "Setting" = "3:1"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                            "CopyrightWarning"
+                            {
+                            "Name" = "8:CopyrightWarning"
+                            "DisplayName" = "8:#1002"
+                            "Description" = "8:#1102"
+                            "Type" = "3:3"
+                            "ContextData" = "8:"
+                            "Attributes" = "3:0"
+                            "Setting" = "3:1"
+                            "Value" = "8:#1202"
+                            "DefaultValue" = "8:#1202"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                            "Welcome"
+                            {
+                            "Name" = "8:Welcome"
+                            "DisplayName" = "8:#1003"
+                            "Description" = "8:#1103"
+                            "Type" = "3:3"
+                            "ContextData" = "8:"
+                            "Attributes" = "3:0"
+                            "Setting" = "3:1"
+                            "Value" = "8:#1203"
+                            "DefaultValue" = "8:#1203"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                        }
+                    }
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_EB7B70C73D8A467999FC732E05E00E46"
+                    {
+                    "Sequence" = "3:300"
+                    "DisplayName" = "8:確認安裝"
+                    "UseDynamicProperties" = "11:TRUE"
+                    "IsDependency" = "11:FALSE"
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminConfirmDlg.wid"
+                        "Properties"
+                        {
+                            "BannerBitmap"
+                            {
+                            "Name" = "8:BannerBitmap"
+                            "DisplayName" = "8:#1001"
+                            "Description" = "8:#1101"
+                            "Type" = "3:8"
+                            "ContextData" = "8:Bitmap"
+                            "Attributes" = "3:4"
+                            "Setting" = "3:1"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                        }
+                    }
+                }
+            }
+            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_197810A4CE9A4933BE1D260892BC9EB1"
+            {
+            "Name" = "8:#1902"
+            "Sequence" = "3:1"
+            "Attributes" = "3:3"
+                "Dialogs"
+                {
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_B4E6D2822F744BB283A55F8080139BB3"
+                    {
+                    "Sequence" = "3:100"
+                    "DisplayName" = "8:已經完成"
+                    "UseDynamicProperties" = "11:TRUE"
+                    "IsDependency" = "11:FALSE"
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdFinishedDlg.wid"
+                        "Properties"
+                        {
+                            "BannerBitmap"
+                            {
+                            "Name" = "8:BannerBitmap"
+                            "DisplayName" = "8:#1001"
+                            "Description" = "8:#1101"
+                            "Type" = "3:8"
+                            "ContextData" = "8:Bitmap"
+                            "Attributes" = "3:4"
+                            "Setting" = "3:1"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                            "UpdateText"
+                            {
+                            "Name" = "8:UpdateText"
+                            "DisplayName" = "8:#1058"
+                            "Description" = "8:#1158"
+                            "Type" = "3:15"
+                            "ContextData" = "8:"
+                            "Attributes" = "3:0"
+                            "Setting" = "3:1"
+                            "Value" = "8:#1258"
+                            "DefaultValue" = "8:#1258"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                        }
+                    }
+                }
+            }
+            "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_58B0B576C36C4F93BCC853F919FAFB00"
+            {
+            "UseDynamicProperties" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "SourcePath" = "8:<VsdDialogDir>\\VsdBasicDialogs.wim"
+            }
+            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_6D2887B2FB1E44A98409BB0855469F6E"
+            {
+            "Name" = "8:#1900"
+            "Sequence" = "3:1"
+            "Attributes" = "3:1"
+                "Dialogs"
+                {
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_6114B5A02ACD4C91B4E0B00C00E5CB02"
+                    {
+                    "Sequence" = "3:210"
+                    "DisplayName" = "8:安裝資料夾"
+                    "UseDynamicProperties" = "11:TRUE"
+                    "IsDependency" = "11:FALSE"
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdFolderDlg.wid"
+                        "Properties"
+                        {
+                            "BannerBitmap"
+                            {
+                            "Name" = "8:BannerBitmap"
+                            "DisplayName" = "8:#1001"
+                            "Description" = "8:#1101"
+                            "Type" = "3:8"
+                            "ContextData" = "8:Bitmap"
+                            "Attributes" = "3:4"
+                            "Setting" = "3:1"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                            "InstallAllUsersVisible"
+                            {
+                            "Name" = "8:InstallAllUsersVisible"
+                            "DisplayName" = "8:#1059"
+                            "Description" = "8:#1159"
+                            "Type" = "3:5"
+                            "ContextData" = "8:1;True=1;False=0"
+                            "Attributes" = "3:0"
+                            "Setting" = "3:0"
+                            "Value" = "3:1"
+                            "DefaultValue" = "3:1"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                        }
+                    }
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_F9B783E6180B435EB0E312FCE0CBD325"
+                    {
+                    "Sequence" = "3:300"
+                    "DisplayName" = "8:確認安裝"
+                    "UseDynamicProperties" = "11:TRUE"
+                    "IsDependency" = "11:FALSE"
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdConfirmDlg.wid"
+                        "Properties"
+                        {
+                            "BannerBitmap"
+                            {
+                            "Name" = "8:BannerBitmap"
+                            "DisplayName" = "8:#1001"
+                            "Description" = "8:#1101"
+                            "Type" = "3:8"
+                            "ContextData" = "8:Bitmap"
+                            "Attributes" = "3:4"
+                            "Setting" = "3:1"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                        }
+                    }
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_FC12A22254AB4D858289B87A3D8D8C16"
+                    {
+                    "Sequence" = "3:200"
+                    "DisplayName" = "8:歡迎"
+                    "UseDynamicProperties" = "11:TRUE"
+                    "IsDependency" = "11:FALSE"
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdWelcomeDlg.wid"
+                        "Properties"
+                        {
+                            "BannerBitmap"
+                            {
+                            "Name" = "8:BannerBitmap"
+                            "DisplayName" = "8:#1001"
+                            "Description" = "8:#1101"
+                            "Type" = "3:8"
+                            "ContextData" = "8:Bitmap"
+                            "Attributes" = "3:4"
+                            "Setting" = "3:1"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                            "CopyrightWarning"
+                            {
+                            "Name" = "8:CopyrightWarning"
+                            "DisplayName" = "8:#1002"
+                            "Description" = "8:#1102"
+                            "Type" = "3:3"
+                            "ContextData" = "8:"
+                            "Attributes" = "3:0"
+                            "Setting" = "3:1"
+                            "Value" = "8:#1202"
+                            "DefaultValue" = "8:#1202"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                            "Welcome"
+                            {
+                            "Name" = "8:Welcome"
+                            "DisplayName" = "8:#1003"
+                            "Description" = "8:#1103"
+                            "Type" = "3:3"
+                            "ContextData" = "8:"
+                            "Attributes" = "3:0"
+                            "Setting" = "3:1"
+                            "Value" = "8:#1203"
+                            "DefaultValue" = "8:#1203"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                        }
+                    }
+                }
+            }
+            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_9D40FD712F6347DEAAAACBE1518231AE"
+            {
+            "Name" = "8:#1901"
+            "Sequence" = "3:2"
+            "Attributes" = "3:2"
+                "Dialogs"
+                {
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_2A2E22C10C584BEF9C06EA4D0FA97D01"
+                    {
+                    "Sequence" = "3:100"
+                    "DisplayName" = "8:進度"
+                    "UseDynamicProperties" = "11:TRUE"
+                    "IsDependency" = "11:FALSE"
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminProgressDlg.wid"
+                        "Properties"
+                        {
+                            "BannerBitmap"
+                            {
+                            "Name" = "8:BannerBitmap"
+                            "DisplayName" = "8:#1001"
+                            "Description" = "8:#1101"
+                            "Type" = "3:8"
+                            "ContextData" = "8:Bitmap"
+                            "Attributes" = "3:4"
+                            "Setting" = "3:1"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                            "ShowProgress"
+                            {
+                            "Name" = "8:ShowProgress"
+                            "DisplayName" = "8:#1009"
+                            "Description" = "8:#1109"
+                            "Type" = "3:5"
+                            "ContextData" = "8:1;True=1;False=0"
+                            "Attributes" = "3:0"
+                            "Setting" = "3:0"
+                            "Value" = "3:1"
+                            "DefaultValue" = "3:1"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                        }
+                    }
+                }
+            }
+            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_A2A033ED28E649819E0194D4FF1FDE82"
+            {
+            "Name" = "8:#1902"
+            "Sequence" = "3:2"
+            "Attributes" = "3:3"
+                "Dialogs"
+                {
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_56B01EEFD27A43B494E43ECB4D911FC9"
+                    {
+                    "Sequence" = "3:100"
+                    "DisplayName" = "8:已經完成"
+                    "UseDynamicProperties" = "11:TRUE"
+                    "IsDependency" = "11:FALSE"
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdAdminFinishedDlg.wid"
+                        "Properties"
+                        {
+                            "BannerBitmap"
+                            {
+                            "Name" = "8:BannerBitmap"
+                            "DisplayName" = "8:#1001"
+                            "Description" = "8:#1101"
+                            "Type" = "3:8"
+                            "ContextData" = "8:Bitmap"
+                            "Attributes" = "3:4"
+                            "Setting" = "3:1"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                        }
+                    }
+                }
+            }
+            "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_A9002406B7E245889212FA2336B41A3B"
+            {
+            "Name" = "8:#1901"
+            "Sequence" = "3:1"
+            "Attributes" = "3:2"
+                "Dialogs"
+                {
+                    "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_3EC5FDC9ACBF4FF58132B7390516C1DA"
+                    {
+                    "Sequence" = "3:100"
+                    "DisplayName" = "8:進度"
+                    "UseDynamicProperties" = "11:TRUE"
+                    "IsDependency" = "11:FALSE"
+                    "SourcePath" = "8:<VsdDialogDir>\\VsdProgressDlg.wid"
+                        "Properties"
+                        {
+                            "BannerBitmap"
+                            {
+                            "Name" = "8:BannerBitmap"
+                            "DisplayName" = "8:#1001"
+                            "Description" = "8:#1101"
+                            "Type" = "3:8"
+                            "ContextData" = "8:Bitmap"
+                            "Attributes" = "3:4"
+                            "Setting" = "3:1"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                            "ShowProgress"
+                            {
+                            "Name" = "8:ShowProgress"
+                            "DisplayName" = "8:#1009"
+                            "Description" = "8:#1109"
+                            "Type" = "3:5"
+                            "ContextData" = "8:1;True=1;False=0"
+                            "Attributes" = "3:0"
+                            "Setting" = "3:0"
+                            "Value" = "3:1"
+                            "DefaultValue" = "3:1"
+                            "UsePlugInResources" = "11:TRUE"
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        "MergeModule"
+        {
+        }
+        "ProjectOutput"
+        {
+            "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_BECED55ADAD74CAB913C0C956FAA41C7"
+            {
+            "SourcePath" = "8:..\\AwInitilizer\\obj\\Debug\\AwInitilizer.exe"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "IsolateTo" = "8:"
+            "ProjectOutputGroupRegister" = "3:1"
+            "OutputConfiguration" = "8:"
+            "OutputGroupCanonicalName" = "8:Built"
+            "OutputProjectGuid" = "8:{7A23D514-38E1-423E-9238-464B0E2AFCC0}"
+            "ShowKeyOutput" = "11:TRUE"
+                "ExcludeFilters"
+                {
+                }
+            }
+            "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_BEE2CDDBF00749518BE26EBCA8FC58A7"
+            {
+            "SourcePath" = "8:..\\ConfigEditor\\obj\\Debug\\ConfigEditor.exe"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_DE11C1EA8CD74CA9820344EFA2A02676"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "IsolateTo" = "8:"
+            "ProjectOutputGroupRegister" = "3:1"
+            "OutputConfiguration" = "8:"
+            "OutputGroupCanonicalName" = "8:Built"
+            "OutputProjectGuid" = "8:{DC9E5E67-78A0-43E3-9FD6-BA72E1AC6EF7}"
+            "ShowKeyOutput" = "11:TRUE"
+                "ExcludeFilters"
+                {
+                }
+            }
+        }
+    }
+}

+ 6 - 0
ConfigEditor/App.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
+    </startup>
+</configuration>

+ 9 - 0
ConfigEditor/App.xaml

@@ -0,0 +1,9 @@
+<Application x:Class="ConfigEditor.App"
+             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+             xmlns:local="clr-namespace:ConfigEditor"
+             StartupUri="MainWindow.xaml">
+    <Application.Resources>
+         
+    </Application.Resources>
+</Application>

+ 17 - 0
ConfigEditor/App.xaml.cs

@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Data;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows;
+
+namespace ConfigEditor
+{
+    /// <summary>
+    /// App.xaml 的互動邏輯
+    /// </summary>
+    public partial class App : Application
+    {
+    }
+}

+ 212 - 0
ConfigEditor/ConfigEditor.csproj

@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" 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>{DC9E5E67-78A0-43E3-9FD6-BA72E1AC6EF7}</ProjectGuid>
+    <OutputType>WinExe</OutputType>
+    <RootNamespace>ConfigEditor</RootNamespace>
+    <AssemblyName>ConfigEditor</AssemblyName>
+    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <WarningLevel>4</WarningLevel>
+    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+    <Deterministic>true</Deterministic>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup>
+    <ApplicationManifest>app.manifest</ApplicationManifest>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Microsoft.WindowsAPICodePack.Core, Version=8.0.4.0, Culture=neutral, PublicKeyToken=8afb38e9204fc0a9, processorArchitecture=MSIL">
+      <HintPath>..\packages\WindowsAPICodePack.8.0.4\lib\net48\Microsoft.WindowsAPICodePack.Core.dll</HintPath>
+    </Reference>
+    <Reference Include="Microsoft.WindowsAPICodePack.ExtendedLinguisticServices, Version=8.0.4.0, Culture=neutral, PublicKeyToken=8afb38e9204fc0a9, processorArchitecture=MSIL">
+      <HintPath>..\packages\WindowsAPICodePack.8.0.4\lib\net48\Microsoft.WindowsAPICodePack.ExtendedLinguisticServices.dll</HintPath>
+    </Reference>
+    <Reference Include="Microsoft.WindowsAPICodePack.Sensors, Version=8.0.4.0, Culture=neutral, PublicKeyToken=8afb38e9204fc0a9, processorArchitecture=MSIL">
+      <HintPath>..\packages\WindowsAPICodePack.8.0.4\lib\net48\Microsoft.WindowsAPICodePack.Sensors.dll</HintPath>
+    </Reference>
+    <Reference Include="Microsoft.WindowsAPICodePack.Shell, Version=8.0.4.0, Culture=neutral, PublicKeyToken=8afb38e9204fc0a9, processorArchitecture=MSIL">
+      <HintPath>..\packages\WindowsAPICodePack.8.0.4\lib\net48\Microsoft.WindowsAPICodePack.Shell.dll</HintPath>
+    </Reference>
+    <Reference Include="Microsoft.WindowsAPICodePack.ShellExtensions, Version=8.0.4.0, Culture=neutral, PublicKeyToken=8afb38e9204fc0a9, processorArchitecture=MSIL">
+      <HintPath>..\packages\WindowsAPICodePack.8.0.4\lib\net48\Microsoft.WindowsAPICodePack.ShellExtensions.dll</HintPath>
+    </Reference>
+    <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
+      <HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
+    </Reference>
+    <Reference Include="PhihongEv.Lib, Version=1.0.16.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\PhihongEv.Lib.1.0.16\lib\net40\PhihongEv.Lib.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.ComponentModel.Composition" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Net.Http, Version=4.1.1.3, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Security.Cryptography.Algorithms, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
+      <HintPath>..\packages\WindowsAPICodePack.8.0.4\lib\net48\System.Windows.Forms.dll</HintPath>
+    </Reference>
+    <Reference Include="System.Xml" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="System.Xaml">
+      <RequiredTargetFramework>4.0</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="WindowsBase" />
+    <Reference Include="PresentationCore" />
+    <Reference Include="PresentationFramework" />
+    <Reference Include="WindowsFormsIntegration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\WindowsAPICodePack.8.0.4\lib\net48\WindowsFormsIntegration.dll</HintPath>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <ApplicationDefinition Include="App.xaml">
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+    </ApplicationDefinition>
+    <Page Include="SubPage\AppConfig\AppConfigPanel.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="SubPage\EvseConfig\EvseConfigPanel.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="SubPage\EvseConfig\FirmwareVersionPanel.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="SubPage\EvseConfig\FirmwareVersionPaneltem.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="MainWindow.xaml">
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+    </Page>
+    <Compile Include="App.xaml.cs">
+      <DependentUpon>App.xaml</DependentUpon>
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Converter\IsModelSelectdConverter.cs" />
+    <Compile Include="SubPage\AppConfig\AppConfigPanel.xaml.cs">
+      <DependentUpon>AppConfigPanel.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="SubPage\EvseConfig\EvseConfigPanel.xaml.cs">
+      <DependentUpon>EvseConfigPanel.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="SubPage\EvseConfig\FirmwareVersionPanel.xaml.cs">
+      <DependentUpon>FirmwareVersionPanel.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="SubPage\EvseConfig\FirmwareVersionPaneltem.xaml.cs">
+      <DependentUpon>FirmwareVersionPaneltem.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="MainWindow.xaml.cs">
+      <DependentUpon>MainWindow.xaml</DependentUpon>
+      <SubType>Code</SubType>
+    </Compile>
+    <Page Include="NewModelNameDlg.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="NewModelNameDlg.xaml.cs">
+      <DependentUpon>NewModelNameDlg.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="Properties\AssemblyInfo.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+    <Compile Include="Properties\Settings.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Settings.settings</DependentUpon>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+    </Compile>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+    <None Include="app.manifest" />
+    <None Include="packages.config" />
+    <None Include="Properties\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+    </None>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\InitializerModel\InitializerModel.csproj">
+      <Project>{68a79486-7973-42bf-8caf-43296beb1107}</Project>
+      <Name>InitializerModel</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\MesAdaptor\MesAdaptor.csproj">
+      <Project>{6b69cf23-270b-429b-a21d-ad98c2dff678}</Project>
+      <Name>MesAdaptor</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup />
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>

+ 28 - 0
ConfigEditor/Converter/IsModelSelectdConverter.cs

@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Data;
+
+namespace ConfigEditor.Converter
+{
+    public class IsModelSelectdConverter : IValueConverter
+    {
+        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            if (targetType == typeof(Visibility))
+            {
+                return string.IsNullOrEmpty(value?.ToString()) ? Visibility.Collapsed : Visibility.Visible;
+            }
+            return Visibility.Visible;
+        }
+
+        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            throw new NotImplementedException();
+        }
+    }
+}

+ 34 - 0
ConfigEditor/MainWindow.xaml

@@ -0,0 +1,34 @@
+<Window
+    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:appconfig="clr-namespace:ConfigEditor.SubPage.AppConfig"
+    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+    xmlns:evseconfig="clr-namespace:ConfigEditor.SubPage.EvseConfig"
+    xmlns:local="clr-namespace:ConfigEditor"
+    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    Title="ConfigEditor"
+    Width="1100"
+    Height="450"
+    mc:Ignorable="d"
+    x:Class="ConfigEditor.MainWindow">
+    <Window.Resources>
+        <Style TargetType="TextBox">
+            <Setter Property="VerticalContentAlignment" Value="Center" />
+        </Style>
+        <Style TargetType="Label">
+            <Setter Property="VerticalContentAlignment" Value="Center" />
+        </Style>
+    </Window.Resources>
+    <TabControl x:Name="uxMainTabControl">
+        <TabItem Header="EvseConfig">
+            <ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Visible">
+                <evseconfig:EvseConfigPanel x:Name="uxEvseConfigPanel" />
+            </ScrollViewer>
+        </TabItem>
+        <TabItem Header="AppConfig">
+            <ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Visible">
+                <appconfig:AppConfigPanel x:Name="uxAppConfigPanel" />
+            </ScrollViewer>
+        </TabItem>
+    </TabControl>
+</Window>

+ 52 - 0
ConfigEditor/MainWindow.xaml.cs

@@ -0,0 +1,52 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace ConfigEditor
+{
+    /// <summary>
+    /// MainWindow.xaml 的互動邏輯
+    /// </summary>
+    public partial class MainWindow : Window
+    {
+        public static MainWindow Instance { get; private set; }
+
+        public MainWindow()
+        {
+            Instance = this;
+
+            InitializeComponent();
+            uxMainTabControl.SelectionChanged += TabControl_SelectionChanged;
+        }
+
+        private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
+        {
+            if (! (sender is TabControl) ||
+                ! (e.AddedItems.Count > 0 && e.AddedItems[0] is TabItem))
+            {
+                return;
+            }
+            
+            var tabControl = sender as TabControl;
+            if (tabControl.SelectedIndex == 0)
+            {
+                uxEvseConfigPanel.Reset();
+            }
+            if (tabControl.SelectedIndex == 1)
+            {
+                uxAppConfigPanel.Reset();
+            }
+        }
+    }
+}

+ 35 - 0
ConfigEditor/NewModelNameDlg.xaml

@@ -0,0 +1,35 @@
+<Window
+    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+    xmlns:local="clr-namespace:ConfigEditor"
+    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    Title="NewModelNameDlg"
+    Width="200"
+    Height="150"
+    WindowStartupLocation="CenterOwner"
+    WindowStyle="ToolWindow"
+    mc:Ignorable="d"
+    x:Class="ConfigEditor.NewModelNameDlg">
+    <Grid>
+        <Grid.RowDefinitions>
+            <RowDefinition />
+            <RowDefinition />
+            <RowDefinition />
+        </Grid.RowDefinitions>
+        <Label HorizontalAlignment="Center">Enter New Model Name</Label>
+        <TextBox
+            x:Name="uxModelName"
+            Grid.Row="1"
+            Margin="10"
+            VerticalAlignment="Center"
+            TextAlignment="Center" />
+        <Button
+            Grid.Row="2"
+            Width="50"
+            VerticalAlignment="Center"
+            Click="OK_Click">
+            <Label>OK</Label>
+        </Button>
+    </Grid>
+</Window>

+ 53 - 0
ConfigEditor/NewModelNameDlg.xaml.cs

@@ -0,0 +1,53 @@
+using InitializerModel;
+using PhihongEv.Lib;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+
+namespace ConfigEditor
+{
+    /// <summary>
+    /// NewModelNameDlg.xaml 的互動邏輯
+    /// </summary>
+    public partial class NewModelNameDlg : Window
+    {
+        public NewModelNameDlg()
+        {
+            InitializeComponent();
+        }
+
+        public string ModelName => uxModelName.Text;
+
+        private void OK_Click(object sender, RoutedEventArgs e)
+        {
+            var enterdModelName = uxModelName.Text;
+
+            if (!SystemID.TryLooseParse(enterdModelName, out _))
+            {
+                MessageBox.Show("model name error");
+                return;
+            }
+
+            var folderPath = EvseSettingConfig.GetModelFolder(enterdModelName);
+            if (Directory.Exists(folderPath))
+            {
+                MessageBox.Show("model folder exist");
+                return;
+            }
+
+            DialogResult = true;
+            this.Close();
+        }
+    }
+}

+ 56 - 0
ConfigEditor/Properties/AssemblyInfo.cs

@@ -0,0 +1,56 @@
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// 組件的一般資訊是由下列的屬性集控制。
+// 變更這些屬性的值即可修改組件的相關
+// 資訊。
+[assembly: AssemblyTitle("ConfigEditor")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ConfigEditor")]
+[assembly: AssemblyCopyright("Copyright ©  2024")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 將 ComVisible 設為 false 可對 COM 元件隱藏
+// 組件中的類型。若必須從 COM 存取此組件中的類型,
+// 的類型,請在該類型上將 ComVisible 屬性設定為 true。
+[assembly: ComVisible(false)]
+
+//若要開始建置可當地語系化的應用程式,請在
+//.csproj 檔案中的 <UICulture>CultureYouAreCodingWith</UICulture>
+//在 <PropertyGroup> 中。例如,如果原始程式檔使用美式英文, 
+//請將 <UICulture> 設為 en-US。然後取消註解下列
+//NeutralResourceLanguage 屬性。在下一行中更新 "en-US",
+//以符合專案檔中的 UICulture 設定。
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly: ThemeInfo(
+    ResourceDictionaryLocation.None, //主題特定資源字典的位置
+                                     //(在頁面中找不到時使用,
+                                     // 或應用程式資源字典中找不到資源時)
+    ResourceDictionaryLocation.SourceAssembly //泛型資源字典的位置
+                                              //(在頁面中找不到時使用,
+                                              // 或是應用程式或任何主題特定資源字典中找不到資源時)
+)]
+
+
+// 組件的版本資訊由下列四個值所組成:
+//
+//      主要版本
+//      次要版本
+//      組建編號
+//      修訂
+//
+// 您可以指定所有的值,也可以使用 '*' 將組建和修訂編號
+// 設為預設,如下所示:
+// [assembly: AssemblyVersion("1.13.0.0")]
+[assembly: AssemblyVersion("1.13.0.0")]
+[assembly: AssemblyFileVersion("1.13.0.0")]
+[assembly: AssemblyInformationalVersion("0942119")]

+ 71 - 0
ConfigEditor/Properties/Resources.Designer.cs

@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     這段程式碼是由工具產生的。
+//     執行階段版本:4.0.30319.42000
+//
+//     變更這個檔案可能會導致不正確的行為,而且如果已重新產生
+//     程式碼,則會遺失變更。
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace ConfigEditor.Properties
+{
+
+
+    /// <summary>
+    ///   用於查詢當地語系化字串等的強類型資源類別
+    /// </summary>
+    // 這個類別是自動產生的,是利用 StronglyTypedResourceBuilder
+    // 類別透過 ResGen 或 Visual Studio 這類工具產生。
+    // 若要加入或移除成員,請編輯您的 .ResX 檔,然後重新執行 ResGen
+    // (利用 /str 選項),或重建您的 VS 專案。
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.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>
+        ///   傳回這個類別使用的快取的 ResourceManager 執行個體。
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager
+        {
+            get
+            {
+                if ((resourceMan == null))
+                {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ConfigEditor.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+
+        /// <summary>
+        ///   覆寫目前執行緒的 CurrentUICulture 屬性,對象是所有
+        ///   使用這個強類型資源類別的資源查閱。
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture
+        {
+            get
+            {
+                return resourceCulture;
+            }
+            set
+            {
+                resourceCulture = value;
+            }
+        }
+    }
+}

+ 117 - 0
ConfigEditor/Properties/Resources.resx

@@ -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>

+ 30 - 0
ConfigEditor/Properties/Settings.Designer.cs

@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+// <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 ConfigEditor.Properties
+{
+
+
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+    {
+
+        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+        public static Settings Default
+        {
+            get
+            {
+                return defaultInstance;
+            }
+        }
+    }
+}

+ 7 - 0
ConfigEditor/Properties/Settings.settings

@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
+  <Profiles>
+    <Profile Name="(Default)" />
+  </Profiles>
+  <Settings />
+</SettingsFile>

+ 66 - 0
ConfigEditor/SubPage/AppConfig/AppConfigPanel.xaml

@@ -0,0 +1,66 @@
+<UserControl
+    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:appmodel="clr-namespace:InitializerModel;assembly=InitializerModel"
+    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+    xmlns:local="clr-namespace:ConfigEditor.SubPage.AppConfig"
+    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    d:DataContext="{d:DesignInstance Type=appmodel:AppSettingConfigModel}"
+    d:DesignHeight="450"
+    d:DesignWidth="800"
+    mc:Ignorable="d"
+    x:Class="ConfigEditor.SubPage.AppConfig.AppConfigPanel">
+    <StackPanel Orientation="Vertical">
+        <Rectangle Width="10" />
+        <Button
+            x:Name="uxSaveConfigBtn"
+            Margin="10"
+            HorizontalAlignment="Left"
+            Click="uxSaveConfigBtn_Click">
+            <Label>Save Config</Label>
+        </Button>
+        <Rectangle Height="10" />
+        <StackPanel Orientation="Horizontal">
+            <Label Width="185">FirmwareRoot</Label>
+            <TextBox
+                Width="500"
+                Text="{Binding FirmwareRoot}"
+                IsReadOnly="True"
+                PreviewMouseUp="FirmwareFolder_PreviewMouseUp" />
+        </StackPanel>
+        <Rectangle Height="10" />
+        <StackPanel Orientation="Horizontal">
+            <Label Width="185">Language</Label>
+            <ComboBox
+                x:Name="uxLanguage"
+                Width="150"
+                SelectedItem="{Binding Language}" />
+        </StackPanel>
+        <Rectangle Height="10" />
+        <StackPanel Orientation="Horizontal">
+            <Label Width="185">MES</Label>
+            <ComboBox
+                x:Name="uxMes"
+                Width="150"
+                SelectedItem="{Binding MES}" />
+        </StackPanel>
+        <Rectangle Height="10" />
+        <StackPanel Orientation="Horizontal">
+            <Label Width="185">MechineCode</Label>
+            <TextBox Width="150" Text="{Binding MechineCode}" />
+        </StackPanel>
+        <Rectangle Height="10" />
+        <StackPanel Orientation="Horizontal">
+            <Label Width="185">IsDisableAuthRequired</Label>
+            <CheckBox
+                Width="150"
+                VerticalAlignment="Center"
+                IsChecked="{Binding IsDisableAuthRequired}" />
+        </StackPanel>
+        <Rectangle Height="10" />
+        <StackPanel Orientation="Horizontal">
+            <Label Width="185">JohnSenLedComPort</Label>
+            <TextBox Width="150" Text="{Binding JohnSenLedComPort}" />
+        </StackPanel>
+    </StackPanel>
+</UserControl>

+ 69 - 0
ConfigEditor/SubPage/AppConfig/AppConfigPanel.xaml.cs

@@ -0,0 +1,69 @@
+using InitializerModel;
+using Microsoft.WindowsAPICodePack.Dialogs;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace ConfigEditor.SubPage.AppConfig
+{
+    /// <summary>
+    /// AppConfigPanel.xaml 的互動邏輯
+    /// </summary>
+    public partial class AppConfigPanel : UserControl
+    {
+        public AppConfigPanel()
+        {
+            InitializeComponent();
+
+            uxLanguage.ItemsSource = AppSettingConfigModel.DefinedLanguages;
+            uxMes.ItemsSource = MesAdaptor.SajetConnect.DefinedMes;
+        }
+
+        public void Reset()
+        {
+            AppSettingConfig.Reload();
+
+            ViewModel = AppSettingConfig.Instance;
+
+            this.DataContext = ViewModel;
+        }
+
+        private AppSettingConfigModel ViewModel { get; set; }
+
+        private void uxSaveConfigBtn_Click(object sender, RoutedEventArgs e)
+        {
+            AppSettingConfig.Save();
+        }
+
+        private void FirmwareFolder_PreviewMouseUp(object sender, MouseButtonEventArgs e)
+        {
+            var dlg = new CommonOpenFileDialog();
+            dlg.InitialDirectory = Directory.GetCurrentDirectory();
+            dlg.IsFolderPicker = true;
+            //var dlg = new FolderBrowserDialog();
+            var result = dlg.ShowDialog();
+
+            if (result != CommonFileDialogResult.Ok)
+            {
+                return;
+            }
+
+            ViewModel.FirmwareRoot = dlg.FileName;
+
+            this.DataContext = null;
+            this.DataContext = ViewModel;
+        }
+    }
+}

+ 190 - 0
ConfigEditor/SubPage/EvseConfig/EvseConfigPanel.xaml

@@ -0,0 +1,190 @@
+<UserControl
+    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:converter="clr-namespace:ConfigEditor.Converter"
+    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+    xmlns:evmodel="clr-namespace:InitializerModel;assembly=InitializerModel"
+    xmlns:local="clr-namespace:ConfigEditor.SubPage.EvseConfig"
+    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    d:DataContext="{d:DesignInstance Type=evmodel:EvseSettingConfigModel}"
+    d:DesignHeight="450"
+    d:DesignWidth="800"
+    mc:Ignorable="d"
+    x:Class="ConfigEditor.SubPage.EvseConfig.EvseConfigPanel">
+    <UserControl.Resources>
+        <converter:IsModelSelectdConverter x:Key="IsModelSelectdConverter" />
+    </UserControl.Resources>
+    <StackPanel Orientation="Vertical">
+        <Rectangle Height="10" />
+        <StackPanel Orientation="Horizontal">
+            <Label>Model Name</Label>
+            <Rectangle Width="10" />
+            <ComboBox x:Name="uxEvseModelNameList" Width="150">
+                <ComboBox.ItemTemplate>
+                    <DataTemplate>
+                        <Label Content="{Binding .}" />
+                    </DataTemplate>
+                </ComboBox.ItemTemplate>
+            </ComboBox>
+            <Rectangle Width="10" />
+            <Button x:Name="uxSaveConfigBtn" Click="uxSaveConfigBtn_Click">
+                <Label>Save Config</Label>
+            </Button>
+            <Rectangle Width="10" />
+            <Button x:Name="uxNewConfigBtn" Click="uxNewConfigBtn_Click">
+                <Label>New Model Name</Label>
+            </Button>
+        </StackPanel>
+        <StackPanel Visibility="{Binding ModelName, Converter={StaticResource IsModelSelectdConverter}}">
+            <Rectangle Height="10" />
+            <StackPanel Orientation="Horizontal">
+                <Label Width="185">IP Address</Label>
+                <TextBox Width="150" Text="{Binding IpAddress, Mode=TwoWay}" />
+            </StackPanel>
+            <Rectangle Height="10" />
+            <StackPanel Orientation="Horizontal">
+                <Label Width="185">Button Test</Label>
+                <ComboBox
+                    x:Name="uxButtonTestMode"
+                    Width="150"
+                    SelectedItem="{Binding ButtonTestMode}" />
+            </StackPanel>
+            <Rectangle Height="10" />
+            <GroupBox
+                x:Name="uxFirstTelcom"
+                Header="1st 3G/4G"
+                Visibility="Collapsed">
+                <Grid>
+                    <Grid.ColumnDefinitions>
+                        <ColumnDefinition Width="180" />
+                        <ColumnDefinition Width="Auto" />
+                    </Grid.ColumnDefinitions>
+                    <Grid.RowDefinitions>
+                        <RowDefinition />
+                        <RowDefinition Height="10" />
+                        <RowDefinition />
+                        <RowDefinition Height="10" />
+                        <RowDefinition />
+                        <RowDefinition Height="10" />
+                        <RowDefinition />
+                    </Grid.RowDefinitions>
+
+                    <Label Grid.Row="0" Grid.Column="0">ModuleVersion</Label>
+                    <TextBox
+                        Grid.Row="0"
+                        Grid.Column="1"
+                        Width="150"
+                        Text="{Binding FourGenModuleVersion, Mode=TwoWay}" />
+
+                    <Label Grid.Row="2" Grid.Column="0">IsSimInsert</Label>
+                    <CheckBox
+                        Grid.Row="2"
+                        Grid.Column="1"
+                        VerticalAlignment="Center"
+                        IsChecked="{Binding IsSimInsert, Mode=TwoWay}" />
+
+                    <Label Grid.Row="4" Grid.Column="0">SIM IMSI</Label>
+                    <TextBox
+                        Grid.Row="4"
+                        Grid.Column="1"
+                        Width="150"
+                        Text="{Binding SimIMSI, Mode=TwoWay}" />
+
+                    <Label Grid.Row="6" Grid.Column="0">SIM ICCID</Label>
+                    <TextBox
+                        Grid.Row="6"
+                        Grid.Column="1"
+                        Width="150"
+                        Text="{Binding SimICCID, Mode=TwoWay}" />
+                </Grid>
+            </GroupBox>
+            <Rectangle Height="10" />
+            <GroupBox
+                x:Name="uxSecondTelcom"
+                Header="2nd 3G/4G"
+                Visibility="Collapsed">
+                <Grid>
+                    <Grid.ColumnDefinitions>
+                        <ColumnDefinition Width="180" />
+                        <ColumnDefinition Width="Auto" />
+                    </Grid.ColumnDefinitions>
+                    <Grid.RowDefinitions>
+                        <RowDefinition />
+                        <RowDefinition Height="10" />
+                        <RowDefinition />
+                        <RowDefinition Height="10" />
+                        <RowDefinition />
+                        <RowDefinition Height="10" />
+                        <RowDefinition />
+                    </Grid.RowDefinitions>
+
+                    <Label Grid.Row="0" Grid.Column="0">ModuleVersion</Label>
+                    <TextBox
+                        x:Name="uxFirstFourGenModuleVersion"
+                        Grid.Row="0"
+                        Grid.Column="1"
+                        Width="150"
+                        Text="{Binding SubFourGenModuleVersion, Mode=TwoWay}" />
+
+                    <Label Grid.Row="2" Grid.Column="0">IsSimInsert</Label>
+                    <CheckBox
+                        Grid.Row="2"
+                        Grid.Column="1"
+                        VerticalAlignment="Center"
+                        IsChecked="{Binding IsSubSimInsert, Mode=TwoWay}" />
+
+                    <Label Grid.Row="4" Grid.Column="0">SIM IMSI</Label>
+                    <TextBox
+                        Grid.Row="4"
+                        Grid.Column="1"
+                        Width="150"
+                        Text="{Binding SubSimIMSI, Mode=TwoWay}" />
+
+                    <Label Grid.Row="6" Grid.Column="0">SIM ICCID</Label>
+                    <TextBox
+                        Grid.Row="6"
+                        Grid.Column="1"
+                        Width="150"
+                        Text="{Binding SubSimICCID, Mode=TwoWay}" />
+                </Grid>
+            </GroupBox>
+            <StackPanel x:Name="uxFrimwareStackPanel" Orientation="Vertical">
+                <Rectangle Height="10" />
+                <GroupBox Header="Version Information">
+                    <StackPanel Orientation="Vertical">
+                        <Grid Margin="0,5,0,5" HorizontalAlignment="Left">
+                            <Grid.ColumnDefinitions>
+                                <ColumnDefinition Width="150" />
+                                <ColumnDefinition Width="10" />
+                                <ColumnDefinition Width="150" />
+                                <ColumnDefinition Width="10" />
+                                <ColumnDefinition Width="150" />
+                                <ColumnDefinition Width="10" />
+                                <ColumnDefinition Width="80" />
+                            </Grid.ColumnDefinitions>
+                            <ComboBox Grid.Column="0" />
+                            <TextBox Grid.Column="2" />
+                            <TextBox Grid.Column="4" />
+                            <Button Grid.Column="6">
+                                <Label>Delete</Label>
+                            </Button>
+                        </Grid>
+                    </StackPanel>
+                </GroupBox>
+                <Rectangle Height="10" />
+                <GroupBox Header="Version Information Dispenser 1" />
+                <Rectangle Height="10" />
+                <GroupBox Header="Version Information Dispenser 2" />
+            </StackPanel>
+            <Rectangle Height="10" />
+            <Button
+                Width="100"
+                Height="40"
+                HorizontalAlignment="Left"
+                Click="AddDispenser_Click">
+                <Label VerticalAlignment="Center">Add Dispenser</Label>
+            </Button>
+            <Rectangle Height="20" />
+        </StackPanel>
+    </StackPanel>
+</UserControl>

+ 318 - 0
ConfigEditor/SubPage/EvseConfig/EvseConfigPanel.xaml.cs

@@ -0,0 +1,318 @@
+using InitializerModel;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Converters;
+using PhihongEv.Lib;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace ConfigEditor.SubPage.EvseConfig
+{
+    /// <summary>
+    /// EvseConfigPanel.xaml 的互動邏輯
+    /// </summary>
+    public partial class EvseConfigPanel : UserControl
+    {
+        public EvseConfigPanel()
+        {
+            InitializeComponent();
+
+            uxEvseModelNameList.SelectionChanged += UxEvseModelNameList_SelectionChanged;
+        }
+
+        internal void Reset()
+        {
+            var modelList = EvseSettingConfig.GetModelList();
+            uxEvseModelNameList.SelectedIndex = -1;
+            uxEvseModelNameList.ItemsSource = modelList;
+
+            uxButtonTestMode.ItemsSource = Enum.GetValues(typeof(ButtonTestModeType)).Cast<ButtonTestModeType>();
+
+            uxFrimwareStackPanel.Children.Clear();
+
+            this.DataContext = new EvseSettingConfigModel();
+        }
+
+        private void UxEvseModelNameList_SelectionChanged(object sender, SelectionChangedEventArgs e)
+        {
+            ReloadEvseConfig();
+        }
+
+        private void uxSaveConfigBtn_Click(object sender, RoutedEventArgs e)
+        {
+            if (!CheckSetting())
+            {
+                return;
+            }
+            SaveCurrent();
+        }
+
+        private void uxNewConfigBtn_Click(object sender, RoutedEventArgs e)
+        {
+            CreateNewConfig();
+        }
+
+        private void ReloadEvseConfig()
+        {
+            var modelName = uxEvseModelNameList.SelectedItem as string;
+            if (string.IsNullOrEmpty(modelName))
+            {
+                //this.DataContext = new EvseSettingConfigModel();
+                Reset();
+                return;
+            }
+
+            var loadResult = EvseSettingConfig.TryLoad(modelName);
+
+            EvseSettingConfigModel config = null;
+
+            if (loadResult != null && loadResult.Error == EvseSettingConfigLoadError.LoadConfigModelInitNotfound)
+            {
+                config = new EvseSettingConfigModel() {
+                    ModelName = modelName
+                };
+            }
+
+            if (loadResult != null && loadResult.Error == EvseSettingConfigLoadError.None)
+            {
+                config = loadResult.Result;
+            }
+
+            if (config is null)
+            {
+                MessageBox.Show($"load failed:{loadResult.Error}");
+                return;
+            }
+
+            //EvseSettingConfigModel config = loadResult.Result;
+            //string folderPath = loadResult.ConfigFolderPath;
+            string folderPath = EvseSettingConfig.GetModelFolder(modelName);
+            SystemID.TryLooseParse(modelName, out var systemID);
+
+            this.DataContext = config;
+
+            uxFirstTelcom.Visibility = systemID.ModelName.Network.SupportTelecom ? Visibility.Visible : Visibility.Collapsed;
+            uxSecondTelcom.Visibility = systemID.ModelName.Network.SupportSubTelecom ? Visibility.Visible : Visibility.Collapsed;
+
+            var groupedFrimware = config.FirmwareUpdateList is null ? new List<IGrouping<int, FirmwareUpdateModel>>() : config.FirmwareUpdateList.GroupBy(x => EvseVersion.GetVersionIndex(x.Module));
+            groupedFrimware = groupedFrimware.OrderBy(x => x.Key);
+            uxFrimwareStackPanel.Children.Clear();
+
+            foreach (var firmwareGroup in groupedFrimware)
+            {
+                FirmwareVersionPanel firmwarePanel = CreateFirmwarePanel(folderPath, firmwareGroup.Key, firmwareGroup.ToList());
+
+                uxFrimwareStackPanel.Children.Add(new Rectangle() { Height = 10 });
+                uxFrimwareStackPanel.Children.Add(firmwarePanel);
+            }
+
+            if (!groupedFrimware.Select(x => x.Key).Contains(0))
+            {
+                FirmwareVersionPanel firmwarePanel = CreateFirmwarePanel(folderPath, 0, new List<FirmwareUpdateModel>());
+                uxFrimwareStackPanel.Children.Add(new Rectangle() { Height = 10 });
+                uxFrimwareStackPanel.Children.Add(firmwarePanel);
+            }
+        }
+
+        private void ClearUi()
+        {
+            //uxIpAddress.Text = string.Empty;
+            uxFirstTelcom.Visibility = Visibility.Collapsed;
+            uxSecondTelcom.Visibility = Visibility.Collapsed;
+        }
+
+        private FirmwareVersionPanel CreateFirmwarePanel(string folderPath, int key, List<FirmwareUpdateModel> firmwareUpdateModels)
+        {
+            var toReturn = new FirmwareVersionPanel();
+            toReturn.Index = key;
+            toReturn.FileFolderPath = folderPath;
+            toReturn.VersionPairs = firmwareUpdateModels;
+            //{ Index = key , VersionPairs = firmwareUpdateModels, FileFolderPath = folderPath };
+            return toReturn;
+        }
+
+        private bool CheckSetting()
+        {
+            var modelName = uxEvseModelNameList.SelectedItem as string;
+            EvseSettingConfigModel config = this.DataContext as EvseSettingConfigModel;
+
+            if (string.IsNullOrEmpty(modelName) ||
+                config == null)
+            {
+                MessageBox.Show("load model failed");
+                return false;
+            }
+
+            if (config.IsSimInsert)
+            {
+                if (string.IsNullOrEmpty(config.SimICCID) ||
+                    string.IsNullOrEmpty(config.SimIMSI))
+                {
+                    MessageBox.Show("ICCID and IMSI should not be empty");
+                    return false;
+                }
+            }
+
+            if (config.IsSubSimInsert)
+            {
+                if (string.IsNullOrEmpty(config.SubSimICCID) ||
+                    string.IsNullOrEmpty(config.SubSimIMSI))
+                {
+                    MessageBox.Show("Sub ICCID and IMSI should not be empty");
+                    return false;
+                }
+            }
+            return true;
+        }
+
+        private void SaveCurrent()
+        {
+            var modelName = uxEvseModelNameList.SelectedItem as string;
+
+            EvseSettingConfigModel config = this.DataContext as EvseSettingConfigModel;
+
+            var firmwareUpdateList = LoadFirmwareUpdateListFromPanel();
+            CopyAndRenameFirmwareUpdateList(config.ModelName, firmwareUpdateList);
+            config.FirmwareUpdateList = firmwareUpdateList;
+
+            //var test = JsonConvert.SerializeObject(config);
+            File.WriteAllText(
+                EvseSettingConfig.GetModelIniPath(config.ModelName),
+                JsonConvert.SerializeObject(
+                    config,
+                    Formatting.Indented,
+                    new StringEnumConverter()
+                    ));
+
+            Reset();
+        }
+
+        private List<FirmwareUpdateModel> LoadFirmwareUpdateListFromPanel()
+        {
+            var toReturn = new List<FirmwareUpdateModel>();
+
+            foreach (var uiPanel in uxFrimwareStackPanel.Children)
+            {
+                FirmwareVersionPanel firmwareVersionPanel = uiPanel as FirmwareVersionPanel;
+                if (firmwareVersionPanel is null)
+                {
+                    continue;
+                }
+                toReturn.AddRange(firmwareVersionPanel.VersionPairs);
+            }
+
+            return toReturn;
+        }
+
+        private void CopyAndRenameFirmwareUpdateList(string modelName, List<FirmwareUpdateModel> firmwareUpdateList)
+        {
+            if (firmwareUpdateList == null)
+            {
+                return;
+            }
+            var modelPath = EvseSettingConfig.GetModelFolder(modelName);
+
+            foreach (var model in firmwareUpdateList)
+            {
+                if (string.IsNullOrEmpty(model.FirmwareFileName))
+                {
+                    continue;
+                }
+
+                var firmwarePath = System.IO.Path.GetDirectoryName(model.FirmwareFileName);
+                var firmwareName = System.IO.Path.GetFileName(model.FirmwareFileName);
+
+                if (firmwarePath != modelPath)
+                {
+                    //Copy
+                    var copyToPathFileName = System.IO.Path.Combine(modelPath, firmwareName);
+                    if (File.Exists(copyToPathFileName))
+                    {
+                        File.Delete(copyToPathFileName);
+                    }
+                    File.Copy(model.FirmwareFileName, copyToPathFileName);
+                }
+
+                model.FirmwareFileName = firmwareName;
+            }
+        }
+
+        private void CreateNewConfig()
+        {
+            var dlg = new NewModelNameDlg();
+            dlg.Owner = MainWindow.Instance;
+            dlg.ShowDialog();
+
+            if (dlg.DialogResult != true)
+            {
+                return;
+            }
+
+            var modelName = dlg.ModelName;
+            var modelFolderPath = EvseSettingConfig.GetModelFolder(modelName);
+            var modelIniPath = EvseSettingConfig.GetModelIniPath(modelName);
+
+            if (!Directory.Exists(modelFolderPath))
+            {
+                Directory.CreateDirectory(modelFolderPath);
+            }
+
+            var initModelSetting = new EvseSettingConfigModel() { ModelName = modelName };
+            File.WriteAllText(
+                modelIniPath,
+                JsonConvert.SerializeObject(
+                    initModelSetting,
+                    Formatting.Indented,
+                    new StringEnumConverter()
+                    ));
+
+            Reset();
+        }
+
+        private void AddDispenser_Click(object sender, RoutedEventArgs e)
+        {
+            List<int> createdFrimwareIndex = new List<int>();
+            foreach (var uiElement in uxFrimwareStackPanel.Children)
+            {
+                FirmwareVersionPanel firmwarePanel = uiElement as FirmwareVersionPanel;
+                if (firmwarePanel is null)
+                {
+                    continue;
+                }
+
+                createdFrimwareIndex.Add(firmwarePanel.Index);
+
+                //FirmwareVersionPanel firmwarePanel = CreateFirmwarePanel(folderPath, firmwareGroup.Key, firmwareGroup.ToList());
+
+                //uxFrimwareStackPanel.Children.Add(new Rectangle() { Height = 10 });
+                //uxFrimwareStackPanel.Children.Add(firmwarePanel);
+            }
+
+            int toCreateIndex = 0;
+            while (createdFrimwareIndex.Contains(toCreateIndex))
+            {
+                toCreateIndex++;
+            }
+
+            var modelName = uxEvseModelNameList.SelectedItem as string;
+            var folderPath = EvseSettingConfig.GetModelFolder(modelName);
+
+            FirmwareVersionPanel createdFirmwarePanel = CreateFirmwarePanel(folderPath, toCreateIndex, new List<FirmwareUpdateModel>());
+            uxFrimwareStackPanel.Children.Add(new Rectangle() { Height = 10 });
+            uxFrimwareStackPanel.Children.Add(createdFirmwarePanel);
+        }
+    }
+}

+ 39 - 0
ConfigEditor/SubPage/EvseConfig/FirmwareVersionPanel.xaml

@@ -0,0 +1,39 @@
+<UserControl
+    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+    xmlns:local="clr-namespace:ConfigEditor.SubPage.EvseConfig"
+    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    d:DesignHeight="450"
+    d:DesignWidth="800"
+    mc:Ignorable="d"
+    x:Class="ConfigEditor.SubPage.EvseConfig.FirmwareVersionPanel">
+    <GroupBox x:Name="uxTitleGb" Header="Version Information">
+        <StackPanel x:Name="uxMainStackPanel" Orientation="Vertical">
+            <Grid>
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition Width="150" />
+                    <ColumnDefinition Width="10" />
+                    <ColumnDefinition Width="150" />
+                    <ColumnDefinition Width="10" />
+                    <ColumnDefinition Width="100" />
+                    <ColumnDefinition Width="10" />
+                    <ColumnDefinition Width="500" />
+                    <ColumnDefinition Width="10" />
+                    <ColumnDefinition Width="80" />
+                </Grid.ColumnDefinitions>
+                <Label Grid.Column="0" HorizontalAlignment="Center">web name</Label>
+                <Label Grid.Column="2" HorizontalAlignment="Center">api name</Label>
+                <Label Grid.Column="4" HorizontalAlignment="Center">version</Label>
+                <Label Grid.Column="6" HorizontalAlignment="Center">file</Label>
+            </Grid>
+            <StackPanel x:Name="uxFrimwareItemStackPanel" Orientation="Vertical" />
+            <Button
+                Width="70"
+                HorizontalAlignment="Left"
+                Click="NewFrimware_Click">
+                <Label>New</Label>
+            </Button>
+        </StackPanel>
+    </GroupBox>
+</UserControl>

+ 124 - 0
ConfigEditor/SubPage/EvseConfig/FirmwareVersionPanel.xaml.cs

@@ -0,0 +1,124 @@
+using InitializerModel;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace ConfigEditor.SubPage.EvseConfig
+{
+    /// <summary>
+    /// FirmwareVersionPanel.xaml 的互動邏輯
+    /// </summary>
+    public partial class FirmwareVersionPanel : UserControl
+    {
+        public FirmwareVersionPanel()
+        {
+            InitializeComponent();
+
+            SetTitleByIndex(0);
+        }
+
+        private int _Index = 0;
+        public int Index
+        {
+            get => _Index;
+            set => SetTitleByIndex(value);
+        }
+
+        public List<FirmwareUpdateModel> VersionPairs
+        {
+            get => GetVersionPairs();
+            set => SetVersionPairs(value);
+        }
+
+        public string FileFolderPath { get; internal set; }
+
+        private void NewFrimware_Click(object sender, RoutedEventArgs e)
+        {
+            UIElement toInsert = CreateFrimwareItem();
+            uxFrimwareItemStackPanel.Children.Add(toInsert);
+        }
+
+        private void FrimwareItem_OnDeleteClicked(object sender, EventArgs e)
+        {
+            uxFrimwareItemStackPanel.Children.Remove(sender as UIElement);
+        }
+
+        private void SetTitleByIndex(int index)
+        {
+            _Index = index;
+
+            string title = "Version Information";
+
+            if (index > 0)
+            {
+                title = $"Version Information Dispenser {index}";
+            }
+            uxTitleGb.Header = title;
+        }
+
+        private void SetVersionPairs(List<FirmwareUpdateModel> firmwareList)
+        {
+            if (firmwareList is null)
+            {
+                return;
+            }
+            uxFrimwareItemStackPanel.Children.Clear();
+            foreach (var firmware in firmwareList)
+            {
+                UIElement toInsert = CreateFrimwareItem(firmware);
+                uxFrimwareItemStackPanel.Children.Add(toInsert);
+            }
+            return;
+        }
+
+        private UIElement CreateFrimwareItem(FirmwareUpdateModel firmware)
+        {
+            var toReturn = new FirmwareVersionPaneltem(FileFolderPath, firmware, Index);
+            toReturn.OnDeleteClicked += FrimwareItem_OnDeleteClicked;
+            return toReturn;
+        }
+
+        private UIElement CreateFrimwareItem()
+        {
+            var toReturn = new FirmwareVersionPaneltem(FileFolderPath, Index);
+            toReturn.OnDeleteClicked += FrimwareItem_OnDeleteClicked;
+            return toReturn;
+        }
+
+        private List<FirmwareUpdateModel> GetVersionPairs()
+        {
+            var toReturn = new List<FirmwareUpdateModel>();
+
+            foreach (var uiElement in uxFrimwareItemStackPanel.Children)
+            {
+                FirmwareVersionPaneltem versionPaneltem = uiElement as FirmwareVersionPaneltem;
+                if (versionPaneltem is null)
+                {
+                    continue;
+                }
+
+                var model = versionPaneltem.GetModel();
+                if (model is null)
+                {
+                    continue;
+                }
+
+                toReturn.Add(model);
+            }
+
+            return toReturn;
+        }
+    }
+}

+ 52 - 0
ConfigEditor/SubPage/EvseConfig/FirmwareVersionPaneltem.xaml

@@ -0,0 +1,52 @@
+<UserControl
+    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+    xmlns:evmodel="clr-namespace:InitializerModel;assembly=InitializerModel"
+    xmlns:local="clr-namespace:ConfigEditor.SubPage.EvseConfig"
+    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    Height="30"
+    Margin="0,5,0,5"
+    d:DataContext="{d:DesignInstance Type=local:FirmwareVersionPaneltemViewModel}"
+    d:DesignHeight="450"
+    d:DesignWidth="1000"
+    mc:Ignorable="d"
+    x:Class="ConfigEditor.SubPage.EvseConfig.FirmwareVersionPaneltem">
+    <Grid>
+        <Grid.ColumnDefinitions>
+            <ColumnDefinition Width="150" />
+            <ColumnDefinition Width="10" />
+            <ColumnDefinition Width="150" />
+            <ColumnDefinition Width="10" />
+            <ColumnDefinition Width="100" />
+            <ColumnDefinition Width="10" />
+            <ColumnDefinition Width="500" />
+            <ColumnDefinition Width="10" />
+            <ColumnDefinition Width="80" />
+        </Grid.ColumnDefinitions>
+        <ComboBox
+            x:Name="uxPredefinedFrimware"
+            Grid.Column="0"
+            SelectionChanged="uxPredefinedFrimware_SelectionChanged">
+            <ComboBox.ItemTemplate>
+                <DataTemplate>
+                    <Label Content="{Binding .}" />
+                </DataTemplate>
+            </ComboBox.ItemTemplate>
+        </ComboBox>
+        <TextBox
+            x:Name="uxFrimwareKey"
+            Grid.Column="2"
+            Text="{Binding Module, Mode=TwoWay}"
+            TextChanged="uxFrimwareKey_TextChanged" />
+        <TextBox Grid.Column="4" Text="{Binding Version, Mode=TwoWay}" />
+        <TextBox
+            Grid.Column="6"
+            Text="{Binding DisplayFileName, Mode=TwoWay}"
+            IsReadOnly="True"
+            PreviewMouseUp="File_MouseUp" />
+        <Button Grid.Column="8" Click="Delete_Click">
+            <Label>Delete</Label>
+        </Button>
+    </Grid>
+</UserControl>

+ 226 - 0
ConfigEditor/SubPage/EvseConfig/FirmwareVersionPaneltem.xaml.cs

@@ -0,0 +1,226 @@
+using InitializerModel;
+using Microsoft.Win32;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace ConfigEditor.SubPage.EvseConfig
+{
+    public class FirmwareVersionPaneltemViewModel : FirmwareUpdateModel, INotifyPropertyChanged
+    {
+        public FirmwareVersionPaneltemViewModel(FirmwareUpdateModel from) {
+            this.Module = from.Module;
+            this.Version = from.Version;
+            this.FirmwareFileName = from.FirmwareFileName;
+            this.DisplayFileName = System.IO.Path.GetFileName(FirmwareFileName);
+        }
+
+        public string DisplayFileName { get; set; }
+
+        public event PropertyChangedEventHandler PropertyChanged;
+
+        internal FirmwareUpdateModel GetFirmwareUpdateModel()
+        {
+            return new FirmwareUpdateModel()
+            {
+                Module = this.Module,
+                Version = this.Version,
+                FirmwareFileName = this.FirmwareFileName,
+            };
+        }
+
+        public void TriggerPropertyChanged()
+        {
+            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Module)));
+            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Version)));
+            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(FirmwareFileName)));
+            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(DisplayFileName)));
+        }
+    }
+
+    /// <summary>
+    /// FirmwareVersionPaneltem.xaml 的互動邏輯
+    /// </summary>
+    public partial class FirmwareVersionPaneltem : UserControl
+    {
+        //private FirmwareUpdateModel firmware;
+        public FirmwareVersionPaneltem(string fileFolderPath, int evseIndex)
+        {
+            InitializeComponent();
+
+            var firmware = new FirmwareUpdateModel();
+            Init();
+
+            //this.firmware = firmware;
+            this.evseIndex = evseIndex;
+
+            //this.DataContext = firmware;
+            this.ViewModel = new FirmwareVersionPaneltemViewModel(firmware);
+            this.DataContext = this.ViewModel;
+        }
+
+
+        public FirmwareVersionPaneltem(string fileFolderPath, FirmwareUpdateModel firmware, int evseIndex)
+        {
+            InitializeComponent();
+
+            Init();
+
+            this.fileFolderPath = fileFolderPath;
+            //this.firmware = firmware;
+            this.evseIndex = evseIndex;
+
+            this.ViewModel = new FirmwareVersionPaneltemViewModel(firmware);
+            this.DataContext = ViewModel;
+        }
+
+        public FirmwareUpdateModel GetModel()
+        {
+            var toReturn = new FirmwareUpdateModel();
+            toReturn.Module = ViewModel?.Module;
+            toReturn.Version = ViewModel?.Version;
+            toReturn.FirmwareFileName = ViewModel?.FirmwareFileName;
+
+            if (string.IsNullOrEmpty(toReturn.Module) ||
+                string.IsNullOrEmpty(toReturn.Version))
+            {
+                return null;
+            }
+            return toReturn;
+        }
+
+        private void Init()
+        {
+            PredefinedVersions = PredefinedVersionPair.GetWebNames();
+            var selectionList = PredefinedVersions.Append(customizedString);
+
+            this.uxPredefinedFrimware.ItemsSource = selectionList;
+
+            //fileSourcePath = firmware.FirmwareFileName;
+            //firmware.DisplayFileName = System.IO.Path.GetFileName(firmware.FirmwareFileName);
+        }
+
+        public event EventHandler OnDeleteClicked;
+        public FirmwareUpdateModel FrimwareModel => ViewModel.GetFirmwareUpdateModel();
+
+        private string customizedString = "Customized";
+        private IEnumerable<string> PredefinedVersions;
+        private FirmwareVersionPaneltemViewModel ViewModel;
+
+        private readonly string fileFolderPath;
+        private readonly int evseIndex;
+
+        private void uxPredefinedFrimware_SelectionChanged(object sender, SelectionChangedEventArgs e)
+        {
+            var selectedItem = uxPredefinedFrimware.SelectedItem as string;
+            if (selectedItem == customizedString)
+            {
+                return;
+            }
+
+            if (PredefinedVersions.Contains(selectedItem))
+            {
+                var indexedApiVersion = EvseVersion.GetDDApiNameFromWebName(selectedItem, evseIndex);
+                ViewModel.Module = indexedApiVersion;
+                //uxFrimwareKey.Text = indexedApiVersion;
+
+                ViewModel.TriggerPropertyChanged();
+                //ReloadViewModel();
+            }
+            //uxFrimwareKey.Text = 
+        }
+
+        private void uxFrimwareKey_TextChanged(object sender, TextChangedEventArgs e)
+        {
+            var versionKey = uxFrimwareKey.Text;
+            var apiName = EvseVersion.GetApiNameFromDDApiName(versionKey);
+            var webName = PredefinedVersionPair.GetWebName(apiName);
+            if (PredefinedVersions.Contains(webName))
+            {
+                uxPredefinedFrimware.SelectedItem = webName;
+            }
+            else
+            {
+                uxPredefinedFrimware.SelectedItem = customizedString;
+            }
+        }
+
+        private void Delete_Click(object sender, RoutedEventArgs e)
+        {
+            OnDeleteClicked?.Invoke(this, null);
+        }
+
+        private void ReloadViewModel()
+        {
+            this.DataContext = null;
+            this.DataContext = ViewModel;
+        }
+
+        private void File_MouseUp(object sender, MouseButtonEventArgs e)
+        {
+            if (!(sender is TextBox textBox))
+            {
+                return;
+            }
+
+            var dlg = new OpenFileDialog();
+            try
+            {
+                dlg.InitialDirectory = fileFolderPath;
+                dlg.FileName = ViewModel.DisplayFileName;
+            }
+            catch
+            {
+
+            }
+            var dlgResult = dlg.ShowDialog();
+
+            if (dlgResult == true)
+            {
+                //TryUpdateFile(dlg.FileName);
+                ViewModel.FirmwareFileName = dlg.FileName;
+                ViewModel.DisplayFileName = System.IO.Path.GetFileName(dlg.FileName);
+
+                this.DataContext = null;
+                this.DataContext = ViewModel;
+            }
+        }
+
+        //private void TryUpdateFile(string fullFilePath)
+        //{
+        //    string folderPath = System.IO.Path.GetDirectoryName(fullFilePath);
+        //    string fileName = System.IO.Path.GetFileName(fullFilePath);
+        //    if (folderPath == fileFolderPath)
+        //    {
+        //        firmware.FirmwareFileName = fileName;
+        //        this.DataContext = null;
+        //        this.DataContext = firmware;
+        //        return;
+        //    }
+
+        //    var targetFilePath = System.IO.Path.Combine(fileFolderPath, fileName);
+        //    if (System.IO.File.Exists(targetFilePath))
+        //    {
+        //        MessageBox.Show("file existed");
+        //        return;
+        //    }
+        //    System.IO.File.Copy(fullFilePath, targetFilePath) ;
+
+        //    firmware.FirmwareFileName = fileName;
+        //    this.DataContext = null;
+        //    this.DataContext = firmware;
+        //}
+    }
+}

+ 79 - 0
ConfigEditor/app.manifest

@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?>
+<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
+  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
+  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
+    <security>
+      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
+        <!-- UAC 資訊清單選項
+             如果要變更 Windows 使用者帳戶控制層級,請將 
+             requestedExecutionLevel 節點以下列其中之一取代。
+
+        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
+        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
+        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
+
+            指定 requestedExecutionLevel 項目會停用檔案及登錄虛擬化。
+            如果您的應用程式需要針對回溯相容性進行這項虛擬化,請移除這個
+            項目。
+        -->
+        <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
+      </requestedPrivileges>
+    </security>
+  </trustInfo>
+
+  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
+    <application>
+      <!-- 此應用程式已通過測試,並設計要搭配使用的
+           應用程式版本清單。請取消註解適當元素,
+           Windows 就會自動選取最相容的環境。 -->
+
+      <!-- Windows Vista -->
+      <!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
+
+      <!-- Windows 7 -->
+      <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
+
+      <!-- Windows 8 -->
+      <!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
+
+      <!-- Windows 8.1 -->
+      <!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
+
+      <!-- Windows 10 -->
+      <!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
+
+    </application>
+  </compatibility>
+
+  <!-- 表示應用程式為 DPI 感知,Windows 不會在 DPI 變高時自動
+       縮放。Windows Presentation Foundation (WPF) 應用程式會自動感知 DPI,因此不需要
+       加入。以 .NET Framework 4.6 為目標的 Windows Form 應用程式若加入這項設定,也
+       應該在其 app.config 中將 'EnableWindowsFormsHighDpiAutoResizing' 設定為 'true'。
+       
+       將應用程式設定為感知長路徑。請參閱 https://docs.microsoft.com/windows/win32/fileio/maximum-file-path-limitation-->
+  <!--
+  <application xmlns="urn:schemas-microsoft-com:asm.v3">
+    <windowsSettings>
+      <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
+      <longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
+    </windowsSettings>
+  </application>
+  -->
+
+  <!-- 啟用 Windows 通用控制項和對話方塊的佈景主題 (Windows XP 以後版本) -->
+  <!--
+  <dependency>
+    <dependentAssembly>
+      <assemblyIdentity
+          type="win32"
+          name="Microsoft.Windows.Common-Controls"
+          version="6.0.0.0"
+          processorArchitecture="*"
+          publicKeyToken="6595b64144ccf1df"
+          language="*"
+        />
+    </dependentAssembly>
+  </dependency>
+  -->
+
+</assembly>

+ 14 - 0
ConfigEditor/packages.config

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="Microsoft.NETCore.Platforms" version="7.0.0" targetFramework="net48" />
+  <package id="Newtonsoft.Json" version="13.0.3" targetFramework="net48" />
+  <package id="PhihongEv.Lib" version="1.0.16" targetFramework="net48" />
+  <package id="System.IO" version="4.3.0" targetFramework="net48" />
+  <package id="System.Net.Http" version="4.3.4" targetFramework="net48" />
+  <package id="System.Runtime" version="4.3.0" targetFramework="net48" />
+  <package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net48" />
+  <package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net48" />
+  <package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net48" />
+  <package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net48" />
+  <package id="WindowsAPICodePack" version="8.0.4" targetFramework="net48" />
+</packages>

+ 6 - 0
Editor/App.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
+    </startup>
+</configuration>

+ 9 - 0
Editor/App.xaml

@@ -0,0 +1,9 @@
+<Application x:Class="Editor.App"
+             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+             xmlns:local="clr-namespace:Editor"
+             StartupUri="MainWindow.xaml">
+    <Application.Resources>
+         
+    </Application.Resources>
+</Application>

+ 17 - 0
Editor/App.xaml.cs

@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Data;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows;
+
+namespace Editor
+{
+    /// <summary>
+    /// App.xaml 的互動邏輯
+    /// </summary>
+    public partial class App : Application
+    {
+    }
+}

+ 97 - 0
Editor/Editor.csproj

@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" 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>{D3903838-AFA4-4590-89EC-DC7F55C7F519}</ProjectGuid>
+    <OutputType>WinExe</OutputType>
+    <RootNamespace>Editor</RootNamespace>
+    <AssemblyName>Editor</AssemblyName>
+    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <WarningLevel>4</WarningLevel>
+    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+    <Deterministic>true</Deterministic>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Xaml">
+      <RequiredTargetFramework>4.0</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="WindowsBase" />
+    <Reference Include="PresentationCore" />
+    <Reference Include="PresentationFramework" />
+  </ItemGroup>
+  <ItemGroup>
+    <ApplicationDefinition Include="App.xaml">
+      <Generator>MSBuild:Compile</Generator>
+    </ApplicationDefinition>
+    <Page Include="MainWindow.xaml">
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+    </Page>
+    <Compile Include="App.xaml.cs">
+      <DependentUpon>App.xaml</DependentUpon>
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="MainWindow.xaml.cs">
+      <DependentUpon>MainWindow.xaml</DependentUpon>
+      <SubType>Code</SubType>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Properties\AssemblyInfo.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+    <Compile Include="Properties\Settings.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Settings.settings</DependentUpon>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+    </Compile>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+    <None Include="Properties\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+    </None>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>

+ 12 - 0
Editor/MainWindow.xaml

@@ -0,0 +1,12 @@
+<Window x:Class="Editor.MainWindow"
+        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+        xmlns:local="clr-namespace:Editor"
+        mc:Ignorable="d"
+        Title="MainWindow" Height="450" Width="800">
+    <Grid>
+        
+    </Grid>
+</Window>

+ 28 - 0
Editor/MainWindow.xaml.cs

@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Editor
+{
+    /// <summary>
+    /// MainWindow.xaml 的互動邏輯
+    /// </summary>
+    public partial class MainWindow : Window
+    {
+        public MainWindow()
+        {
+            InitializeComponent();
+        }
+    }
+}

+ 56 - 0
Editor/Properties/AssemblyInfo.cs

@@ -0,0 +1,56 @@
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// 組件的一般資訊是由下列的屬性集控制。
+// 變更這些屬性的值即可修改組件的相關
+// 資訊。
+[assembly: AssemblyTitle("Editor")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Editor")]
+[assembly: AssemblyCopyright("Copyright ©  2024")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 將 ComVisible 設為 false 可對 COM 元件隱藏
+// 組件中的類型。若必須從 COM 存取此組件中的類型,
+// 的類型,請在該類型上將 ComVisible 屬性設定為 true。
+[assembly: ComVisible(false)]
+
+//若要開始建置可當地語系化的應用程式,請在
+//.csproj 檔案中的 <UICulture>CultureYouAreCodingWith</UICulture>
+//在 <PropertyGroup> 中。例如,如果原始程式檔使用美式英文, 
+//請將 <UICulture> 設為 en-US。然後取消註解下列
+//NeutralResourceLanguage 屬性。在下一行中更新 "en-US",
+//以符合專案檔中的 UICulture 設定。
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly: ThemeInfo(
+    ResourceDictionaryLocation.None, //主題特定資源字典的位置
+                                     //(在頁面中找不到時使用,
+                                     // 或應用程式資源字典中找不到資源時)
+    ResourceDictionaryLocation.SourceAssembly //泛型資源字典的位置
+                                              //(在頁面中找不到時使用,
+                                              // 或是應用程式或任何主題特定資源字典中找不到資源時)
+)]
+
+
+// 組件的版本資訊由下列四個值所組成:
+//
+//      主要版本
+//      次要版本
+//      組建編號
+//      修訂
+//
+// 您可以指定所有的值,也可以使用 '*' 將組建和修訂編號
+// 設為預設,如下所示:
+// [assembly: AssemblyVersion("1.13.0.0")]
+[assembly: AssemblyVersion("1.13.0.0")]
+[assembly: AssemblyFileVersion("1.13.0.0")]
+[assembly: AssemblyInformationalVersion("0942119")]

+ 71 - 0
Editor/Properties/Resources.Designer.cs

@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     這段程式碼是由工具產生的。
+//     執行階段版本:4.0.30319.42000
+//
+//     變更這個檔案可能會導致不正確的行為,而且如果已重新產生
+//     程式碼,則會遺失變更。
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Editor.Properties
+{
+
+
+    /// <summary>
+    ///   用於查詢當地語系化字串等的強類型資源類別
+    /// </summary>
+    // 這個類別是自動產生的,是利用 StronglyTypedResourceBuilder
+    // 類別透過 ResGen 或 Visual Studio 這類工具產生。
+    // 若要加入或移除成員,請編輯您的 .ResX 檔,然後重新執行 ResGen
+    // (利用 /str 選項),或重建您的 VS 專案。
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.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>
+        ///   傳回這個類別使用的快取的 ResourceManager 執行個體。
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager
+        {
+            get
+            {
+                if ((resourceMan == null))
+                {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Editor.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+
+        /// <summary>
+        ///   覆寫目前執行緒的 CurrentUICulture 屬性,對象是所有
+        ///   使用這個強類型資源類別的資源查閱。
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture
+        {
+            get
+            {
+                return resourceCulture;
+            }
+            set
+            {
+                resourceCulture = value;
+            }
+        }
+    }
+}

+ 117 - 0
Editor/Properties/Resources.resx

@@ -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>

+ 30 - 0
Editor/Properties/Settings.Designer.cs

@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+// <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 Editor.Properties
+{
+
+
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+    {
+
+        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+        public static Settings Default
+        {
+            get
+            {
+                return defaultInstance;
+            }
+        }
+    }
+}

+ 7 - 0
Editor/Properties/Settings.settings

@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
+  <Profiles>
+    <Profile Name="(Default)" />
+  </Profiles>
+  <Settings />
+</SettingsFile>

+ 1 - 1
GitVersion.yml

@@ -1,6 +1,6 @@
 assembly-versioning-scheme: MajorMinorPatch
 assembly-informational-format: '{ShortSha}'
-next-version: 1.12.1
+next-version: 1.13.1
 branches: {}
 ignore:
   sha: []

+ 134 - 0
InitializerModel/AppSettingConfig.cs

@@ -0,0 +1,134 @@
+using Newtonsoft.Json.Converters;
+using Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace InitializerModel
+{
+    public static class AppSettingConfig
+    {
+        private static AppSettingConfigModel _Instance;
+        public static AppSettingConfigModel Instance
+        {
+            get
+            {
+                if (_Instance == null)
+                {
+                    Reload();
+                }
+                return _Instance;
+            }
+            private set => _Instance = value;
+        }
+
+        //private string _FirmwareRoot, _Language, _MES, _MechineCode;
+        //private bool _IsDisableAuthRequired;
+        //private string _JohnSenLedComPort;
+        private static string settingFileName = "config.ini";
+
+        //public AppSettingConfig()
+        //{
+        //    if (!File.Exists(settingFileName))
+        //    {
+        //        LoadDefaultSetting();
+        //    }
+        //    else
+        //    {
+        //        LoadSettingFromDefaultFile();
+        //    }
+        //}
+
+        public static void Reload()
+        {
+            //Instance = new AppSettingConfig();
+
+            if (!File.Exists(settingFileName))
+            {
+                LoadDefaultSetting();
+            }
+            else
+            {
+                LoadSettingFromDefaultFile();
+            }
+        }
+
+        public static void Save()
+        {
+            //var toSave = new AppSettingConfigModel();
+            //toSave.FirmwareRoot = _FirmwareRoot;
+            //toSave.Language = _Language;
+            //toSave.MES = _MES;
+            //toSave.MechineCode = _MechineCode;
+            //toSave.IsDisableAuthRequired = _IsDisableAuthRequired;
+
+            File.WriteAllText(
+                settingFileName,
+                JsonConvert.SerializeObject(
+                    Instance,
+                    Formatting.Indented,
+                    new StringEnumConverter()
+                    ));
+        }
+
+        private static void LoadSettingFromDefaultFile()
+        {
+            try
+            {
+                LoadDefaultSetting();
+
+                var configStr = File.ReadAllText(settingFileName);
+                var config = Newtonsoft.Json.JsonConvert.DeserializeObject<AppSettingConfigModel>(configStr);
+
+                CompacityChnage(config);
+
+                _Instance = config;
+                //_Instance.FirmwareRoot = config.FirmwareRoot;
+                //_Language = config.Language;
+                //_MES = config.MES;
+                //_MechineCode = config.MechineCode;
+                //_IsDisableAuthRequired = config.IsDisableAuthRequired;
+                //_JohnSenLedComPort = config.JohnSenLedComPort;
+            }
+            catch
+            {
+
+            }
+        }
+
+        private static void LoadDefaultSetting()
+        {
+            _Instance = new AppSettingConfigModel()
+            {
+                FirmwareRoot = "./Firmware",
+                Language = "zh-chs",
+                MES = "sajet2",
+                MechineCode = "testMechineCode"
+            };
+        }
+
+        private static void CompacityChnage(AppSettingConfigModel config)
+        {
+            if (config == null)
+            {
+                return;
+            }
+
+            if (config.Language.ToLower() == "zh-chs")
+            {
+                config.Language = "zh-CHS";
+            }
+
+            if (config.Language.ToLower() == "en-us")
+            {
+                config.Language = "en-US";
+            }
+
+
+        }
+    }
+}

+ 9 - 3
AwInitilizer/Model/AppSettingConfig.cs → InitializerModel/AppSettingConfigModel.cs

@@ -1,13 +1,19 @@
-using System;
+using InitializerModel;
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 
-namespace AwInitilizer.Model
+namespace InitializerModel
 {
-    class AppSettingConfig
+    public class AppSettingConfigModel
     {
+        public static List<string> DefinedLanguages = new List<string>() {
+            "zh-CHS",
+            "en-US",
+        };
+
         public string FirmwareRoot { get; set; }
         public string Language { get; set; }
         public string MES { get; set; }

+ 286 - 0
InitializerModel/EvseSettingConfig.cs

@@ -0,0 +1,286 @@
+using Newtonsoft.Json;
+using PhihongEv.Lib;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace InitializerModel
+{
+    public enum EvseSettingConfigLoadError
+    {
+        None,
+        LoadConfigRootFolderNotfound,
+        LoadConfigFolderNotfound,
+        LoadConfigModelFolderNotfound,
+        LoadConfigModelInitNotfound,
+        LoadConfigModelInitFormatError,
+
+        InitModelNameEmpty,
+        InitModelNameError,
+        InitIccidEmpty,
+        InitImsiEmpty,
+        InitFirmwareNameEmpty,
+        InitFirmwareVersionEmpty,
+        InitFirmwareFileEmpty,
+        InitFirmwareFileMissing,
+        InitFirmwareFileHeaderFormat,
+    }
+
+    public class EvseSettingConfigLoadResult
+    {
+        public EvseSettingConfigLoadError Error { get; set; }
+        public EvseSettingConfigModel Result { get; set; }
+        public string ErrorFirmware { get; set; }
+        public string ConfigFolderPath { get; set; }
+    }
+
+    public static class EvseSettingConfig
+    {
+        public static List<string> GetModelList()
+        {
+            try
+            {
+                var defaultPath = AppSettingConfig.Instance.FirmwareRoot;
+                if (string.IsNullOrEmpty(defaultPath))
+                {
+                    defaultPath = ".\\";
+                }
+                var settingRootFolder = Path.GetFullPath(defaultPath);
+                var frimwareDirectorys = Directory.GetDirectories(settingRootFolder);
+                return frimwareDirectorys.Select(x => Path.GetFileName(x)).ToList();
+            }
+            catch
+            {
+
+            }
+            return new List<string>();
+        }
+
+        public static string GetModelFolder(string modelName)
+        {
+            var defaultPath = AppSettingConfig.Instance.FirmwareRoot;
+            if (string.IsNullOrEmpty(defaultPath))
+            {
+                defaultPath = ".\\";
+            }
+            var settingRootFolder = Path.GetFullPath(defaultPath);
+            string modelDirectoy = Path.Combine(settingRootFolder, modelName);
+            return modelDirectoy;
+        }
+
+        public static string GetModelIniPath(string modelName)
+        {
+            var modelDirectoy = GetModelFolder(modelName);
+            string modelSeettingFilePath = Path.Combine(modelDirectoy, modelName + ".ini");
+            return modelSeettingFilePath;
+        }
+
+        public static EvseSettingConfigLoadResult TryLoad(string modelName)
+        {
+            var toReturn = new EvseSettingConfigLoadResult();
+            string settingRootFolder;
+
+            try
+            {
+                var defaultPath = AppSettingConfig.Instance.FirmwareRoot;
+                if (string.IsNullOrEmpty(defaultPath))
+                {
+                    defaultPath = ".\\";
+                }
+                settingRootFolder = Path.GetFullPath(defaultPath);
+            }
+            catch
+            {
+                toReturn.Error = EvseSettingConfigLoadError.LoadConfigRootFolderNotfound;
+                return toReturn;
+            }
+
+            if (!Directory.Exists(settingRootFolder))
+            {
+                toReturn.Error = EvseSettingConfigLoadError.LoadConfigFolderNotfound;
+                return toReturn;
+            }
+
+            string modelDirectoy = Path.Combine(settingRootFolder, modelName);
+            if (!Directory.Exists(modelDirectoy))
+            {
+                toReturn.Error = EvseSettingConfigLoadError.LoadConfigModelFolderNotfound;
+                return toReturn;
+            }
+            toReturn.ConfigFolderPath = modelDirectoy;
+
+            string modelSeettingFilePath = Path.Combine(modelDirectoy, modelName + ".ini");
+            if (!File.Exists(modelSeettingFilePath))
+            {
+                toReturn.Error = EvseSettingConfigLoadError.LoadConfigModelInitNotfound;
+                return toReturn;
+            }
+
+            //check format
+            var settingString = File.ReadAllText(modelSeettingFilePath);
+            EvseSettingConfigModel setting;
+            try
+            {
+                setting = JsonConvert.DeserializeObject<EvseSettingConfigModel>(settingString);
+                CompatibilityDataUpdate(setting);
+            }
+            catch
+            {
+                toReturn.Error = EvseSettingConfigLoadError.LoadConfigModelInitFormatError;
+                return toReturn;
+            }
+
+            if (string.IsNullOrEmpty(setting.ModelName))
+            {
+                toReturn.Error = EvseSettingConfigLoadError.InitModelNameEmpty;
+                return toReturn;
+            }
+
+            if (!ModelName.TryLooseParse(setting.ModelName, out _))
+            {
+                toReturn.Error = EvseSettingConfigLoadError.InitModelNameError;
+                return toReturn;
+            }
+
+            if (setting.IsSimInsert)
+            {
+                if (string.IsNullOrEmpty(setting.SimICCID))
+                {
+                    toReturn.Error = EvseSettingConfigLoadError.InitIccidEmpty;
+                    return toReturn;
+                }
+
+                if (string.IsNullOrEmpty(setting.SimIMSI))
+                {
+                    toReturn.Error = EvseSettingConfigLoadError.InitImsiEmpty;
+                    return toReturn;
+                }
+            }
+
+            if (setting.IsSubSimInsert)
+            {
+                if (string.IsNullOrEmpty(setting.SubSimICCID))
+                {
+                    toReturn.Error = EvseSettingConfigLoadError.InitIccidEmpty;
+                    return toReturn;
+                }
+
+                if (string.IsNullOrEmpty(setting.SubSimIMSI))
+                {
+                    toReturn.Error = EvseSettingConfigLoadError.InitImsiEmpty;
+                    return toReturn;
+                }
+            }
+
+            if (setting.FirmwareUpdateList != null)
+            {
+                for (int firmwareIndex = 0; firmwareIndex < setting.FirmwareUpdateList.Count; firmwareIndex++)
+                {
+                    var model = setting.FirmwareUpdateList[firmwareIndex];
+                    bool isVersionVaild = !string.IsNullOrEmpty(model.Version);
+                    bool isFileNameVaild = !string.IsNullOrEmpty(model.FirmwareFileName);
+                    bool isNoduleNameVaild = !string.IsNullOrEmpty(model.Module);
+
+                    if (!isNoduleNameVaild)
+                    {
+                        //HintDialog.ShowMessage("Firmware module name should not empty");
+                        //HintDialog.ShowMessage(Resx.AppResources.InitFirmwareNameEmptyAlert);
+                        //isCheckPassed = false;
+                        toReturn.Error = EvseSettingConfigLoadError.InitFirmwareNameEmpty;
+                        return toReturn;
+                    }
+                    if (isVersionVaild || isFileNameVaild)
+                    {
+                        if (!isVersionVaild)
+                        {
+                            //HintDialog.ShowMessage($"Version should not empty while {model.Module} firmware is set");
+                            //HintDialog.ShowMessage(string.Format(Resx.AppResources.InitFirmwareVersionEmptyAlert, model.Module));
+                            //isCheckPassed = false;
+                            toReturn.Error = EvseSettingConfigLoadError.InitFirmwareVersionEmpty;
+                            toReturn.ErrorFirmware = model.Module;
+                            return toReturn;
+                        }
+
+                        //if (!isFileNameVaild)
+                        //{
+                        //    //HintDialog.ShowMessage($"File name should not empty while {model.Module} version is set");
+                        //    //HintDialog.ShowMessage(string.Format(Resx.AppResources.InitFirmwareFileEmptyAlert, model.Module));
+                        //    //isCheckPassed = false;
+                        //    toReturn.Error = EvseSettingConfigLoadError.InitFirmwareFileEmpty;
+                        //    toReturn.ErrorFirmware = model.Module;
+                        //    return toReturn;
+                        //}
+
+                        var folderPath = System.IO.Path.GetDirectoryName(modelSeettingFilePath);
+                        if (isVersionVaild && isFileNameVaild)
+                        {
+                            var filePath = System.IO.Path.Combine(folderPath, model.FirmwareFileName);
+                            //check file exist
+                            if (!File.Exists(filePath))
+                            {
+                                ////HintDialog.ShowMessage($"{model.Module} Firemware file is missing");
+                                //HintDialog.ShowMessage(string.Format(Resx.AppResources.InitFirmwareFileMissingAlert, model.Module));
+                                //isCheckPassed = false;
+                                toReturn.Error = EvseSettingConfigLoadError.InitFirmwareFileMissing;
+                                toReturn.ErrorFirmware = model.Module;
+                                return toReturn;
+                            }
+                            else
+                            {
+                                try
+                                {
+                                    //isCheckPassed = CheckFileHeaderModel(setting, isCheckPassed, model, filePath);
+                                }
+                                catch
+                                {
+                                    //HintDialog.ShowMessage($"{model.Module} Firemware header ERROR");
+                                    //HintDialog.ShowMessage(string.Format(Resx.AppResources.InitFirmwareFileHeaderFormatAlert, model.Module));
+                                    //isCheckPassed = false;
+                                    toReturn.Error = EvseSettingConfigLoadError.InitFirmwareFileHeaderFormat;
+                                    toReturn.ErrorFirmware = model.Module;
+                                    return toReturn;
+                                }
+
+                                model.FirmwareFileName = filePath;
+                            }
+                        }
+                    }
+                }
+            }
+
+            toReturn.Error = EvseSettingConfigLoadError.None;
+            toReturn.Result = setting;
+            return toReturn;
+        }
+
+        private static void CompatibilityDataUpdate(EvseSettingConfigModel setting)
+        {
+            if (string.IsNullOrEmpty(setting.SimICCID))
+            {
+                setting.SimICCID = setting.ICCID;
+            }
+            if (string.IsNullOrEmpty(setting.SimIMSI))
+            {
+                setting.SimIMSI = setting.IMSI;
+            }
+
+            if (setting.SkipButtonTest)
+            {
+                setting.ButtonTestMode = ButtonTestModeType.SkipButtonTest;
+            }
+            if (setting.SkipEmergencyButton)
+            {
+                setting.ButtonTestMode = ButtonTestModeType.SkipEmergencyButton;
+            }
+
+            if (string.IsNullOrEmpty(setting.IpAddress))
+            {
+                setting.IpAddress = "192.168.1.10";
+            }
+        }
+    }
+}

+ 15 - 4
AwInitilizer/Model/SettingConfig.cs → InitializerModel/EvseSettingConfigModel.cs

@@ -3,27 +3,38 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
-using System.Windows.Input;
 
-namespace AwInitilizer.Model
+namespace InitializerModel
 {
-    public class SettingConfig
+    public class EvseSettingConfigModel
     {
         public string ModelName { get; set; }
         public string FourGenModuleVersion { get; set; }
         public string SubFourGenModuleVersion { get; set; }
         public bool IsSimInsert { get; set; }
+        [Obsolete]
         public string ICCID { get; set; }
+        [Obsolete]
         public string IMSI { get; set; }
         public string SimICCID { get; set; }
         public string SimIMSI { get; set; }
         public bool IsSubSimInsert { get; set; }
         public string SubSimICCID { get; set; }
         public string SubSimIMSI { get; set; }
-        public string ButtonTestMode { get; set; }
+        public ButtonTestModeType ButtonTestMode { get; set; }
+        [Obsolete]
         public bool SkipEmergencyButton { get; set; }
+        [Obsolete]
         public bool SkipButtonTest { get; set; }
         public string IpAddress { get; set; }
         public List<FirmwareUpdateModel> FirmwareUpdateList { get; set; }
     }
+
+    public enum ButtonTestModeType
+    {
+        All,
+        SkipButtonTest,
+        SkipNormalButton,
+        SkipEmergencyButton,
+    }
 }

+ 20 - 20
AwInitilizer/Model/FirmwareUpdateModel.cs → InitializerModel/FirmwareUpdateModel.cs

@@ -1,20 +1,20 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace AwInitilizer.Model
-{
-    public class FirmwareUpdateModel
-    {
-        public string Module { get; set; }
-        public string Version { get; set; }
-        public string FirmwareFileName { get; set; }
-
-        public FirmwareUpdateModel()
-        {
-
-        }
-    }
-}
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace InitializerModel
+{
+    public class FirmwareUpdateModel
+    {
+        public string Module { get; set; }
+        public string Version { get; set; }
+        public string FirmwareFileName { get; set; }
+
+        public FirmwareUpdateModel()
+        {
+
+        }
+    }
+}

+ 62 - 0
InitializerModel/InitializerModel.csproj

@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" 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>{68A79486-7973-42BF-8CAF-43296BEB1107}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>InitializerModel</RootNamespace>
+    <AssemblyName>InitializerModel</AssemblyName>
+    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <Deterministic>true</Deterministic>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
+      <HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
+    </Reference>
+    <Reference Include="PhihongEv.Lib, Version=1.0.16.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\PhihongEv.Lib.1.0.16\lib\net40\PhihongEv.Lib.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="AppSettingConfig.cs" />
+    <Compile Include="AppSettingConfigModel.cs" />
+    <Compile Include="EvseSettingConfig.cs" />
+    <Compile Include="FirmwareUpdateModel.cs" />
+    <Compile Include="PredefinedVersionPair.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="EvseSettingConfigModel.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="packages.config" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>

+ 100 - 0
InitializerModel/PredefinedVersionPair.cs

@@ -0,0 +1,100 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace InitializerModel
+{
+    public static class EvseVersion
+    {
+        public static int GetVersionIndex(string version)
+        {
+            if (version.StartsWith("DD"))
+            {
+                var dispensorIndexChar = version.Last();
+                if (int.TryParse(dispensorIndexChar.ToString(), out var result))
+                {
+                    return result + 1;
+                }
+            }
+            return 0;
+        }
+
+        public static string GetDDApiNameFromApiName(string apiName, int index)
+        {
+            if (index <= 0)
+                return apiName;
+            return $"DD{apiName}{index - 1}";
+        }
+
+        public static string GetDDApiNameFromWebName(string webName, int index)
+        {
+            var apiName = PredefinedVersionPair.GetApiName(webName);
+            return GetDDApiNameFromApiName(apiName, index);
+        }
+
+        public static string GetApiNameFromDDApiName(string apiName)
+        {
+            var index = GetVersionIndex(apiName);
+            if (index == 0)
+            {
+                return apiName;
+            }
+            return apiName.Substring(2, apiName.Length -3);
+        }
+    }
+
+    public static class PredefinedVersionPair
+    {
+        public static IEnumerable<string> GetWebNames()
+        {
+            return PreDefinedVersions.Select(x => x.WebName);
+        }
+
+        public static IEnumerable<string> GetApiNames()
+        {
+            return PreDefinedVersions.Select(x => x.ApiName);
+        }
+
+        public static string GetWebName(string apiName)
+        {
+            return PreDefinedVersions.FirstOrDefault(x => x.ApiName == apiName)?.WebName;
+        }
+
+        public static string GetApiName(string webName)
+        {
+            return PreDefinedVersions.FirstOrDefault(x => x.WebName == webName)?.ApiName;
+        }
+
+        private static List<VersionDefinePair> PreDefinedVersions = new List<VersionDefinePair>(){
+                new VersionDefinePair("Csu Boot Load Fw Rev","CsuBootLoadFwRev" ),
+                new VersionDefinePair("Csu Kernel Fw Rev"   ,"CsuKernelFwRev" ),
+                new VersionDefinePair("Csu Root Fs Fw Rev"  ,"CsuRootFsFwRev" ),
+                new VersionDefinePair("Csu Prim Fw Rev"     ,"CsuPrimFwRev" ),
+                new VersionDefinePair("Psu Prim Fw Rev(1)"  ,"FwPrimaryVersion0" ),
+                new VersionDefinePair("Psu Sec Fw Rev(1)"   ,"FwSecondVersion0" ),
+                new VersionDefinePair("Psu Prim Fw Rev(2)"  ,"FwPrimaryVersion1" ),
+                new VersionDefinePair("Psu Sec Fw Rev(2)"   ,"FwSecondVersion1" ),
+                new VersionDefinePair("Fan Module Fw Rev"   ,"FanModuleFwRev" ),
+                new VersionDefinePair("Relay Module Fw Rev" ,"RelayModuleFwRev" ),
+                new VersionDefinePair("Relay2 Module Fw Rev","Relay2ModuleFwRev" ),
+                new VersionDefinePair("Led Module Fw Rev"   ,"LedModuleFwRev" ),
+                new VersionDefinePair("Connector1 Fw Rev"   ,"Connector1FwRev" ),
+                new VersionDefinePair("Connector2 Fw Rev"   ,"Connector2FwRev" ),
+            };
+
+    }
+
+    public class VersionDefinePair
+    {
+        public string WebName { get; set; }
+        public string ApiName { get; set; }
+
+        public VersionDefinePair(string webName, string apiName)
+        {
+            WebName = webName;
+            ApiName = apiName;
+        }
+    }
+}

+ 37 - 0
InitializerModel/Properties/AssemblyInfo.cs

@@ -0,0 +1,37 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 組件的一般資訊是由下列的屬性集控制。
+// 變更這些屬性的值即可修改組件的相關
+// 資訊。
+[assembly: AssemblyTitle("InitializerModel")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("InitializerModel")]
+[assembly: AssemblyCopyright("Copyright ©  2024")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 將 ComVisible 設為 false 可對 COM 元件隱藏
+// 組件中的類型。若必須從 COM 存取此組件中的類型,
+// 的類型,請在該類型上將 ComVisible 屬性設定為 true。
+[assembly: ComVisible(false)]
+
+// 下列 GUID 為專案公開 (Expose) 至 COM 時所要使用的 typelib ID
+[assembly: Guid("68a79486-7973-42bf-8caf-43296beb1107")]
+
+// 組件的版本資訊由下列四個值所組成: 
+//
+//      主要版本
+//      次要版本
+//      組建編號
+//      修訂編號
+//
+// 您可以指定所有的值,也可以使用 '*' 將組建和修訂編號
+// 設為預設,如下所示:
+// [assembly: AssemblyVersion("1.13.0.0")]
+[assembly: AssemblyVersion("1.13.0.0")]
+[assembly: AssemblyFileVersion("1.13.0.0")]
+[assembly: AssemblyInformationalVersion("0942119")]

+ 5 - 0
InitializerModel/packages.config

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="Newtonsoft.Json" version="13.0.3" targetFramework="net48" />
+  <package id="PhihongEv.Lib" version="1.0.16" targetFramework="net48" />
+</packages>

+ 3 - 3
Initilizer/AssemblyInfo.cs

@@ -9,7 +9,7 @@
                                               // app, or any theme specific resource dictionaries)
 )]
 
-[assembly: AssemblyVersion("1.12.1.0")]
-[assembly: AssemblyFileVersion("1.12.1.0")]
-[assembly: AssemblyInformationalVersion("3be3a19")]
+[assembly: AssemblyVersion("1.13.0.0")]
+[assembly: AssemblyFileVersion("1.13.0.0")]
+[assembly: AssemblyInformationalVersion("0942119")]
 

+ 4 - 4
MesAdaptor/Properties/AssemblyInfo.cs

@@ -31,7 +31,7 @@ using System.Runtime.InteropServices;
 //
 // You can specify all the values or you can default the Build and Revision Numbers
 // by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.12.1.0")]
-[assembly: AssemblyVersion("1.12.1.0")]
-[assembly: AssemblyFileVersion("1.12.1.0")]
-[assembly: AssemblyInformationalVersion("3be3a19")]
+// [assembly: AssemblyVersion("1.13.0.0")]
+[assembly: AssemblyVersion("1.13.0.0")]
+[assembly: AssemblyFileVersion("1.13.0.0")]
+[assembly: AssemblyInformationalVersion("0942119")]

+ 9 - 1
MesAdaptor/SajetConnect.cs

@@ -20,6 +20,14 @@ namespace MesAdaptor
     {
         public static ISajetConnect Instance { get; internal set; }
 
+        public static List<string> DefinedMes = new List<string>() {
+            "php",
+            "shinewave",
+            "phv",
+            "sajet",
+            "sajet2"
+        };
+
         public static bool SajetTransStart() => Instance.SajetTransStart();
         public static bool SajetTransClose() => Instance == null ? false : Instance.SajetTransClose();
         public static bool SajetTransSignIn(ref string data) => Instance.SajetTransSignIn(ref data);
@@ -46,11 +54,11 @@ namespace MesAdaptor
                 case "shinewave":
                     SajetConnect.Instance = new SajetConnectShinewave();
                     break;
-                case "phv":
                 case "sajet":
                     SajetConnect.Instance = new SajectConnectSajet();
                     break;
                 //case "phv":
+                case "phv":
                 case "sajet2":
                     SajetConnect.Instance = new SajectConnectSajet2(mechineCode);
                     break;