From 6ca374e447f43fe998ff9c6f2a5b3871c7023c56 Mon Sep 17 00:00:00 2001 From: KawaiiZapic <577358285@qq.com> Date: Wed, 27 Sep 2023 15:02:13 +0800 Subject: [PATCH] init --- .filenesting.json | 3 + .gitignore | 398 +++++++++++++ Main.cs | 214 +++++++ OtpauthMigration.cs | 943 +++++++++++++++++++++++++++++++ PowertoysRunTOTP.csproj | 47 ++ PowertoysRunTOTP.sln | 31 + README.md | 43 ++ assets/screenshot.png | Bin 0 -> 26162 bytes images/add-dark.png | Bin 0 -> 2263 bytes images/add-light.png | Bin 0 -> 2326 bytes images/copy-dark.png | Bin 0 -> 2824 bytes images/copy-light.png | Bin 0 -> 4334 bytes images/icon-dark.png | Bin 0 -> 4605 bytes images/icon-light.png | Bin 0 -> 8017 bytes images/warn-dark.png | Bin 0 -> 3940 bytes images/warn-light.png | Bin 0 -> 7334 bytes libs/PowerToys.Common.UI.dll | Bin 0 -> 20392 bytes libs/PowerToys.ManagedCommon.dll | Bin 0 -> 16296 bytes libs/Wox.Infrastructure.dll | Bin 0 -> 65960 bytes libs/Wox.Plugin.dll | Bin 0 -> 52144 bytes plugin.json | 14 + 21 files changed, 1693 insertions(+) create mode 100644 .filenesting.json create mode 100644 .gitignore create mode 100644 Main.cs create mode 100644 OtpauthMigration.cs create mode 100644 PowertoysRunTOTP.csproj create mode 100644 PowertoysRunTOTP.sln create mode 100644 README.md create mode 100644 assets/screenshot.png create mode 100644 images/add-dark.png create mode 100644 images/add-light.png create mode 100644 images/copy-dark.png create mode 100644 images/copy-light.png create mode 100644 images/icon-dark.png create mode 100644 images/icon-light.png create mode 100644 images/warn-dark.png create mode 100644 images/warn-light.png create mode 100644 libs/PowerToys.Common.UI.dll create mode 100644 libs/PowerToys.ManagedCommon.dll create mode 100644 libs/Wox.Infrastructure.dll create mode 100644 libs/Wox.Plugin.dll create mode 100644 plugin.json diff --git a/.filenesting.json b/.filenesting.json new file mode 100644 index 0000000..0b71966 --- /dev/null +++ b/.filenesting.json @@ -0,0 +1,3 @@ +{ + "help":"https://go.microsoft.com/fwlink/?linkid=866610" +} \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8a30d25 --- /dev/null +++ b/.gitignore @@ -0,0 +1,398 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.tlog +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio 6 auto-generated project file (contains which files were open etc.) +*.vbp + +# Visual Studio 6 workspace and project file (working project files containing files to include in project) +*.dsw +*.dsp + +# Visual Studio 6 technical files +*.ncb +*.aps + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# Visual Studio History (VSHistory) files +.vshistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd + +# VS Code files for those working on multiple tools +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +*.code-workspace + +# Local History for Visual Studio Code +.history/ + +# Windows Installer files from build outputs +*.cab +*.msi +*.msix +*.msm +*.msp + +# JetBrains Rider +*.sln.iml diff --git a/Main.cs b/Main.cs new file mode 100644 index 0000000..457950b --- /dev/null +++ b/Main.cs @@ -0,0 +1,214 @@ +using ManagedCommon; +using Wox.Plugin; +using System.IO; +using System.Text.Json; +using System.Web; +using System.Windows; +using OtpNet; + +namespace PowerToysRunTOTP +{ + public class Struct + { + public String Name { get; set; } + public String Key { get; set; } + } + + public class Main : IPlugin + { + + private string ConfigPath = Environment.ExpandEnvironmentVariables("%LOCALAPPDATA%") + "\\Microsoft\\PowerToys\\PowerToys Run\\Settings\\Plugins\\Zapic.Plugin.TOTP\\TOTPList.json"; + private string IconCopy { get; set; } + private string IconAdd { get; set; } + private string IconWarn { get; set; } + + private PluginInitContext? Context { get; set; } + public string Name => "TOTP"; + + public string Description => "TOTP Code Generator"; + + public List Query(Query query) + { + if (query.Search.StartsWith("otpauth://totp/")) { + var list = new List(); + try { + var link = new Uri(query.Search); + var name = link.LocalPath.ToString().Substring(1); + var queries = HttpUtility.ParseQueryString(link.Query); + var sercet = queries.Get("secret") ?? throw new Exception(); + list.Add(new Result { + Title = name, + SubTitle = "Add to list", + IcoPath = IconAdd, + Action = (e) => { + var list = loadConfig(); + list.Add(new Struct { + Key = sercet, + Name = name + }); + saveConfig(list); + return true; + } + }); + } catch (Exception) { } + return list; + } + if (query.Search.StartsWith("otpauth-migration://offline?")) { + var uri = new Uri(query.Search); + var queries = HttpUtility.ParseQueryString(uri.Query); + var payload = queries.Get("data") ?? throw new Exception(); + var decoded = Payload.Parser.ParseFrom(Convert.FromBase64String(payload)); + + + return new List { + new Result { + Title = "Add " + decoded.OtpParameters.Count() + " items to list", + SubTitle = "From Google Authenticator App, batch " + (decoded.BatchIndex + 1).ToString() + " / " + decoded.BatchSize, + IcoPath = IconAdd, + Action = (e) => { + var list = loadConfig(); + foreach (var item in decoded.OtpParameters) { + var key = Base32Encoding.ToString(item.Secret.ToByteArray()); + if (list.Find(it => it.Key.Equals(key)) != null) continue; + var name = ""; + if (item.Issuer.Length == 0) { + name = item.Name; + } else if (item.Name.Length == 0) { + name = item.Issuer + ": "; + } else { + name = item.Issuer + ": " + item.Name; + } + list.Add(new Struct{ + Name = name, + Key = key + }); + } + saveConfig(list); + return true; + } + } + }; + } + List totpList; + try { + totpList = loadConfig(); + } catch (Exception ex) { + return new List { + new Result { + Title = ex.Message, + SubTitle = "Error when try to load config", + IcoPath = IconWarn + } + }; + } + var result = new List(); + + totpList.ForEach(totp => + { + if (query.Search.Length != 0 && !totp.Name.ToLower().Contains(query.Search.ToLower())) return; + var totpInst = new Totp(Base32Encoding.ToBytes(totp.Key)); + result.Add(new Result { + Title = totpInst.ComputeTotp() + " - " + totp.Name, + SubTitle = "Copy to clipboard - Expired in " + totpInst.RemainingSeconds().ToString() + "s", + IcoPath = IconCopy, + Action = (e) => { + Clipboard.SetText(totpInst.ComputeTotp()); + return true; + } + }); + }); + if (result.Count == 0 && query.RawQuery.StartsWith(query.ActionKeyword)) { + if (totpList.Count == 0) + { + result.Add(new Result + { + Title = "No TOTP found in config", + SubTitle = "Add TOTP to plugin by paste your setup link(totp://) first", + IcoPath = IconWarn, + Action = (e) => + { + return false; + } + }); + } + else { + result.Add(new Result + { + Title = "No matching result", + SubTitle = "Leave it blank to show all items", + IcoPath = IconWarn, + Action = (e) => + { + return false; + } + }); + } + } + return result; + } + + public void Init(PluginInitContext context) + { + Context = context; + Context.API.ThemeChanged += OnThemeChanged; + UpdateIconPath(Context.API.GetCurrentTheme()); + } + + private void UpdateIconPath(Theme theme) + { + if (theme == Theme.Light || theme == Theme.HighContrastWhite) { + IconCopy = "images/copy-light.png"; + IconAdd = "images/add-light.png"; + IconWarn = "images/warn-light.png"; + } else { + IconCopy = "images/copy-dark.png"; + IconAdd = "images/add-dark.png"; + IconWarn = "images/warn-dark.png"; + } + } + + private void OnThemeChanged(Theme currentTheme, Theme newTheme) + { + UpdateIconPath(newTheme); + } + + private List loadConfig() { + var fileInfo = new FileInfo(ConfigPath); + if (!fileInfo.Exists) + { + if (!fileInfo.Directory!.Exists) + { + Directory.CreateDirectory(fileInfo.Directory!.FullName); + } + var newFile = File.Create(ConfigPath); + var options = new JsonSerializerOptions { WriteIndented = true }; + JsonSerializer.Serialize(newFile, new List(), options); + newFile.Dispose(); + } + var file = File.OpenRead(ConfigPath); + var result = JsonSerializer.Deserialize>(file); + if (result == null) + { + throw new Exception("Failed to load config: Result is null"); + } + file.Dispose(); + return result; + } + + private void saveConfig(List list) + { + var fileInfo = new FileInfo(ConfigPath); + if (!fileInfo.Exists) + { + if (!fileInfo.Directory!.Exists) + { + Directory.CreateDirectory(fileInfo.Directory!.FullName); + } + } + var file = File.Open(ConfigPath, FileMode.Create); + var options = new JsonSerializerOptions { WriteIndented = true }; + JsonSerializer.Serialize(file, list, options); + file.Dispose(); + } + } +} \ No newline at end of file diff --git a/OtpauthMigration.cs b/OtpauthMigration.cs new file mode 100644 index 0000000..5877bd1 --- /dev/null +++ b/OtpauthMigration.cs @@ -0,0 +1,943 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: i/i.proto +// +#pragma warning disable 1591, 0612, 3021, 8981 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +namespace PowerToysRunTOTP +{ + + /// Holder for reflection information generated from i/i.proto + public static partial class IReflection + { + + #region Descriptor + /// File descriptor for i/i.proto + public static pbr::FileDescriptor Descriptor + { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static IReflection() + { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "CglpL2kucHJvdG8SEW90cGF1dGhfbWlncmF0aW9uIqcFCgdQYXlsb2FkEkAK", + "Dm90cF9wYXJhbWV0ZXJzGAEgAygLMigub3RwYXV0aF9taWdyYXRpb24uUGF5", + "bG9hZC5PdHBQYXJhbWV0ZXJzEg8KB3ZlcnNpb24YAiABKAUSEgoKYmF0Y2hf", + "c2l6ZRgDIAEoBRITCgtiYXRjaF9pbmRleBgEIAEoBRIQCghiYXRjaF9pZBgF", + "IAEoBRrwAQoNT3RwUGFyYW1ldGVycxIOCgZzZWNyZXQYASABKAwSDAoEbmFt", + "ZRgCIAEoCRIOCgZpc3N1ZXIYAyABKAkSNwoJYWxnb3JpdGhtGAQgASgOMiQu", + "b3RwYXV0aF9taWdyYXRpb24uUGF5bG9hZC5BbGdvcml0aG0SNQoGZGlnaXRz", + "GAUgASgOMiUub3RwYXV0aF9taWdyYXRpb24uUGF5bG9hZC5EaWdpdENvdW50", + "EjAKBHR5cGUYBiABKA4yIi5vdHBhdXRoX21pZ3JhdGlvbi5QYXlsb2FkLk90", + "cFR5cGUSDwoHY291bnRlchgHIAEoAyJ5CglBbGdvcml0aG0SGQoVQUxHT1JJ", + "VEhNX1VOU1BFQ0lGSUVEEAASEgoOQUxHT1JJVEhNX1NIQTEQARIUChBBTEdP", + "UklUSE1fU0hBMjU2EAISFAoQQUxHT1JJVEhNX1NIQTUxMhADEhEKDUFMR09S", + "SVRITV9NRDUQBCJVCgpEaWdpdENvdW50EhsKF0RJR0lUX0NPVU5UX1VOU1BF", + "Q0lGSUVEEAASEwoPRElHSVRfQ09VTlRfU0lYEAESFQoRRElHSVRfQ09VTlRf", + "RUlHSFQQAiJJCgdPdHBUeXBlEhgKFE9UUF9UWVBFX1VOU1BFQ0lGSUVEEAAS", + "EQoNT1RQX1RZUEVfSE9UUBABEhEKDU9UUF9UWVBFX1RPVFAQAmIGcHJvdG8z")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::PowerToysRunTOTP.Payload), global::PowerToysRunTOTP.Payload.Parser, new[]{ "OtpParameters", "Version", "BatchSize", "BatchIndex", "BatchId" }, null, new[]{ typeof(global::PowerToysRunTOTP.Payload.Types.Algorithm), typeof(global::PowerToysRunTOTP.Payload.Types.DigitCount), typeof(global::PowerToysRunTOTP.Payload.Types.OtpType) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::PowerToysRunTOTP.Payload.Types.OtpParameters), global::PowerToysRunTOTP.Payload.Types.OtpParameters.Parser, new[]{ "Secret", "Name", "Issuer", "Algorithm", "Digits", "Type", "Counter" }, null, null, null, null)}) + })); + } + #endregion + + } + #region Messages + public sealed partial class Payload : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Payload()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor + { + get { return global::PowerToysRunTOTP.IReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor + { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Payload() + { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Payload(Payload other) : this() + { + otpParameters_ = other.otpParameters_.Clone(); + version_ = other.version_; + batchSize_ = other.batchSize_; + batchIndex_ = other.batchIndex_; + batchId_ = other.batchId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public Payload Clone() + { + return new Payload(this); + } + + /// Field number for the "otp_parameters" field. + public const int OtpParametersFieldNumber = 1; + private static readonly pb::FieldCodec _repeated_otpParameters_codec + = pb::FieldCodec.ForMessage(10, global::PowerToysRunTOTP.Payload.Types.OtpParameters.Parser); + private readonly pbc::RepeatedField otpParameters_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField OtpParameters + { + get { return otpParameters_; } + } + + /// Field number for the "version" field. + public const int VersionFieldNumber = 2; + private int version_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int Version + { + get { return version_; } + set + { + version_ = value; + } + } + + /// Field number for the "batch_size" field. + public const int BatchSizeFieldNumber = 3; + private int batchSize_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int BatchSize + { + get { return batchSize_; } + set + { + batchSize_ = value; + } + } + + /// Field number for the "batch_index" field. + public const int BatchIndexFieldNumber = 4; + private int batchIndex_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int BatchIndex + { + get { return batchIndex_; } + set + { + batchIndex_ = value; + } + } + + /// Field number for the "batch_id" field. + public const int BatchIdFieldNumber = 5; + private int batchId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int BatchId + { + get { return batchId_; } + set + { + batchId_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) + { + return Equals(other as Payload); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(Payload other) + { + if (ReferenceEquals(other, null)) + { + return false; + } + if (ReferenceEquals(other, this)) + { + return true; + } + if (!otpParameters_.Equals(other.otpParameters_)) return false; + if (Version != other.Version) return false; + if (BatchSize != other.BatchSize) return false; + if (BatchIndex != other.BatchIndex) return false; + if (BatchId != other.BatchId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() + { + int hash = 1; + hash ^= otpParameters_.GetHashCode(); + if (Version != 0) hash ^= Version.GetHashCode(); + if (BatchSize != 0) hash ^= BatchSize.GetHashCode(); + if (BatchIndex != 0) hash ^= BatchIndex.GetHashCode(); + if (BatchId != 0) hash ^= BatchId.GetHashCode(); + if (_unknownFields != null) + { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() + { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) + { +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); +#else + otpParameters_.WriteTo(output, _repeated_otpParameters_codec); + if (Version != 0) { + output.WriteRawTag(16); + output.WriteInt32(Version); + } + if (BatchSize != 0) { + output.WriteRawTag(24); + output.WriteInt32(BatchSize); + } + if (BatchIndex != 0) { + output.WriteRawTag(32); + output.WriteInt32(BatchIndex); + } + if (BatchId != 0) { + output.WriteRawTag(40); + output.WriteInt32(BatchId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } +#endif + } + +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) + { + otpParameters_.WriteTo(ref output, _repeated_otpParameters_codec); + if (Version != 0) + { + output.WriteRawTag(16); + output.WriteInt32(Version); + } + if (BatchSize != 0) + { + output.WriteRawTag(24); + output.WriteInt32(BatchSize); + } + if (BatchIndex != 0) + { + output.WriteRawTag(32); + output.WriteInt32(BatchIndex); + } + if (BatchId != 0) + { + output.WriteRawTag(40); + output.WriteInt32(BatchId); + } + if (_unknownFields != null) + { + _unknownFields.WriteTo(ref output); + } + } +#endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() + { + int size = 0; + size += otpParameters_.CalculateSize(_repeated_otpParameters_codec); + if (Version != 0) + { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Version); + } + if (BatchSize != 0) + { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(BatchSize); + } + if (BatchIndex != 0) + { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(BatchIndex); + } + if (BatchId != 0) + { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(BatchId); + } + if (_unknownFields != null) + { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(Payload other) + { + if (other == null) + { + return; + } + otpParameters_.Add(other.otpParameters_); + if (other.Version != 0) + { + Version = other.Version; + } + if (other.BatchSize != 0) + { + BatchSize = other.BatchSize; + } + if (other.BatchIndex != 0) + { + BatchIndex = other.BatchIndex; + } + if (other.BatchId != 0) + { + BatchId = other.BatchId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) + { +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); +#else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + otpParameters_.AddEntriesFrom(input, _repeated_otpParameters_codec); + break; + } + case 16: { + Version = input.ReadInt32(); + break; + } + case 24: { + BatchSize = input.ReadInt32(); + break; + } + case 32: { + BatchIndex = input.ReadInt32(); + break; + } + case 40: { + BatchId = input.ReadInt32(); + break; + } + } + } +#endif + } + +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) + { + uint tag; + while ((tag = input.ReadTag()) != 0) + { + switch (tag) + { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: + { + otpParameters_.AddEntriesFrom(ref input, _repeated_otpParameters_codec); + break; + } + case 16: + { + Version = input.ReadInt32(); + break; + } + case 24: + { + BatchSize = input.ReadInt32(); + break; + } + case 32: + { + BatchIndex = input.ReadInt32(); + break; + } + case 40: + { + BatchId = input.ReadInt32(); + break; + } + } + } + } +#endif + + #region Nested types + /// Container for nested types declared in the Payload message type. + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static partial class Types + { + public enum Algorithm + { + [pbr::OriginalName("ALGORITHM_UNSPECIFIED")] Unspecified = 0, + [pbr::OriginalName("ALGORITHM_SHA1")] Sha1 = 1, + [pbr::OriginalName("ALGORITHM_SHA256")] Sha256 = 2, + [pbr::OriginalName("ALGORITHM_SHA512")] Sha512 = 3, + [pbr::OriginalName("ALGORITHM_MD5")] Md5 = 4, + } + + public enum DigitCount + { + [pbr::OriginalName("DIGIT_COUNT_UNSPECIFIED")] Unspecified = 0, + [pbr::OriginalName("DIGIT_COUNT_SIX")] Six = 1, + [pbr::OriginalName("DIGIT_COUNT_EIGHT")] Eight = 2, + } + + public enum OtpType + { + [pbr::OriginalName("OTP_TYPE_UNSPECIFIED")] Unspecified = 0, + [pbr::OriginalName("OTP_TYPE_HOTP")] Hotp = 1, + [pbr::OriginalName("OTP_TYPE_TOTP")] Totp = 2, + } + + public sealed partial class OtpParameters : pb::IMessage +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage +#endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new OtpParameters()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor + { + get { return global::PowerToysRunTOTP.Payload.Descriptor.NestedTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor + { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public OtpParameters() + { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public OtpParameters(OtpParameters other) : this() + { + secret_ = other.secret_; + name_ = other.name_; + issuer_ = other.issuer_; + algorithm_ = other.algorithm_; + digits_ = other.digits_; + type_ = other.type_; + counter_ = other.counter_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public OtpParameters Clone() + { + return new OtpParameters(this); + } + + /// Field number for the "secret" field. + public const int SecretFieldNumber = 1; + private pb::ByteString secret_ = pb::ByteString.Empty; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pb::ByteString Secret + { + get { return secret_; } + set + { + secret_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "name" field. + public const int NameFieldNumber = 2; + private string name_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Name + { + get { return name_; } + set + { + name_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "issuer" field. + public const int IssuerFieldNumber = 3; + private string issuer_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Issuer + { + get { return issuer_; } + set + { + issuer_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "algorithm" field. + public const int AlgorithmFieldNumber = 4; + private global::PowerToysRunTOTP.Payload.Types.Algorithm algorithm_ = global::PowerToysRunTOTP.Payload.Types.Algorithm.Unspecified; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::PowerToysRunTOTP.Payload.Types.Algorithm Algorithm + { + get { return algorithm_; } + set + { + algorithm_ = value; + } + } + + /// Field number for the "digits" field. + public const int DigitsFieldNumber = 5; + private global::PowerToysRunTOTP.Payload.Types.DigitCount digits_ = global::PowerToysRunTOTP.Payload.Types.DigitCount.Unspecified; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::PowerToysRunTOTP.Payload.Types.DigitCount Digits + { + get { return digits_; } + set + { + digits_ = value; + } + } + + /// Field number for the "type" field. + public const int TypeFieldNumber = 6; + private global::PowerToysRunTOTP.Payload.Types.OtpType type_ = global::PowerToysRunTOTP.Payload.Types.OtpType.Unspecified; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::PowerToysRunTOTP.Payload.Types.OtpType Type + { + get { return type_; } + set + { + type_ = value; + } + } + + /// Field number for the "counter" field. + public const int CounterFieldNumber = 7; + private long counter_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public long Counter + { + get { return counter_; } + set + { + counter_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) + { + return Equals(other as OtpParameters); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(OtpParameters other) + { + if (ReferenceEquals(other, null)) + { + return false; + } + if (ReferenceEquals(other, this)) + { + return true; + } + if (Secret != other.Secret) return false; + if (Name != other.Name) return false; + if (Issuer != other.Issuer) return false; + if (Algorithm != other.Algorithm) return false; + if (Digits != other.Digits) return false; + if (Type != other.Type) return false; + if (Counter != other.Counter) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() + { + int hash = 1; + if (Secret.Length != 0) hash ^= Secret.GetHashCode(); + if (Name.Length != 0) hash ^= Name.GetHashCode(); + if (Issuer.Length != 0) hash ^= Issuer.GetHashCode(); + if (Algorithm != global::PowerToysRunTOTP.Payload.Types.Algorithm.Unspecified) hash ^= Algorithm.GetHashCode(); + if (Digits != global::PowerToysRunTOTP.Payload.Types.DigitCount.Unspecified) hash ^= Digits.GetHashCode(); + if (Type != global::PowerToysRunTOTP.Payload.Types.OtpType.Unspecified) hash ^= Type.GetHashCode(); + if (Counter != 0L) hash ^= Counter.GetHashCode(); + if (_unknownFields != null) + { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() + { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) + { +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); +#else + if (Secret.Length != 0) { + output.WriteRawTag(10); + output.WriteBytes(Secret); + } + if (Name.Length != 0) { + output.WriteRawTag(18); + output.WriteString(Name); + } + if (Issuer.Length != 0) { + output.WriteRawTag(26); + output.WriteString(Issuer); + } + if (Algorithm != global::OtpauthMigration.Payload.Types.Algorithm.Unspecified) { + output.WriteRawTag(32); + output.WriteEnum((int) Algorithm); + } + if (Digits != global::OtpauthMigration.Payload.Types.DigitCount.Unspecified) { + output.WriteRawTag(40); + output.WriteEnum((int) Digits); + } + if (Type != global::OtpauthMigration.Payload.Types.OtpType.Unspecified) { + output.WriteRawTag(48); + output.WriteEnum((int) Type); + } + if (Counter != 0L) { + output.WriteRawTag(56); + output.WriteInt64(Counter); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } +#endif + } + +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) + { + if (Secret.Length != 0) + { + output.WriteRawTag(10); + output.WriteBytes(Secret); + } + if (Name.Length != 0) + { + output.WriteRawTag(18); + output.WriteString(Name); + } + if (Issuer.Length != 0) + { + output.WriteRawTag(26); + output.WriteString(Issuer); + } + if (Algorithm != global::PowerToysRunTOTP.Payload.Types.Algorithm.Unspecified) + { + output.WriteRawTag(32); + output.WriteEnum((int)Algorithm); + } + if (Digits != global::PowerToysRunTOTP.Payload.Types.DigitCount.Unspecified) + { + output.WriteRawTag(40); + output.WriteEnum((int)Digits); + } + if (Type != global::PowerToysRunTOTP.Payload.Types.OtpType.Unspecified) + { + output.WriteRawTag(48); + output.WriteEnum((int)Type); + } + if (Counter != 0L) + { + output.WriteRawTag(56); + output.WriteInt64(Counter); + } + if (_unknownFields != null) + { + _unknownFields.WriteTo(ref output); + } + } +#endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() + { + int size = 0; + if (Secret.Length != 0) + { + size += 1 + pb::CodedOutputStream.ComputeBytesSize(Secret); + } + if (Name.Length != 0) + { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); + } + if (Issuer.Length != 0) + { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Issuer); + } + if (Algorithm != global::PowerToysRunTOTP.Payload.Types.Algorithm.Unspecified) + { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Algorithm); + } + if (Digits != global::PowerToysRunTOTP.Payload.Types.DigitCount.Unspecified) + { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Digits); + } + if (Type != global::PowerToysRunTOTP.Payload.Types.OtpType.Unspecified) + { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int)Type); + } + if (Counter != 0L) + { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(Counter); + } + if (_unknownFields != null) + { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(OtpParameters other) + { + if (other == null) + { + return; + } + if (other.Secret.Length != 0) + { + Secret = other.Secret; + } + if (other.Name.Length != 0) + { + Name = other.Name; + } + if (other.Issuer.Length != 0) + { + Issuer = other.Issuer; + } + if (other.Algorithm != global::PowerToysRunTOTP.Payload.Types.Algorithm.Unspecified) + { + Algorithm = other.Algorithm; + } + if (other.Digits != global::PowerToysRunTOTP.Payload.Types.DigitCount.Unspecified) + { + Digits = other.Digits; + } + if (other.Type != global::PowerToysRunTOTP.Payload.Types.OtpType.Unspecified) + { + Type = other.Type; + } + if (other.Counter != 0L) + { + Counter = other.Counter; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) + { +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); +#else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Secret = input.ReadBytes(); + break; + } + case 18: { + Name = input.ReadString(); + break; + } + case 26: { + Issuer = input.ReadString(); + break; + } + case 32: { + Algorithm = (global::OtpauthMigration.Payload.Types.Algorithm) input.ReadEnum(); + break; + } + case 40: { + Digits = (global::OtpauthMigration.Payload.Types.DigitCount) input.ReadEnum(); + break; + } + case 48: { + Type = (global::OtpauthMigration.Payload.Types.OtpType) input.ReadEnum(); + break; + } + case 56: { + Counter = input.ReadInt64(); + break; + } + } + } +#endif + } + +#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) + { + uint tag; + while ((tag = input.ReadTag()) != 0) + { + switch (tag) + { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: + { + Secret = input.ReadBytes(); + break; + } + case 18: + { + Name = input.ReadString(); + break; + } + case 26: + { + Issuer = input.ReadString(); + break; + } + case 32: + { + Algorithm = (global::PowerToysRunTOTP.Payload.Types.Algorithm)input.ReadEnum(); + break; + } + case 40: + { + Digits = (global::PowerToysRunTOTP.Payload.Types.DigitCount)input.ReadEnum(); + break; + } + case 48: + { + Type = (global::PowerToysRunTOTP.Payload.Types.OtpType)input.ReadEnum(); + break; + } + case 56: + { + Counter = input.ReadInt64(); + break; + } + } + } + } +#endif + + } + + } + #endregion + + } + + #endregion + +} + +#endregion Designer generated code diff --git a/PowertoysRunTOTP.csproj b/PowertoysRunTOTP.csproj new file mode 100644 index 0000000..3d92df0 --- /dev/null +++ b/PowertoysRunTOTP.csproj @@ -0,0 +1,47 @@ + + + + net6.0-windows + true + enable + enable + AnyCPU;x64 + False + Debug;Release + + + + + + + + + + + + ..\libs\PowerToys.Common.UI.dll + False + + + ..\libs\PowerToys.ManagedCommon.dll + False + + + ..\libs\Wox.Infrastructure.dll + False + + + ..\libs\Wox.Plugin.dll + False + + + + + + Always + + + Always + + + diff --git a/PowertoysRunTOTP.sln b/PowertoysRunTOTP.sln new file mode 100644 index 0000000..154d7fc --- /dev/null +++ b/PowertoysRunTOTP.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.2.32519.379 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PowertoysRunTOTP", "PowertoysRunTOTP.csproj", "{77086A85-21D3-4278-919E-AC6E883B1D27}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {77086A85-21D3-4278-919E-AC6E883B1D27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {77086A85-21D3-4278-919E-AC6E883B1D27}.Debug|Any CPU.Build.0 = Debug|Any CPU + {77086A85-21D3-4278-919E-AC6E883B1D27}.Debug|x64.ActiveCfg = Debug|x64 + {77086A85-21D3-4278-919E-AC6E883B1D27}.Debug|x64.Build.0 = Debug|x64 + {77086A85-21D3-4278-919E-AC6E883B1D27}.Release|Any CPU.ActiveCfg = Release|Any CPU + {77086A85-21D3-4278-919E-AC6E883B1D27}.Release|Any CPU.Build.0 = Release|Any CPU + {77086A85-21D3-4278-919E-AC6E883B1D27}.Release|x64.ActiveCfg = Release|x64 + {77086A85-21D3-4278-919E-AC6E883B1D27}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {48723466-E489-4F02-9FBB-9E027F3B7ECD} + EndGlobalSection +EndGlobal diff --git a/README.md b/README.md new file mode 100644 index 0000000..a2d5272 --- /dev/null +++ b/README.md @@ -0,0 +1,43 @@ +# Powertoys Run TOTP Plugin +A plugin help you to copy your two-factor verify code in Powertoys Run + + +## Screenshot +![screenshot](./assets/screenshot.png) + +## Installtion +1. Download plugin from Release +2. Extract it to `%LOCALAPPDATA%\Microsoft\PowerToys\PowerToys Run\Plugins` + +## Usage +1. Add account +Plugin support standard OTPAuth URI (starts with `otpauth://`) and Google Authenticator Export URI(starts with `otpauth-migration://`), you can paste it to search bar and you will see option to add it to list. +You can use QRCode scanner to resolve QRCode to link, Accounts with same key in list will not be added. +You can also add manually by edit config file in `%LOCALAPPDATA%\Microsoft\PowerToys\PowerToys Run\Settings\Plugins\Zapic.Plugin.TOTP\TOTPList.json`: + ```json + [ + { + "Name": "Github: Hello", + "Key": "12313" + }, + { + "Name": "Twitter: @Hello", + "Key": "12313213" + } + ] + ``` + Change to config file will be applied immediately. + +2. Delete account +There is no way to delete account by GUI. +You can edit file in `%LOCALAPPDATA%\Microsoft\PowerToys\PowerToys Run\Settings\Plugins\Zapic.Plugin.TOTP\TOTPList.json` to delete account you don't want. +Change to config file will be applied immediately. + +## Build Plugin +1. Clone repo +2. Use "Publish" to build plugin and copy dependcies +3. Use `ILRepack` to bundle all dependcies to single file(Powertoys doesn't support load dll by PTRun plugin). + ``` + ILRepack.exe /lib:"C:\Program Files\Microsoft Visual Studio\2022\Community\dotnet\runtime\shared\Microsoft.NETCore.App\6.0.16" /out:PowerToysRunTOTP.dll PowertoysRunTOTP\bin\Release\net6.0-windows\publish\win-x64\PowerToysRunTOTP.dll PowertoysRunTOTP\bin\Release\net6.0-windows\publish\win-x64\Otp.NET.dll PowertoysRunTOTP\bin\Release\net6.0-windows\publish\win-x64\Google.Protobuf.dll + ``` +4. Use ILRepack generate `PowerToysRunTOTP.dll` to replace orignal out. diff --git a/assets/screenshot.png b/assets/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..182cc7ed7f4f6a413e245c0dec205a332d864c35 GIT binary patch literal 26162 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 literal 0 HcmV?d00001 diff --git a/images/add-dark.png b/images/add-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..2627860d4486c43caf69cf034f79c50cd5f6dd80 GIT binary patch literal 2263 zcmeAS@N?(olHy`uVBq!ia0y~yU;;9k7&zE~)R&4Yzkn2Hfk$L91B0G22s2hJwJ&2} z;OO*paSW-L^Y+F?PG>~{*Mkyo_NQKUQut(6kj549Zn{j&^Eu)S7e39CV_>lHXJBxc zz`)R;z{tSh2sFQmg@J*E6KIGK1A~AH1A~GGJ_TErvpZavDfeOdwJ!`BADPK9f}kCv z3W$u1(SRBb0rl3q{M=G&hw0@k`?lBFK42#`OOBvakP*LYv)LZ3ZiRilA?Qott~?nusUb3C#C^_*XUmiD-UwB*%>JJ09z^yp00i_ I>zopr054ekYybcN literal 0 HcmV?d00001 diff --git a/images/add-light.png b/images/add-light.png new file mode 100644 index 0000000000000000000000000000000000000000..0a9bcdc7ebd16cdf952518000974c85d47d94b36 GIT binary patch literal 2326 zcmeAS@N?(olHy`uVBq!ia0y~yU;;9k7&zE~)R&4Yzkn2Hfk$L91B0G22s2hJwJ&2} z;5gyw;uumf=k3jlxlD#4u8!7=6ucTH1$laLsa}|P*=b2^;)R)-4_?)-?b}nl)|8=P z+WNcf3=Hel85k5i7#JKTFfcSIFfuSW0B1dx5VR(zd3%0WUoCe9fwaRL8C_%5E%!f0X3WhYQbqw>+O@v7ChMXyTQEV zZY@L2jN=y@cV4rqIXdU_4-SS8`q^tMOAhN3lUqkvN_kOq>D=EXvKl-34C~6|Kc?+F zE^+>@yTi#y#t#;m>={*j_XR67_m37*gp2tRmT<_g4@YP~E!cVORxLBbha}3Y{4eYb Y5z_At7ynrWZ0Im}y85}Sb4q9e0Kp?A7XSbN literal 0 HcmV?d00001 diff --git a/images/copy-dark.png b/images/copy-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..be9db40e7f5a63e47baa4a844b66ab8103cf0ee6 GIT binary patch literal 2824 zcmeH}X;4#F6vyu)5Q$EtkZKrT5X&M~1me;J5g`Z?k<}_H1thqHs^pm%1(YqIvM3N1 zM};6-5wI$X!!!v{;Gt1bSw(GXLW~LGO0`W1L8$bhwbMGzwBKr{{cz{a|IWE*-u&;m z=XbJ0f|$gK(t6CmTP&k(30RSaX z30lqRV7rVcpzv@rnD3XWrV-rG$S*nk7sN@Uo?Va4Oh;`#Q#M=C4SSEYy!1%4a)I4> z+R$`-a_4zn#S#Z3Df4(slPYS=-zP|EfKTAR4PP%J(NmbW1ow*LM7mJmp_3Be7ekdI zvgQi2C-Nj}QCa`#RJtl~XSC6clJ$96utZ@;w#}bA$_`WNX`@EQH#6GFJjLNt&>G8m zTVcKUpd@EB5APc)ADaat@8v0=bzf_*9y4DAns#hb z=0yyvQV+L6FAg|r;tc$@;1mfaQe&TVHi>nBTTrf{ZC%D*Oa=~aHc0J+jd~r#t%-akIf+8CeN{XX z5mf4mq}5Z!w>u`G2jX_kA)vnNauuh;yG}pEtKqlyo|kb3nTcnPSqnUC>c;Q;-{t!6 zCG{bf#{WP0pQ|e!?InmEnEMhiirU|Uo$#LIpCQ1W`KQ-LZP=FD!5F8LWaqHV4kf?o zk1V#!;tGp#esMUec${G`*5J<^-lo3HNfy%uX1@jbdhVWWj}WH^8o6VvW9zhV9PepO zBQz?+!i&6-TbHXZ>+xI?9rW|$#CqwVTqT%d<<=mp_EQV0vtdwfmE!G;M2hJwld87a zysacxmcQnX0~b9TBnsAuC#2!n{3j6>l4Mf~^+3QsQM6y9CL z(>9d3AYbii+LW#jP#Us@{he{(9X9=gvQ*MN!Lko4CDi_hax>Jj;R;cHNtb)JizD0M$07?wRW!v%bQax4 z0`YKh_S|R<{#k(fgp4RZikf7@0`x%^jHVJIS{-@1Nb}>%)izk~ADhXA-jH?lx?b#x zk^JFp>2L@kBqlNZ$eW5alniiIcxH>3MIhi>Kc3MMtYs(SSZ*}B;GV8Yk&anXYOCq* zwgW3KVC3MhQpRor0ovB~Ks7j$ezg$vQLN|+7+gAfp^iWaSzqbYy1@@@@7OO|WCb!7 z^7$lJkl{LV0RtAd&QXO)R%risC(gZOWKS{{+=v+7?3adHy`Js#?8$i}>0030oAn$^ zL|w$+!Ygl*4P1oO3v9={vr%aNJdu&_*huwA`#$5gOYZwEtt9czvserGvo;=*_99|e z7NypKT`6tk7eH&~@zdEkiUIZk+_~rupT=Ad)Y?5NK^R>Hw)i+9ciIQ$ix;X*`&;qs zdrFTDBHX%9w!mR?kxq|>wI*f>4quAuJ*R&G7&n$buY=I2zn&|{ZAu0E>-IaU{O^Zi Pqb=}T8su|s2`l|qLo0l@ literal 0 HcmV?d00001 diff --git a/images/copy-light.png b/images/copy-light.png new file mode 100644 index 0000000000000000000000000000000000000000..645e399f11df11e2ce4fa0d9dcf82555852fad49 GIT binary patch literal 4334 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 literal 0 HcmV?d00001 diff --git a/images/icon-light.png b/images/icon-light.png new file mode 100644 index 0000000000000000000000000000000000000000..e387f20525f8e6b689ec2e43c9d08f3d1c0c6471 GIT binary patch literal 8017 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 literal 0 HcmV?d00001 diff --git a/images/warn-dark.png b/images/warn-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..7eba4c5790694ae8c5ed16f6ecbe7cc3412420cb GIT binary patch literal 3940 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 bd@^{){CQUP7FY5ucGeg8ce3gSKjQyCl)VxN literal 0 HcmV?d00001 diff --git a/libs/PowerToys.ManagedCommon.dll b/libs/PowerToys.ManagedCommon.dll new file mode 100644 index 0000000000000000000000000000000000000000..dac36783a6283f4f637de84c5be80690daf9b3e1 GIT binary patch literal 16296 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≦3xFyB50cb^X#c+&#u! z=bqtyzfG{s?D2 zr^+24uXtKY-fzo&QeH`u<*A#M{cGJ>%z69sZox?e*O8hxdnEI42$A^w#jWm|;~)mI z>hr4mra{`W31@Li22-_sUX}l&Me&k(*GV05ngu_0YtRbIrRwFEmJU+e_X*A~PL+EN zCrHdom3!OL3#X{h$L?QPb*T0*_f@yoDv$sFKlORloi~NC{^jw1A$MxM`{brO_amp9YT;`_@YS7JTK$}ZQA?xdw_qS>Bc{_V&h}&JmYh1hoR{^j2XH~S7|2g)oWcp z)&J%?0{Z7v>AnYYPFt}d9hg3I>gv_i6IM^4>2umc!H%xZnQP+=Ns^REC>RUP-PRiF zjD^jPr6K(PDlw7c)S0cTS2u*Co$bNxbJ~N^Xmy=%QLZ4(q1gOzRK!)nsp69cE2Kto zxp9*@y{RJ{3kTc77lx!>;Ys_ZaO#|3duvxa+SnWlMp`#Cx0(?pC#fta$of!hbyF;~ znTrs{;$S2yf+*vRP;6Oe8_H;F>SzmXi?=zo^f~QjG!%_BcLrNSBE$tjz|vv$sX7Eh z>5x;tSch@3$*X}4=qTrncW=-JR8v!P%!~xrht^cn;`Xlf;f^z-W=E2@!ra!MF+1E5 zjBHN|EbMA;53X(J{7rK^x;BR*acWVdEffj0^7mn6)7FIEycnLw|ZC}zAifm^-+gCIUA*NWUA7g7M5=EWWv>@CXF{9?X zSk;PfM{Nx?b;JPUF9TSAgN`RnUJY!3mTRc7tD|*I4V@L*zC7686^)2&g+0yyc+;m36LRzulthuWi7Oh|msd1utdlX}%s%eoDShhHk477h^ z8qtr2hNW|xn`hTAC5)WJ+|X!7<}HPzy>QXe1@-eAnwl5SuU|!5S);30lT`)YSDSf3 zv}yqiDM&mj7X)Li8ybSKAVvF8n-l!D(7Iq(drV|jW0(eMv3Wr#(qe9pR$+>X@vnDO zEo-WpA6_eEEDuH2;uW+~=h{}OqAA+2y(73e+!}91(ln!0XM{RJ5hQV2<_Dv(6_Ic( z)DqqtS{7@imdN(`X0VMK%nLf&83Cidt&K3Qs+v01MIayPYK?V8LRHq7s%mNsw}(`3 zS8x|Xkrk0(XJ;r<6>Mu;J!eC(V}0l=77z(-Hn)ZnWi0Ag95GRFYfvr54*-WoQ$qR19W@>^R&(P%@cBMc!{#@r4b#ciU}I4;9&ZX{wx z<^(%hL!3N!TPzZkfzlX6&%a{VST{>Ucu8Ni082Ojt1{#T$z=T%dl7#@RvE0tdEvIu ziVdNTh7c=hD=#vl(ZTr5P-rU)d}Z@$KnY*D0IT)!GI%)3VBqzxgG+6SE)K>vEHzCg zFx)Xj8G||ToDa+z-cqkW`k+y*;YAwV3KX`IeM>NLfJ}_g`W~{x< zW>;jeM4nA#Wy4A^NZw^pNuw*K0tUdb!FGn{Tck zDA0i3VaD6sX?bf4qJs#DlA1a?yJCwv<_EE`Zx~oms%+Uiy`m5^;gm|Xs5iu~k zOp#5kX2;;k4QfUE5`l08GXdP7!Sm0FMcM~es+2p=jBN^Sk1pzHgliXVjf6rS14ZYD zf?Gp#Hn%P694r;H{J<>Azs6W^4YLzAP=L+HT8{sZvZCJqqtsGZ-R8BS2oEInF6W!@ zJ_oJ6ITnn>x;huL`#7iozpRE36cU!5%)s_5*QCYl9GE19V^Ut!p=LO%vVnp;4?#$^ zWni)-gxVTm#0eK>X;%jvkU?a5N*#n>-xV{}Ac+o=sY_PzfeCZEqA^q|TLjBO1_~(+ z%nz-L4NPm^5FU)397-!f;q@B^$(TBlzDTCNeUOaFq6fAnwa|g7i+PVaV19w=t_yD) z$ZzgiHz=RIBPMrok2*u{8J;j1h zY=hZG>%x&}Ox8cyV>WfHz;Y$dSbXgg-yuP;gVAs8lH~rJg(mhSp~yOHTnW3Wc78TR zdEd7vvSI^#UD?xul|pd2u+`R0EpY8Z%7?brK&c_VAWDi_{*+L1Iizq3&aT9=NZ68` z9gb}dc3MPK7Ee~iykK<09ITZ1pZwZGykts|{T5NFygz3US4oy7V!xfIKt-|ho}{eW zcpR!^)g*-@Q6XXO!I$`Aw0dK5vrVhlrf#iiHO3on%%u~u)Jx+P#`;|VZ=2IMThA_` zI3?}@SiM#50Abs)l=luKjT1M3mUV=;bcKWwZR$`wE+OeDNEs<4r=EcyFbuZWN28cr z+qbJ+Ex}DFxnrxzkK~>|u|rQ`VP71@E}b_AaNdHl*QZ9TGZzXA^H~hLC${%_!HzZv zoe_#L#oD$wvPTll@Vidzu7r@@2*$o&SLdQg7-0=ztX{{`yk?=ZW=GTn#T`;RZ9$Wh zhWJ6!{Zo0IC3ONxN)F`4z1&D#T}qgXU{^`X=e7yKJxmbjbpq#hi$wE06%1l`S5^UR zz~J6W8kfl?s>%(oZ|g{~EaVxb9ul*BB>wj!m7B?uMfktmq8%NAUMH3{j4P-}aTce=uXPUIQm!qg79 z#Y8Qg!3c&lHsv9;ZRv=KKQRYhsnjWctMpZ2iTGPec#%$VT$ChhYH9F-WC00cbtKLn zI9aKVc5Fqbf{K_I15HBGi6f;-ao1JVmAC}Qj2y}aBf4=#g=ZQkn3Pv z>c>tKs#p=my3-Y7hnyON?SK+zBsIiC9PW@nDOL`Sbm48bwJnM$_k)xv(_9Ymz!*qv z9HsFs!3f&YjMar-Z6_=%B5@Yp{?^A3kXYM=B;M~OsfN(nuJ!AA4oULjw%ihqrLz0k zN>Z9bovOb{9^#RhCSoaNsE5VEo}&4B{RkoWVCc_PbOF+T==o@+HiX~mXa!Kd^9Ax`MKLdt^9)7 z9%YmYh6P>`u&OgcF@>}7gb2%snoHvmEuN9sD&cAHJ3-_mL>!)pH;#uxJ9t*i;#9Wf zRyCNLgW-+=nNUBr76_%OWy>1*IA9=I44WBS2z_l03EHxuYxCL;1h<50jt4Pd?}>m0 zmd^Mg1w}bK_uPssHU~SRoM~Nrrfk`O_)r^WDv}uc?CrcQ!3@ou!NR0fJQ1cOTJNFC zGBr+VF?sw?s#C+85L8bF{$MIGXn_wmya?kdJ>O@C}ZFlbArP)^b4to%qdY6Wd!{rD@rakn4+ZmaXML>T*ZoT8?Xxmau4T+ zI@W`+g-@rFkM8HwmAfsDop0ujqs$_uSZY>6T+fRB89bk4t9Vz z^#ZRAyUVp^Fw!>9G&e~Dz9e~d*Oz2nw?1et2u5**oWTM(l^cTXv@jIo1rEzJ$8QmN zg|CH}ZM$rZ;_D9a#KF6*_V}1ww00w6PyJY_0o_59H+RB|>##DZ{c*nn;Qno?il6pT zJ>tmf;15nmxLq~~@i`Wr2G7hmzu*WnKi0Q}Yip|7fJHe{Y~cf4DG^bd16hPn(v~i~ zXgHX>+ZFwD;7l|vNGnra_=}q}rmRqKGrX(K2)$WERPj1Dtlcbf?7B-4f`qX?VHs`{ zLM=uLPlmNsvz0XGwWj!{MO8dP6h$egMkL!Di_a}m8;QSW>CE0ScB?f;gGiCfs z6&!p+Y$d#IJ5LsG}@+HZfd$5I6@_j)9-(^U| zT6usZoKq&)aM(k#-1lS}SGB0watuT%aU8i&o*etdS=P#&h(yNuA}UT{oWsS&L$6XQ z2I&_>W~EbKl5APOia~@g6t6TsB;t+@drLe+_DgIDZHra0>x(nr)MORyqM#f>CQ1se zv#un-k=q;+S2H<@#icMoR;>uFod<6$6iG?OyqrRD=dFltJi4rmq<_R&c;Y`Uk^r-{ zjZWpPZd0q1I1-lBAoEz_M4k6`wKYj{&Y}fLqG?eQ=lN}EXdQO7IHgLm>m%!NqXPj) zBqzE3)R$zlYLgUqx`_kRNtOzQBg23Em8-Hef& zu*j+f!4B;F+bq5%ov;K_E~fHo!)QNGCTc3>Jz1g^LRcGV!Bb{iq2tX62QmLeW8v1Q z%*~ehD-jjWOEfJt4Fe{XRQol_m9QP5u({zgb}=SlAe3f>VuU<96v6Ky%HeTpj8p<= ziot__o`rJRFc4g)z?p?;H%VC?Qj93BDqyDwA@*J4#@~!B8kUajRdXWSJ7ea0TvFHo zBHB5aV>vGt>qKZkZi$Inr4O*(Q%*#Z17nahZg9T?5|QrDu^P_)0&xHyi}-q6?~16X zC&zR{5o(@SU#(gVTizOO4MDM6F|$YF!H~p`Es@ZqtT#a`%bDF3Zs%-`raZ9KWa`Y$ z(0ZlgxgD+Wj3U$-mYo`Fe>P4FxFTEtQ43fV&MM*LS+*!c8&q<`z)A7zH7P58m328p zqTNa$&cRH(3Au1ptF6UU5mVMf2PU$%xmz)wlRVi3_v0mfihgX?y}YwQPoI*nZSdrH zFneC89Ztw#29m7Sl4-#q70b#{OBo&3Wtdclr~fq>zISB}iny%A)auv4hEG|TQ7f2( zwa1DR{vUQi%3Ju~l)~GFex=Oip+-EJDidRuED@{`ev(SeoXR*kqq?7$q~*QINuYX1 z3T-jx^9?9fO*|eEA@=s+A3}fBi92j0UQ;5Rj|nVpiOJOsb3-z;kGoJYi(=uX#O~9I z-GR4y1H8^8S;dFcv^W&m9F9u(suAljI909kSYRS7!X@G0J{I9PEdFO&-mIvgQZ(M4 zhUCO6-E8V;ZSQIe$*qs5%r|q}gPqY(+k$X=dpH_`d)F4VLNqEA8l|XpH51c8qTIMc zVaFmni$>#NU{$=hXsTQl!eyt$VkY|}4pG%&>~$n0n0S-?29rC` zK?K;<8<=hIH84eP9miCY{s`=;*}8Bzm>Hz(0iu|&lan)Cr6?gJo@j3(1X#s8_9*Vq zCN}9x2dVVjEnSEY%P`gWKLni!iqVSjNcc5&w7V$b$C!?bE) zLy~KX(tYKrf5joFruna!ncMNdDu4$}ynxgNL%r9;nvi%G@t27?DY+M_N-PX2TeG_E zp_Ya?ZauA6oiepz0EqvoMx(VifQ{hvsT~I~2?h*RwhjLaRjIh`(jd+>I@XIL@)ZkX zwGCF7)jJ;69Ol8*{3vds;=*`BftK$pc7r)hDGc*@cwIQe_c|=a54;xx)9=77Bc&zl zkX-4V*Rk4~rHGDUh2TRa6$_&c))VI}Aw<(K8Ci^lriG}RoqVi@01mP@;Y6U{7GGQ( zEM@T(5gjA!FJX4l0o574nIp|gA=xnHZjLenzNLeJlR%`*lS?^LL^39=ZsCah045hF zAqgu^ogzC3dxI)ohBAUrIAI9KXm$uIr(k#?s`h z`4&u)oTnP8<}wQxH`~JTx}vzA86%#4>(|3SPEjK7@8`7R{5wXxhq2JP9b3Z@vxE1> zGSSJ>!7cfJ+WQW$D3Yzw?g`A02ABaw1RMkul+Z&)7Zd~(36c~QP>F()B&ew9%os5t z=CBHwbHL0B=Dg;d17<~CbM~E6Jp&l--h1Eo@9zJ-@1fIO;Z!=gs;jGET@up}3#tVx zbzKc~BTQ4(?*iaE1BAUPc$UqUt4HZ~7$&tgL?X%mCV{jITZ7^|;t%3qGM(!|XcJ;mf)fWop9qdam z6!=36q_}>PU9>K%n^`(%(?k9rmiT zsLF-sMyZg9qW(i-?~L!k>Ym8|@J0-!TF@dWty`}rJE^|kS@m;JG&JDFBKs z?EWzp)nqFf84kO9jHIf9=uD}Cs^@zI5IBWwU141;^6Wb*3lj;^*}Z0@8r8ltDp8dN z#3p7QVPQ55B*`hj@K5|uc3GFys0t!dRly&(01`m;s-Oz0ceZMkP#sSt5A(oxhy9fV z8BtjR%la$qLA08b)5 znFYY^*>$b`JG&Y)ob6}#~~vLGWNE4}`m9T0#95oCYdcjc4YAQ5Ea$HW2n5Qypm z+lo`z-Zj{`PP{C3<^#hZ^d}DuzDdFrp1Op(DK5cNeJlaC1;RTNu(u|@J`vPoS`v8P z-=;#!&tTMZXVp4VeJ#idu$@pfL1cFq!yXu1_{pe;`rg%6GaM?%x-Ao`={!1Zb@^G@ zy@{U+D@qiE12e%YL%$)0{7rm2uzKj!cgbO6m=5g^E>MXSh8mc4&{=G5U|k6Mzyj2z zpiXC@;DyWq@LoCW2!OZ9DeW8xXTqE9xfEsAm4x8SqmV0wH|ewB8bR`5Z z;f{rISYf2wiBK*Ven<}-dJcr)IUbZ6NE*kIQo=o1KpiQ-Bm-2Q3M!Z6u`N@s|2OSW z@~wX_eOU~{Le+Nzi3NmY0o4&vQ4j*9p_1Y6Ayxcf5dsJr3^1^-2oRhONP#&kltgyN zny98eDrQGi<^fz3pe=*IQ)ZnYoCIOyDnw@rv=~UZ2L;22)F*}a#u4S&P(Bf0DL(QA zrQLzVQOqe_><#9Um@^6vvVodF$dBq=WQ8P%frktsyrbYzTo5?DC>V7CoOy!0l>{8M z=2eWCNQaAXT|A#y5cZ0IQJKsK)r=m`}8WIX{k2lAw3$jG&MfQE)cM$Toq zlMJ;>J>nYXWD*icp|-&Qjlye3>SU3DNK1x#P`e_L>yb!#BD!-)FVY}iEvi^k4(VAA zK&O!2H*61(-uUMwDOY4Rl)?Y1HqA(Y9|$EWM>eFE;eShf&3clT{<9?S42V=Kp`Vib zze09DRc(aq{Gni4DE9(jCj4g)C*Xv@H3|ONgBI-s*9`b)4`p)Un)1y*nrlzd+758G z4%a0Nt_$VTxDT|c@0~S?kHHbb<7_^NZ1&elyI}lVKoNcc= z5ZZK5{ir7J@js{so+JPqvZDj^eK7neYjpLH1<+!$#DP~-A&lxajHIN(7q)+9iBYE^ ziBkb8muM*T##nob27%RVlto7Z*GUD1AEZN=z(hZCo_~faROI_Dp(qITgD`}MQbE6)O-0U3A^8a~@NAOLItFZN8gO0~MFqOU zfnT1$dA`82esFM%J;Y=r#U753afVcPNb`YwCxFCUU&!}>V`Uh~mBFUib z@G(S+3yKo72U=>(!%?MRSP%^%aGo?fK#cTNPaR_2EJ~LxrHX+DQI}Qcvo)w@ zVBsu(ghM>4=X_+I)$B)@NazO&1<5y4_cD_hD5N%Q*MnTdHf7NY`iGMeG=K4shB_6s zI*K(Z-xMLDAcb{X(RD=LWZT9(c8-a&1*E!KYqD))eis5(5F(*ksQGB_J@(7JwZ;# z@u}z9r1#n^X0beF!D8`SDy2aQv|9G?qxl4mj~q<};Y1MC7EbmPA(yor_0&Z}pG8V% z!ckB4mH{~&?F*_?mX~Pf?^Dnrz*aMXr*JeoH7m;ma;fSqiA9 z!B}4yP}B)sF}-i|D9dl-SO($LWt_20-C6;=QlN&R`u;T|9SGbO3m9avj3Y5$w#u4{p%`Fa8cZ_ z`i8}Es`7oRJES4HWn?15GRXHZ-Jm9xWGpNkffmEAPoxtypq><=5=Rzg7myl?$@fCf z!mw@)I(cZ&um!SS)(%y6-cN+>TZU3QJ&5dY%FEaMy_Wq)y&n4$U5~zK4oDtKEbEA< z?0t`V&){2c03`)^;oBJ=>JWB42IU>6;K)a6&k*?pZ9gKDmKTSrJR?-8DE=vM&4w_t z=g$kXDx=<6MxLqfAXeY7PFD5eavZ|pa$g#pv&k+5soilbqY`GLpACtEzw@i^%6gWb z@R@Dbve-BLeKMM6nkS`cAs;RVMi>-nz(p)yqG2TVqa_q5P_g_qM1FyYz(_2A4|j-m z!W$M+*h3{Ejya_z&@dATMIwl~9`c(11Dg>@H7>Hm5WM9B~hE zoCZaU%tU5f1H}eDfdNEvg-8#sHpK(#0EmHNGYm+m z4M>wOHZqVaXdx1|hyztYS51vg^syC16=0SSoZO0l#O5?l3!qfcoF+hpdVu#VIKpv& z(n1}5y1oJpwjG{;10QPu^vjpCBY=@BcGE&FDGmuj@U1Q&FsT&qC*a|j+2*($2{Z># zz=3rg!iKm)iVHktpxDm`9s;rpXajkfP{4t!SUz6}Od(%lpg0U1W{QL(=sJd#&Y{Ip z=l}z)Y9K?3efWSAe-T#$LKO0;0CBWILP1ItVE|-Z!1g&nGh{%cmmnkoMg$;D9M@)u z#E~Yh5t!}JW)%vGSaAz)28z3IgTxI`444-_OeWxq<=aJOa1r7U35fL5kW!dNu(ca1 z7R&b|Ct;g-hZ;&^_e4- zP)H^cApHQzmC*XY4oLGlo+3@nM>?!mmn{OE2!&V+CV>#Csv_x430Dr_nAcYUfGk_` zwXmdtnstl}6b6tWp|zn=HH&I#(Ig$}gdvb@LS$2(02%|dLz2FPHX!{}G~iu*6)x*) zMRkLW1e_q>PWa&u=yMp6F85oeznrxm}!Pgb=AdI9JLaYwogzoQY z5e^k)Lnwgapqhlb1ZiX}&<1>^MI99XAk9Ke70SLVC9=}za7y2DKq2-|hY(TmnGi@K5Qr5p>?UG`nHgWKumBy70V8-(I2GE;kdwZ7Mbxi1w7QD(54njJlhsP06K{s6DtA*P_fcT zoR0#j;2X$yiRC+>J+Mf~{kni2^e$qgG$QW+WO&A;42%#yfjN*uq6p|4sy@*Qj z*8~oNp2B~Utnf$fQwE~SQ-lK&25<}%AtDQ8i3~JTXNlS+WWbENfRKy{RVD!hNdvyq ztLF>^<`@zM0ErD1uC|IL5CZB0<55?sW?cx-4@M1m8lb@Th=gdF6e3m3|EdURXk7V64Fr;tbEg##D;@0V!dvqb7eb{-zcOw&ACPRn`pF1S!~4utf% z5ZcAVC?78xavs*o6XHc5E}j0TR>yk&bxT%&VCXH47d~DPB|JkM0dNMS;U$_9$ax~X zaN1LH9v?4M1y9bK!h^Kdh>W{5L=VF7;R0zZ5tvVLn)>hyfnPXB zgQEdj4?H=Z1~@AMRs(8rG)y7a6w^xZGJ~U`ON=7=E0ANw)iAKr0$|iSpn^yq8Vbnk zqmGEQ0YI(iAS0Fw-Z@7@6UwH;Z!lD>2tk9*stjyr9Gd;rq=F(2mxD>0Fliftu_lSQ z7e#d@&4^MWGM*2yh7VE|TuE@~RG^h!HPLA621H1pXRa#rmL} z#D*dPSPC#Nlm^_JHfP2fYuzH zXJTg{z(-%G3?viXMvylSy362&P#i6hI3I4HEb@V#w#3*kN!UN3UofXfj-5U zSRZr~=mo4Edm;otJ&Gt}bYw{e6o+&n#fLob;7RKxZ0jW?GJ}oG03Tf!dP3_Gn@*fn z&>Lbazy~e1f}nvN1`X^q;R?(EUZ2W$z6I)wEmRi*%>WJ+`m|_JkZV`~WE)i}3_>2- zG{hX?EW{NWWwr?nfhGq$l^}7zI&$z11vo^(TZ?o6)y81i;J>~xjzeFZjg=XsW0XT{ z>T3e3XmPftzEB6}BgXm&D$WK3Sy5PMuByrKl(*r0^CRgoOAR2RdN@C70G(0qdi>P~frO@8XP>r^|!8nosL z->q>7^^d{|;T>~3)owJefzA#x7?#MeZl7AiQ?VM;l=#OTlkgb|ni8n?ZL@u499*Fy z2lx&_27JCHDm5)vnn6zIlR_vqvC7T;iyPCVDIPhI06vO> z_747R;WMEw&K^!~NwQ@7WOtc|y^B+FvVB6LtE+vyEZNCTmgwxBkdn+oCL|`xJQCbJ z?GxftOrnduN4%?NqBDftoD*PG7?7Ta7=-_s$*^UaV2PsS@DX151QluP zUg!Px#cuMhH;b=t-l4OTeqYW`s%8OK2L}JyNmVcVdSxc(<6#?i(y;u5^t43SHX8*e z++}(tCb}ocoKsQ~lbn*0l3Zblm;7C5>VF9X$o}vEnzDKUzq6Q9|A&4|!@r0~zsP9a ziayp$_WF%?@XKuX>C!>OXoohj@v*(}mAqJ4Y;J6BPGW2ZIT1cLHl3VHo17E-BSXe! zCG?9O?B)`y;>n+YIAkXQYXAS=-;MzqzScp(*Fh-xw@tGW1PbGabcE{!zwRJoPUt?W z{+zfj5b8!n!WPnQuy7p#p+I;f6bkV`xCTHN|EhS;zJT+Bk1^n{{@#wn!MB7vtEyEA zaPxy7e&Y%sU#d4i;2JP)bizL?QVJjJ;v>aeSe34SphWiWKYu7U00HWOFMnLO~pN80!oO1@}@*lW0tp?);~$yglVaRJ#}3-y63 z0Jy;iseJ(>=>$vJfFHziUwEJmCXtfDuN!H%iz*!{fY9o`vkxy3oBwV5EN$>n2K%5I zHxSg1=0B?snx)(bF2AkkdyM`JpKVCFZy(g+uH65mEVlc1|1EC`Epj*%qii`>L$lSG zPGjEc!UwO)lr1Mf(pU~n%k&ss4b47dI?>5o9*5>rOss}hYYmtiE8RIXuPl@aW*Rq0 z(PK2ZG*!l1$dOZw?7Ol&Y1o8|9+kTGCa1@Fu9-TQdH?jLe!EYz$8;V3dkZS!(1M|5 zN?iq`UrM00;!)4lxrUthwPea1# z8Yz=71{e`aw4&iys&mn#;B&zTfXKNl zG8?7^=5r;@8s;Y@OC!_zW>pO%c6gMC0_WZ_6U)RE{P{-==Tm4t$rav|@y=r#;W978RJDZ+%Ip?@< z&6AO$i=o$E*Tgw4?mX=9bH7>d;{Nz`*Urg%wKxUEvG=ZAPd{hW!}RhHr*Tt^B1dUu zQoGhHxpJtwk6*skQ{mF6gEbS@9UGAvkkc{s==ozMwu_u!+;$GV$UMr}n_lBFluope zM4mSa^A_f`6A$l8x8Ad3``V5lhpifO^^d$^?Z*WAv>JXXbm`^j5DqXZy+}z92aF71 zngOlNta-*vqdIO57Sb9*;B`K%U~?HW1Q78W@eEz3_B8OBaIydTty@AlPtAt~G%h&B zgkiP;FOccD*q`Yjvt?Q$^Jq(?^~|F>;0j*n19uHxZ_AQKq$Os_8Zm|l%9rRmIWvsR zskMunyQ`-=+apWtk=(FTX42g-{u$-U#_sOTH)kwAlFymJL}8Q7cp*#>6Ij-<%zsRW zRCryajickBL4zDJ>OLWqn3ds}-9IfWJJ&HWCmrV_a0)f>Ft9IjZ*RQVGw$|`hXdp@ z@#-imvt<}Bp{I%tcU0%^M7ba#MUKn~lDN;Vy`IO74WrrWMofQ~aR5?Fd2^PSvB?XB2GGfu@xf~%ww^Xp?@Y+kgtdB5K(H-6cF zWYL5Izim~rTdzH6$0@b@S~#p3c$yy*bhi7unwt4vm$lHow6yxSghQFHUQaqTXrNgO zuhOdt{c0y4$?vzxXI#%s%YBB3njP@ybEfs0%c8l?JvK}{^H@^s{2*WH(!WZ+XM4*1 zTU|F;6%IY0kKg*k39Xq|B^L7)_`9>nn3&EsO!+-DPv|1~M@($^~$$WFkidP#h z7sW^xlw0q%a&n&9+UrTc;}wS1ZzC$5;=c@ZtX# z{J^Dxs$T-{={qeyCr)FOf+1iA5?B+U6)&1{nwUoJcg(^l#{DI#)rnzHB)JmXdg;Z_ z!bm#+f5Qvb_=zwnod1xDhtn0*838Z_?u>^MO8pR*$`@O@Ta@}XZPou_&#;x-G(1drft4fn>X=`1?|(pi zQTw^ao;e!p4|$%W4Q0M(igXK-#txs}$0~i@g1}!NruI60V_sy1mfhZUmsYf1J4AEc zg_%8$^fBQ-Od0sVDWZkg@%}1d*olpPTjMV7bKvH$N_}}W<7J!J@Bcs$C}nX^_zusvspMK=cc&L*1%pD zYim1{jJ!0oV(6Hrm%KMjjC)YjWt7Q_a>pKbrnI$R>)d_+R_`xPXEt)ZHdL&e>M{KE ze7W80&~7CbuGV`!Gm}O{R{pBDritaKqpvEtVJ%swWgNKR-`j^`|E zvg7o^0|sq;N8Q@7nxpJ}WtY*$s-|bV2Hp28*L!FgxWjmx-!T6>yZ7b{xtVj{>c-B1 zIs2dOF^#@5a?+EKKxWyh$v2+Fl&<@9ZGFn^-Ln)!YtPpP-4C=~Cb3z%tgx^A-uQ&U zy(=6?U5NfQcIO})n?GtZ_SzKN6}NZqvisI(zoLDb!TZlH>EM_*<89`!*Fm@447!#_FgR%4dGh^qNsJ3)}Qhy$!D8aH5A(Rh;rUNX@=esKomAeKBUq?3+;qCJtvV=JjnpPkW}pt;DHwd}kJ( zF3_2>JGr-mo%g%FIj1s4eyMKvK!ov&;4t>1rE0J?s+v`a(1)Xpy{5sA0{34^BO$F@};D3>6E;YlU^Nd z!3k)!XT1Jzi&yY<=GCTtNOhP|)~a2r{@nu;n`x$H_MAQQ&d680ieCn_zW%B0$tu@p znbvFXu4`F)^4d$$x;ZwpW`~Hpv|k8|&NtiZWPJPie*5Dw3pNFMY8}wpb70NdyA_wN z7>x_}@9yC=pry%(4X;|hyKdJ;nl`(lM^S2K*0Qa6d)xChmeQ?kyp`=FAt~CsHio>u zRXoBp%c#(Q*}%K)TO}{r8yArAnRW7MT%u1+jNsR? z-Wr26PHAk&Z)R8>AHVte)dNj=)i-<&ifo=rHv=%!}0d@_?!yFJ~>$4C5w7KKXjVWY}Ln(mh#sN-tFwaHE7oD$N7Uzo;-4& zQ(zqQ_54Q5)ckwvK75++SX=%mt?jx`Of4^X@{Jq$8Hpucr{;GH?XpuI-MoCTfs@6M zXFggR+I?L9`{KCW<>Tf>59k)!$$yvc;dujNwB()oe=aE9U6qm1?{Gw}M0ZHoF`2T- zL`KYR9(q{2L}e#)vX6M_F(A2(tg z>kIN^&3V#sEz3vd+34}ww$Vy5Y~FK7`1pNrtataW-A0vOUP?#0GQJIp>&RRfr!qsi z_{R;-!i^E@}5H49wbqVP%g z2kBC~S2+jo)h~E!L6dlz5d4)&hT&aN_R#uDMU64Ux>@f0+BIGZISTdF!W zu1sl=41T#GqvU<6Uz(vO(z6mex(!Te3k!b~J+UEUEqzXTDgk#QwvKkczOc&Khr5SxLoqyVs(Ez?^gzK^B&Ln5VY@? zglqS959<~6Hqyb^WbvoRHy=OGxbtY;UH|3H_lwt+K5(O=f?mhWS#F;h`sTO%X@y$G z%Qp?!KhJJT(wil5rz5owA8EejX7K)9dz#(LY;v!Bb-Lxn12bD+R5}E>+-m#V;&Zn; zteGGAY5cgz@Rz}@8uhfkdat|3t?mv-C%!&3dPSA5VN!IPJNsXB&Mj@fp?u`kkGBIl z3ChxYFF7~%mp3zC*o-oF_xQzA*(zq{)zWeKA)lJnSlPT^Fva1(X2YYgWxm@JW(Do5 zNiKdq<$`nfQ#K!Z1zx=uXLdJXq)D#Upw%U_u9^+&uUS~W{pq6?uUAdo9kC@K#v}7k zLP}|$eXW!FFPT+UJl{Um;;dOhUcr~ard3u=FN9Ay-62@dWBi7e!|$~`n>OaK{rtuf zN!Qy8FK9Y!7q#2b*oHItOx6?+#hsyEmK9Ye8l{I<->_Lc#-KEZ>)R(J!=eJ+(Q|oH% zlsfmzgDo@PpQw#r(@MDUX!XNKPp!(Pjc=Sc;cL^}wYzM3eb_T&ZB>@f=*>Ez`xoyO zwXW%_cJ$pqD>^lB>t`O19J4}c(PvyixB1@Vj$CU$A;R(-@4R%GQ5@APA#UWWyQh9_ zE6(5bnOeCpsO^B0(|6bGnj0@HxZ+fK$dDOj?Ynf*Fw4*5GKU?y717ab@%@W$Mo|$- zrv7ub8x;$?>)Yp8y=w7x@-{{A`=*a4$IMT7aeu*Jvs;%PN6sBR$>!|Z=_7LrEy`jR z?a{F*Szi07bkFQ)rbA`_5jk=wqurSQe#q1mJY$36=@7d+^$O#Md zR$cyT_ab)Y&VbTljqax6AvgEWa5uP`dL{9AfW5DKkGtD)O4iQreY3WGyO^=VY9{zC zS@XJsbcbKoqD4nm^)~Uo-DBS2HPzJe(S6J`MjqE*xX-Vu=&}EJpBp1q7Cv$4SH9^? z`fA;iwBGf#8AF?Uxs04KeNLXzp;N~7VdgF0T5YVXF5P}8zoxwTSEug&bN^VARy1Xo z_mN|sRokfjH%(7`Ngucq?BW1euj)~67b&Ct_xms4%nO`D7OsrGLzoAE@cfNVMYP)yiKF(ibyBth;J0o&H&)dU0_x!TWt?%dnOP$S=Bqs(r?b0`X z(5J9p#7MubOD6~P7Z|?WKk)UKu&cZM4h@J6m${c|d1Owiy`XooMdUEgc+QZ0D?jI? ztutG-`i)z)Ym21Iv)fjh40T>3j~PBu-*kS&mn{zxtgrUdI}!Kl%jC!t=bw!37V_-c zj!BDaN{TBy?ZSV3n4PA3#LYf?vh0wnO;ydNu~vI;9xfifIjZ>T2Y%Pt8L4gO22|B9 zUOU9ref81DBmM6OWFB!kw`&X&+r{p7LdCJ|w+Nz)Ty*~P5^3S^PnQ<>-`JAlc%`tnyz5p23qjJA6|e z^dF5154e4*s-JPscsln;--W#{*bL;{b~etruuS@V&j+#Ag~TkK!){3vV#=0|w214? zw9 z5&K3rp0?{3qbnxv2Zct)?FO&%-}2ggY_H433mWC59auYb>sIf6w;k4~t=ToOW|tUo z-2w|NTk%OAIJb36SsZ+P(`s47m!y4jtCc0c1i0Fs(EsYld)mMZ{?y9Fq9Kr~o`>kD zR>p!y7QzhK=f7LU@xxUdJhl)%`UM|hA*(n)H8cMs3u@=ybURx7U}0=R>M5`3Q(`V0 zpKH92>BgGuE(|<5DuX9Sb&qxa%LO%ja>Up(ZuU;j#8UTE8%eO#_*}TNIu4fF`_C-( zPZra@tvl~K^+}BG{H}$cTCKTd*Q_rsvx>R3ASdY4imXSmhFiQtJ0=a@pfPQhm&|#y z=Y>53+}d4EN*{JI-!tPkJ=vW-#UIm8l}|Tr{`6r=-!_pU*Jf94F&})<&EeM-%5D^Q zJ-@o>LE6nq&8I_e^vkNYJ(_v3U8j8dlJWHnrOxXN%cwhpBlE4Iw_huLIoa#L%hVgm zZx(l3`F6$@o31TST2-|#+u3A`SZomI)$(ThnI5a(zPByfyQA^?sL{R~Kj|!((4^@8 zbM1bLJ&Gp2O(OEgyX`UC8=vc7*MDecJ3Gz6h7U_BR>a&0T$HD?<4KA9wAa1P-YIRn z{5Ix;lgXu-uZrK4&~J_($ou>zI44VgRX(%dW&MzgVPCYmUu*x%!KjS+iFuvuHiUMx z-)+bnuruksRdsI0k;$4>8|mo4sH97|7e<)J_|cPlHYw?^Te{fhYTqU{R+Sz>b2C3$ zMD_3IZ_shYA6wTRdQjA>%ly+Pg9mPoj?&zaM*9sPRt^U=f6@BwiBF1G+UKLYeFBFM zpH_YJUE4cbjdpH2?!817K5EBK&Ti$xp^eRqiY8@$xxe|OjY*MqvD@X!;P>;sYCUv$ zXXVnG*^?@qlJ zT57=<1seR;A}+^-Yecy$d|~)_)vI3?&dna2zBXy2UyF6;%3wWNAzwWFAGX&Gp60^a zNbsh~U4_Rsrn#|R-I|HJi>s4I&$UG>Xn3^Dj%mecsVcw+5CXWswr6uy zKvKZwD#v?Zu3Lk$9NfE6x5|ghJ)ANvMu_FPf^uoOI!uo#Yp7VDzg&fa>fBl2R&U>Y&Y{Z&Jj+R@#6g>#)cINn=?(d8at&$Xmx0&{$a`ub1>%F^KUKu>2 zqsE)UExHq*#c=Nry)$mX&9te-FI=<~r({Z=E-bQWlI7QF|13Gl;_J`Wcp5IgD(TLQ zN!=11tiI}gvk3RY0;~123DDSn1 zIkz9(6A#MZ8zn?#36DsQ-yi*ld~plG5Rc=5bEqCVdl96?fXmi5}#f+)ZL^+%J%BU(0fnLzKqxxUfFbR zRU6)fE`B3-LGSiN)oBb}- z&acvGnS7+i^I_xD@jGg=cK0hhIx4bw-cXB=Zv_6^<7*GgA1KXw9h;pa+QEI9bWK`$ zvAFoipiQ%O8;q(lc$;g_ud2}PdG~(Yg+^z8{Uh(*an}}udO2N4KKShDx?YAW23{$S zO7V|N9qKYhujk|TO}sQM+KMuZEag2ST-${QM|_=Rwx`d5B-w`t17uoOAD%B%6Tm{l357@BjbrX3w5;X6DS9 zGiT1sojZ3kZu$*EBZSc6^XH#JJcDm~jbPY5Xh3pU%APRsMDSaw&qzgYrIuFOU8Y*6 zW1iDmZ7R3c)HvLxIX08CuEu1qG38GvF;zP%Y#E`U#!FPu#Uq8NSR;$??>Y6Ur?zt< z%@iVAgt!YFQq1!*G14H>7vZum*_-X8!vEv6K)YtI_O@gM`1}f2zD&v&L6zfU5VjX3 z$uOSR4j~@t?jeMzd|rrwKJu?)CLu=qmCA72mbgLd?*u>^w;k>Cf0=}so#Avj%fV#b z_5z`XH{s*=8sTlUAF~aVbdZHk4CyCC(QF~uw%}cJix4NfwNWSlJ6T?aqS~HmvSv9W z$+9_K2xHF#C&*fSb)+v5WzmRGS0`j#Dw`AV<>(AxMx*q8WFmO!CjSh& z)){)n^@LoK-vi&MG(uiR4r0`Y1Zm7k5aEslzk_@QaScIcWa(wp2le@+y>cn-m7Al~ z&^2A|)>GEFOvvj<1?cH%e1@E^ccp=|RPLFuB9si2EI06X!iq4J%Jnl`PwwN)V^bP24 zwJc%I1Kuo1^%v?(h@gb#x|q{RmkiP+3aKe08lsz*eh*@ur%84uWr_)q`nxwZHb80@ z$x}8iKs}chfx@e zfC0Zz7>s}cr%@P;fC1l87>s}cKT;TsfPo%W7>s}cpVszVfv`b{yaLXz)yU>4vLeh<0p@Y)=9s$l1rkU<8c59tI=xm7#@^ ztX)As8Cs+&nYN!NFC$>|_b?clq(nklW3EQ^vU!oJ1jezVKO-2wQ5K!}8sCUd5wf`o z*&LGqdS^T5!4FjqHNkluXfs-Al+9?G(fK53=idQRx|rW3@v_-LCDZ*2O_Wgx4Q^ei zhf>Ie#v6@#2byezwo4!(UFxZKpjk#a&Rh#xk=NBx4qWd*^NiCR6~LVvAl$Dq6{T$J z$0O>R(Z<&G4p8c)c0Yr5YtU{@Z;cj}s^z))lQfQjD4jk=Va7U2ND-}hA$@T>(?^&G zA&2=8bJ%cXCi7r0jat3=9S|!n1rh5&K7B9Mx{6#y9GhF?7=lcW8D23O$53L-V#a*H zx{m0c-YD-SG>&25_ssTdJO+bz9zyty(9}hulu_S1N$+6g3cM9K2u(0Ugt2FA&pE0P zVs=f}bc^koU>;6Mif`1YzR|3o%!`q^o7zd-iU7Uy`Nj867mdf2mMXm?L}!a$e1|zk z$9_pI@15n>T<0JZ@pmkTM}(;n8k>)y0On@dJOWKo%awxX$N{|^U8_A&)WNwKh5Usc z_R*BtoQuo`a~_~0AHeCW`-SM3R_kb}&HsK6bHR+|@~ zK8V*li+tiZTm%%a4=Da&Kk;&0&tURp2?0Tf!6Ip@C_?0iiFb&w$3!L4fOnS6dD2+K zd*B?)-AL;IyJ*RjA z_wo_wK17@=QB}_`kH|U^(SgO7whLUWSOI zO;43&^D>B%%`2z@MabqDM*xx1xSX;m8A&&ajgTXP$d1bp!?fu`lqxxQOA&$eFv@z@ z1d>dp6&W;ZA+RXZkBY>aucGF0of-kF3Iq2Y>1ZxS`E*TuFDcHbwA#EJY`qyFyBDq2 zdvRm2`j1njq{;CL(i!V<#D0$Lin5BVaG51&;-*pjHTLSD(o7jo1b5?jZ9G95N!&j| z^zJQ!)0O@q^U-?f3gvqlJVD#@b`35ldZPo>3kr>MAPCks!GUpQT+Z3hb_`0T?Tmnd zVWKb?0Ry8-VK4#)dQ@RB0tR|TVK4#)98}wL7#1>w$g$=dRo&3PN=8PI5kW=U^PjT$ zUSv?L(RBsFn^xnPOlFRk6-qYWiVVC6TFylvn!h0e?xM(K1Pr*2!e9gp^ti%c#3{!w zCp|qLZQcse@aXNTj_6+{HzO!M(ZgT_3{1sJ4o1L0c-8j&1v(L;=&CfP2dl4Y&n=2; z-6Au>CpjBkuesqL!SFRrT{O>=>6++X@U5#!MTW`**?Xd1On+DFPpS!4meFjDNmaJ-E&cH)fAJ-{7M2L^@?Mq_LP7FOC`9n7zyWJ)J9 z>Nl<+R_||mMJkC(QnoKC{Y$DtBSxT(5Y%CYj=VsFxR74m^+AryiBSd+{fGWF2zH$Y zSTP$6^L}96g5suy1nC`CFtQKzoG+VS2iN&FbTcP{*IOUQYGK7f^>jf!9XJjiK(@GP zt~tnqh^nV0u+jVqN!0Vza?fjB6<~Fh9hm)%n4RX*m)0?lzI5DfidgX=dp@)RT58ji zo##;Pp#++|E5Ucz0bKI|8YrDJVc!6a;e7-Co??EJ^tA+uT262*Ab~2ksyR1d1vJva zUV3o~?FdCXlnWVHLrW%6-4M1=Ni)@rCTdqOuOl$$9V9f0GG|gMiCjTh%!i=}Z&sv- z`!TAJshg`B&{YFq)I0Bm09vOT9kl>mogECKR_|B{T+cF`v0yk80Ae{zJClL({B3qp zDHnh<7rYgS6h^(P4ltyvV-dcB9E*wNSORFS2S7+czv;!l@EwNsY8^|#)tNtpu141~ z;2}ZI0?2Y)0lZs~^C)ncD^ocsA)dMXOC({rsBtVuR+dA{#ZJMzT+}!)F&b&5IF=cm zHI6Hpk?35`j3kYtff>m>4Q=b166|~!DH=y3*yfd-mSS{%$-Gq{*Tb}ulE4d3$5mi< z(>PY+D_qhHw*L9&pFz$PqeuA_YmgAc&ZiI4hUv^7ppiW{X`(4U8GDB~??YB)@Ui7& zjaCu4_>4!nqLlE+Q8x=P&D8Z2-NL3{d?jDaC!K6BrKyp4YtZWQ|`Nm3gB( z@@bII`3l;JmMQidfO^^D8eUo&wX)uEEqFc0$j*G3sr=fTaPZjLmHt z$9kmoPS!ZC!*_bD#&JEq4`K8uqtvX!dIwX7$SoO@E77tSFT@D3sBeZPqmQLe)*#~O z1V)0W>>)%Kc*?u@K9>f(#O<`#%!5k{@k$Z)SdHLKE)hEr$Z46=Wz^)te0)Cv`ZfdT z+$skK8^2_@$JCUkl7bQV#4l1G5eo)TxQ$502LVTXfzQ+U5Pt(c>G+(&2lgae@rUX` z)dJ1pd|H)HWe}dc`Or?h7Dp2wW)fq==XchNe={5%LHMSQzb8bA1Dz>#FY~j*cSPt# zX2cz_da*T};N=XLF^pyY{*HIV8il*#wUBUQ^6_ZB2=6$*bC{T~=@A_!e(Tf&oDaZ> z6i1_fNQ@L)BMCm3`a_~#oHgAM8!HZ*o=AxmmB~+}=tZSC9-Sa&h)P*6ZVw}A`V@kj zqmD->i+^-_N2H12p?}786VF9&N$e@QC8nh6u}54f_Y?8DEKMC?52%}ct-?2yZ7;%5{ z<4I%0j1E`Bk_l|pj{wJr4?6uAF-A;^{t^6Ptiy>2s%tx1Jzg|wZi)yKV-rcv&#}j& zvqe7a&|RwSBt)cmmo52j{11tf#A@iH7Y^7>FD7*&m>hpRdWz7PdUeu^>@aHYj`%xb zr;9BiVc>j{KzaHlkp;%F1sYNN<>GhwrifwUQ<0cZ|l#Cl4 zl-40yp@IaZU7A9a1}gzdOJk}NTDuj}hC_-FCiFg0pP?L4U6>lLRj95)lHl_R2{8+i z)}7O;W0bUBOl?5zRIWEuUDdR7ruGOWEsLp~P6|buhl{S<29p@U)FpC44D^HlP})tX zZ>Z=e<}-C$Dp7-A14>KhHspw_nW{)kh7x|rQz8G;qZ-Q-esuFSSL0Av%J`f=dCjb<+T!Vapsd%mDrp^Y3Rn zoMtF-TV7>c>4mY7A0cL&sDIBzmjnJ1TG`Cz9&bqqr52q>{{Es)RBL0Q`$Fw#6Naf+ zW7rqA3^f+3)O%qKpe|FW_%jKxx3Ds`$)M@9Mk|X-mAW^Cs9J>*^R*i#SsY^Oi{Nz4 zwOWlZqzb&g2+jee6+@YNMVh7w$6P&ysWn^!<}9W*i8awTX!T;gLK%KD-l7c>3stIP z$YxOWD)mU@8m&PzsMLYTyFgu|P~u?f8f~!H%hbmBZxgnIO7B9ttTBApVKuIO`>E7F zJA{K8rc&>Rtj2Xzfl8eY2?sSnrLK!yji@(OrEZN32Q^!zq}0_|k5sBuI7WE~u~4NR zHtp1gih7lL+4KOYl`1tl=`n4XxK^dCNl$~iNu}1rzM$5^g5{PpL|5?qk5yY5lRx$4#fFUpXmE>S0H$4 z#6jtrkkeWOWtCbL@|8BuOVx+`sKs)GUk7!!rT(tPMV(5Wg`d$niC&Zztn*Q4lB0Dg zN|HDjIuCl9ywpw5(@W`Qq$cQm)KBpe;=1xWsOuMM(s`*+gQlAw)d>`v2$>J+q7o%> ziMQO((9B0whWS&!MfBGB(#kN8;3AD*2X${H_SIowsZxK$#PGduA`j|@M-SEYQj$Pv z6Z3pjXiCx;U2pM(+M9n$lR-Vt)G9+Kc{->AYTEr`wk}<~rBaUx8>nLn#XX%NPBf#w zP;;&ntFec8R;AX$KQhFRDn-`K6o0BzEqp#x7`TaR40k2078Vh%Qo9nuL3L88qcN)y zH&RvV6Idck^i-+-7%SN#Tcz?aRa zrQ%bSI+%=gk@$)!Wo!-+=hd{4p-+n;;#ZZL6k4krf;$%EBx?+1NE<3Ts8lV|hKd-K zs!3TW4HHQ!wLC>9hKX)WDe-K$$WhbMW9oFnMIlqG3d!ndE%;WthI23HR$riXu1>>N^1+m zG?iMGxK>vnu2ZRV#)Z--aUWBSA}>Y~qr@dVlp4h=#)F`y(FLez6su#d*NqaRF#^*)NH02MOkE>G*&#pl+yMh@w}2#EX6n~60fM`XeKEV zZ>ki{Bt_!9N_~U0apG5%`UPp@ur;MQ$;AMn|c5LZxnrc~Uo7Jg-uB#q0rfK&5C_ngno|LuI3zt7L|+LDm4);Di=?v)J{a&3h}&3J&j0PAr7e2=SZ`O zw^ZuiNVAD!DiwrSFjt&VsaV8?Ef~k$7$h2LHy~`}hyiuH!O?tOTRH>02y6G2*u}p0e56Ab?FBUaS zDY0jnSfr#G?(Ni1zf5dXsZT@G#4@onYJ1!o?G@rxl?v}b)W<5-BaNuf zm{NNB3h{2XqFIl)T>TZ|NFSm$i4*a~`jz4*m5Pfj)?Y1>`zmQxq^%eED)mG{v3{eN zuTpCvWs|spsf|KJ&(Pl?p7Bz4{WkHHO8vdlBK=PBheGknc$YBtqZ*Wz_%0F2)GDlQ zSLk<90#<;^dhmXgqV?cv{R3WVRmeI&sy^f<{X=S+Qtn}I&TB%p=pXe`t3tNwANNxA zA-na;KHA&}+L@RgLQuiyMudk;f{y1&;ub7Ref+pyB>xV{r%!9if&78W9#3koRBJhtJ5U=3v;O;F0a^SOO}@V$5c>&e zqb!cV4jNIxJw+Tz?8o-4C)Jlz5(l`)%^JJ z@Nn!v!Ve{(TKVwl6Qkl{pz zmoc<5v@=}Dun|xan;G_y2+v};5HMUk3m7BzG3OLuXYn)Rl1w@4xl||M;o`7l3`-NK za#?~Ia93KU=pk z-iQv856gSxh0^=->G&}Dlsp~RVVfaACpJrWq%D+ov9w*%Rk;4#C26oq+$Eh%3Ku!j zt08f6j`W_%B)^V4T>(Fg=q*1g&Zn*w-*Hc!;j%x=FGdWNCCzOq`SN#iQ}S5(XZi2R zL*+A&nJ-7kC*n)w?~rpEQvcbxT)qUyR2Iv@n%UT+=%nctyBxK=jcZ}j3f?H)5PF?l zC{aHaN@-Yg6-xJ_M+&9)8J-EdS*9Mm9eI99rnZbWQvRB_Ce-yrLJ6epO1l?$Tx1EL z6}1P;KSewxchda5(~C%5nsgAYTa`?3CVFkF{7T{hIa0)kbDA*Ry$S|Q6axWGVj18i z;#$DbVv7b5PW%A;7D0E0Hv`Hzq4uLD5LTZ@!oZ%UUzca+PBTi1~WXc%AF27~TokN9+c?6g%A+B2Rn=I9B`tSi*1y^UE175FHF7Sbh$}?Oe+atVf3gon(%{ z>UT)cY>8@bV7!UpR)%{S?qhh8;Ru=YGi+ek#BeXelMIE1@|YN=GVG!u`8_nN07oz< zhhd&(iQw$|7)gG)}2bjuu55@}_ zHZf-_!@UgmF+9ak(oxw|hB*wa3>z74Ww?*wDTb1s^E1q0Xl2;Iu#sUC!>tVWF+8Qf zASx>i1WgP_Fr3YBFT;}zPcan1lv83D9K0L8VPZU$VGrhvU_6K6Y=%~b4GbF@HZk1F za4*As3{NsV#Smvgs4j*khN%okFw9{%o1v9q1H(p!O$@g(+{Pcjr8*lrAGGi+ek$gqjwUWO+bicrcwg5hk24GfzYo@6M( zD9_%G1Wz*jtRsySZTRDWmxMnDcvU!Yb}(me_)Q|t@Cx%y5mf4u2udBnczy(xn$37c z1eI-IyoupnhOcn`lZ=1H`9&nj(MD2!6XPQoRz#BIt0GBe6LWTOp1q8lqPX@buATAx zD6XCHiYTs~@g|0Q8Ggq3MKsqKP5DiXUlL9EM=(B{VFSY^hC4XtE1YL`43%wQ*u-!z zLlH}S6T{gI8yGe*+{^GJLlMV08IE8$n_&aPy$nw>6!Dys;fPKYPfQ8K>4!(~UKYp1 zSK=~hsdSxmSUM?vFGa|G<*VdJWV#z2j2R>h>r&h^)f55_*V1;PNwXY$+@S>2;YtnX z5peP<6eln`Vvi*p>%U06yND>!4XcL?%v>XIkRw;bi2|H_8I2fS1S#)_J*vm4-%d{f z-XB6RDr67f>ydt^C^?#5KN? zrVA1xRSE&zWFj2~u|99dgoC5l;iFK}wL z(G{K%4iC_R*1}H=xC?=kCAh<&2S>-{I>5suc#h&{bjG10=2;ou6AC;EP=*I}1Ret@ z!;2z-#{tS%2}J?#1SrF+Vt{uBl(9C71D*sZ<6c-N;33o`oyoGj4 z;%z`#yn}Y*PCi;Ji^FJZRdf&OO6fVN1_SD9X-cvrw9;DXOI#-kX`Qq@3UmVkD0>lo z(~C~#&`84)nO{fcMqKd|Px9lf#$HBCUM%(&l+%6mO|OsSANZECRv{UFE|-Q8(p+8# z?D^1({Mqw5pd$XfANcllb9slb=Rhz2d_!1$osz)ttQ<-Q_FA;UU5np*7m7S{2lGiRrwHG4VvqBho@Uv-WJ^cZy;wtb=RZS*Muv0CTdMY>`X$;q{v4nsjxFIZO1k9 zJ@}+Z{P5V2VS~!bvIdn|#E?9v&FZ!lSJln4*A&*c+}4_M+psxmYT?M5x@w!#I;YAu zJ4+PiIjX8`R(e`Z-cS+rx($*zb|k3abm)GqW-8ty&_lsdY9_m$y#w>+jZyzTR$~=HJt;Q+@s1 zIxRqNw9b^n)4*6;{bGl+qIEK4IGk?sX+(Tm>+~Xww>s;*04dyOtqXX%sddVDYjprI zBbQ*fyKM#bDqG+TiYo<9E3C1*OYMQg<}8{wvCihK51d+3?r;XsrKHwY4tIyKO57Mn zt(!2_HpgWTlrXBQzP7S;evfS_?$cmvox`vBfio1AJ18OF>RiyebfIe$9>}m(wN6p2 z)|wA-HLbar4P00(v`$dGCjh_BUFmQJ;Fp)%s;~}mJDl(*`&>H&x6Y-;rPc`uzw~2G zInH@l&D6L96jjYpL^FEp^4#Tlj=GuvX{DHd+bBUv7}>Q|*80{ta(qpKW3)~$z|>w~ zt+rPMNMn6k7n$I+V-eRzq8f>c9P{$+PAuXa&H#edb!Tk`EO6zNFqhWmHMYD)1a5}104yniil=V|E;(4McvweiR)a059tO%7A zrH&$KqF7ZaPL(*VHLfaJ0klX^*4awFGB+(z1^f#Qn>Puod=^UqmTP51@d+=_6P^8< z>W$c3$S;g>A<*73bJftUXkS-V#W|?8ik9A5{76sWEO1m+*qoeWE=uNASzRusykmo@ zT6NjS1Pq}%I4>EwTF*qm%6bXX!GEIQ)MgBI*{XJ_I*y9$HSlsr^&I*p8Tq#IDl0um zN4@OnZ7gkVE(9?vU54dhzTvDq^Kd;1M#b~6bgM(UvZz;Zl;t7eNuzx5NYrAjLGzSM zN@2b}@UWCIoojX30$leoTk!=K;}rB9$ja;P0*7tSe5I<^&AZYo6OG>Rye3f8+(fN>7i53o9}SBOQy!^h6I&8eF=4=&`Wne4JTnd*nrYQTnq%~@lua`8k}Wh-^~Do|QLV`+RHS-~%bdznQc;98e3 z=JKU`^u}tTqORQCI)S5kO}#Hc9ly+Xt23rAb&<8I4({!80Z!rzOHo=0ooWziOK|NY z#v@qb8km~c>O$7TP^-vLO@v?|DBdd%*osnzid5CA$SAlvKYS|?=3NSg06-V&T%RbZ zbSxg{@>ZB{x56o07<8@-c4}p8*{sg;N)^TU#Jqs1tE45@kAWY>bb2zB)MDx2msVhR zx;%85OA%7ycGNDmy46Z}oy$W~!3xRyxOyL=UQgt!YhKRniRWIXZ@%P$%2@NbGYj;a zQj{zR5iNOkG}&9Rx-{haJa`#$a0ZxLnM;_Wxs!Uw>q*p#T2E7oY&G*hqlh|hVtJ_Y zthILGm@{AGxaw=l$%E%$*(1t52;x_nS~V@${Z(Pwe@gIg~TG;A|O=^mE9d&^;C&EgvUPF z85LDkVya_FhB6s5iP$+FldnG;+el6;uC8cL#)Z8cd}Wl{s<9q)+cK6|tE(_S*0`Pc zfw8J$D}s^IMr`?sLh58?S{0>EI~Yn$g;@h@u&tvw!Z>S2d zOL3KJE^?>@x)^IWFUgAs|0wKP;h`gZq1od*ie2qX6}g_xIrw=7O+OhW*!rVwA78b~ zg&=FJqMoIZZLYf2+h4EWd3^8u=U2ZP@xO zr&YPiF084rEtyc~o-lV3?F0G}{054T>A8#~VLmRcqN?l_6R=On&GV)3=&ivr!pHK6 z@Np0Hh6uELhsU@)2G{;RZ=FbiW~I^DQzWuMP0 zskAzgq}(*Xl3}4x;)HMY;7RmM!{kmjrzrFUKc{1nof%l=Vl@Lb6_+pg z?2(HQ);(#c4e>3Vw%^s%1onX^zGxJ zBb2R4bv|poXUY9h=;Hl`KsG?nQB)%*^4vL4Iee|4T!kt1D)x18RURD90h=p4&lIEN zhTvv9pj@mK)9TqE6(g76J}z7vzLQa8t#{Ocpx8%N$3!vCR#WFSo!VD^*Y+Nc#~>K5 z++kQ^2qjRehVb-+P!^rE2FBV`!1zj21x*qvIuA3Vx(Mcl5jUY3!%%%Rn`O1Q8cQI5-emGo<;%5k!7$?Y(Q)VR^wMRup7hW3-G zyAa6;qq=ybSk#QOE>SSz`F4<5Z9kG{FtihwNSvftTPTg5YIj$v3^f9K21a2`Z5>*v z%po*)bJdJsY?d(swUq2CyBy()R@ao~9@@^`Na{yj1Q1*B{ z_g0na1ZAYL*@BI`^0p}dFXvr(9<;y2uCN*yR7+j^b)`~$~FEFBc z!XTUyTHT*uo3`c_x@d7e!8x+J7A5hcfO$B_HX5ho@Z7Z!F(Yy2ZY0jhO~#qL9Gv?r z0wp4Og4| z>uCpOhenipDKsz%(cJ{v#py~e!Yh#O0)Gy2+CbqU@YF&`YFXaj2BJO>zYj4JrDo#P z;bLyt0^nKrP_MYq(sF!PBc%eCBgw?4e)hNdOq`K&!0Oa5J_}Q?`lw=*v9smMAwvu` z!MeUwYAdyZ+UZ0sR@7I|Eo|L_3Lz$w=TM(kwUNgJy~*duK68ON@jV157A-ibIE>3s zZN$j}ry4njL8l_*q?-Su(lMUW{;d}MTDEgBY6#TQDz$FvJJBOgwSpVA@RvtDO0A-C zR*p0=AP?oJXDYzy&h7O`QoMx5Ks9>>+0$bSDOm9?cvDVm2{d-ea-?bV@^17>EmElk zURe$AWPmK?0oby+)#zAdFqohOxi58$6Yn|*qUMpSnh;2+qdkqo?i6^f2YzpGX~@=~ zG`VwXc-W2yoVb*Nnj5(kk05(^G*Y~TdRXZbHdDP<~N|{D-km{KbMCw%3PW?|45%p#X^e9J-PSy%_3=b60D7;Z^ zGytd$JHB1;-bwsT!;r!y@x-Mbn~_~9SOp3W`J9(Lz|L*M4mPwBnHN*Glr<&$iC~gF zk7~8ez=Mp-U^kL84>c=(wH(LGO*n3@q}jwGl&V5+&kHg@M5Q!*Xm%$flQSp=GyP?Wq=6JQu36LAeY1>M$F!C|7ba1hu?B`9lbG;suS9dR zQSJ+sP(oEX)*Up=oT!IdIhYLIhE}wq^0=I*234y8fm)#q4Nq)$u>(;JG$?6+qNaf5 zMyn1^HlQ%)Ym2vB!_|MaQz^d*##W;6|FTZ)?CGjJD67Qk@oJah_d+oS6qN^~*-9ju z150+sjSdg}Hk<(w zhA*9v<*+bAkS4N_-XTJcY>ZL(PEKF+>k&_8rhEwp7v!Daj7TK6Z*&-YJfzlvbm@Y_)Y`9Y|6ax7hwn76WpoEdx ziHVvZiAdRiT#=1K!xCluFfz)G1_N0m8gn4pfUnq~pd<+3zkB4!hFy^j4@NfJL+xuE ziPlHX3JVfisy2*yg?f{q0y=1(6lREtw4=~gnT(Sd9~Cai$s#7Q;W~-F>>y+v8r`rJ zEl8xVAmqMB4mQb2C>_yw8J=Sb0|r$MFi4mIIwpnbA>mPpO`Q~lAMun7ILa@FMMAn) zHdkTL7^Se#a7jw?){3%?v#7JAC}A+L!O%)-dT}t?!L~?b3m!JWstt!D8{UI-$-t_; zZ=gmt9M+Ll-)HOF4YEF-3%tbzwnjA8Q76sPlRrexLVt#l6BwvzKSVbC%$>EIwU2CE zPTh@KS8Mf=jlo8fhKOL$Mibd-A2j$GMr>S52$Y7_D39K*CwYy!$cDE_i-xz*BJ@Zh zcXT4FcTX_f4mQOfsn@8ZsvunP79H6|_Sh>~7#ME{po}t@Mv48j9b3De>)R4_$7UXgXD-Ids{OjMj^=_O8Bi|N9HRF#pAe zON4u7ZO>&~E?rr<5&vBn#F=SIq|rxC!>16RiTF&$=Q4a|$$DAV8#MX|D?T;@oD6Pnz^{!*=HoL^)*JEF zH%N6{;4`)Qh=vz{xS6?6LgC0FS)WK`HJlOt(C|5dGf1cnRwQB|k!wvOM}Q*uSpdcg z;h-4Z_$>k;5(ASom45#@PwVQ68DAr2^m%@B-I3X5_Vaqc1npG49i(bI%tB^%iw2;nj~a!EYGrXe1~ zkRp*Go&tV+JkYRs1QkROPk3zjoJViNnNXppso@?BPRtBOp(Bb=N}xfiP#uuKRHF{_ z2hAHgo?>WRvmFnhpU^+`i9r+v4n)?W15kA^^;&$q(r3tkXNuu31`&o2{?~@U5BS41 z2-t$nUUwi2ag+K2`SS@3L}n^r#K%C4z6Q=kc1CF!7`&MT+)4thNmLQ?Co+euq%$B~ ze$McWR>D{^NO)G2UU=|M5~XtNRHwBT=M}v7YjL*-2ht?ulQ|!L=rqo^S=j8(33h5A zjqcX*X+1Ahikp#m^i2}+8RJKmQX1~R^j2?y4qenIBMUW$MSIV4s9U9c7O|rwjK2GS zcyvz^K{(T7qw{%OfhD6K1Z3cs*^H9V*=o`!mk2Qozb}Kka3#2fLcY9-E7mL4v%IeVL`T{u!-WuMdAqhYw$P>KV#HACkN7+~#J-mibwpgw(VmVtx1w609KE9a@R#O9{X zR610M;+%Z?b3b>_^+%ri>@w=+;rR52@`Eqt8mEoxBZ$bjnBu-mBzoRn>Q>CXYvQf- za<@s@M>Unx(|Zo535V%SIGJ55#nGVwliOjUjeXNH%W{*l!wMNf{2nI6x6i#a#M9z@ zJKqGuUbbmTbybaPXj-M)T{}24(}i1p)mB$VwRb1H+)JUXRt+jr4ivgF9L{-})i@?qSDOy4ar{a>na7&9 zE8D?mFa8@dWU3$iiqXQhh#R(e-T2I`y6S*yg?CnWdFJpznJIM$dC7*C`RYqaI@FpEFmA~hPGh+ zCsJET^dsAp#(A1sz8DABFc|5^7EWW6lGN(fT$0JjEjl6>x6p0Yn&v_aUG%If-LiAy zTr~-7&hb-FE$?%mW;!Yk$>#;}Ty0%-kz=t}$F|a1X#TECdQ?@)=V4Z@ z#*wYXX(rAxG;P_k7Aeb@r7;RKRcNWyEt5%k&DOVY|a*Sv`UBIiqT7an!=YZPNUdiznge!WrCD=dpVuaFz_*3k*#f3N>dm+nTFz>}wsE#cfJ3O>8 zqxhL8K zfGhDcQL8kMKy}J)Bd(R;utHT;uGPs87x=o`PjXvXJQeVYpn0rsCe(j8Vg6_?&M&c5 zw7;-SI=W5+sV%W;y1!)A9D!x~+V7`VGwA_y1dx9rbJHPFCFTV7OOFKu<+}*O2P)Q9 zlP-|gzj5t!bvsf5_0om2``3GsKI{|f>!v`C94H@*>YY3TJ4c{W7q+QS6TiIvZM!I& zwvy7mP20-uUvK+1RZqqE#hT_3IbeD-$82K+s0DpqA0S$`nddK5;4?wn6|~OdsbEOv zBy}Icca@7%68xHo|0#&;;AM&d)6~O(Q|NguSK45c%BOBsFNvD3n2{xIE>5x9)Qhs^ zy;VUiE+k0S3?+$V`H5xGe4PbR`M6e1Q$QYcJFpJ(TRq!k6TbC;ZvIfvQV1WxQoiAJ^FCbbioKZ19hKv*6xHf9DYFbgZT=r6x z7hBeUVS6#<+F7%5OZ!*~_!Us$wpOfUzMs?=BU~Ly%9jblWr$4;| zwlu)%j|xq##8bHe3$(GSQ){wj(K}$l3op~!uejAB%+t65eee!gW%K2bFCwWW2UzKS z5heX*7f;dt1Mt51qMj**y0oCc+Lzw#m-cDfy7sI&^lrbrZ$|Y^2deVr74-h=#ak=# zUrK6jm3Cs6wXSw9i?xtX6;)F6cD2*n0cU#drGB{R zpw}z?M^GQ7oF$-bo7LEC-fX9~i=8(svgsYL-ZtjVc2;_A?3XCRu5TZD2dwGh=FPS% zZfoA0JAmE+tMo?8mKzs}vj4@rX|>S%A}S3SNeA?$cl)JV1!LaJR1}|Up?CY`eKSm} zc{8hm-haJ#>-pusl;l4;3JT`-q4&kA<+IPlL?Evx_{`!H(7Iji448|N)Vy8&D(D@s zU7lHtw_aP!VEGn$w^z*9u`P|S#ruO`--PyGr zkGZ(n6_vNMrfzG7rR&oF;L5aZ>w04-&&#dDZ#(S_Sk%u4(87x;-Cpo-Cwh8o_e~?d zAnaL!vxNh?M7zaXo1vYqx)@2#t@77|`RqfjYI_I=(8E`>b&LL*XPxFK)mugwipxx%f0akI!Ai@x8)*C}WdK z@=Ly+abQB|^97@>o&D6Ct3&VkH=U8o8$8oGvy7g~otZV$HPhuRpIOa6&*Pd|rT#9% zOy4oUnRt4B=92z>XR0Rw{gN_jE9SJQ^Z&o3g#SPy@V`SuLvtG_ztoRoimmvRZ!|vB z_6qT-=X@aOPvyRVQ}6&*8Q@4fX;OkmwceG_Z^2ple)u0M8F&;ggEgf(>Hou!b?8AvC%)+s zKA*OM>Y`_$>8U7s;S4d#7oqGtE=jGfMSIC=%Hy9xn2@i4>zSbP$)Z$`M^~cg$*I7$ z@vl#@t@1b?J(*k%y?xpSE)TKjlVIrCyj)8Q1+vdzE=La$Hh&)WV#-pz|8IXi(j6_3 z@t=QIcE3{}+;h$7H9v+*L2}c|?$?8Ltt?4d9W9~y;Mr?NOE!&GmUO~0Q*Z30m$cH# z0kWiR8gD7G#QAYLT7or_Xwq(z8-yjRMOm$>c;bphXBRAA^mFt-s;^t3iyXD-#*hV# zk3X_zz0vylZIQP%tqg6ntknH!S*iK5Nh9Mym#99_aMHRy_y2Uu`9U9&!R1LLR#jFC zfl4c~LM*|0&19`UN}gPj6=jJa!VqPgiXS(|?>69!RaUqqjF>@DI1gTdpZBWBO12~t z#~2mk{ap*3u5;Gn&?x<0T9(<;jnXwyDgNmdI3|uC#Di2*abAuo+me-KNsbH6&aw=$ zWM>WRlihF7bdcE~vsBXJ{vXj#)nC(w{+5+en!lmYcbb(_NA$I1lvhfUIP}>&8y^4R zSM7%nf0punm)-YuG<@Ipru*K#|GnJp&#lx>UHE#}*9RZVTwgRM{>9Q>(dKgy!Y{OCjE6`Irl%3S3GA!+Oq!VJ~^M;Z@FW9=8M-p zJ#v?;>Z^prkCKl4y62{^Ug~_L?|YfAJoxphu;b%D{^9hj%pGH{c>P@dtv}8B?vA}L zUBBNb*Ke5l#fK-V-ix^`@q?w=*W3_Oa+R@0?0xW_4_|w6c7EL@XASq3zIuAy!*5+# zS>PO1`L|=sWinBi0n=^jz`&__OSKc2tU_jcF)%U$oC*NWzr7Baj<1Aw>g-xTHMy|duh zQannM{?y8tTbmDN%}QAkv4sPk?Ojnc!usxqBW`_U&hw4ErFpZdf)MZ&~4)xd_ z|Bq`XrMrt>nU(X=r+1Dz^3ujvd)#<_WXFBO4tf8fEB7zT%qY4hw&&gJ;~iP$+xNZr)5)ig9~#qX-ms?@ zPuw8A)M3xVJxC<=qxwBiy`}e;1+?>~HzW?F6!;2RsbsKv3M|0+XbNw52 z^PkAMX8IHNO?w7W@#DNR0 zzwBs}`Nj`Y4)whL^{iemJ{W&}Nz)A6I$ z4_Mgc^fMnm@ch%iH+1^w>YL~Hc{U;JSZtX5ub}I$TJh%P*$)_Jh+*TVJ(2w6#$De( z`oY>6QFm?ay6=+gJ~#Fn`gOrqyP~`PIB8F|^^ZlF-)x&a_~Qi!jxF7P@T>Cfce{U+ zKmFvbPe(qZ|71{V#H)|#D!yG*{7YQajH}kaSastp=eQddXMb^WV3_XQ{So~;e;O@C zPB?S$yLU3u4!&Ri!jQr*!n5ytFVb#V8MGABz#L@?Fj~WIIKoq{riHUu8n5{u39WdP zgNCFgs)uj%(m!r7<-x!4Q)c+RE}KdDDL(uHk9QKlR4~9YFx%2^kcB6K{!G%$FlhS! z@kwf>+PXikoL&QuXj%g?F5(y!^-~ zTS^`?_TK;S`@4EQv^4nPzi+zijoAshGjkXHBYRS}$jmQy8;aj~Jpbug$6v|N)a|Z3 z|F`P%gJ*7y{k~w&$$=FQ)Kv6aa&J?4$MmBkZu;r;iJ;K;X4cFskpLa&mA2f?9}C| zzkR<)v*x-V%g!B|^wRp9uYP`Ss=I4hy!oj&yPF4gy=~B#{_kAz=#390cGio5@1Q#86_ny2=_borx{ItY0t#{O{*|*$2Y(k%_K6vDs zxD$7c|9;aW&lfaR-FD>Uv1`_cc&5W|Fdd$;gzJOVRbGsw#X?N@&3^$WqfXue(XzHf zvJqETb+}^66FHU;3ilngBxa4Jqc`^JEE-G!&89hL`d~ThhP-E^b>mO{bLXpBhr6up zYne_ZQnZ+fEEAf>HH}?UsLn!|ty)iWJjc~4zf{gM5ymY>Ee5N1vMaOnDa+30$?kH` z{s6@HwO7go{E91wb=?A9DamiMOOC0*C z2)YoYi!r(+%rGUj2&g>!&imJzdu}^fTAz?{^tgLo+Ln+_5vR&;+?=~<`H}h#H|(>O zW%M5Q(|+gS>Q#TdIQ$>RH!gi?)UNI4?H`uEl-BQ_TW8s>x?%acg5t@?JKT81k%X~{ z=ZEC3n{?=r-xr)77L?Ir%NIjC-}CO1NsDhD^y!(3*Yk%iS=!}%)be|8aId=V`@eOQ z3wpkMZTNFLcIi57`KI!h%8Xl@dJgZoU|L~$O0d0V`fZy&TlM|k4d)Abo%rq2Lof9E zwx;VtpFiCFn?oO;4|{mC`PSRUg$)h)mtpO(l>OQ9pPoCA{`QQ!o+un-JZOCR;DZl+ z{@D8;##}RT%~7u*rVgW0$S1ta0po+P!~-PJge|(>!eD@ThTf zL-syC?uSzwu1s{qEFZaZ(dQ$2+P3eXHEGV8{YmBhZ(Z}r2j_qKSM1i?yPtaNo?8!{ zomHN5dPdM4R}a%K)*seCT9*?2qSgB3xsMKZ*1q^j&Z}YOvnOnsU*G!gtur?r7ss|1 zyl~n1Tki=TJ34%GL&_o1!+6% zJU#Z-Prs^LlJNCE2W+m7AN%LA$GcS4eev)wzpeW!q~V|TOCSEt@{P9W`cFQot1jO- z^zfZi#!q;uVQSjeB@x-FOTW!AK05r@``+9!Yv0yuwoF|(W&G%odvjmkvS@~}Vf2FE z>+jz8LUr~0*C)B6LYEf5m9?_d2FuD$>u~vJX}snC^u*QX6`75yhaE1=v@7wnb9TZD zN5AO0^a|Jh>$@E|neo2yZ`nIuP77MxseamBy%(&n{&$yMw>(%E`t5IWXF~dc0c#fO=tI1fB*ZX*S*yDwJ(?KxnuUa z>CX<_|A{VX;~!z0Kf2z!?Wfn0L;C%3=LCK6{Szjx>-5g#voDNZ>|Bs^&%pF$SL?5T zH?8#U**mhk7ykUhzPLZcRky6EI^n!CFKhRn-P0D1d@cB`%eURWqbAt8f5Zc?KJe-# zBSz^Co&RI+Q~gh08D20b^*3qUtp~pRsAu89{rxh&d;X0L4_mJu{Brbf-;L@yzhGPG zwU@4zUrV>`es}J_HAxO<(vBhj9Pz7d>&m!JmX&caUgK&sQr5~i9e9$rhiGpi_FtBj zv1esT(|T`WrF5A-#N!3w*q&G^jfQRWF{O=wH>;wry3DAN0&Grf%e?#e=hy%3*`WzD z`aQepIm^C>=U+eI#lw~z_uP2qNch1+vfldg*l{afjgQK<-~vC((m$(z-+@`#8Cdj9 zw`dz=>HDU}<2xGPvos$0A6b^BTY6zS!A0dIzGZ2l6TfF(Q(^MExGb_)3lVj5X8esDe(sp)-l3-Z%Pj?B%;>T2mi`7}|9KC$$F+|qF$x4ITj z#q)16H?54Q#JW7%vQqn-Z)--{aDL)_Url#@{3bTwgtWomv1x1OivJNqs4de(B?Z)2 z-I%c`8#7s!?15Q>vIq3-Pa89RaD|OW-^VDH~Jo!#s^6Hy5tlY8Z zY}MeujeGFWGt%M7%O3mn(yX#z^UD117kqx~nb<9Rueg81D-+k=9R9+G9}a$KTz=8` zB};BMz90Q)X#WUP^7p;}*wirYsaId#{r2GJmZnduUAt*lX4n(E&z4KOgCfeGPPt0D zJL6}2R?jX?!JmB-xBZs^!FR47z2xJc;+8D$E<(#!Jkc~)PR%&e`=7lpE8BALA4B(C z^8V}ze|OHjt?%WxF7AKjo5O!9xqab;Rh@FH_9dMA`qx)A?v7tSdF$yvo_}%O$aiNS zp0MVhcl?~Y<7LO+`_`^7T&mA4+dMYsj_Q#acdwo>KH~K)yEba%pa1senJ2A=tp|_R zN8hx0^ScWwZ%eU;=`KHE9O5oK_R9@V_d9TSqI1NF5fw|i&s_btZfEBn=y*OUY4AR6 z(-RqkJ70Tq_MynI{b%l&Te11bxugNhf`^Z}W$gV2e>pSm{?{&-_Fh`|?B*^JcYSiL z(>zK0_{ro?rafg?^3Cqke8{PyJol{=4qJI?+76XoaMw!ZuAod@SX_SiFT-?!kG z+b8tTd?4su$78px`JuR1#LdHUfB*T@ZG9enV%M414b%Vr)=lR|&QGk>F8=7Jagkp= z{^q?SyEmM$Th^`mGox4jz}&2f^?%GedF4|*WbN9gmc4m(W7(3Ek3A+kh8)?FANTPk zlQ(bt^EczJ@77oBd&BVF?8bGM{&sr!<-4^xbzwo){WC`F_bl}LBPwS5E$h$gzi=;j zsPOGix4yl4%ZIoAI-twK=bNq0@7@_ROI$u@)~fG6KVsY2xujpGGfqnxEpSt`(=1ag zrA?EXir0*9YtGATz6quLl5p2-i!aoGz|aMx;A+n5!AtZi&k`3)^x2lnvHz^@$zh3J ze8IXrtMrSjt>xBK6g94^wu8m!sZ?WV5#e~n{MMC6@B4Ac){xCVtj|m5t8?CbmdKi!>oP*d3ghm!yX0tkd26;P>5O9BK0DYEoM>7aBGDM6%#A|;w2 zxUeKhZvp`+QYuyl`bJ9 zFuRhw4^jUL-GxJJ5Za!t^+-&P9Hc~xZ*J-BbpYRzh}cWtq?%q6Yierqb6^7O4c?Y? z)*H%x+Yz)qB+}4VR(d(@IGN&QJxHF*1O>ZJEvVLq*IrxnT7r$e5R6@;);Hdz-Z|yx z)k1{_p7Mf*D~~hBq&$(BFKMzpCAJT3#9Q>K#yMD&OSV@)UZ`5&1bo(sce8Ic+$(xr z3EnxhMVO}~*toFAKm9dd|Mg*A7^0zKT=ZeNySma0)S$VyqeL{w3C|WFG0ir zu23bdj?_#YA3Hp%cRM3rV*e)mGSsY4rhn7CO(RV3J}CYT%B{OVJNsRz=u3r0PVe_@ zK4*TWUgk^wU{j&)K56yBQQyVy+F?YRMuIHuY6@q6fR;jFVTXrN<5MBu=%V}?BRX8u zkXnd%!-s{cqC*X6D=!=;R{HE6o>hR0K7g+}^*a|q+#NKJEJ%ia+OD|b{?k?S&koWaygLya1*queK3qx&u!NoGFQGk62*?P`o`gwA1>3KC~uAi9~I zZ_Y6cYZ|UqRY2D9fO5U=2zVQ5Jl>+!%X;ct(9!piJMTE%RykvuqVc(x=x?MTvBr=X=>$7{aO*ZR$vKV1`d}X4Zl=mzy z_U;iWlWX(d?yL_n(%xiLmx6f1v+^s#ZBq|o@fGH=;~y9-Qa#;N(sde^@@@r7D3*3F zglp4u&ObyyZjMCS8cEGK-R-HFA^rS3xfEi zJdtgceXUBDZ>exDEmYl*dfUGB_2Usg)gMo^$Q>~xL+Ul%WY}L`Hqn_GXu$GWp9cFq zbj`IN77u{T$np6O7YePmet^S<&v>ysz&QV6Ln#P9Xy<^$#U&<=)EK{KjynAsvqypN zvMzOe-@w-0q5T~m>$avQc5tdl?QLU*;By@u2YgpZ?@ikycoUkBa#InC_ZhkQ)PqX2 zE8hxSu^)@g;_-FwycJSarG}l6x%q`=69COdk?^mA1<+OuyW4;tw_jBjWGBA)q0n^O zxjns+7SNC5Li_!Xc-FC@p0~z+JU5V& z$aiRY-o;hf?D#}#ZKXia2u9{w5z!JvcZZ=dYR-MCmT5U;66@6{(S3eIUC$pp%JKGk;;Lnu+Y!WYx~sZj)!%^DK)uk}Ab5#QKFBG$>8{m2fzRovPTBMzT`r z#(RmVwtC(><`J6rHd(TM;g6!NGGhs?1b$6^Q~zj8>wz|4JSi!Ukn`$NOhH`pad(Ss zCiSo5Sn3z!E)A;A8mPIb7}Z67KqE$z-^8xRf!BLGaa-$#zFzDl{>TpbJHaEy+pv=p z8b|M&duE=&=}DEH(3NiCqW5WXelOhU=lPJ#)Nl`MrEl&$>Nk8*z(xy9w&suXV9m}G zA9v*!7p_(MDgFG%gXSJsZ4TX{S5>#V=A!J4G6(w&11hY{nabS3TKLc$;HlniSl!|= z7ghJI?v`Wvczi-*_dAv6RoqSGy=wU=lgsr@kQQQY2=4*zD3bR!t)gEX5yc#f8LKsX zpYaJcFaJ(h!BujKwR$!t?aB0^m#bo$sv?QAIGhc3AWLltPeI9r)pyT_G%0y&4P1TI zRiYfN%;uqbP^bJs15FguDXQC*tfR?xZx&nA$dUpjf5UKjRprHq&WP!E?_PK(c00IWQKp;ZJ z5Fj*w?k;mI{k8)!T7G8-%r}QacK*KcRrKu`9|#48WZXH74w@sB^JN(vN%^*I0p2nl zfdGDmnZLcsn2M)DKyuCO}c8_eFS*>_{k(4r4+ zG_45Ry*62V;ebvS>8NPCNALbjS&n{4GRYA|q-O;@3)8NFP567i(Ov)gJO52MA`l;7-g2+d@N!HRUv^6B45!mi1u0r7~O7*JnXUCCm8R3leZ>^h5|q@$OPJ z1`T>48=A5Y%h+y0QS#Ndl3~(&C)9T=n}0sip@WavLwv>ls6g=9dLvCIF_L2T7P0tv zw?4LZhSck+*&Hc8q#t;&=*SN-TnmU^Pi3fJHK-%Z9hDG_-ZCLd>Xv;H@XOYg3_4jM zc-rl4u)1YI@r%N&7#gIjJ}=2IAB%Gk%sBjPLof=&)BdZlmA(Fr2%@572dBZwX1vU4 z3u-r`ME`}cBEzI~brYuk2}zd+Ws=yBzM2rTw#tx^!Hi^9+2Xx}9C`6i3eTA?q(qL2 zSs+%*=6}+Sbh&bR*@+{kHj*c1(vN%aa!sk-_>zyyvxPlWZSQ&QG?@SWytXuDHO>*? z`QWzlgt?xm9<%tkcV|Prcv}reR+H?7vc-Cvhh`&CuS_735V8rfXIZMBtXG?KJt93? zCRQW0+n|IaeL7$~a~L6s6<(AcKf(Etv)(~}j83YBtFW+Itvu+AVdLflvAm2o&V{M_ z)Y=29>~C+kS#GAVSg=VU%6e$T*;8j9TePsPC}+fB50s4FG+rM{3mnl(;G6`JMdQ~{ z#p9ET9Qzf*xJ>N`1z}R7Vvne&F1qOZdcTB|ujDs#|A-fNK&&iNN0VM0lvuy%mo8(r zG^;jHeS>9$8~pGiUD8{-eZ9AG_Iqn-6l;sSEQ8g2WP6r^*fU-wIacp>B0->k0T3c! A(f|Me literal 0 HcmV?d00001 diff --git a/plugin.json b/plugin.json new file mode 100644 index 0000000..2121ab8 --- /dev/null +++ b/plugin.json @@ -0,0 +1,14 @@ +{ + "ID": "EF1F634F20484459A3679B4FE7B07998", + "Disabled": false, + "ActionKeyword": "TOTP", + "Name": "PowerToysRunTOTP", + "Author": "Zapic", + "Version": "1.0.0", + "Language": "csharp", + "Website": "https://github.com/naari3/PowerToysRunPluginSample", + "ExecuteFileName": "PowerToysRunTOTP.dll", + "IsGlobal": false, + "IcoPathDark": "images\\icon-dark.png", + "IcoPathLight": "images\\icon-light.png" +} \ No newline at end of file