From e2c8738d8d2a7173dfd57d98f388edb8af823608 Mon Sep 17 00:00:00 2001 From: Adam Driscoll Date: Tue, 10 Dec 2024 10:05:31 -0800 Subject: [PATCH] Move settings from custom UI to built-in options panel. (#96) --- .../PowerShellTools.15.0.imagemanifest | 2 +- PowerShellTools.2022/PowerShellTools.vsct | 8 - PowerShellTools.2022/packages.lock.json | 242 ++++++++++++ .../Options/AnalysisOptions.cs | 23 +- .../Options/BaseOptionModel.cs | 9 +- .../Options/DialogPageProvider.cs | 5 + .../Options/GeneralOptions.cs | 3 - .../Options/GeneralOptionsControl.Designer.cs | 14 - .../Options/GeneralOptionsControl.cs | 6 - .../PowerShellTools.Shared.projitems | 9 - .../PowerShellToolsPackage.cs | 14 +- .../Service/AnalysisService.cs | 23 +- .../Debugging/PowerShellDebuggingService.cs | 8 +- .../ToolWindows/SettingsCommand.cs | 89 ----- .../ToolWindows/SettingsControl.xaml | 153 -------- .../ToolWindows/SettingsControl.xaml.cs | 63 ---- .../ToolWindows/SettingsViewModel.cs | 304 --------------- PowerShellTools.Test/packages.lock.json | 348 +++++++++++++++++ PowerShellTools/PowerShellTools.vsct | 7 - PowerShellTools/packages.lock.json | 350 ++++++++++++++++++ .../PowerShellProTools.psd1 | 4 +- .../PowerShellProTools.psm1 | 244 ++++++------ .../packages.lock.json | 104 ++++++ 23 files changed, 1224 insertions(+), 808 deletions(-) delete mode 100644 PowerShellTools.Shared/ToolWindows/SettingsCommand.cs delete mode 100644 PowerShellTools.Shared/ToolWindows/SettingsControl.xaml delete mode 100644 PowerShellTools.Shared/ToolWindows/SettingsControl.xaml.cs delete mode 100644 PowerShellTools.Shared/ToolWindows/SettingsViewModel.cs diff --git a/PowerShellTools.2022/PowerShellTools.15.0.imagemanifest b/PowerShellTools.2022/PowerShellTools.15.0.imagemanifest index 4fae0c4..d705c92 100644 --- a/PowerShellTools.2022/PowerShellTools.15.0.imagemanifest +++ b/PowerShellTools.2022/PowerShellTools.15.0.imagemanifest @@ -2,7 +2,7 @@ - + diff --git a/PowerShellTools.2022/PowerShellTools.vsct b/PowerShellTools.2022/PowerShellTools.vsct index c52ba77..4b36ea3 100644 --- a/PowerShellTools.2022/PowerShellTools.vsct +++ b/PowerShellTools.2022/PowerShellTools.vsct @@ -231,14 +231,6 @@ PowerShell Modules - - diff --git a/PowerShellTools.2022/packages.lock.json b/PowerShellTools.2022/packages.lock.json index e342688..945158d 100644 --- a/PowerShellTools.2022/packages.lock.json +++ b/PowerShellTools.2022/packages.lock.json @@ -1819,6 +1819,27 @@ "PowerShellStandard.Library": "[5.1.0, )" } }, + "powershelltools.templates.data": { + "type": "Project" + }, + "powershelltools.templates.formproject": { + "type": "Project" + }, + "powershelltools.templates.module": { + "type": "Project" + }, + "powershelltools.templates.moduleproject": { + "type": "Project" + }, + "powershelltools.templates.script": { + "type": "Project" + }, + "powershelltools.templates.scriptproject": { + "type": "Project" + }, + "powershelltools.templates.test": { + "type": "Project" + }, "powershelltools.testadapter": { "type": "Project", "dependencies": { @@ -1857,6 +1878,227 @@ "System.Drawing.Common": "[6.0.0, )", "System.Text.Json": "[4.6.0, )" } + }, + "powershelltoolspro.templates.formitem": { + "type": "Project" + }, + "powershelltoolspro.templates.serviceitem": { + "type": "Project" + } + }, + ".NETFramework,Version=v4.7.2/win": { + "Microsoft.Win32.Registry": { + "type": "Direct", + "requested": "[5.0.0, )", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "Microsoft.Win32.Primitives": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", + "dependencies": { + "runtime.win.Microsoft.Win32.Primitives": "4.3.0" + } + }, + "runtime.win.Microsoft.Win32.Primitives": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "NU51SEt/ZaD2MF48sJ17BIqx7rjeNNLXUevfMOjqQIetdndXwYjZfZsT6jD+rSWp/FYxjesdK4xUSl4OTEI0jw==" + }, + "System.IO.Compression": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==" + }, + "System.IO.Pipes.AccessControl": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "uqKLJb0Cukb8vG6JVKbJXOAmMWUWOue4ZTjMn7qrfGLZHww3iV8xV1amipI238kmmoFQx6I8GP2bjDM/ss5pQQ==", + "dependencies": { + "System.Security.AccessControl": "4.5.0", + "System.Security.Principal.Windows": "4.5.0" + } + }, + "System.Runtime.InteropServices.RuntimeInformation": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/win-arm64": { + "Microsoft.Win32.Registry": { + "type": "Direct", + "requested": "[5.0.0, )", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.IO.Compression": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==" + }, + "System.IO.Pipes.AccessControl": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "uqKLJb0Cukb8vG6JVKbJXOAmMWUWOue4ZTjMn7qrfGLZHww3iV8xV1amipI238kmmoFQx6I8GP2bjDM/ss5pQQ==", + "dependencies": { + "System.Security.AccessControl": "4.5.0", + "System.Security.Principal.Windows": "4.5.0" + } + }, + "System.Runtime.InteropServices.RuntimeInformation": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/win-x64": { + "Microsoft.Win32.Registry": { + "type": "Direct", + "requested": "[5.0.0, )", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "Microsoft.Win32.Primitives": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", + "dependencies": { + "runtime.win.Microsoft.Win32.Primitives": "4.3.0" + } + }, + "runtime.win.Microsoft.Win32.Primitives": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "NU51SEt/ZaD2MF48sJ17BIqx7rjeNNLXUevfMOjqQIetdndXwYjZfZsT6jD+rSWp/FYxjesdK4xUSl4OTEI0jw==" + }, + "System.IO.Compression": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==" + }, + "System.IO.Pipes.AccessControl": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "uqKLJb0Cukb8vG6JVKbJXOAmMWUWOue4ZTjMn7qrfGLZHww3iV8xV1amipI238kmmoFQx6I8GP2bjDM/ss5pQQ==", + "dependencies": { + "System.Security.AccessControl": "4.5.0", + "System.Security.Principal.Windows": "4.5.0" + } + }, + "System.Runtime.InteropServices.RuntimeInformation": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/win-x86": { + "Microsoft.Win32.Registry": { + "type": "Direct", + "requested": "[5.0.0, )", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "Microsoft.Win32.Primitives": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", + "dependencies": { + "runtime.win.Microsoft.Win32.Primitives": "4.3.0" + } + }, + "runtime.win.Microsoft.Win32.Primitives": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "NU51SEt/ZaD2MF48sJ17BIqx7rjeNNLXUevfMOjqQIetdndXwYjZfZsT6jD+rSWp/FYxjesdK4xUSl4OTEI0jw==" + }, + "System.IO.Compression": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==" + }, + "System.IO.Pipes.AccessControl": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "uqKLJb0Cukb8vG6JVKbJXOAmMWUWOue4ZTjMn7qrfGLZHww3iV8xV1amipI238kmmoFQx6I8GP2bjDM/ss5pQQ==", + "dependencies": { + "System.Security.AccessControl": "4.5.0", + "System.Security.Principal.Windows": "4.5.0" + } + }, + "System.Runtime.InteropServices.RuntimeInformation": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" } } } diff --git a/PowerShellTools.Shared/Options/AnalysisOptions.cs b/PowerShellTools.Shared/Options/AnalysisOptions.cs index b30ffd0..fa966e2 100644 --- a/PowerShellTools.Shared/Options/AnalysisOptions.cs +++ b/PowerShellTools.Shared/Options/AnalysisOptions.cs @@ -10,14 +10,15 @@ internal class AnalysisOptions : BaseOptionModel public event EventHandler> ScriptAnalyzerChanged; public event EventHandler> SolutionWideAnalysisChanged; public event EventHandler> AnalyzeOnSaveChanged; + public event EventHandler> ConfigurationFileChanged; public AnalysisOptions() { this.SolutionWideAnalysis = this.ScriptAnalyzer; } - [DisplayName(@"Script Analyzer")] - [Description("When true, enables script analyzer support.")] + [DisplayName(@"Enable Script Analyzer")] + [Description("When true, enables PSScriptAnalyzer support.")] public bool ScriptAnalyzer { get; set; } [DisplayName(@"Solution Wide Analysis")] @@ -25,14 +26,20 @@ public AnalysisOptions() public bool SolutionWideAnalysis { get; set; } [DisplayName(@"Analyze on Save")] - [Description("When true, analyzes a file when it is saved.")] + [Description("When true, analyzes a file when it is saved. When false, the script will be analyzed as you type.")] public bool AnalyzeOnSave { get; set; } + [DisplayName(@"Configuration File")] + [Description("The path to a PSScriptAnalyzer configuration file.")] + public string ConfigurationFile { get; set; } + public override void Load() { var previousScriptAnalyzer = ScriptAnalyzer; var previousSolutionWideAnalysis = SolutionWideAnalysis; var previousAnalyzeOnSave = AnalyzeOnSave; + var previousConfigurationFile = ConfigurationFile; + base.Load(); @@ -50,6 +57,11 @@ public override void Load() { OnSolutionWideAnalysisChanged(); } + + if (previousConfigurationFile != ConfigurationFile) + { + OnConfigurationFileChanged(); + } } public override async Task LoadAsync() @@ -90,5 +102,10 @@ public void OnSolutionWideAnalysisChanged() { SolutionWideAnalysisChanged?.Invoke(this, new EventArgs(SolutionWideAnalysis)); } + + public void OnConfigurationFileChanged() + { + ConfigurationFileChanged?.Invoke(this, new EventArgs(ConfigurationFile)); + } } } diff --git a/PowerShellTools.Shared/Options/BaseOptionModel.cs b/PowerShellTools.Shared/Options/BaseOptionModel.cs index 4a21a07..f81ee65 100644 --- a/PowerShellTools.Shared/Options/BaseOptionModel.cs +++ b/PowerShellTools.Shared/Options/BaseOptionModel.cs @@ -155,6 +155,11 @@ public virtual async Task SaveAsync() /// protected virtual string SerializeValue(object value) { + if (value == null) + { + return null; + } + using (var stream = new MemoryStream()) { var formatter = new BinaryFormatter(); @@ -180,10 +185,10 @@ protected virtual object DeserializeValue(string value, Type type) private static async Task GetSettingsManagerAsync() { -#pragma warning disable VSTHRD010 +#pragma warning disable VSTHRD010 // False-positive in Threading Analyzers. Bug tracked here https://github.com/Microsoft/vs-threading/issues/230 var svc = await AsyncServiceProvider.GlobalProvider.GetServiceAsync(typeof(SVsSettingsManager)) as IVsSettingsManager; -#pragma warning restore VSTHRD010 +#pragma warning restore VSTHRD010 Assumes.Present(svc); diff --git a/PowerShellTools.Shared/Options/DialogPageProvider.cs b/PowerShellTools.Shared/Options/DialogPageProvider.cs index 0735439..0255c6a 100644 --- a/PowerShellTools.Shared/Options/DialogPageProvider.cs +++ b/PowerShellTools.Shared/Options/DialogPageProvider.cs @@ -5,6 +5,11 @@ internal class DialogPageProvider public class General : BaseOptionPage { public General() : base(x => new GeneralOptionsControl(x.Self)) { } } + + public class Analysis : BaseOptionPage { } + public class Diagnostics : BaseOptionPage { } + + } } diff --git a/PowerShellTools.Shared/Options/GeneralOptions.cs b/PowerShellTools.Shared/Options/GeneralOptions.cs index eb89d65..c6360cd 100644 --- a/PowerShellTools.Shared/Options/GeneralOptions.cs +++ b/PowerShellTools.Shared/Options/GeneralOptions.cs @@ -14,7 +14,6 @@ public GeneralOptions() this.ShouldLoadProfiles = true; this.TabComplete = true; this.Sta = false; - this.DontShowLicenseInfoOnStartup = false; var powershellLocator = new PowerShellLocator(); this.PowerShellVersion = powershellLocator.DefaultVersion; @@ -73,7 +72,5 @@ public void OnPowerShellVersionChanged() [DisplayName(@"Apartment State")] public bool Sta { get; set; } - [DisplayName(@"Don't Show License Info On Startup")] - public bool DontShowLicenseInfoOnStartup { get; set; } } } diff --git a/PowerShellTools.Shared/Options/GeneralOptionsControl.Designer.cs b/PowerShellTools.Shared/Options/GeneralOptionsControl.Designer.cs index b212ab1..9a84089 100644 --- a/PowerShellTools.Shared/Options/GeneralOptionsControl.Designer.cs +++ b/PowerShellTools.Shared/Options/GeneralOptionsControl.Designer.cs @@ -40,7 +40,6 @@ private void InitializeComponent() this.chkTabComplete = new System.Windows.Forms.CheckBox(); this.label8 = new System.Windows.Forms.Label(); this.chkSta = new System.Windows.Forms.CheckBox(); - this.chkDontDisplayLicenseInfo = new System.Windows.Forms.CheckBox(); this.SuspendLayout(); // // chkOverrideExecutionPolicy @@ -164,17 +163,6 @@ private void InitializeComponent() this.chkSta.UseVisualStyleBackColor = true; this.chkSta.CheckedChanged += new System.EventHandler(this.chkSta_CheckedChanged); // - // chkDisplayLicenseInfo - // - this.chkDontDisplayLicenseInfo.AutoSize = true; - this.chkDontDisplayLicenseInfo.Location = new System.Drawing.Point(8, 353); - this.chkDontDisplayLicenseInfo.Name = "chkDontDisplayLicenseInfo"; - this.chkDontDisplayLicenseInfo.Size = new System.Drawing.Size(282, 21); - this.chkDontDisplayLicenseInfo.TabIndex = 16; - this.chkDontDisplayLicenseInfo.Text = "Don't Display License Info on Startup"; - this.chkDontDisplayLicenseInfo.UseVisualStyleBackColor = true; - this.chkDontDisplayLicenseInfo.CheckedChanged += new System.EventHandler(this.chkDisplayLicenseInfo_CheckedChanged); - // // GeneralOptionsControl // this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); @@ -191,7 +179,6 @@ private void InitializeComponent() this.Controls.Add(this.chkMultiLineRepl); this.Controls.Add(this.label1); this.Controls.Add(this.chkOverrideExecutionPolicy); - this.Controls.Add(this.chkDontDisplayLicenseInfo); this.Margin = new System.Windows.Forms.Padding(4); this.Name = "GeneralOptionsControl"; this.Size = new System.Drawing.Size(924, 645); @@ -213,6 +200,5 @@ private void InitializeComponent() private System.Windows.Forms.CheckBox chkTabComplete; private System.Windows.Forms.Label label8; private System.Windows.Forms.CheckBox chkSta; - private System.Windows.Forms.CheckBox chkDontDisplayLicenseInfo; } } diff --git a/PowerShellTools.Shared/Options/GeneralOptionsControl.cs b/PowerShellTools.Shared/Options/GeneralOptionsControl.cs index c81041e..a4d8cdb 100644 --- a/PowerShellTools.Shared/Options/GeneralOptionsControl.cs +++ b/PowerShellTools.Shared/Options/GeneralOptionsControl.cs @@ -33,7 +33,6 @@ public GeneralOptionsControl(GeneralOptions options) this.chkOverrideExecutionPolicy.Checked = options.OverrideExecutionPolicyConfiguration; this.chkTabComplete.Checked = options.TabComplete; this.chkSta.Checked = options.Sta; - this.chkDontDisplayLicenseInfo.Checked = options.DontShowLicenseInfoOnStartup; } private void chkOverrideExecutionPolicy_CheckedChanged(object sender, System.EventArgs e) @@ -68,10 +67,5 @@ private void chkSta_CheckedChanged(object sender, System.EventArgs e) { _options.Sta = chkSta.Checked; } - - private void chkDisplayLicenseInfo_CheckedChanged(object sender, System.EventArgs e) - { - _options.DontShowLicenseInfoOnStartup = chkDontDisplayLicenseInfo.Checked; - } } } diff --git a/PowerShellTools.Shared/PowerShellTools.Shared.projitems b/PowerShellTools.Shared/PowerShellTools.Shared.projitems index 2eb3a23..fa8f195 100644 --- a/PowerShellTools.Shared/PowerShellTools.Shared.projitems +++ b/PowerShellTools.Shared/PowerShellTools.Shared.projitems @@ -643,11 +643,6 @@ ModulesControl.xaml - - - SettingsControl.xaml - - @@ -733,10 +728,6 @@ Designer MSBuild:Compile - - Designer - MSBuild:Compile - Designer MSBuild:Compile diff --git a/PowerShellTools.Shared/PowerShellToolsPackage.cs b/PowerShellTools.Shared/PowerShellToolsPackage.cs index f24637c..2e201ed 100644 --- a/PowerShellTools.Shared/PowerShellToolsPackage.cs +++ b/PowerShellTools.Shared/PowerShellToolsPackage.cs @@ -37,14 +37,10 @@ using Microsoft.VisualStudio.ComponentModelHost; using PowerShellTools.Diagnostics; using Common.ServiceManagement; -using System.IO; using System.Windows.Media; -using PowerShellProTools.Host; using PowerShellTools.ToolWindows; -using PowerShellTools.Shared.ToolWindows; using PowerShellToolsPro.Commands; using PowerShellToolsPro; -using System.ComponentModel.Composition; using ModernWpf; using Microsoft.VisualStudio.PlatformUI; @@ -119,6 +115,7 @@ namespace PowerShellTools [ProvideIncompatibleEngineInfo("{92EF0900-2251-11D2-B72E-0000F87572EF}")] [ProvideIncompatibleEngineInfo("{F200A7E7-DEA5-11D0-B854-00A0244A1DE2}")] [ProvideOptionPage(typeof(DialogPageProvider.General), PowerShellConstants.LanguageDisplayName, "General", 101, 106, true)] + [ProvideOptionPage(typeof(DialogPageProvider.Analysis), PowerShellConstants.LanguageDisplayName, "Analysis", 101, 106, true)] [ProvideOptionPage(typeof(DialogPageProvider.Diagnostics), PowerShellConstants.LanguageDisplayName, "Diagnostics", 101, 106, true)] [ProvideDiffSupportedContentType(".ps1;.psm1;.psd1", ";")] [ProvideLanguageExtension(typeof(PowerShellLanguageInfo), ".ps1")] @@ -298,11 +295,6 @@ public static string Version } } - public static SettingsControl Settings - { - get; private set; - } - private async System.Threading.Tasks.Task InitializeInternalAsync() { Log.Info(string.Format(CultureInfo.CurrentCulture, "Entering Initialize() of: {0}", this)); @@ -326,12 +318,8 @@ private async System.Threading.Tasks.Task InitializeInternalAsync() ThemeManager.Current.ApplicationTheme = ApplicationTheme.Dark; } - Settings = new SettingsControl(new SettingsViewModel()); - Settings.ViewModel.FullSettingsVisibility = Visibility.Hidden; - await VariablesCommand.InitializeAsync(this); await ModulesCommand.InitializeAsync(this); - await SettingsCommand.InitializeAsync(this); RefreshCommands(new ExecuteSelectionCommand(), new ExecuteSelectionCommandToolbar(), diff --git a/PowerShellTools.Shared/Service/AnalysisService.cs b/PowerShellTools.Shared/Service/AnalysisService.cs index 84a2a39..7e62176 100644 --- a/PowerShellTools.Shared/Service/AnalysisService.cs +++ b/PowerShellTools.Shared/Service/AnalysisService.cs @@ -7,7 +7,6 @@ using System.Management.Automation; using System.Management.Automation.Language; using System.Management.Automation.Runspaces; -using System.Reflection; using System.Threading.Tasks; using Common.Analysis; using Common.ServiceManagement; @@ -25,7 +24,7 @@ public class AnalysisService : IAnalysisService private readonly BlockingCollection requests; private Runspace analysisRunspace; private static readonly object RunspaceLock = new object(); - private readonly string ScriptAnalyzerSettings = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "PowerShell Pro Tools", "PSScriptAnalyzerSettings.psd1"); + private string scriptAnalyzerSettings; private Process _process; private static readonly ILog _logger = LogManager.GetLogger(typeof(AnalysisService)); private readonly IVsStatusbar _statusBar; @@ -68,6 +67,9 @@ private void Start() var version = GeneralOptions.Instance.PowerShellVersion; var hostProcess = PowershellHostProcessHelper.CreatePowerShellHostProcess(version); + scriptAnalyzerSettings = AnalysisOptions.Instance.ConfigurationFile ?? Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "PowerShell Pro Tools", "PSScriptAnalyzerSettings.psd1"); + AnalysisOptions.Instance.ConfigurationFileChanged += Instance_ConfigurationFileChanged; ; + if (hostProcess != null) { _process = hostProcess.Process; @@ -84,6 +86,15 @@ private void Start() } } + private void Instance_ConfigurationFileChanged(object sender, DebugEngine.EventArgs e) + { + scriptAnalyzerSettings = e.Value; + if (string.IsNullOrEmpty(scriptAnalyzerSettings)) + { + scriptAnalyzerSettings = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "PowerShell Pro Tools", "PSScriptAnalyzerSettings.psd1"); + } + } + public AnalysisService() { this.requests = new BlockingCollection(); @@ -293,18 +304,18 @@ public List StartAnalysis(AnalysisRequest analysisRequest) { ps.AddCommand("Invoke-ScriptAnalyzer").AddParameter("Path", analysisRequest.FileName); - if (File.Exists(ScriptAnalyzerSettings)) + if (File.Exists(scriptAnalyzerSettings)) { - ps.AddParameter("Setting", ScriptAnalyzerSettings); + ps.AddParameter("Setting", scriptAnalyzerSettings); } } else { ps.AddCommand("Invoke-ScriptAnalyzer").AddParameter("ScriptDefinition", analysisRequest.String); - if (File.Exists(ScriptAnalyzerSettings)) + if (File.Exists(scriptAnalyzerSettings)) { - ps.AddParameter("Setting", ScriptAnalyzerSettings); + ps.AddParameter("Setting", scriptAnalyzerSettings); } } diff --git a/PowerShellTools.Shared/ServiceManagement/Debugging/PowerShellDebuggingService.cs b/PowerShellTools.Shared/ServiceManagement/Debugging/PowerShellDebuggingService.cs index fd9e542..e9cbdde 100644 --- a/PowerShellTools.Shared/ServiceManagement/Debugging/PowerShellDebuggingService.cs +++ b/PowerShellTools.Shared/ServiceManagement/Debugging/PowerShellDebuggingService.cs @@ -906,6 +906,8 @@ public IEnumerable GetScopedVariable() yield break; } + var variables = PSSerializer.Deserialize(_varaiables); + var varaibles = JsonConvert.DeserializeObject(_varaiables); foreach(var variable in varaibles) { @@ -1299,8 +1301,8 @@ private void RefreshScopedVariable() { if (Runspace.Debugger.InBreakpoint) { - PSCommand psCommand = new PSCommand(); - psCommand.AddScript("Get-Variable -Exclude @('foreach', 'switch') | Out-PoshToolsVariable -PassThru | ConvertTo-Json -Depth 1 -WarningAction SilentlyContinue"); + var psCommand = new PSCommand(); + psCommand.AddScript("Get-Variable -Exclude @('foreach', 'switch') | Out-PoshToolsVariable -PassThru"); var output = new PSDataCollection(); psCommand.Commands[0].MergeMyResults(PipelineResultTypes.Error, PipelineResultTypes.Output); Runspace.Debugger.ProcessCommand(psCommand, output); @@ -1311,7 +1313,7 @@ private void RefreshScopedVariable() using (var powershell = PowerShell.Create()) { powershell.Runspace = Runspace; - powershell.AddScript("Get-Variable -Exclude @('foreach', 'switch') | Out-PoshToolsVariable -PassThru | ConvertTo-Json -Depth 1 -WarningAction SilentlyContinue"); + powershell.AddScript("Get-Variable -Exclude @('foreach', 'switch') | Out-PoshToolsVariable -PassThru"); var json = powershell.Invoke().FirstOrDefault(); _varaiables = json; } diff --git a/PowerShellTools.Shared/ToolWindows/SettingsCommand.cs b/PowerShellTools.Shared/ToolWindows/SettingsCommand.cs deleted file mode 100644 index 80aaa40..0000000 --- a/PowerShellTools.Shared/ToolWindows/SettingsCommand.cs +++ /dev/null @@ -1,89 +0,0 @@ -using Microsoft.VisualStudio.Shell; -using Microsoft.VisualStudio.Shell.Interop; -using PowerShellTools.Shared.ToolWindows; -using System; -using System.ComponentModel.Design; -using System.Windows; -using Task = System.Threading.Tasks.Task; - -namespace PowerShellTools.ToolWindows -{ - /// - /// Command handler - /// - internal sealed class SettingsCommand - { - /// - /// Command ID. - /// - public const int CommandId = (int)GuidList.SettingsCommandId; - - /// - /// Command menu group (command set GUID). - /// - public static readonly Guid CommandSet = new Guid(GuidList.CmdSetGuid); - - /// - /// Initializes a new instance of the class. - /// Adds our command handlers for menu (commands must exist in the command table file) - /// - /// Owner package, not null. - /// Command service to add command to, not null. - private SettingsCommand(OleMenuCommandService commandService) - { - commandService = commandService ?? throw new ArgumentNullException(nameof(commandService)); - - var menuCommandID = new CommandID(CommandSet, CommandId); - var menuItem = new OleMenuCommand(this.Execute, menuCommandID); - menuItem.BeforeQueryStatus += MenuItem_BeforeQueryStatus; - commandService.AddCommand(menuItem); - } - - private void MenuItem_BeforeQueryStatus(object sender, EventArgs e) - { - var oleMenu = sender as OleMenuCommand; - - oleMenu.Enabled = true; - oleMenu.Visible = true; - oleMenu.Text = "Settings"; - } - - /// - /// Gets the instance of the command. - /// - public static SettingsCommand Instance - { - get; - private set; - } - - /// - /// Initializes the singleton instance of the command. - /// - /// Owner package, not null. - public static async Task InitializeAsync(AsyncPackage package) - { - // Switch to the main thread - the call to AddCommand in ModulesCommand's constructor requires - // the UI thread. - await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(package.DisposalToken); - - OleMenuCommandService commandService = await package.GetServiceAsync(typeof(IMenuCommandService)) as OleMenuCommandService; - Instance = new SettingsCommand(commandService); - } - - /// - /// Shows the tool window when the menu item is clicked. - /// - /// The event sender. - /// The event args. - public void Execute(object sender, EventArgs e) - { - ThreadHelper.ThrowIfNotOnUIThread(); - - PowerShellToolsPackage.Settings.ViewModel.FullSettingsVisibility = Visibility.Visible; - PowerShellToolsPackage.Settings.ViewModel.AnalyzerSettings.Load(); - - PowerShellToolsPackage.Settings.ShowDialog(); - } - } -} diff --git a/PowerShellTools.Shared/ToolWindows/SettingsControl.xaml b/PowerShellTools.Shared/ToolWindows/SettingsControl.xaml deleted file mode 100644 index 512263a..0000000 --- a/PowerShellTools.Shared/ToolWindows/SettingsControl.xaml +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - PowerShell Tools for Visual Studio - - - - - - Diagnostics - - - - - - - - - - - Diagnostic settings for PowerShell Tools for Visual Studio. - - - - - - - - - Script Analyzer - - - - - - - - - - - - - PSScriptAnalyzer runs static analysis on scripts to provide recommendations for best practices. - - - Enable Script Analysis - - Determines when to run script analysis. When this option is disabled, script anaylsis will run as you type. - Analyze On Save - - Determines if script analysis should run on all scripts within the solution. When this option is disabled, script anaylsis will run only on the currently opened file. - Solution-Wide Analysis - - The enabled levels for script analysis rules. - - - - - - - - - - - - - - Enabled script analysis rules. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PowerShellTools.Shared/ToolWindows/SettingsControl.xaml.cs b/PowerShellTools.Shared/ToolWindows/SettingsControl.xaml.cs deleted file mode 100644 index f914d6c..0000000 --- a/PowerShellTools.Shared/ToolWindows/SettingsControl.xaml.cs +++ /dev/null @@ -1,63 +0,0 @@ -using Microsoft.VisualStudio.PlatformUI; -using Microsoft.VisualStudio.Shell; -using ModernWpf; -using PowerShellProTools.Host; -using System; -using System.Diagnostics; -using System.IO; -using System.Windows; -using System.Windows.Forms; -using KeyEventArgs = System.Windows.Input.KeyEventArgs; - -namespace PowerShellTools.Shared.ToolWindows -{ - public sealed partial class SettingsControl : System.Windows.Window - { - public SettingsViewModel ViewModel => DataContext as SettingsViewModel; - - public SettingsControl(SettingsViewModel viewModel) - { - this.InitializeComponent(); - - DataContext = viewModel; - this.Closing += new System.ComponentModel.CancelEventHandler(Window4_Closing); - btnViewLogs.Click += (e, args) => - { - Process.Start(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "PowerShell Tools for Visual Studio")); - }; - } - - void Window4_Closing(object sender, System.ComponentModel.CancelEventArgs e) - { - e.Cancel = true; - Hide(); - } - - private void OnLoaded(object sender, RoutedEventArgs e) - { - var vm = DataContext as SettingsViewModel; - vm.AnalyzerSettings?.LoadSettings(); - } - - private void SaveAnalysisSettings(object sender, RoutedEventArgs e) - { - var vm = DataContext as SettingsViewModel; - vm.AnalyzerSettings.SaveSettings(); - } - - private void About(object sender, RoutedEventArgs e) - { - Process.Start("https://ironmansoftware.com/powershell-pro-tools-for-visual-studio"); - } - - private void Docs(object sender, RoutedEventArgs e) - { - Process.Start("https://docs.poshtools.com/"); - } - - private void TxtSearch_OnKeyUp(object sender, KeyEventArgs e) - { - ViewModel.AnalyzerSettings.FilterRules(txtSearch.Text); - } - } -} diff --git a/PowerShellTools.Shared/ToolWindows/SettingsViewModel.cs b/PowerShellTools.Shared/ToolWindows/SettingsViewModel.cs deleted file mode 100644 index f88034c..0000000 --- a/PowerShellTools.Shared/ToolWindows/SettingsViewModel.cs +++ /dev/null @@ -1,304 +0,0 @@ -using Common.Analysis; -using Microsoft.VisualStudio.PlatformUI; -using ModernWpf; -using Newtonsoft.Json; -using PowerShellProTools.Host; -using PowerShellTools.Common.Logging; -using PowerShellTools.Options; -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.ComponentModel; -using System.IO; -using System.Linq; -using System.Text; -using System.Windows; - -namespace PowerShellTools.Shared.ToolWindows -{ - public class SettingsViewModel : INotifyPropertyChanged - { - public event PropertyChangedEventHandler PropertyChanged; - - public SettingsViewModel(bool analyzer = true) - { - AnalyzerSettings = new AnalyzerSettingsViewModel(); - if (analyzer) - { - AnalyzerVisibility = Visibility.Visible; - } - else - { - AnalyzerVisibility = Visibility.Hidden; - } - } - - - private Visibility _fullSettingsVisibility; - - public Visibility FullSettingsVisibility - { - get { return _fullSettingsVisibility; } - set { _fullSettingsVisibility = value; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(FullSettingsVisibility))); } - } - - - public Visibility AnalyzerVisibility - { - get;set; - } - - private bool _dontShowOnStartup; - public bool DontShowOnStartup - { - get - { - return _dontShowOnStartup; - } - set - { - _dontShowOnStartup = value; - GeneralOptions.Instance.DontShowLicenseInfoOnStartup = value; - GeneralOptions.Instance.Save(); - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(DontShowOnStartup))); - } - } - - public AnalyzerSettingsViewModel AnalyzerSettings { get; } - } - - public class AnalyzerSettingsViewModel : INotifyPropertyChanged - { - public event PropertyChangedEventHandler PropertyChanged; - private readonly string AnaylsisSettingsPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "PowerShell Pro Tools", "AnalysisSettings.json"); - private readonly string ScriptAnalyzerSettings = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "PowerShell Pro Tools", "PSScriptAnalyzerSettings.psd1"); - private AnalyzerSettings AnalyzerSettings = new AnalyzerSettings(); - private static readonly ILog Log = LogManager.GetLogger(typeof(AnalyzerSettingsViewModel)); - private AnalysisRule[] rules; - - public AnalyzerSettingsViewModel() - { - Load(); - } - - public void Load() - { - if (PowerShellToolsPackage.Instance?.AnalysisService == null) - { - return; - } - - var proToolsDir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "PowerShell Pro Tools"); - - if (!Directory.Exists(proToolsDir)) - { - Directory.CreateDirectory(proToolsDir); - } - - if (!PowerShellToolsPackage.Instance.AnalysisService.IsAnalyzerInstalled()) - { - var dialogResult = System.Windows.Forms.MessageBox.Show("PSScriptAnalyzer is not installed. It is requried for script analysis. Would you like to install PSScriptAnalyzer?", "PSScriptAnalyzer Not Installed", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Information); - if (dialogResult == System.Windows.Forms.DialogResult.Yes) - { - Status = "Installing PSScriptAnalyzer..."; - if (!PowerShellToolsPackage.Instance.AnalysisService.InstallScriptAnalyzer(out string error)) - { - System.Windows.Forms.MessageBox.Show($"Failed to install PSScriptAnalyzer. {error}", "Failed", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); - return; - } - } - else - { - return; - } - } - - Status = "PSScriptAnalyzer Version: " + PowerShellToolsPackage.Instance.AnalysisService.GetScriptAnalyzerVersion(); - - rules = (PowerShellToolsPackage.Instance.AnalysisService.GetAnalysisRules()).Rules.ToArray(); - LoadSettings(); - } - - public void LoadSettings() - { - if (rules == null) - { - rules = Array.Empty(); - } - - if (!File.Exists(AnaylsisSettingsPath)) - { - AnalyzerSettings.EnabledLevels = new List { "Error", "Information", "Warning", "ParseError" }; - AnalyzerSettings.EnabledRules = rules.Select(m => m.Name).ToList(); - SaveSettings(); - } - else - { - var json = File.ReadAllText(AnaylsisSettingsPath); - AnalyzerSettings = JsonConvert.DeserializeObject(json); - } - - var levels = new[] - { - new AnalysisRuleViewModel { Name = "Error", Enabled = AnalyzerSettings.EnabledLevels.Contains("Error") }, - new AnalysisRuleViewModel { Name = "Information", Enabled = AnalyzerSettings.EnabledLevels.Contains("Information") }, - new AnalysisRuleViewModel { Name = "Warning", Enabled = AnalyzerSettings.EnabledLevels.Contains("Warning") }, - new AnalysisRuleViewModel { Name = "ParseError", Enabled = AnalyzerSettings.EnabledLevels.Contains("ParseError") }, - }; - - Levels = new ObservableCollection(levels); - Enabled = AnalysisOptions.Instance.ScriptAnalyzer; - SolutionWideAnalysis = AnalysisOptions.Instance.SolutionWideAnalysis; - AnalyzeOnSave = AnalysisOptions.Instance.AnalyzeOnSave; - - Rules = new ObservableCollection(rules.Select(m => new AnalysisRuleViewModel - { - Name = m.Name, - Description = m.Description, - Enabled = AnalyzerSettings.EnabledRules.Contains(m.Name) - }).ToList()); - } - - public void FilterRules(string text) - { - if (string.IsNullOrEmpty(text)) - { - Rules = new ObservableCollection(rules.Select(m => new AnalysisRuleViewModel - { - Name = m.Name, - Description = m.Description, - Enabled = AnalyzerSettings.EnabledRules.Contains(m.Name) - }).ToList()); - } - else - { - Rules = new ObservableCollection(rules.Where(m => m.Name.ToLower().Contains(text.ToLower())).Select(m => new AnalysisRuleViewModel - { - Name = m.Name, - Description = m.Description, - Enabled = AnalyzerSettings.EnabledRules.Contains(m.Name) - }).ToList()); - } - - } - - public void SaveSettings() - { - try - { - AnalysisOptions.Instance.SolutionWideAnalysis = SolutionWideAnalysis; - AnalysisOptions.Instance.ScriptAnalyzer = Enabled; - AnalysisOptions.Instance.AnalyzeOnSave = AnalyzeOnSave; - AnalysisOptions.Instance.Save(); - AnalysisOptions.Instance.OnScriptAnalyzerChanged(); - AnalysisOptions.Instance.OnSolutionWideAnalysisChanged(); - AnalysisOptions.Instance.OnAnalyzeOnSaveChanged(); - - AnalyzerSettings.EnabledRules = Rules.Where(m => m.Enabled).Select(m => m.Name).ToList(); - var json = JsonConvert.SerializeObject(AnalyzerSettings); - File.WriteAllText(AnaylsisSettingsPath, json); - - var excludedRules = rules.Where(m => !AnalyzerSettings.EnabledRules.Contains(m.Name)); - - string excludedRulesString = string.Empty; - if (excludedRules.Any()) - { - excludedRulesString = excludedRules.Select(m => $"'{m.Name}'").Aggregate((x, y) => x + "," + y); - } - - string enabledLevelsString = string.Empty; - if (Levels.Any(m => m.Enabled)) - { - AnalyzerSettings.EnabledLevels = Levels.Where(m => m.Enabled).Select(m => m.Name).ToList(); - enabledLevelsString = AnalyzerSettings.EnabledLevels.Select(x => $"'{x}'").Aggregate((x, y) => x + "," + y); - } - - var script = $@"@{{ - Severity = @({enabledLevelsString}) - ExcludeRules = @({excludedRulesString}) -}}"; - - File.WriteAllText(ScriptAnalyzerSettings, script); - } - catch (Exception ex) - { - Log.Error("Failed to save settings", ex); - } - } - - private string _status; - public string Status - { - get - { - return _status; - } - set - { - _status = value; - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Status))); - } - } - - public bool AllSelected - { - get - { - return Rules.All(m => m.Enabled); - } - set - { - foreach(var rule in Rules) - { - rule.Enabled = value; - } - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(AllSelected))); - } - } - - public bool Enabled { get; set; } - public bool SolutionWideAnalysis { get; set; } - public bool AnalyzeOnSave { get; set; } - - private ObservableCollection _rules; - public ObservableCollection Rules - { - get - { - return _rules; - } - set - { - _rules = value; - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Rules))); - } - } - - public ObservableCollection _levels; - public ObservableCollection Levels - { - get - { - return _levels; - } - set - { - _levels = value; - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Levels))); - } - } - } - - internal class AnalyzerSettings - { - public List EnabledLevels { get; set; } - public List EnabledRules { get; set; } - } - - public class AnalysisRuleViewModel - { - public bool Enabled { get; set; } - public string Name { get; set; } - public string Description { get; set; } - } -} diff --git a/PowerShellTools.Test/packages.lock.json b/PowerShellTools.Test/packages.lock.json index 69e84f8..7403ec1 100644 --- a/PowerShellTools.Test/packages.lock.json +++ b/PowerShellTools.Test/packages.lock.json @@ -1240,9 +1240,19 @@ "PowerShellProTools.VSCode": "[1.0.0, )", "PowerShellStandard.Library": "[5.1.0, )", "PowerShellTools.Interfaces": "[1.0.2, )", + "PowerShellTools.Templates.Data": "[1.0.0, )", + "PowerShellTools.Templates.FormProject": "[1.0.0, )", + "PowerShellTools.Templates.Module": "[1.0.0, )", + "PowerShellTools.Templates.ModuleProject": "[1.0.0, )", + "PowerShellTools.Templates.Script": "[1.0.0, )", + "PowerShellTools.Templates.ScriptProject": "[1.0.0, )", + "PowerShellTools.Templates.Test": "[1.0.0, )", "PowerShellTools.TestAdapter": "[1.0.0, )", "PowerShellToolsPro.MsBuild": "[1.0.0, )", "PowerShellToolsPro.Packager": "[2.0.0, )", + "PowerShellToolsPro.Templates.FormItem": "[1.0.0, )", + "PowerShellToolsPro.Templates.ServiceItem": "[1.0.0, )", + "PowerShellToolsPro.Templates.WpfItem": "[1.0.0, )", "Serilog.Sinks.File": "[5.0.0, )", "StreamJsonRpc": "[1.4.134, )", "StrongNamer": "[0.2.5, )", @@ -1255,6 +1265,27 @@ "System.ValueTuple": "[4.5.0, )" } }, + "powershelltools.templates.data": { + "type": "Project" + }, + "powershelltools.templates.formproject": { + "type": "Project" + }, + "powershelltools.templates.module": { + "type": "Project" + }, + "powershelltools.templates.moduleproject": { + "type": "Project" + }, + "powershelltools.templates.script": { + "type": "Project" + }, + "powershelltools.templates.scriptproject": { + "type": "Project" + }, + "powershelltools.templates.test": { + "type": "Project" + }, "powershelltools.testadapter": { "type": "Project", "dependencies": { @@ -1293,6 +1324,323 @@ "System.Drawing.Common": "[6.0.0, )", "System.Text.Json": "[4.6.0, )" } + }, + "powershelltoolspro.templates.formitem": { + "type": "Project" + }, + "powershelltoolspro.templates.serviceitem": { + "type": "Project" + }, + "powershelltoolspro.templates.wpfitem": { + "type": "Project" + } + }, + ".NETFramework,Version=v4.7.2/win": { + "Microsoft.Win32.Registry": { + "type": "Direct", + "requested": "[5.0.0, )", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.IO.Compression": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==" + }, + "System.IO.Pipes.AccessControl": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "uqKLJb0Cukb8vG6JVKbJXOAmMWUWOue4ZTjMn7qrfGLZHww3iV8xV1amipI238kmmoFQx6I8GP2bjDM/ss5pQQ==", + "dependencies": { + "System.Security.AccessControl": "4.5.0", + "System.Security.Principal.Windows": "4.5.0" + } + }, + "System.Net.Http": { + "type": "Transitive", + "resolved": "4.3.4", + "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", + "dependencies": { + "System.Security.Cryptography.X509Certificates": "4.3.0" + } + }, + "System.Runtime.InteropServices.RuntimeInformation": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Cryptography.Algorithms": { + "type": "Transitive", + "resolved": "4.3.1", + "contentHash": "DVUblnRfnarrI5olEC2B/OCsJQd0anjVaObQMndHSc43efbc88/RMOlDyg/EyY0ix5ecyZMXS8zMksb5ukebZA==", + "dependencies": { + "System.IO": "4.3.0", + "System.Runtime": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0" + } + }, + "System.Security.Cryptography.Encoding": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==" + }, + "System.Security.Cryptography.X509Certificates": { + "type": "Transitive", + "resolved": "4.3.2", + "contentHash": "uwlfOnvJd7rXRvP3aV126Q9XebIIEGEaZ245Rd5/ZwOg7U7AU+AmpE0vRh2F0DFjfOTuk7MAexv4nYiNP/RYnQ==", + "dependencies": { + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/win-arm64": { + "Microsoft.Win32.Registry": { + "type": "Direct", + "requested": "[5.0.0, )", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.IO.Compression": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==" + }, + "System.IO.Pipes.AccessControl": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "uqKLJb0Cukb8vG6JVKbJXOAmMWUWOue4ZTjMn7qrfGLZHww3iV8xV1amipI238kmmoFQx6I8GP2bjDM/ss5pQQ==", + "dependencies": { + "System.Security.AccessControl": "4.5.0", + "System.Security.Principal.Windows": "4.5.0" + } + }, + "System.Net.Http": { + "type": "Transitive", + "resolved": "4.3.4", + "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", + "dependencies": { + "System.Security.Cryptography.X509Certificates": "4.3.0" + } + }, + "System.Runtime.InteropServices.RuntimeInformation": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Cryptography.Algorithms": { + "type": "Transitive", + "resolved": "4.3.1", + "contentHash": "DVUblnRfnarrI5olEC2B/OCsJQd0anjVaObQMndHSc43efbc88/RMOlDyg/EyY0ix5ecyZMXS8zMksb5ukebZA==", + "dependencies": { + "System.IO": "4.3.0", + "System.Runtime": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0" + } + }, + "System.Security.Cryptography.Encoding": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==" + }, + "System.Security.Cryptography.X509Certificates": { + "type": "Transitive", + "resolved": "4.3.2", + "contentHash": "uwlfOnvJd7rXRvP3aV126Q9XebIIEGEaZ245Rd5/ZwOg7U7AU+AmpE0vRh2F0DFjfOTuk7MAexv4nYiNP/RYnQ==", + "dependencies": { + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/win-x64": { + "Microsoft.Win32.Registry": { + "type": "Direct", + "requested": "[5.0.0, )", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.IO.Compression": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==" + }, + "System.IO.Pipes.AccessControl": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "uqKLJb0Cukb8vG6JVKbJXOAmMWUWOue4ZTjMn7qrfGLZHww3iV8xV1amipI238kmmoFQx6I8GP2bjDM/ss5pQQ==", + "dependencies": { + "System.Security.AccessControl": "4.5.0", + "System.Security.Principal.Windows": "4.5.0" + } + }, + "System.Net.Http": { + "type": "Transitive", + "resolved": "4.3.4", + "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", + "dependencies": { + "System.Security.Cryptography.X509Certificates": "4.3.0" + } + }, + "System.Runtime.InteropServices.RuntimeInformation": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Cryptography.Algorithms": { + "type": "Transitive", + "resolved": "4.3.1", + "contentHash": "DVUblnRfnarrI5olEC2B/OCsJQd0anjVaObQMndHSc43efbc88/RMOlDyg/EyY0ix5ecyZMXS8zMksb5ukebZA==", + "dependencies": { + "System.IO": "4.3.0", + "System.Runtime": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0" + } + }, + "System.Security.Cryptography.Encoding": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==" + }, + "System.Security.Cryptography.X509Certificates": { + "type": "Transitive", + "resolved": "4.3.2", + "contentHash": "uwlfOnvJd7rXRvP3aV126Q9XebIIEGEaZ245Rd5/ZwOg7U7AU+AmpE0vRh2F0DFjfOTuk7MAexv4nYiNP/RYnQ==", + "dependencies": { + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/win-x86": { + "Microsoft.Win32.Registry": { + "type": "Direct", + "requested": "[5.0.0, )", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.IO.Compression": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==" + }, + "System.IO.Pipes.AccessControl": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "uqKLJb0Cukb8vG6JVKbJXOAmMWUWOue4ZTjMn7qrfGLZHww3iV8xV1amipI238kmmoFQx6I8GP2bjDM/ss5pQQ==", + "dependencies": { + "System.Security.AccessControl": "4.5.0", + "System.Security.Principal.Windows": "4.5.0" + } + }, + "System.Net.Http": { + "type": "Transitive", + "resolved": "4.3.4", + "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", + "dependencies": { + "System.Security.Cryptography.X509Certificates": "4.3.0" + } + }, + "System.Runtime.InteropServices.RuntimeInformation": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Cryptography.Algorithms": { + "type": "Transitive", + "resolved": "4.3.1", + "contentHash": "DVUblnRfnarrI5olEC2B/OCsJQd0anjVaObQMndHSc43efbc88/RMOlDyg/EyY0ix5ecyZMXS8zMksb5ukebZA==", + "dependencies": { + "System.IO": "4.3.0", + "System.Runtime": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0" + } + }, + "System.Security.Cryptography.Encoding": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==" + }, + "System.Security.Cryptography.X509Certificates": { + "type": "Transitive", + "resolved": "4.3.2", + "contentHash": "uwlfOnvJd7rXRvP3aV126Q9XebIIEGEaZ245Rd5/ZwOg7U7AU+AmpE0vRh2F0DFjfOTuk7MAexv4nYiNP/RYnQ==", + "dependencies": { + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" } } } diff --git a/PowerShellTools/PowerShellTools.vsct b/PowerShellTools/PowerShellTools.vsct index e599e14..7920d82 100644 --- a/PowerShellTools/PowerShellTools.vsct +++ b/PowerShellTools/PowerShellTools.vsct @@ -233,13 +233,6 @@ - diff --git a/PowerShellTools/packages.lock.json b/PowerShellTools/packages.lock.json index a313aa7..3f92283 100644 --- a/PowerShellTools/packages.lock.json +++ b/PowerShellTools/packages.lock.json @@ -1158,6 +1158,27 @@ "PowerShellStandard.Library": "[5.1.0, )" } }, + "powershelltools.templates.data": { + "type": "Project" + }, + "powershelltools.templates.formproject": { + "type": "Project" + }, + "powershelltools.templates.module": { + "type": "Project" + }, + "powershelltools.templates.moduleproject": { + "type": "Project" + }, + "powershelltools.templates.script": { + "type": "Project" + }, + "powershelltools.templates.scriptproject": { + "type": "Project" + }, + "powershelltools.templates.test": { + "type": "Project" + }, "powershelltools.testadapter": { "type": "Project", "dependencies": { @@ -1196,6 +1217,335 @@ "System.Drawing.Common": "[6.0.0, )", "System.Text.Json": "[4.6.0, )" } + }, + "powershelltoolspro.templates.formitem": { + "type": "Project" + }, + "powershelltoolspro.templates.serviceitem": { + "type": "Project" + }, + "powershelltoolspro.templates.wpfitem": { + "type": "Project" + } + }, + ".NETFramework,Version=v4.7.2/win": { + "Microsoft.Win32.Registry": { + "type": "Direct", + "requested": "[4.5.0, )", + "resolved": "4.5.0", + "contentHash": "+FWlwd//+Tt56316p00hVePBCouXyEzT86Jb3+AuRotTND0IYn0OO3obs1gnQEs/txEnt+rF2JBGLItTG+Be6A==", + "dependencies": { + "System.Security.AccessControl": "4.5.0", + "System.Security.Principal.Windows": "4.5.0" + } + }, + "System.Net.Http": { + "type": "Direct", + "requested": "[4.3.4, )", + "resolved": "4.3.4", + "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", + "dependencies": { + "System.Security.Cryptography.X509Certificates": "4.3.0" + } + }, + "System.Security.Cryptography.Algorithms": { + "type": "Direct", + "requested": "[4.3.1, )", + "resolved": "4.3.1", + "contentHash": "DVUblnRfnarrI5olEC2B/OCsJQd0anjVaObQMndHSc43efbc88/RMOlDyg/EyY0ix5ecyZMXS8zMksb5ukebZA==", + "dependencies": { + "System.IO": "4.3.0", + "System.Runtime": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0" + } + }, + "System.Security.Cryptography.X509Certificates": { + "type": "Direct", + "requested": "[4.3.2, )", + "resolved": "4.3.2", + "contentHash": "uwlfOnvJd7rXRvP3aV126Q9XebIIEGEaZ245Rd5/ZwOg7U7AU+AmpE0vRh2F0DFjfOTuk7MAexv4nYiNP/RYnQ==", + "dependencies": { + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0" + } + }, + "System.IO.Compression": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==" + }, + "System.IO.Pipes.AccessControl": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "uqKLJb0Cukb8vG6JVKbJXOAmMWUWOue4ZTjMn7qrfGLZHww3iV8xV1amipI238kmmoFQx6I8GP2bjDM/ss5pQQ==", + "dependencies": { + "System.Security.AccessControl": "4.5.0", + "System.Security.Principal.Windows": "4.5.0" + } + }, + "System.Runtime.InteropServices.RuntimeInformation": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "vW8Eoq0TMyz5vAG/6ce483x/CP83fgm4SJe5P8Tb1tZaobcvPrbMEL7rhH1DRdrYbbb6F0vq3OlzmK0Pkwks5A==", + "dependencies": { + "System.Security.Principal.Windows": "4.5.0" + } + }, + "System.Security.Cryptography.Encoding": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==" + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "U77HfRXlZlOeIXd//Yoj6Jnk8AXlbeisf1oq1os+hxOGVnuG+lGSfGqTwTZBoORFF6j/0q7HXIl8cqwQ9aUGqQ==" + } + }, + ".NETFramework,Version=v4.7.2/win-arm64": { + "Microsoft.Win32.Registry": { + "type": "Direct", + "requested": "[4.5.0, )", + "resolved": "4.5.0", + "contentHash": "+FWlwd//+Tt56316p00hVePBCouXyEzT86Jb3+AuRotTND0IYn0OO3obs1gnQEs/txEnt+rF2JBGLItTG+Be6A==", + "dependencies": { + "System.Security.AccessControl": "4.5.0", + "System.Security.Principal.Windows": "4.5.0" + } + }, + "System.Net.Http": { + "type": "Direct", + "requested": "[4.3.4, )", + "resolved": "4.3.4", + "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", + "dependencies": { + "System.Security.Cryptography.X509Certificates": "4.3.0" + } + }, + "System.Security.Cryptography.Algorithms": { + "type": "Direct", + "requested": "[4.3.1, )", + "resolved": "4.3.1", + "contentHash": "DVUblnRfnarrI5olEC2B/OCsJQd0anjVaObQMndHSc43efbc88/RMOlDyg/EyY0ix5ecyZMXS8zMksb5ukebZA==", + "dependencies": { + "System.IO": "4.3.0", + "System.Runtime": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0" + } + }, + "System.Security.Cryptography.X509Certificates": { + "type": "Direct", + "requested": "[4.3.2, )", + "resolved": "4.3.2", + "contentHash": "uwlfOnvJd7rXRvP3aV126Q9XebIIEGEaZ245Rd5/ZwOg7U7AU+AmpE0vRh2F0DFjfOTuk7MAexv4nYiNP/RYnQ==", + "dependencies": { + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0" + } + }, + "System.IO.Compression": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==" + }, + "System.IO.Pipes.AccessControl": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "uqKLJb0Cukb8vG6JVKbJXOAmMWUWOue4ZTjMn7qrfGLZHww3iV8xV1amipI238kmmoFQx6I8GP2bjDM/ss5pQQ==", + "dependencies": { + "System.Security.AccessControl": "4.5.0", + "System.Security.Principal.Windows": "4.5.0" + } + }, + "System.Runtime.InteropServices.RuntimeInformation": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "vW8Eoq0TMyz5vAG/6ce483x/CP83fgm4SJe5P8Tb1tZaobcvPrbMEL7rhH1DRdrYbbb6F0vq3OlzmK0Pkwks5A==", + "dependencies": { + "System.Security.Principal.Windows": "4.5.0" + } + }, + "System.Security.Cryptography.Encoding": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==" + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "U77HfRXlZlOeIXd//Yoj6Jnk8AXlbeisf1oq1os+hxOGVnuG+lGSfGqTwTZBoORFF6j/0q7HXIl8cqwQ9aUGqQ==" + } + }, + ".NETFramework,Version=v4.7.2/win-x64": { + "Microsoft.Win32.Registry": { + "type": "Direct", + "requested": "[4.5.0, )", + "resolved": "4.5.0", + "contentHash": "+FWlwd//+Tt56316p00hVePBCouXyEzT86Jb3+AuRotTND0IYn0OO3obs1gnQEs/txEnt+rF2JBGLItTG+Be6A==", + "dependencies": { + "System.Security.AccessControl": "4.5.0", + "System.Security.Principal.Windows": "4.5.0" + } + }, + "System.Net.Http": { + "type": "Direct", + "requested": "[4.3.4, )", + "resolved": "4.3.4", + "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", + "dependencies": { + "System.Security.Cryptography.X509Certificates": "4.3.0" + } + }, + "System.Security.Cryptography.Algorithms": { + "type": "Direct", + "requested": "[4.3.1, )", + "resolved": "4.3.1", + "contentHash": "DVUblnRfnarrI5olEC2B/OCsJQd0anjVaObQMndHSc43efbc88/RMOlDyg/EyY0ix5ecyZMXS8zMksb5ukebZA==", + "dependencies": { + "System.IO": "4.3.0", + "System.Runtime": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0" + } + }, + "System.Security.Cryptography.X509Certificates": { + "type": "Direct", + "requested": "[4.3.2, )", + "resolved": "4.3.2", + "contentHash": "uwlfOnvJd7rXRvP3aV126Q9XebIIEGEaZ245Rd5/ZwOg7U7AU+AmpE0vRh2F0DFjfOTuk7MAexv4nYiNP/RYnQ==", + "dependencies": { + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0" + } + }, + "System.IO.Compression": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==" + }, + "System.IO.Pipes.AccessControl": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "uqKLJb0Cukb8vG6JVKbJXOAmMWUWOue4ZTjMn7qrfGLZHww3iV8xV1amipI238kmmoFQx6I8GP2bjDM/ss5pQQ==", + "dependencies": { + "System.Security.AccessControl": "4.5.0", + "System.Security.Principal.Windows": "4.5.0" + } + }, + "System.Runtime.InteropServices.RuntimeInformation": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "vW8Eoq0TMyz5vAG/6ce483x/CP83fgm4SJe5P8Tb1tZaobcvPrbMEL7rhH1DRdrYbbb6F0vq3OlzmK0Pkwks5A==", + "dependencies": { + "System.Security.Principal.Windows": "4.5.0" + } + }, + "System.Security.Cryptography.Encoding": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==" + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "U77HfRXlZlOeIXd//Yoj6Jnk8AXlbeisf1oq1os+hxOGVnuG+lGSfGqTwTZBoORFF6j/0q7HXIl8cqwQ9aUGqQ==" + } + }, + ".NETFramework,Version=v4.7.2/win-x86": { + "Microsoft.Win32.Registry": { + "type": "Direct", + "requested": "[4.5.0, )", + "resolved": "4.5.0", + "contentHash": "+FWlwd//+Tt56316p00hVePBCouXyEzT86Jb3+AuRotTND0IYn0OO3obs1gnQEs/txEnt+rF2JBGLItTG+Be6A==", + "dependencies": { + "System.Security.AccessControl": "4.5.0", + "System.Security.Principal.Windows": "4.5.0" + } + }, + "System.Net.Http": { + "type": "Direct", + "requested": "[4.3.4, )", + "resolved": "4.3.4", + "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", + "dependencies": { + "System.Security.Cryptography.X509Certificates": "4.3.0" + } + }, + "System.Security.Cryptography.Algorithms": { + "type": "Direct", + "requested": "[4.3.1, )", + "resolved": "4.3.1", + "contentHash": "DVUblnRfnarrI5olEC2B/OCsJQd0anjVaObQMndHSc43efbc88/RMOlDyg/EyY0ix5ecyZMXS8zMksb5ukebZA==", + "dependencies": { + "System.IO": "4.3.0", + "System.Runtime": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0" + } + }, + "System.Security.Cryptography.X509Certificates": { + "type": "Direct", + "requested": "[4.3.2, )", + "resolved": "4.3.2", + "contentHash": "uwlfOnvJd7rXRvP3aV126Q9XebIIEGEaZ245Rd5/ZwOg7U7AU+AmpE0vRh2F0DFjfOTuk7MAexv4nYiNP/RYnQ==", + "dependencies": { + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0" + } + }, + "System.IO.Compression": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==" + }, + "System.IO.Pipes.AccessControl": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "uqKLJb0Cukb8vG6JVKbJXOAmMWUWOue4ZTjMn7qrfGLZHww3iV8xV1amipI238kmmoFQx6I8GP2bjDM/ss5pQQ==", + "dependencies": { + "System.Security.AccessControl": "4.5.0", + "System.Security.Principal.Windows": "4.5.0" + } + }, + "System.Runtime.InteropServices.RuntimeInformation": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "vW8Eoq0TMyz5vAG/6ce483x/CP83fgm4SJe5P8Tb1tZaobcvPrbMEL7rhH1DRdrYbbb6F0vq3OlzmK0Pkwks5A==", + "dependencies": { + "System.Security.Principal.Windows": "4.5.0" + } + }, + "System.Security.Cryptography.Encoding": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==" + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "U77HfRXlZlOeIXd//Yoj6Jnk8AXlbeisf1oq1os+hxOGVnuG+lGSfGqTwTZBoORFF6j/0q7HXIl8cqwQ9aUGqQ==" } } } diff --git a/PowerShellToolsPro.Cmdlets/PowerShellProTools.psd1 b/PowerShellToolsPro.Cmdlets/PowerShellProTools.psd1 index 7198d69..c1c1923 100644 --- a/PowerShellToolsPro.Cmdlets/PowerShellProTools.psd1 +++ b/PowerShellToolsPro.Cmdlets/PowerShellProTools.psd1 @@ -3,7 +3,7 @@ # # Generated by: Ironman Software, LLC # -# Generated on: 7/18/2024 +# Generated on: 12/10/2024 # @{ @@ -18,7 +18,7 @@ ModuleVersion = '2024.7.0' # CompatiblePSEditions = @() # ID used to uniquely identify this module -GUID = 'c9ea3714-d2c0-4a2d-9e85-e275d09854cd' +GUID = '2439a3d7-b56b-4f35-81d1-05bc1c1ec287' # Author of this module Author = 'Ironman Software, LLC' diff --git a/PowerShellToolsPro.Cmdlets/PowerShellProTools.psm1 b/PowerShellToolsPro.Cmdlets/PowerShellProTools.psm1 index 3bd0778..a97ff3f 100644 --- a/PowerShellToolsPro.Cmdlets/PowerShellProTools.psm1 +++ b/PowerShellToolsPro.Cmdlets/PowerShellProTools.psm1 @@ -52,7 +52,7 @@ function Expand-Object { } # SIG # Begin signature block -# MIIo2gYJKoZIhvcNAQcCoIIoyzCCKMcCAQMxDTALBglghkgBZQMEAgEwewYKKwYB +# MIIo2QYJKoZIhvcNAQcCoIIoyjCCKMYCAQMxDTALBglghkgBZQMEAgEwewYKKwYB # BAGCNwIBBKBtBGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAYHe0V71QM+EvM # YkGubPgWGiXnp7h+1iduu7+KNbvDzKCCDkYwggbmMIIEzqADAgECAhB3vQ4DobcI @@ -131,7 +131,7 @@ function Expand-Object { # Hk7NR1OHrPR2mO8uPIzHwE54UIc1YOBs49SInHsTkDzoFAFa4cP5Mk7OdclJfbN7 # h/h58+um8CqNPbRAJXvNdWPHotRYuHUz7aKGMEYjgOk03S2ZTTUrVN9tSTdhgfjN # qavYppaJrKKm5VhrEER2K2HAwW7GoW9mh25AzkmsQ4aoeedgLsnvVV8OGfYrT2bO -# 01Djyr6LsTSIjXMufvzonovfy6b2oqfeHJtJCnataBAxghnqMIIZ5gIBATBpMFkx +# 01Djyr6LsTSIjXMufvzonovfy6b2oqfeHJtJCnataBAxghnpMIIZ5QIBATBpMFkx # CzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMS8wLQYDVQQD # EyZHbG9iYWxTaWduIEdDQyBSNDUgQ29kZVNpZ25pbmcgQ0EgMjAyMAIMD8vFb5IC # fmzAlZMIMAsGCWCGSAFlAwQCAaB8MBAGCisGAQQBgjcCAQwxAjAAMBkGCSqGSIb3 @@ -148,126 +148,126 @@ function Expand-Object { # 5wt42E1GzpzBKtixmjcbDjWPhJ0WCLy9KhJ00B4dCxJVUhHU7k+c22nXE7bl65y0 # clFG5sofHpXy5cf09GSKuJAaDai1OKOt8IIaaidamwajv5ZN8tu+qmAeDxc5En4M # iWMVDn2CG5Dr0mhKFZxGGMNKxgCpyt6OGMU48lkCrwVawQQtMFgO4wNcnysM+Khq -# 8GehghbYMIIW1AYKKwYBBAGCNwMDATGCFsQwghbABgkqhkiG9w0BBwKgghaxMIIW -# rQIBAzENMAsGCWCGSAFlAwQCATCB8wYLKoZIhvcNAQkQAQSggeMEgeAwgd0CAQEG +# 8GehghbXMIIW0wYKKwYBBAGCNwMDATGCFsMwgha/BgkqhkiG9w0BBwKgghawMIIW +# rAIBAzENMAsGCWCGSAFlAwQCATCB8gYLKoZIhvcNAQkQAQSggeIEgd8wgdwCAQEG # CysGAQQBoDICAwECMDEwDQYJYIZIAWUDBAIBBQAEICkx1mva4klxbeW4WP91UJmg -# DWt4BcXyh6cRKmeE4SEcAhRbAFWhxsbzCALkfpxNZF79igakvhgPMjAyNDA3MTgx -# NTI1NDNaMAMCAQECCQDok6cHYJe4xKBhpF8wXTELMAkGA1UEBhMCQkUxGTAXBgNV -# BAoMEEdsb2JhbFNpZ24gbnYtc2ExMzAxBgNVBAMMKkdsb2JhbHNpZ24gVFNBIGZv -# ciBDb2RlU2lnbjEgLSBSNiAtIDIwMjMxMaCCElQwggWDMIIDa6ADAgECAg5F5rsD -# gzPDhWVI5v9FUTANBgkqhkiG9w0BAQwFADBMMSAwHgYDVQQLExdHbG9iYWxTaWdu -# IFJvb3QgQ0EgLSBSNjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xv -# YmFsU2lnbjAeFw0xNDEyMTAwMDAwMDBaFw0zNDEyMTAwMDAwMDBaMEwxIDAeBgNV -# BAsTF0dsb2JhbFNpZ24gUm9vdCBDQSAtIFI2MRMwEQYDVQQKEwpHbG9iYWxTaWdu -# MRMwEQYDVQQDEwpHbG9iYWxTaWduMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAlQfoc8pm+ewUyns89w0I8bRFCyyCtEjG61s8roO4QZIzFKRvf+kqzMaw -# iGvFtonRxrL/FM5RFCHsSt0bWsbWh+5NOhUG7WRmC5KAykTec5RO86eJf094YwjI -# ElBtQmYvTbl5KE1SGooagLcZgQ5+xIq8ZEwhHENo1z08isWyZtWQmrcxBsW+4m0y -# BqYe+bnrqqO4v76CY1DQ8BiJ3+QPefXqoh8q0nAue+e8k7ttU+JIfIwQBzj/ZrJ3 -# YX7g6ow8qrSk9vOVShIHbf2MsonP0KBhd8hYdLDUIzr3XTrKotudCd5dRC2Q8YHN -# V5L6frxQBGM032uTGL5rNrI55KwkNrfw77YcE1eTtt6y+OKFt3OiuDWqRfLgnTah -# b1SK8XJWbi6IxVFCRBWU7qPFOJabTk5aC0fzBjZJdzC8cTflpuwhCHX85mEWP3fV -# 2ZGXhAps1AJNdMAU7f05+4PyXhShBLAL6f7uj+FuC7IIs2FmCWqxBjplllnA8DX9 -# ydoojRoRh3CBCqiadR2eOoYFAJ7bgNYl+dwFnidZTHY5W+r5paHYgw/R/98wEfmF -# zzNI9cptZBQselhP00sIScWVZBpjDnk99bOMylitnEJFeW4OhxlcVLFltr+Mm9wT -# 6Q1vuC7cZ27JixG1hBSKABlwg3mRl5HUGie/Nx4yB9gUYzwoTK8CAwEAAaNjMGEw -# DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFK5sBaOT -# E+Ki5+LXHNbH8H/IZ1OgMB8GA1UdIwQYMBaAFK5sBaOTE+Ki5+LXHNbH8H/IZ1Og -# MA0GCSqGSIb3DQEBDAUAA4ICAQCDJe3o0f2VUs2ewASgkWnmXNCE3tytok/oR3jW -# ZZipW6g8h3wCitFutxZz5l/AVJjVdL7BzeIRka0jGD3d4XJElrSVXsB7jpl4FkMT -# VlezorM7tXfcQHKso+ubNT6xCCGh58RDN3kyvrXnnCxMvEMpmY4w06wh4OMd+tgH -# M3ZUACIquU0gLnBo2uVT/INc053y/0QMRGby0uO9RgAabQK6JV2NoTFR3VRGHE3b -# mZbvGhwEXKYV73jgef5d2z6qTFX9mhWpb+Gm+99wMOnD7kJG7cKTBYn6fWN7P9Bx -# gXwA6JiuDng0wyX7rwqfIGvdOxOPEoziQRpIenOgd2nHtlx/gsge/lgbKCuobK1e -# bcAF0nu364D+JTf+AptorEJdw+71zNzwUHXSNmmc5nsE324GabbeCglIWYfrexRg -# emSqaUPvkcdM7BjdbO9TLYyZ4V7ycj7PVMi9Z+ykD0xF/9O5MCMHTI8Qv4aW2Zla -# tJlXHKTMuxWJU7osBQ/kxJ4ZsRg01Uyduu33H68klQR4qAO77oHl2l98i0qhkHQl -# p7M+S8gsVr3HyO844lyS8Hn3nIS6dC1hASB+ftHyTwdZX4stQ1LrRgyU4fVmR3l3 -# 1VRbH60kN8tFWk6gREjI2LCZxRWECfbWSUnAZbjmGnFuoKjxguhFPmzWAtcKZ4MF -# WsmkEDCCBlkwggRBoAMCAQICDQHsHJJA3v0uQF18R3QwDQYJKoZIhvcNAQEMBQAw -# TDEgMB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkds -# b2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTgwNjIwMDAwMDAwWhcN -# MzQxMjEwMDAwMDAwWjBbMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2ln -# biBudi1zYTExMC8GA1UEAxMoR2xvYmFsU2lnbiBUaW1lc3RhbXBpbmcgQ0EgLSBT -# SEEzODQgLSBHNDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPAC4jAj -# +uAb4Zp0s691g1+pR1LHYTpjfDkjeW10/DHkdBIZlvrOJ2JbrgeKJ+5Xo8Q17bM0 -# x6zDDOuAZm3RKErBLLu5cPJyroz3mVpddq6/RKh8QSSOj7rFT/82QaunLf14TkOI -# /pMZF9nuMc+8ijtuasSI8O6X9tzzGKBLmRwOh6cm4YjJoOWZ4p70nEw/XVvstu/S -# Zc9FC1Q9sVRTB4uZbrhUmYqoMZI78np9/A5Y34Fq4bBsHmWCKtQhx5T+QpY78Qux -# f39GmA6HPXpl69FWqS69+1g9tYX6U5lNW3TtckuiDYI3GQzQq+pawe8P1Zm5P/RP -# NfGcD9M3E1LZJTTtlu/4Z+oIvo9Jev+QsdT3KRXX+Q1d1odDHnTEcCi0gHu9Kpu7 -# hOEOrG8NubX2bVb+ih0JPiQOZybH/LINoJSwspTMe+Zn/qZYstTYQRLBVf1ukcW7 -# sUwIS57UQgZvGxjVNupkrs799QXm4mbQDgUhrLERBiMZ5PsFNETqCK6dSWcRi4Ll -# rVqGp2b9MwMB3pkl+XFu6ZxdAkxgPM8CjwH9cu6S8acS3kISTeypJuV3AqwOVwwJ -# 0WGeJoj8yLJN22TwRZ+6wT9Uo9h2ApVsao3KIlz2DATjKfpLsBzTN3SE2R1mqzRz -# jx59fF6W1j0ZsJfqjFCRba9Xhn4QNx1rGhTfAgMBAAGjggEpMIIBJTAOBgNVHQ8B -# Af8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU6hbGaefjy1dF -# OTOk8EC+0MO9ZZYwHwYDVR0jBBgwFoAUrmwFo5MT4qLn4tcc1sfwf8hnU6AwPgYI -# KwYBBQUHAQEEMjAwMC4GCCsGAQUFBzABhiJodHRwOi8vb2NzcDIuZ2xvYmFsc2ln -# bi5jb20vcm9vdHI2MDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwuZ2xvYmFs -# c2lnbi5jb20vcm9vdC1yNi5jcmwwRwYDVR0gBEAwPjA8BgRVHSAAMDQwMgYIKwYB -# BQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMA0G -# CSqGSIb3DQEBDAUAA4ICAQB/4ojZV2crQl+BpwkLusS7KBhW1ky/2xsHcMb7Cwmt -# ADpgMx85xhZrGUBJJQge5Jv31qQNjx6W8oaiF95Bv0/hvKvN7sAjjMaF/ksVJPkY -# ROwfwqSs0LLP7MJWZR29f/begsi3n2HTtUZImJcCZ3oWlUrbYsbQswLMNEhFVd3s -# 6UqfXhTtchBxdnDSD5bz6jdXlJEYr9yNmTgZWMKpoX6ibhUm6rT5fyrn50hkaS/S -# mqFy9vckS3RafXKGNbMCVx+LnPy7rEze+t5TTIP9ErG2SVVPdZ2sb0rILmq5yojD -# EjBOsghzn16h1pnO6X1LlizMFmsYzeRZN4YJLOJF1rLNboJ1pdqNHrdbL4guPX3x -# 8pEwBZzOe3ygxayvUQbwEccdMMVRVmDofJU9IuPVCiRTJ5eA+kiJJyx54jzlmx7j -# qoSCiT7ASvUh/mIQ7R0w/PbM6kgnfIt1Qn9ry/Ola5UfBFg0ContglDk0Xuoyea+ -# SKorVdmNtyUgDhtRoNRjqoPqbHJhSsn6Q8TGV8Wdtjywi7C5HDHvve8U2BRAbCAd -# wi3oC8aNbYy2ce1SIf4+9p+fORqurNIveiCx9KyqHeItFJ36lmodxjzK89kcv1NN -# pEdZfJXEQ0H5JeIsEH6B+Q2Up33ytQn12GByQFCVINRDRL76oJXnIFm2eMakaqoi -# mzCCBmwwggRUoAMCAQICEAGb6t7ITWuP92w6ny4BJBYwDQYJKoZIhvcNAQELBQAw -# WzELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExMTAvBgNV -# BAMTKEdsb2JhbFNpZ24gVGltZXN0YW1waW5nIENBIC0gU0hBMzg0IC0gRzQwHhcN -# MjMxMTA3MTcxMzQwWhcNMzQxMjA5MTcxMzQwWjBdMQswCQYDVQQGEwJCRTEZMBcG -# A1UECgwQR2xvYmFsU2lnbiBudi1zYTEzMDEGA1UEAwwqR2xvYmFsc2lnbiBUU0Eg -# Zm9yIENvZGVTaWduMSAtIFI2IC0gMjAyMzExMIIBojANBgkqhkiG9w0BAQEFAAOC -# AY8AMIIBigKCAYEA6oQ3UGg8lYW1SFRxl/OEcsmdgNMI3Fm7v8tNkGlHieUs2PGo -# an5gN0lzm7iYsxTg74yTcCC19SvXZgV1P3qEUKlSD+DW52/UHDUu4C8pJKOOdyUn -# 4LjzfWR1DJpC5cad4tiHc4vvoI2XfhagxLJGz2DGzw+BUIDdT+nkRqI0pz4Yx2u0 -# tvu+2qlWfn+cXTY9YzQhS8jSoxMaPi9RaHX5f/xwhBFlMxKzRmUohKAzwJKd7bgf -# iWPQHnssW7AE9L1yY86wMSEBAmpysiIs7+sqOxDV8Zr0JqIs/FMBBHkjaVHTXb5z -# hMubg4htINIgzoGraiJLeZBC5oJCrwPr1NDag3rDLUjxzUWRtxFB3RfvQPwSorLA -# WapUl05tw3rdhobUOzdHOOgDPDG/TDN7Q+zw0P9lpp+YPdLGulkibBBYEcUEzOii -# mLAdM9DzlR347XG0C0HVZHmivGAuw3rJ3nA3EhY+Ao9dOBGwBIlni6UtINu41vWc -# 9Q+8iL8nLMP5IKLBAgMBAAGjggGoMIIBpDAOBgNVHQ8BAf8EBAMCB4AwFgYDVR0l -# AQH/BAwwCgYIKwYBBQUHAwgwHQYDVR0OBBYEFPlOq764+Fv/wscD9EHunPjWdH0/ -# MFYGA1UdIARPME0wCAYGZ4EMAQQCMEEGCSsGAQQBoDIBHjA0MDIGCCsGAQUFBwIB -# FiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAMBgNVHRMB -# Af8EAjAAMIGQBggrBgEFBQcBAQSBgzCBgDA5BggrBgEFBQcwAYYtaHR0cDovL29j -# c3AuZ2xvYmFsc2lnbi5jb20vY2EvZ3N0c2FjYXNoYTM4NGc0MEMGCCsGAQUFBzAC -# hjdodHRwOi8vc2VjdXJlLmdsb2JhbHNpZ24uY29tL2NhY2VydC9nc3RzYWNhc2hh -# Mzg0ZzQuY3J0MB8GA1UdIwQYMBaAFOoWxmnn48tXRTkzpPBAvtDDvWWWMEEGA1Ud -# HwQ6MDgwNqA0oDKGMGh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20vY2EvZ3N0c2Fj -# YXNoYTM4NGc0LmNybDANBgkqhkiG9w0BAQsFAAOCAgEAlfRnz5OaQ5KDF3bWIFW8 -# if/kX7LlFRq3lxFALgBBvsU/JKAbRwczBEy0tGL/xu7TDMI0oJRcN5jrRPhf+CcK -# Ar4e0SQdI8svHKsnerOpxS8M5OWQ8BUkHqMVGfjvg+hPu2ieI299PQ1xcGEyfEZu -# 8o/RnOhDTfqD4f/E4D7+3lffBmvzagaBaKsMfCr3j0L/wHNp2xynFk8mGVhz7ZRe -# 5BqiEIIHMjvKnr/dOXXUvItUP35QlTSfkjkkUxiDUNRbL2a0e/5bKesexQX9oz37 -# obDzK3kPsUusw6PZo9wsnCsjlvZ6KrutxVe2hLZjs2CYEezG1mZvIoMcilgD9I/s -# nE7Q3+7OYSHTtZVUSTshUT2hI4WSwlvyepSEmAqPJFYiigT6tJqJSDX4b+uBhhFT -# wJN7OrTUNMxi1jVhjqZQ+4h0HtcxNSEeEb+ro2RTjlTic2ak+2Zj4TfJxGv7KzOL -# EcN0kIGDyE+Gyt1Kl9t+kFAloWHshps2UgfLPmJV7DOm5bga+t0kLgz5MokxajWV -# /vbR/xeKriMJKyGuYu737jfnsMmzFe12mrf95/7haN5EwQp04ZXIV/sU6x5a35Z1 -# xWUZ9/TVjSGvY7br9OIXRp+31wduap0r/unScU7Svk9i00nWYF9A43aZIETYSlyz -# XRrZ4qq/TVkAF55gZzpHEqAxggNJMIIDRQIBATBvMFsxCzAJBgNVBAYTAkJFMRkw -# FwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhHbG9iYWxTaWduIFRp -# bWVzdGFtcGluZyBDQSAtIFNIQTM4NCAtIEc0AhABm+reyE1rj/dsOp8uASQWMAsG -# CWCGSAFlAwQCAaCCAS0wGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMCsGCSqG -# SIb3DQEJNDEeMBwwCwYJYIZIAWUDBAIBoQ0GCSqGSIb3DQEBCwUAMC8GCSqGSIb3 -# DQEJBDEiBCBGCuN/ODiAQxKiwddeK4E1eICjIveNKKof3s4M/9gSEjCBsAYLKoZI -# hvcNAQkQAi8xgaAwgZ0wgZowgZcEIDqIepUbXrkqXuFPbLt2gjelRdAQW/BFEb3i -# X4KpFtHoMHMwX6RdMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWdu +# DWt4BcXyh6cRKmeE4SEcAhQqDx5YUf86vl5y2e53MO1yQvQ8JRgPMjAyNDEyMTAx +# NzUxMjlaMAMCAQECCGoCYc/0LFNsoGGkXzBdMQswCQYDVQQGEwJCRTEZMBcGA1UE +# CgwQR2xvYmFsU2lnbiBudi1zYTEzMDEGA1UEAwwqR2xvYmFsc2lnbiBUU0EgZm9y +# IENvZGVTaWduMSAtIFI2IC0gMjAyMzExoIISVDCCBYMwggNroAMCAQICDkXmuwOD +# M8OFZUjm/0VRMA0GCSqGSIb3DQEBDAUAMEwxIDAeBgNVBAsTF0dsb2JhbFNpZ24g +# Um9vdCBDQSAtIFI2MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9i +# YWxTaWduMB4XDTE0MTIxMDAwMDAwMFoXDTM0MTIxMDAwMDAwMFowTDEgMB4GA1UE +# CxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2JhbFNpZ24x +# EzARBgNVBAMTCkdsb2JhbFNpZ24wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK +# AoICAQCVB+hzymb57BTKezz3DQjxtEULLIK0SMbrWzyug7hBkjMUpG9/6SrMxrCI +# a8W2idHGsv8UzlEUIexK3RtaxtaH7k06FQbtZGYLkoDKRN5zlE7zp4l/T3hjCMgS +# UG1CZi9NuXkoTVIaihqAtxmBDn7EirxkTCEcQ2jXPTyKxbJm1ZCatzEGxb7ibTIG +# ph75ueuqo7i/voJjUNDwGInf5A959eqiHyrScC5757yTu21T4kh8jBAHOP9msndh +# fuDqjDyqtKT285VKEgdt/Yyyic/QoGF3yFh0sNQjOvddOsqi250J3l1ELZDxgc1X +# kvp+vFAEYzTfa5MYvms2sjnkrCQ2t/DvthwTV5O23rL44oW3c6K4NapF8uCdNqFv +# VIrxclZuLojFUUJEFZTuo8U4lptOTloLR/MGNkl3MLxxN+Wm7CEIdfzmYRY/d9XZ +# kZeECmzUAk10wBTt/Tn7g/JeFKEEsAvp/u6P4W4LsgizYWYJarEGOmWWWcDwNf3J +# 2iiNGhGHcIEKqJp1HZ46hgUAntuA1iX53AWeJ1lMdjlb6vmlodiDD9H/3zAR+YXP +# M0j1ym1kFCx6WE/TSwhJxZVkGmMOeT31s4zKWK2cQkV5bg6HGVxUsWW2v4yb3BPp +# DW+4LtxnbsmLEbWEFIoAGXCDeZGXkdQaJ783HjIH2BRjPChMrwIDAQABo2MwYTAO +# BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUrmwFo5MT +# 4qLn4tcc1sfwf8hnU6AwHwYDVR0jBBgwFoAUrmwFo5MT4qLn4tcc1sfwf8hnU6Aw +# DQYJKoZIhvcNAQEMBQADggIBAIMl7ejR/ZVSzZ7ABKCRaeZc0ITe3K2iT+hHeNZl +# mKlbqDyHfAKK0W63FnPmX8BUmNV0vsHN4hGRrSMYPd3hckSWtJVewHuOmXgWQxNW +# V7Oiszu1d9xAcqyj65s1PrEIIaHnxEM3eTK+teecLEy8QymZjjDTrCHg4x362Acz +# dlQAIiq5TSAucGja5VP8g1zTnfL/RAxEZvLS471GABptArolXY2hMVHdVEYcTduZ +# lu8aHARcphXveOB5/l3bPqpMVf2aFalv4ab733Aw6cPuQkbtwpMFifp9Y3s/0HGB +# fADomK4OeDTDJfuvCp8ga907E48SjOJBGkh6c6B3ace2XH+CyB7+WBsoK6hsrV5t +# wAXSe7frgP4lN/4Cm2isQl3D7vXM3PBQddI2aZzmewTfbgZptt4KCUhZh+t7FGB6 +# ZKppQ++Rx0zsGN1s71MtjJnhXvJyPs9UyL1n7KQPTEX/07kwIwdMjxC/hpbZmVq0 +# mVccpMy7FYlTuiwFD+TEnhmxGDTVTJ267fcfrySVBHioA7vugeXaX3yLSqGQdCWn +# sz5LyCxWvcfI7zjiXJLwefechLp0LWEBIH5+0fJPB1lfiy1DUutGDJTh9WZHeXfV +# VFsfrSQ3y0VaTqBESMjYsJnFFYQJ9tZJScBluOYacW6gqPGC6EU+bNYC1wpngwVa +# yaQQMIIGWTCCBEGgAwIBAgINAewckkDe/S5AXXxHdDANBgkqhkiG9w0BAQwFADBM +# MSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSNjETMBEGA1UEChMKR2xv +# YmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjAeFw0xODA2MjAwMDAwMDBaFw0z +# NDEyMTAwMDAwMDBaMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWdu # IG52LXNhMTEwLwYDVQQDEyhHbG9iYWxTaWduIFRpbWVzdGFtcGluZyBDQSAtIFNI -# QTM4NCAtIEc0AhABm+reyE1rj/dsOp8uASQWMA0GCSqGSIb3DQEBCwUABIIBgF7q -# r9OyqTqLF7zIne/7E/Kdz8gWopoBUV1jGRc1e2V74oluv54iHwWwNq9saj9z7Kf0 -# DmA9BbsoEDElNTsvemH0RFDFDDRnPwz7JWeDNKHUD3khkHvTEnKY+pfD5TIyfgAh -# UYXOivTUd4XlzPJb91oQtR7dBnX3inMk5lVUhfnMhzWdMAab7wXDSrh2QG/oebf2 -# k4ZIQUyPqsIdr3pi+qpU86GnR0HZRJkbrJ3lt0R+s+yuYKAQj50o7bJd9D3t3dOk -# ij3VcHR1x0ixHd3clFF0xIKlccAAScTbgWiWiWGPI0lP2xYVm5GlXp1na/VkSHyW -# 1nxv3DOlR1JRtC+0vBU4DZV9KjkHyFsnZISlajKB+X5sF1fHSlJlxeAZ8fBz+Ec6 -# j9i+MYLx44hEzUBtpNoSTWQYItIwqFRjC5+zOFprkbcxlc6sUynfCSe6NGeewdAH -# MiqIFNfac8C6W222tAP2Us0NDByNSCNsXsOCcdTxn/YKgXjA00QSjVqzEbliNQ== +# QTM4NCAtIEc0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA8ALiMCP6 +# 4BvhmnSzr3WDX6lHUsdhOmN8OSN5bXT8MeR0EhmW+s4nYluuB4on7lejxDXtszTH +# rMMM64BmbdEoSsEsu7lw8nKujPeZWl12rr9EqHxBJI6PusVP/zZBq6ct/XhOQ4j+ +# kxkX2e4xz7yKO25qxIjw7pf23PMYoEuZHA6HpybhiMmg5ZninvScTD9dW+y279Jl +# z0ULVD2xVFMHi5luuFSZiqgxkjvyen38DljfgWrhsGweZYIq1CHHlP5CljvxC7F/ +# f0aYDoc9emXr0VapLr37WD21hfpTmU1bdO1yS6INgjcZDNCr6lrB7w/Vmbk/9E81 +# 8ZwP0zcTUtklNO2W7/hn6gi+j0l6/5Cx1PcpFdf5DV3Wh0MedMRwKLSAe70qm7uE +# 4Q6sbw25tfZtVv6KHQk+JA5nJsf8sg2glLCylMx75mf+pliy1NhBEsFV/W6Rxbux +# TAhLntRCBm8bGNU26mSuzv31BebiZtAOBSGssREGIxnk+wU0ROoIrp1JZxGLguWt +# WoanZv0zAwHemSX5cW7pnF0CTGA8zwKPAf1y7pLxpxLeQhJN7Kkm5XcCrA5XDAnR +# YZ4miPzIsk3bZPBFn7rBP1Sj2HYClWxqjcoiXPYMBOMp+kuwHNM3dITZHWarNHOP +# Hn18XpbWPRmwl+qMUJFtr1eGfhA3HWsaFN8CAwEAAaOCASkwggElMA4GA1UdDwEB +# /wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTqFsZp5+PLV0U5 +# M6TwQL7Qw71lljAfBgNVHSMEGDAWgBSubAWjkxPioufi1xzWx/B/yGdToDA+Bggr +# BgEFBQcBAQQyMDAwLgYIKwYBBQUHMAGGImh0dHA6Ly9vY3NwMi5nbG9iYWxzaWdu +# LmNvbS9yb290cjYwNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9iYWxz +# aWduLmNvbS9yb290LXI2LmNybDBHBgNVHSAEQDA+MDwGBFUdIAAwNDAyBggrBgEF +# BQcCARYmaHR0cHM6Ly93d3cuZ2xvYmFsc2lnbi5jb20vcmVwb3NpdG9yeS8wDQYJ +# KoZIhvcNAQEMBQADggIBAH/iiNlXZytCX4GnCQu6xLsoGFbWTL/bGwdwxvsLCa0A +# OmAzHznGFmsZQEklCB7km/fWpA2PHpbyhqIX3kG/T+G8q83uwCOMxoX+SxUk+RhE +# 7B/CpKzQss/swlZlHb1/9t6CyLefYdO1RkiYlwJnehaVSttixtCzAsw0SEVV3ezp +# Sp9eFO1yEHF2cNIPlvPqN1eUkRiv3I2ZOBlYwqmhfqJuFSbqtPl/KufnSGRpL9Ka +# oXL29yRLdFp9coY1swJXH4uc/LusTN763lNMg/0SsbZJVU91naxvSsguarnKiMMS +# ME6yCHOfXqHWmc7pfUuWLMwWaxjN5Fk3hgks4kXWss1ugnWl2o0et1sviC49ffHy +# kTAFnM57fKDFrK9RBvARxx0wxVFWYOh8lT0i49UKJFMnl4D6SIknLHniPOWbHuOq +# hIKJPsBK9SH+YhDtHTD89szqSCd8i3VCf2vL86VrlR8EWDQKie2CUOTRe6jJ5r5I +# qitV2Y23JSAOG1Gg1GOqg+pscmFKyfpDxMZXxZ22PLCLsLkcMe+97xTYFEBsIB3C +# LegLxo1tjLZx7VIh/j72n585Gq6s0i96ILH0rKod4i0UnfqWah3GPMrz2Ry/U02k +# R1l8lcRDQfkl4iwQfoH5DZSnffK1CfXYYHJAUJUg1ENEvvqglecgWbZ4xqRqqiKb +# MIIGbDCCBFSgAwIBAgIQAZvq3shNa4/3bDqfLgEkFjANBgkqhkiG9w0BAQsFADBb +# MQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTExMC8GA1UE +# AxMoR2xvYmFsU2lnbiBUaW1lc3RhbXBpbmcgQ0EgLSBTSEEzODQgLSBHNDAeFw0y +# MzExMDcxNzEzNDBaFw0zNDEyMDkxNzEzNDBaMF0xCzAJBgNVBAYTAkJFMRkwFwYD +# VQQKDBBHbG9iYWxTaWduIG52LXNhMTMwMQYDVQQDDCpHbG9iYWxzaWduIFRTQSBm +# b3IgQ29kZVNpZ24xIC0gUjYgLSAyMDIzMTEwggGiMA0GCSqGSIb3DQEBAQUAA4IB +# jwAwggGKAoIBgQDqhDdQaDyVhbVIVHGX84RyyZ2A0wjcWbu/y02QaUeJ5SzY8ahq +# fmA3SXObuJizFODvjJNwILX1K9dmBXU/eoRQqVIP4Nbnb9QcNS7gLykko453JSfg +# uPN9ZHUMmkLlxp3i2Idzi++gjZd+FqDEskbPYMbPD4FQgN1P6eRGojSnPhjHa7S2 +# +77aqVZ+f5xdNj1jNCFLyNKjExo+L1Fodfl//HCEEWUzErNGZSiEoDPAkp3tuB+J +# Y9AeeyxbsAT0vXJjzrAxIQECanKyIizv6yo7ENXxmvQmoiz8UwEEeSNpUdNdvnOE +# y5uDiG0g0iDOgatqIkt5kELmgkKvA+vU0NqDesMtSPHNRZG3EUHdF+9A/BKissBZ +# qlSXTm3Det2GhtQ7N0c46AM8Mb9MM3tD7PDQ/2Wmn5g90sa6WSJsEFgRxQTM6KKY +# sB0z0POVHfjtcbQLQdVkeaK8YC7DesnecDcSFj4Cj104EbAEiWeLpS0g27jW9Zz1 +# D7yIvycsw/kgosECAwEAAaOCAagwggGkMA4GA1UdDwEB/wQEAwIHgDAWBgNVHSUB +# Af8EDDAKBggrBgEFBQcDCDAdBgNVHQ4EFgQU+U6rvrj4W//CxwP0Qe6c+NZ0fT8w +# VgYDVR0gBE8wTTAIBgZngQwBBAIwQQYJKwYBBAGgMgEeMDQwMgYIKwYBBQUHAgEW +# Jmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMAwGA1UdEwEB +# /wQCMAAwgZAGCCsGAQUFBwEBBIGDMIGAMDkGCCsGAQUFBzABhi1odHRwOi8vb2Nz +# cC5nbG9iYWxzaWduLmNvbS9jYS9nc3RzYWNhc2hhMzg0ZzQwQwYIKwYBBQUHMAKG +# N2h0dHA6Ly9zZWN1cmUuZ2xvYmFsc2lnbi5jb20vY2FjZXJ0L2dzdHNhY2FzaGEz +# ODRnNC5jcnQwHwYDVR0jBBgwFoAU6hbGaefjy1dFOTOk8EC+0MO9ZZYwQQYDVR0f +# BDowODA2oDSgMoYwaHR0cDovL2NybC5nbG9iYWxzaWduLmNvbS9jYS9nc3RzYWNh +# c2hhMzg0ZzQuY3JsMA0GCSqGSIb3DQEBCwUAA4ICAQCV9GfPk5pDkoMXdtYgVbyJ +# /+RfsuUVGreXEUAuAEG+xT8koBtHBzMETLS0Yv/G7tMMwjSglFw3mOtE+F/4JwoC +# vh7RJB0jyy8cqyd6s6nFLwzk5ZDwFSQeoxUZ+O+D6E+7aJ4jb309DXFwYTJ8Rm7y +# j9Gc6ENN+oPh/8TgPv7eV98Ga/NqBoFoqwx8KvePQv/Ac2nbHKcWTyYZWHPtlF7k +# GqIQggcyO8qev905ddS8i1Q/flCVNJ+SOSRTGINQ1FsvZrR7/lsp6x7FBf2jPfuh +# sPMreQ+xS6zDo9mj3CycKyOW9noqu63FV7aEtmOzYJgR7MbWZm8igxyKWAP0j+yc +# TtDf7s5hIdO1lVRJOyFRPaEjhZLCW/J6lISYCo8kViKKBPq0molINfhv64GGEVPA +# k3s6tNQ0zGLWNWGOplD7iHQe1zE1IR4Rv6ujZFOOVOJzZqT7ZmPhN8nEa/srM4sR +# w3SQgYPIT4bK3UqX236QUCWhYeyGmzZSB8s+YlXsM6bluBr63SQuDPkyiTFqNZX+ +# 9tH/F4quIwkrIa5i7vfuN+ewybMV7Xaat/3n/uFo3kTBCnThlchX+xTrHlrflnXF +# ZRn39NWNIa9jtuv04hdGn7fXB25qnSv+6dJxTtK+T2LTSdZgX0DjdpkgRNhKXLNd +# Gtniqr9NWQAXnmBnOkcSoDGCA0kwggNFAgEBMG8wWzELMAkGA1UEBhMCQkUxGTAX +# BgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExMTAvBgNVBAMTKEdsb2JhbFNpZ24gVGlt +# ZXN0YW1waW5nIENBIC0gU0hBMzg0IC0gRzQCEAGb6t7ITWuP92w6ny4BJBYwCwYJ +# YIZIAWUDBAIBoIIBLTAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwKwYJKoZI +# hvcNAQk0MR4wHDALBglghkgBZQMEAgGhDQYJKoZIhvcNAQELBQAwLwYJKoZIhvcN +# AQkEMSIEIPHRDqQJ1LDOx0fuXJL0SFYwJN8hzLyrirGjtTrFel25MIGwBgsqhkiG +# 9w0BCRACLzGBoDCBnTCBmjCBlwQgOoh6lRteuSpe4U9su3aCN6VF0BBb8EURveJf +# gqkW0egwczBfpF0wWzELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24g +# bnYtc2ExMTAvBgNVBAMTKEdsb2JhbFNpZ24gVGltZXN0YW1waW5nIENBIC0gU0hB +# Mzg0IC0gRzQCEAGb6t7ITWuP92w6ny4BJBYwDQYJKoZIhvcNAQELBQAEggGAuHJl +# ek3P0mOKG+ulg8V1fw9abk+Dom/J+susPRVNIe25sgQ85CygtNSUIMan693uTl7w +# wBsr10kwvuzYlIHNpCtPTXDkCaC9Fp1biQ1VfJp97oQO1RwBsRCZnX7RjZImgwYs +# 39MEOj5nRZXfZYfn39uTUzqPUixtJPqTrswFiG+/mlPrGsYc1yvInmrrvdGjDd9v +# s5he5JV4ksGagMeu1Kp4KrxI26xTkCWUAr6NjY9+qigMIo40luEmtzIMkwdpRj0+ +# tiu7eppvET6zD7zXmzieTsciyGKx/qzGsPp5nnaWMqvqpj/9PdMuPwM8Xuh+Sigj +# S6SOB8D1CswZ8jUQZBaWRvXfKqLUNv2rJgo5nSD1pblScqR0EtK7tb0WmOf2ct4/ +# /ETnhuHJwPkZOAlYv5h/1XvxbNIEHQUGaR9cbmHpB21ISvBdQxDWzJ6iEVKkyne0 +# 9VfgOlQeFqZ1o6vwRNHbxPLHCm7E/55mcv5ywjU+CdpWOhn7Vp57m8p5Uj+I # SIG # End signature block diff --git a/PowerShellToolsPro.Packager.Test/packages.lock.json b/PowerShellToolsPro.Packager.Test/packages.lock.json index 34ba0f9..ebb10c0 100644 --- a/PowerShellToolsPro.Packager.Test/packages.lock.json +++ b/PowerShellToolsPro.Packager.Test/packages.lock.json @@ -205,6 +205,110 @@ "powershelltoolspro.packager.test.testmodule": { "type": "Project" } + }, + ".NETFramework,Version=v4.7.2/win": { + "Microsoft.Win32.Registry": { + "type": "Direct", + "requested": "[5.0.0, )", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Direct", + "requested": "[5.0.0, )", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + } + }, + ".NETFramework,Version=v4.7.2/win-arm64": { + "Microsoft.Win32.Registry": { + "type": "Direct", + "requested": "[5.0.0, )", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Direct", + "requested": "[5.0.0, )", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + } + }, + ".NETFramework,Version=v4.7.2/win-x64": { + "Microsoft.Win32.Registry": { + "type": "Direct", + "requested": "[5.0.0, )", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Direct", + "requested": "[5.0.0, )", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + } + }, + ".NETFramework,Version=v4.7.2/win-x86": { + "Microsoft.Win32.Registry": { + "type": "Direct", + "requested": "[5.0.0, )", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Direct", + "requested": "[5.0.0, )", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + } } } } \ No newline at end of file