diff --git a/ModernKeePass/.sonarqube/conf/0/ProjectOutFolderPath.txt b/ModernKeePass/.sonarqube/conf/0/ProjectOutFolderPath.txt new file mode 100644 index 0000000..737b5f1 --- /dev/null +++ b/ModernKeePass/.sonarqube/conf/0/ProjectOutFolderPath.txt @@ -0,0 +1 @@ +C:\Sources\Other\ModernKeePass\ModernKeePass\.sonarqube\out\0 diff --git a/ModernKeePass/.sonarqube/conf/SonarQubeAnalysisConfig.xml b/ModernKeePass/.sonarqube/conf/SonarQubeAnalysisConfig.xml new file mode 100644 index 0000000..ea98012 --- /dev/null +++ b/ModernKeePass/.sonarqube/conf/SonarQubeAnalysisConfig.xml @@ -0,0 +1,171 @@ + + + C:\Sources\Other\ModernKeePass\ModernKeePass\.sonarqube\conf + C:\Sources\Other\ModernKeePass\ModernKeePass\.sonarqube\out + C:\Sources\Other\ModernKeePass\ModernKeePass\.sonarqube\bin + C:\Sources\Other\ModernKeePass\ModernKeePass + true + https://sonarcloud.io + 7.2.0.12953 + ModernKeePass + + + + + + + 7.1.0.5212 + https://update.sonarsource.org/editions.json + true + true + .c,.h + .ts,.tsx + SonarQube + false + Unique + oracle.jdbc.OracleDriver + **/vendor/** + false + 60 + .cc,.cpp,.cxx,.c++,.hh,.hpp,.hxx,.h++,.ipp + SonarAnalyzer.CSharp + .html,.xhtml,.rhtml,.shtml + false + false + true + 100 + target/jacoco.exec, target/jacoco-it.exec + false + true + 30 + false + 30 + Unique + true + SonarAnalyzer.VisualBasic + true + true + 730 + 4 + https://secure.gravatar.com/avatar/{EMAIL_MD5}.jpg?s={SIZE}&d=identicon + 600 + amd, applescript, atomtest, browser, commonjs, couch, embertest, flow, greasemonkey, jasmine, jest, jquery, meteor, mocha, mongo, nashorn, node, phantomjs, prototypejs, protractor, qunit, rhino, serviceworker, shared-node-browser, shelljs, webextensions, worker, wsh, yui + false + **/node_modules/**,**/bower_components/** + .vb + .abap,.ab4,.flow,.asprog + true + 30 + py + .cs + sql,tab,pkb + SonarAnalyzer-7.1.0.5212.zip + .java,.jav + php,php3,php4,php5,phtml,inc + .xml,.xsd,.xsl + 480 + true + true + $, jQuery + 7.1.0.5212 + .go + 104 + .swift + https://api.github.com + false + as + https://api.github.com/ + true + xunit-reports/xunit-result-*.xml + angular,goog,google,OpenLayers,d3,dojo,dojox,dijit,Backbone,moment,casper + 24 + true + **/node_modules/**,**/bower_components/** + https://github.com/ + true + false + SonarAnalyzer.VisualBasic + noreply@sonarcloud.io + 7.1.0.5212 + node + 1 + SonarAnalyzer.VisualBasic + [SonarCloud] + c11 + csharp + true + (branch|release)-.* + .m + coverage.out + SonarAnalyzer-7.1.0.5212.zip + SonarAnalyzer.CSharp + https://api.bitbucket.org/ + false + false + coverage-reports/*coverage-*.xml + SonarAnalyzer.CSharp + true + 0.05,0.1,0.2,0.5 + true + devcockpit,pdfreport,governance,ldap,authaad,authgithub,authbitbucket,googleanalytics + 7.1.0.5212 + .js,.jsx,.vue + 20 + vbnet + true + https://update.sonarsource.org/update-center.properties + .tsql + c++11 + https://sonarcloud.io + https://about.sonarcloud.io/images/SonarCloud-white-210px.png + 105 + <div class="boxed-group" style="border: none; border-radius: 3px;"> + <div class="boxed-group-inner clearfix" style="padding: 30px; border-radius: 3px; border: #e6e6e6 1px solid; background: #f3f3f3;"> + <div style="overflow: hidden; line-height: 1.5; font-size: 16px;"> + <p> +Analyze your open source and private projects on SonarCloud. +Select your <a href="https://about.sonarcloud.io">plan</a> and start improving. + </p> + </div> + </div> +</div> + AWHW8ct9-T_TB3XqouNu + 07/06/2018 12:32:21 + + + geogeob + https://sonarcloud.io + + + + cs + C:\Sources\Other\ModernKeePass\ModernKeePass\.sonarqube\conf\SonarQubeRoslyn-cs.ruleset + + C:\Users\GBE\AppData\Local\Temp\.sonarqube\resources\0\Google.Protobuf.dll + C:\Users\GBE\AppData\Local\Temp\.sonarqube\resources\0\SonarAnalyzer.CSharp.dll + C:\Users\GBE\AppData\Local\Temp\.sonarqube\resources\0\SonarAnalyzer.dll + + + C:\Sources\Other\ModernKeePass\ModernKeePass\.sonarqube\conf\cs\SonarLint.xml + + + + vbnet + C:\Sources\Other\ModernKeePass\ModernKeePass\.sonarqube\conf\SonarQubeRoslyn-vbnet.ruleset + + C:\Users\GBE\AppData\Local\Temp\.sonarqube\resources\1\SonarAnalyzer.VisualBasic.nuspec + C:\Users\GBE\AppData\Local\Temp\.sonarqube\resources\1\[Content_Types].xml + C:\Users\GBE\AppData\Local\Temp\.sonarqube\resources\1\analyzers\Google.Protobuf.dll + C:\Users\GBE\AppData\Local\Temp\.sonarqube\resources\1\analyzers\SonarAnalyzer.dll + C:\Users\GBE\AppData\Local\Temp\.sonarqube\resources\1\analyzers\SonarAnalyzer.VisualBasic.dll + C:\Users\GBE\AppData\Local\Temp\.sonarqube\resources\1\package\services\metadata\core-properties\f124441cdae948bb922ac980ea59570c.psmdcp + C:\Users\GBE\AppData\Local\Temp\.sonarqube\resources\1\tools\install.ps1 + C:\Users\GBE\AppData\Local\Temp\.sonarqube\resources\1\tools\uninstall.ps1 + C:\Users\GBE\AppData\Local\Temp\.sonarqube\resources\1\_rels\.rels + + + C:\Sources\Other\ModernKeePass\ModernKeePass\.sonarqube\conf\vbnet\SonarLint.xml + + + + \ No newline at end of file diff --git a/ModernKeePass/.sonarqube/conf/SonarQubeRoslyn-cs.ruleset b/ModernKeePass/.sonarqube/conf/SonarQubeRoslyn-cs.ruleset new file mode 100644 index 0000000..c21b0af --- /dev/null +++ b/ModernKeePass/.sonarqube/conf/SonarQubeRoslyn-cs.ruleset @@ -0,0 +1,348 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ModernKeePass/.sonarqube/conf/SonarQubeRoslyn-vbnet.ruleset b/ModernKeePass/.sonarqube/conf/SonarQubeRoslyn-vbnet.ruleset new file mode 100644 index 0000000..17328b3 --- /dev/null +++ b/ModernKeePass/.sonarqube/conf/SonarQubeRoslyn-vbnet.ruleset @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ModernKeePass/.sonarqube/conf/cs/SonarLint.xml b/ModernKeePass/.sonarqube/conf/cs/SonarLint.xml new file mode 100644 index 0000000..8c2d373 --- /dev/null +++ b/ModernKeePass/.sonarqube/conf/cs/SonarLint.xml @@ -0,0 +1,695 @@ + + + + + sonar.cs.ignoreHeaderComments + true + + + sonar.cs.file.suffixes + .cs + + + + + S2589 + + + S3433 + + + S4061 + + + S1121 + + + S1854 + + + S4457 + + + S4456 + + + S2278 + + + S4211 + + + S3923 + + + S4426 + + + S2486 + + + S4433 + + + S2758 + + + S1751 + + + S1871 + + + S4586 + + + S4581 + + + S2737 + + + S3400 + + + S3649 + + + S1144 + + + S1264 + + + S2201 + + + S1118 + + + S1006 + + + S4214 + + + S4210 + + + S3241 + + + S4428 + + + S1048 + + + S2183 + + + S3168 + + + S4220 + + + S3261 + + + S4260 + + + S4159 + + + S4277 + + + S2583 + + + S3440 + + + S3776 + + + threshold + 15 + + + propertyThreshold + 3 + + + + + S2326 + + + S1116 + + + S3358 + + + S4200 + + + S1172 + + + S1862 + + + S2275 + + + S3457 + + + S3459 + + + S3464 + + + S3343 + + + S818 + + + S1656 + + + S2184 + + + S1764 + + + S2971 + + + S3060 + + + S101 + + + S1066 + + + S107 + + + max + 7 + + + + + S1075 + + + S108 + + + S110 + + + max + 5 + + + + + S1104 + + + S1110 + + + S1117 + + + S112 + + + S1123 + + + S1125 + + + S1134 + + + S1135 + + + S1155 + + + S1163 + + + S1168 + + + S1185 + + + S1186 + + + S1206 + + + S1210 + + + S1215 + + + S125 + + + S1450 + + + S1479 + + + maximum + 30 + + + + + S1481 + + + S1607 + + + S1643 + + + S1699 + + + S1848 + + + S1905 + + + S1939 + + + S1940 + + + S1944 + + + S2068 + + + credentialWords + password, passwd, pwd + + + + + S2114 + + + S2123 + + + S2178 + + + S2187 + + + S2190 + + + S2219 + + + S2223 + + + S2225 + + + S2234 + + + S2259 + + + S2290 + + + S2291 + + + S2292 + + + S2306 + + + S2328 + + + S2342 + + + format + ^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$ + + + flagsAttributeFormat + ^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?s$ + + + + + S2344 + + + S2345 + + + S2346 + + + S2365 + + + S2368 + + + S2372 + + + S2376 + + + S2386 + + + S2436 + + + max + 2 + + + maxMethod + 3 + + + + + S2437 + + + S2681 + + + S2688 + + + S2692 + + + S2696 + + + S2743 + + + S2757 + + + S2761 + + + S2930 + + + S2933 + + + S2934 + + + S2953 + + + S2995 + + + S2996 + + + S2997 + + + S3005 + + + S3010 + + + S3169 + + + S3172 + + + S3217 + + + S3218 + + + S3220 + + + S3236 + + + S3237 + + + S3244 + + + S3246 + + + S3247 + + + S3249 + + + S3251 + + + S3256 + + + S3262 + + + S3263 + + + S3264 + + + S3265 + + + S3346 + + + S3376 + + + S3397 + + + S3415 + + + S3427 + + + S3442 + + + S3443 + + + S3444 + + + S3445 + + + S3447 + + + S3449 + + + S3450 + + + S3451 + + + S3453 + + + S3456 + + + S3458 + + + S3466 + + + S3597 + + + S3598 + + + S3600 + + + S3603 + + + S3604 + + + S3610 + + + S3626 + + + S3655 + + + S3693 + + + S3869 + + + S3871 + + + S3875 + + + S3877 + + + S3881 + + + S3884 + + + S3885 + + + S3887 + + + S3889 + + + S3897 + + + S3903 + + + S3904 + + + S3925 + + + S3926 + + + S3927 + + + S3928 + + + S3966 + + + S3971 + + + S3972 + + + S3981 + + + S3984 + + + S3998 + + + S4015 + + + S4016 + + + S4019 + + + S4035 + + + S4144 + + + S4158 + + + S907 + + + S927 + + + + + diff --git a/ModernKeePass/.sonarqube/conf/vbnet/SonarLint.xml b/ModernKeePass/.sonarqube/conf/vbnet/SonarLint.xml new file mode 100644 index 0000000..81fd3bf --- /dev/null +++ b/ModernKeePass/.sonarqube/conf/vbnet/SonarLint.xml @@ -0,0 +1,186 @@ + + + + + sonar.vbnet.ignoreHeaderComments + true + + + sonar.vbnet.file.suffixes + .vb + + + + + S1751 + + + S1871 + + + S1656 + + + S1862 + + + S1764 + + + S2178 + + + S101 + + + format + ^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$ + + + + + S1075 + + + S112 + + + S114 + + + format + ^I([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$ + + + + + S117 + + + format + ^[a-z][a-z0-9]*([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$ + + + + + S1197 + + + S1542 + + + format + ^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$ + + + + + S1643 + + + S1645 + + + S1654 + + + format + ^[a-z][a-z0-9]*([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$ + + + + + S2304 + + + format + ^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?(\.([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?)*$ + + + + + S2340 + + + S2342 + + + format + ^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$ + + + flagsAttributeFormat + ^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?s$ + + + + + S2344 + + + S2345 + + + S2346 + + + S2347 + + + format + ^(([a-z][a-z0-9]*)?([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?_)?([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$ + + + + + S2349 + + + S2352 + + + S2355 + + + S2358 + + + S2359 + + + S2365 + + + S2368 + + + S2372 + + + S2375 + + + minimumSeriesLength + 6 + + + + + S2376 + + + S2951 + + + S3385 + + + S3981 + + + S4144 + + + + + diff --git a/ModernKeePass/.sonarqube/out/.sonar/.sonar_lock b/ModernKeePass/.sonarqube/out/.sonar/.sonar_lock new file mode 100644 index 0000000..e69de29 diff --git a/ModernKeePass/.sonarqube/out/.sonar/report-task.txt b/ModernKeePass/.sonarqube/out/.sonar/report-task.txt new file mode 100644 index 0000000..b51f880 --- /dev/null +++ b/ModernKeePass/.sonarqube/out/.sonar/report-task.txt @@ -0,0 +1,7 @@ +organization=geogeob +projectKey=ModernKeePass +serverUrl=https://sonarcloud.io +serverVersion=7.2.0.12953 +dashboardUrl=https://sonarcloud.io/dashboard/index/ModernKeePass +ceTaskId=AWQER9hfTzX59Iu7A6N0 +ceTaskUrl=https://sonarcloud.io/api/ce/task?id=AWQER9hfTzX59Iu7A6N0 diff --git a/ModernKeePass/.sonarqube/out/0/FilesToAnalyze.txt b/ModernKeePass/.sonarqube/out/0/FilesToAnalyze.txt new file mode 100644 index 0000000..3f47a3e Binary files /dev/null and b/ModernKeePass/.sonarqube/out/0/FilesToAnalyze.txt differ diff --git a/ModernKeePass/.sonarqube/out/0/ProjectInfo.xml b/ModernKeePass/.sonarqube/out/0/ProjectInfo.xml new file mode 100644 index 0000000..b699c3d --- /dev/null +++ b/ModernKeePass/.sonarqube/out/0/ProjectInfo.xml @@ -0,0 +1,18 @@ + + + ModernKeePass.App + C# + Product + a0cfc681-769b-405a-8482-0cdee595a91f + C:\Sources\Other\ModernKeePass\ModernKeePass\ModernKeePass.App.csproj + false + + + + + C:\Sources\Other\ModernKeePass\ModernKeePass\bin\Debug\ModernKeePass.exe.RoslynCA.json + C:\Sources\Other\ModernKeePass\ModernKeePass\.sonarqube\out\0 + + Debug + AnyCPU + \ No newline at end of file diff --git a/ModernKeePass/.sonarqube/out/0/output-cs/encoding.pb b/ModernKeePass/.sonarqube/out/0/output-cs/encoding.pb new file mode 100644 index 0000000..d5c9f09 --- /dev/null +++ b/ModernKeePass/.sonarqube/out/0/output-cs/encoding.pb @@ -0,0 +1,85 @@ +P +GC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\ClipboardAction.csutf-8T +KC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\NavigateToUrlAction.csutf-8Q +HC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\SetupFocusAction.csutf-8A +8C:\Sources\Other\ModernKeePass\ModernKeePass\App.xaml.csutf-8X +OC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\IntToSymbolConverter.csutf-8[ +RC:\Sources\Other\ModernKeePass\ModernKeePass\Exceptions\DatabaseOpenedException.csutf-8S +JC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ILicenseService.csutf-8[ +RC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IProxyInvocationHandler.csutf-8R +IC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IRecentService.csutf-8O +FC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IRecentItem.csutf-8T +KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IResourceService.csutf-8V +MC:\Sources\Other\ModernKeePass\ModernKeePass\Services\SingletonServiceBase.csutf-8i +`C:\Sources\Other\ModernKeePass\ModernKeePass\TemplateSelectors\SelectableDataTemplateSelector.csutf-8X +OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsSaveVm.csutf-8] +TC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\DonatePage.xaml.csutf-8Q +HC:\Sources\Other\ModernKeePass\ModernKeePass\Services\DatabaseService.csutf-8T +KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ISettingsService.csutf-8S +JC:\Sources\Other\ModernKeePass\ModernKeePass\Common\MessageDialogHelper.csutf-8P +GC:\Sources\Other\ModernKeePass\ModernKeePass\Common\NavigationHelper.csutf-8Y +PC:\Sources\Other\ModernKeePass\ModernKeePass\Common\NotifyPropertyChangedBase.csutf-8T +KC:\Sources\Other\ModernKeePass\ModernKeePass\Common\ObservableDictionary.csutf-8L +CC:\Sources\Other\ModernKeePass\ModernKeePass\Common\RelayCommand.csutf-8Q +HC:\Sources\Other\ModernKeePass\ModernKeePass\Common\SuspensionManager.csutf-8P +GC:\Sources\Other\ModernKeePass\ModernKeePass\Services\LicenseService.csutf-8O +FC:\Sources\Other\ModernKeePass\ModernKeePass\Services\RecentService.csutf-8R +IC:\Sources\Other\ModernKeePass\ModernKeePass\Services\ResourcesService.csutf-8Q +HC:\Sources\Other\ModernKeePass\ModernKeePass\Services\SettingsService.csutf-8W +NC:\Sources\Other\ModernKeePass\ModernKeePass\Common\ToastNotificationHelper.csutf-8i +`C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\DiscreteIntToSolidColorBrushConverter.csutf-8d +[C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\EmptyStringToVisibilityConverter.csutf-8Z +QC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\NullToBooleanConverter.csutf-8Q +HC:\Sources\Other\ModernKeePass\ModernKeePass\Exceptions\SaveException.csutf-8\ +SC:\Sources\Other\ModernKeePass\ModernKeePass\Extensions\DispatcherTaskExtensions.csutf-8T +KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IDatabaseService.csutf-8X +OC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IHasSelectableObject.csutf-8T +KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ISelectableModel.csutf-8\ +SC:\Sources\Other\ModernKeePass\ModernKeePass\Views\BasePages\LayoutAwarePageBase.csutf-8k +bC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsDatabasePage.xaml.csutf-8n +eC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsNewDatabasePage.xaml.csutf-8g +^C:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsSavePage.xaml.csutf-8k +bC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsSecurityPage.xaml.csutf-8j +aC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsWelcomePage.xaml.csutf-8h +_C:\Sources\Other\ModernKeePass\ModernKeePass\TemplateSelectors\FirstItemDataTemplateSelector.csutf-8U +LC:\Sources\Other\ModernKeePass\ModernKeePass\Controls\ListViewWithDisable.csutf-8f +]C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\BreadCrumbUserControl.xaml.csutf-8h +_C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\CompositeKeyUserControl.xaml.csutf-8S +JC:\Sources\Other\ModernKeePass\ModernKeePass\Controls\TextBoxWithButton.csutf-8` +WC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\BooleanToVisibilityConverter.csutf-8Y +PC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\ColorToBrushConverter.csutf-8d +[C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\DoubleToSolidColorBrushConverter.csutf-8g +^C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\InverseBooleanToVisibilityConverter.csutf-8Z +QC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\PluralizationConverter.csutf-8c +ZC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\ProgressBarLegalValuesConverter.csutf-8X +OC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\TextToWidthConverter.csutf-8Q +HC:\Sources\Other\ModernKeePass\ModernKeePass\Events\PasswordEventArgs.csutf-8N +EC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IIsEnabled.csutf-8M +DC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IPwEntity.csutf-8L +CC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPage.xaml.csutf-8\ +SC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\AboutPage.xaml.csutf-8b +YC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\NewDatabasePage.xaml.csutf-8P +GC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPage.xaml.csutf-8^ +UC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\WelcomePage.xaml.csutf-8K +BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\AboutVm.csutf-8R +IC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\CompositeKeyVm.csutf-8X +OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\ListMenuItemVm.csutf-8X +OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\MainMenuItemVm.csutf-8V +MC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\RecentItemVm.csutf-8S +JC:\Sources\Other\ModernKeePass\ModernKeePass\Views\EntryDetailPage.xaml.csutf-8S +JC:\Sources\Other\ModernKeePass\ModernKeePass\Views\GroupDetailPage.xaml.csutf-8c +ZC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\OpenDatabasePage.xaml.csutf-8f +]C:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\RecentDatabasesPage.xaml.csutf-8c +ZC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\SaveDatabasePage.xaml.csutf-8P +GC:\Sources\Other\ModernKeePass\ModernKeePass\Properties\AssemblyInfo.csutf-8K +BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\EntryVm.csutf-8K +BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\GroupVm.csutf-8W +NC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsNewVm.csutf-8N +EC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\SettingsVm.csutf-8J +AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\MainVm.csutf-8I +@C:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\NewVm.csutf-8J +AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\OpenVm.csutf-8L +CC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\RecentVm.csutf-8J +AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\SaveVm.csutf-8\ +SC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsDatabaseVm.csutf-8i +`C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\HamburgerMenuUserControl.xaml.csutf-8 \ No newline at end of file diff --git a/ModernKeePass/.sonarqube/out/0/output-cs/file-metadata.pb b/ModernKeePass/.sonarqube/out/0/output-cs/file-metadata.pb new file mode 100644 index 0000000..14e6dbd --- /dev/null +++ b/ModernKeePass/.sonarqube/out/0/output-cs/file-metadata.pb @@ -0,0 +1,139 @@ +I +GC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\ClipboardAction.csM +KC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\NavigateToUrlAction.csJ +HC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\SetupFocusAction.cs: +8C:\Sources\Other\ModernKeePass\ModernKeePass\App.xaml.csQ +OC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\IntToSymbolConverter.csT +RC:\Sources\Other\ModernKeePass\ModernKeePass\Exceptions\DatabaseOpenedException.csL +JC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ILicenseService.csT +RC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IProxyInvocationHandler.csK +IC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IRecentService.csH +FC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IRecentItem.csM +KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IResourceService.csO +MC:\Sources\Other\ModernKeePass\ModernKeePass\Services\SingletonServiceBase.csb +`C:\Sources\Other\ModernKeePass\ModernKeePass\TemplateSelectors\SelectableDataTemplateSelector.csQ +OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsSaveVm.csV +TC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\DonatePage.xaml.csJ +HC:\Sources\Other\ModernKeePass\ModernKeePass\Services\DatabaseService.csM +KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ISettingsService.csL +JC:\Sources\Other\ModernKeePass\ModernKeePass\Common\MessageDialogHelper.csI +GC:\Sources\Other\ModernKeePass\ModernKeePass\Common\NavigationHelper.csR +PC:\Sources\Other\ModernKeePass\ModernKeePass\Common\NotifyPropertyChangedBase.csM +KC:\Sources\Other\ModernKeePass\ModernKeePass\Common\ObservableDictionary.csE +CC:\Sources\Other\ModernKeePass\ModernKeePass\Common\RelayCommand.csJ +HC:\Sources\Other\ModernKeePass\ModernKeePass\Common\SuspensionManager.csI +GC:\Sources\Other\ModernKeePass\ModernKeePass\Services\LicenseService.csH +FC:\Sources\Other\ModernKeePass\ModernKeePass\Services\RecentService.csK +IC:\Sources\Other\ModernKeePass\ModernKeePass\Services\ResourcesService.csJ +HC:\Sources\Other\ModernKeePass\ModernKeePass\Services\SettingsService.csP +NC:\Sources\Other\ModernKeePass\ModernKeePass\Common\ToastNotificationHelper.csb +`C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\DiscreteIntToSolidColorBrushConverter.cs] +[C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\EmptyStringToVisibilityConverter.csS +QC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\NullToBooleanConverter.csJ +HC:\Sources\Other\ModernKeePass\ModernKeePass\Exceptions\SaveException.csU +SC:\Sources\Other\ModernKeePass\ModernKeePass\Extensions\DispatcherTaskExtensions.csM +KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IDatabaseService.csQ +OC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IHasSelectableObject.csM +KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ISelectableModel.csU +SC:\Sources\Other\ModernKeePass\ModernKeePass\Views\BasePages\LayoutAwarePageBase.csd +bC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsDatabasePage.xaml.csg +eC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsNewDatabasePage.xaml.cs` +^C:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsSavePage.xaml.csd +bC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsSecurityPage.xaml.csc +aC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsWelcomePage.xaml.csa +_C:\Sources\Other\ModernKeePass\ModernKeePass\TemplateSelectors\FirstItemDataTemplateSelector.csN +LC:\Sources\Other\ModernKeePass\ModernKeePass\Controls\ListViewWithDisable.cs_ +]C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\BreadCrumbUserControl.xaml.csa +_C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\CompositeKeyUserControl.xaml.csL +JC:\Sources\Other\ModernKeePass\ModernKeePass\Controls\TextBoxWithButton.csY +WC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\BooleanToVisibilityConverter.csR +PC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\ColorToBrushConverter.cs] +[C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\DoubleToSolidColorBrushConverter.cs` +^C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\InverseBooleanToVisibilityConverter.csS +QC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\PluralizationConverter.cs\ +ZC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\ProgressBarLegalValuesConverter.csQ +OC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\TextToWidthConverter.csJ +HC:\Sources\Other\ModernKeePass\ModernKeePass\Events\PasswordEventArgs.csG +EC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IIsEnabled.csF +DC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IPwEntity.csE +CC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPage.xaml.csU +SC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\AboutPage.xaml.cs[ +YC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\NewDatabasePage.xaml.csI +GC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPage.xaml.csW +UC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\WelcomePage.xaml.csD +BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\AboutVm.csK +IC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\CompositeKeyVm.csQ +OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\ListMenuItemVm.csQ +OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\MainMenuItemVm.csO +MC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\RecentItemVm.csL +JC:\Sources\Other\ModernKeePass\ModernKeePass\Views\EntryDetailPage.xaml.csL +JC:\Sources\Other\ModernKeePass\ModernKeePass\Views\GroupDetailPage.xaml.cs\ +ZC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\OpenDatabasePage.xaml.cs_ +]C:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\RecentDatabasesPage.xaml.cs\ +ZC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\SaveDatabasePage.xaml.csI +GC:\Sources\Other\ModernKeePass\ModernKeePass\Properties\AssemblyInfo.csD +BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\EntryVm.csD +BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\GroupVm.csP +NC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsNewVm.csG +EC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\SettingsVm.csC +AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\MainVm.csB +@C:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\NewVm.csC +AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\OpenVm.csE +CC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\RecentVm.csC +AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\SaveVm.csU +SC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsDatabaseVm.csb +`C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\HamburgerMenuUserControl.xaml.csE +AC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\App.g.i.csC +?C:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\App.g.csO +KC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Styles\Colors.g.i.csM +IC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Styles\Colors.g.csk +gC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\SettingsPageFrames\SettingsSavePage.g.i.csi +eC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\SettingsPageFrames\SettingsSavePage.g.csj +fC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\UserControls\BreadCrumbUserControl.g.i.csh +dC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\UserControls\BreadCrumbUserControl.g.csl +hC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\UserControls\CompositeKeyUserControl.g.i.csj +fC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\UserControls\CompositeKeyUserControl.g.csP +LC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPage.g.i.csN +JC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPage.g.cs` +\C:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\AboutPage.g.i.cs^ +ZC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\AboutPage.g.csW +SC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\EntryDetailPage.g.i.csU +QC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\EntryDetailPage.g.csW +SC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\GroupDetailPage.g.i.csU +QC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\GroupDetailPage.g.csa +]C:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\DonatePage.g.i.cs_ +[C:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\DonatePage.g.csf +bC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\NewDatabasePage.g.i.csd +`C:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\NewDatabasePage.g.csg +cC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\OpenDatabasePage.g.i.cse +aC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\OpenDatabasePage.g.csj +fC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\RecentDatabasesPage.g.i.csh +dC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\RecentDatabasesPage.g.csg +cC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\SaveDatabasePage.g.i.cse +aC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\SaveDatabasePage.g.csT +PC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\SettingsPage.g.i.csR +NC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\SettingsPage.g.csb +^C:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\WelcomePage.g.i.cs` +\C:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\MainPageFrames\WelcomePage.g.cso +kC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\SettingsPageFrames\SettingsDatabasePage.g.i.csm +iC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\SettingsPageFrames\SettingsDatabasePage.g.csr +nC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\SettingsPageFrames\SettingsNewDatabasePage.g.i.csp +lC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\SettingsPageFrames\SettingsNewDatabasePage.g.cso +kC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\SettingsPageFrames\SettingsSecurityPage.g.i.csm +iC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\SettingsPageFrames\SettingsSecurityPage.g.csn +jC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\SettingsPageFrames\SettingsWelcomePage.g.i.csl +hC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\SettingsPageFrames\SettingsWelcomePage.g.cs] +YC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Styles\HamburgerButtonStyle.g.i.cs[ +WC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Styles\HamburgerButtonStyle.g.csc +_C:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Styles\ListViewLeftIndicatorStyle.g.i.csa +]C:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Styles\ListViewLeftIndicatorStyle.g.cs\ +XC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Styles\NoBorderButtonStyle.g.i.csZ +VC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Styles\NoBorderButtonStyle.g.csO +KC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Styles\Styles.g.i.csM +IC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Styles\Styles.g.cs_ +[C:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Styles\TextBoxWithButtonStyle.g.i.cs] +YC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Styles\TextBoxWithButtonStyle.g.csm +iC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\UserControls\HamburgerMenuUserControl.g.i.csk +gC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\Views\UserControls\HamburgerMenuUserControl.g.csL +HC:\Sources\Other\ModernKeePass\ModernKeePass\obj\Debug\XamlTypeInfo.g.csQ +MC:\Users\GBE\AppData\Local\Temp\.NETCore,Version=v4.5.1.AssemblyAttributes.cs \ No newline at end of file diff --git a/ModernKeePass/.sonarqube/out/0/output-cs/metrics.pb b/ModernKeePass/.sonarqube/out/0/output-cs/metrics.pb new file mode 100644 index 0000000..1d889c5 --- /dev/null +++ b/ModernKeePass/.sonarqube/out/0/output-cs/metrics.pb @@ -0,0 +1,180 @@ +Ŋ +GC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\ClipboardAction.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=3;2=0;4=0;6=0;8=0;10=0;12=0r + ‚ É +KC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\NavigateToUrlAction.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=3;2=0;4=0;6=0;8=0;10=0;12=0r +  !x‚ ž +HC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\SetupFocusAction.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=2;2=1;4=0;6=0;8=0;10=0;12=0r + ‚ × +8C:\Sources\Other\ModernKeePass\ModernKeePass\App.xaml.cs7 8@HR 0=0;5=0;10=0;20=1;30=0;60=0;90=0Z1=5;2=1;4=2;6=1;8=0;10=0;12=0jH*>?@ABFTZ[^`fluvwz|}€ƒ…†ˆĨϧ¨Š¯°ą˛ŗ´ĩČÉĘËrĩ +  !"#()+,-./023456789:;?ABCDEFGHINOPQRSUVWXYhiÜŨŪßāáx‚?  !"#$%&'()*-./12345679:;=>?ABCDEFGHINOPQXhiŨ¤ +RC:\Sources\Other\ModernKeePass\ModernKeePass\Exceptions\DatabaseOpenedException.cs(0R 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0r ¤ +JC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ILicenseService.cs(08@R 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0r  + Ĩ +RC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IProxyInvocationHandler.cs(0R 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0r Ļ +IC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IRecentService.cs(08@R 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0r + Ÿ +FC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IRecentItem.cs(08@R 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0r + +  +KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IResourceService.cs(0R 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0r¯ +MC:\Sources\Other\ModernKeePass\ModernKeePass\Services\SingletonServiceBase.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=0;6=0;8=0;10=0;12=0r + + ‚ +Ë +`C:\Sources\Other\ModernKeePass\ModernKeePass\TemplateSelectors\SelectableDataTemplateSelector.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=4;2=1;4=0;6=0;8=0;10=0;12=0r + x‚ŋ +OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsSaveVm.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=4;2=0;4=0;6=0;8=0;10=0;12=0r + ‚ +ŧ +TC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\DonatePage.xaml.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=0;6=0;8=0;10=0;12=0jr + + ‚ … +HC:\Sources\Other\ModernKeePass\ModernKeePass\Services\DatabaseService.csQ (082@2H2R 0=0;5=0;10=0;20=0;30=1;60=0;90=0Z1=25;2=5;4=0;6=2;8=0;10=0;12=0j$cdefghky…‡Ÿ ĄŠĩČÉĘĪrē +  !"#$%')*+,-/0123456789:<=>?@BCDEFHIJKLNOPQRTUVWYZ[]^_`ijlmnopqstuvwz{|}~€‚ƒˆ‰Š‹ŒŽ‘’“”•–—˜š›œĸŖ¤ĨϧĒĢŦ­Ž¯°ą˛ŗšēģŧŊžŋĀÁÂÃÄÅÆËĖÍĐŅŌĶÔÕÖ×ŲÚÛÜŪßāáâãåæįčéëėíîīđņōķôõöøųúûüũū˙€‚ƒ„…x‚€"#'+,1468>?DEJKPQTUY_npstuwz{|€ƒˆŠŒŽ‘•–œ¤§ĒŦąŧŋÃÄÍĐŌĶÔÖÛāáâįčéėîđņōôöøųûũū˙‚ž +KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ISettingsService.cs(0R 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0r‡ +JC:\Sources\Other\ModernKeePass\ModernKeePass\Common\MessageDialogHelper.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=4;2=2;4=0;6=0;8=0;10=0;12=0j 9@ABEFHIKNQTVWXYx‚ "$%+-.028:=BENQTVĸ +GC:\Sources\Other\ModernKeePass\ModernKeePass\Common\NavigationHelper.csD (8>@>H>R 0=0;5=0;10=0;20=0;30=0;60=1;90=0Z1=12;2=8;4=1;6=1;8=0;10=0;12=1jĄ !"#&(*,-./02579:ABCDEFKLMSW`stuvxyzŒŽ‘’ĄĸŖ¤Ĩϧ¨­Ž¯°ą˛ŗ´ēģŧŊÂÃÄÅÚÛÜŨŪßāæįø˙†‡ˆ‰Š‹Œ’–¨ŠĒĢŦޝ°ą˛ŗļˇ¸šēģŧÄÅÎÖרāáâãäåæõö÷ųúûū˙€ƒ„…†ˆ‰Š‹Ž‘’“”•–—˜ ĄĸĨϧĒĢŦ­rŲ + ;<=>?GHINOTUVXYZ[\^abfghiklpq{|}~€‚ƒ„…†‡ˆ‰Š‹“”•–—˜™š›œžŸŠĒĢŦĩžŋĀÁÆĮČÉáâãäčéęëėíîīđņōķõö÷ųúûüũū€‚ƒ„Ž“”—˜™š›œžŸĻ­´ŊžŋĀÂÃÆĮČÉĘËĖĪĐŅŌĶÔÕŲÚÛÜŨŪįčéęëėíîīđķøü‚‡Œ™š›œžŸŖ¤¨Ž¯°ą˛ŗ´x*‚ƒ?INTUXZ[afhi‚ƒ…‰—™š›ĢˇĀČäčéęíîīđņõöųúüũ€“”—˜™›œŋĀÂÆĮČĘËĪŅŲÛéëíīœąČ +PC:\Sources\Other\ModernKeePass\ModernKeePass\Common\NotifyPropertyChangedBase.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=2;4=0;6=0;8=0;10=0;12=0r x‚ ų +KC:\Sources\Other\ModernKeePass\ModernKeePass\Common\ObservableDictionary.cs( (08!@&H!R 0=0;5=0;10=0;20=0;30=1;60=0;90=0Z1=18;2=5;4=1;6=0;8=0;10=0;12=0j + rž  !"#$&'()*,-./12345679:;<=>?@ACDEFGHIJKLMOPQRSTUVWXYZ\]^_`abcdfghiklmnpqrsuvwxz{|}€‚„…†‡‰Š‹ŒŽ‘“”•–—˜™š›œx ‚. "().35;=>@FGIJLSWX^_`bhmrw|†‹•–˜™ô +CC:\Sources\Other\ModernKeePass\ModernKeePass\Common\RelayCommand.cs (8@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=2;2=3;4=0;6=0;8=0;10=0;12=0j% + $%&'(1234567=>?@ABHIJKLr*  !")*+,-./89:;CDEFMNOPQRSTUVx‚+,-.:EPRđ +HC:\Sources\Other\ModernKeePass\ModernKeePass\Common\SuspensionManager.cs8 (08@HR 0=0;5=0;10=0;20=1;30=0;60=0;90=0Z1=5;2=3;4=3;6=0;8=0;10=0;12=0j~ !"#)*+,-3456789>HIN\]^_`abcdefmqv‘’“”•–—˜™š›œ¯°´¸šēģŧŊžÁÂËĖÍÎĪĐŅŌĶÔÕÖ×áęrú + $%&'./01:;<=?@ABCDEFJKLOPQRSTUVWXYZghiklnoprstwxyz{|}~€‚ƒ„…‡ˆ‰Š‹ŒžŸ Ąĸ¤ĨϧŠĒĢŦ­ą˛ĩļŋĀÃÄÅÆĮČÉØŲÚÜŨŪßāâãäåæįčéëėíîīđōķôõö÷øųûüũū˙€‚ƒ„…‡ˆ‰‹Œx‚S&0?BDLOPRSXinoswz|}ƒˆŠŒŸĄ¤ĻŠĢŦą˛ĩÃÄĮÚÜŪßâäæëíīôõ÷ũūų +GC:\Sources\Other\ModernKeePass\ModernKeePass\Services\LicenseService.cs (08 @ H R 0=0;5=0;10=1;20=0;30=0;60=0;90=0Z1=5;2=0;4=0;6=1;8=0;10=0;12=0j*+r? + !"#$%&'(),-./012345678:;<=>@ABCEFGHIJx‚#$&'(),.012346<=BGÖ +FC:\Sources\Other\ModernKeePass\ModernKeePass\Services\RecentService.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=4;2=1;4=0;6=0;8=0;10=0;12=0r, +  !#$%&()*+-./012x‚ +  %*/ŗ +IC:\Sources\Other\ModernKeePass\ModernKeePass\Services\ResourcesService.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=0;6=0;8=0;10=0;12=0r ‚ Ä +HC:\Sources\Other\ModernKeePass\ModernKeePass\Services\SettingsService.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=1;4=0;6=0;8=0;10=0;12=0r + x‚ +ę +NC:\Sources\Other\ModernKeePass\ModernKeePass\Common\ToastNotificationHelper.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=2;2=1;4=0;6=0;8=0;10=0;12=0r0 +  !#$%&'(*+,-./123456x‚ %&'(,.3Ú +`C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\DiscreteIntToSolidColorBrushConverter.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=1;6=0;8=0;10=0;12=0r + x‚ Æ +[C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\EmptyStringToVisibilityConverter.cs 8@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=1;4=0;6=0;8=0;10=0;12=0r + x‚ ģ +QC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\NullToBooleanConverter.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=2;2=0;4=0;6=0;8=0;10=0;12=0r + ‚ +­ +HC:\Sources\Other\ModernKeePass\ModernKeePass\Exceptions\SaveException.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=2;2=0;4=0;6=0;8=0;10=0;12=0r  + ‚ Ô +SC:\Sources\Other\ModernKeePass\ModernKeePass\Extensions\DispatcherTaskExtensions.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=2;2=0;4=0;6=0;8=0;10=0;12=0jr +  x‚ + Ŋ +KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IDatabaseService.cs(08@R 0=0;5=0;10=0;20=1;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0jr  +  !"#Ĩ +OC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IHasSelectableObject.cs(08@R 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0rĄ +KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ISelectableModel.cs(08@R 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0rÕ +SC:\Sources\Other\ModernKeePass\ModernKeePass\Views\BasePages\LayoutAwarePageBase.cs" (08#@#H#R 0=0;5=0;10=0;20=0;30=1;60=0;90=0Z1=13;2=4;4=1;6=1;8=0;10=0;12=0j\ "#*+,-.456789:;<=>ABFGOWXYZ[\]^ijlmnrstuv|}~€’“”•Ĩϧ¨ŠĒĢąģŧžŋĀÁÂr— +  $%&()/012?@DEHIJKLMNPQRSTU_`abcdepwxyz‚ƒ„†‡ˆ‰Š‹ŒŽ‘–—˜™š›œžŸ ĄĸŖŦ­Ž¯˛´ĩÄÅÆĮÉĘËĖĪĐx‚1 $%/01DHJPRacyƒˆŠŒ–š Ąĸޝ˛´ÆËĘ +bC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsDatabasePage.xaml.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=0;6=0;8=0;10=0;12=0jr + + ‚ Í +eC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsNewDatabasePage.xaml.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=0;6=0;8=0;10=0;12=0jr + + ‚ Æ +^C:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsSavePage.xaml.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=0;6=0;8=0;10=0;12=0jr + + ‚ Ņ +bC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsSecurityPage.xaml.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=2;2=0;4=0;6=0;8=0;10=0;12=0j +r ‚É +aC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsWelcomePage.xaml.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=0;6=0;8=0;10=0;12=0jr + + ‚ Ė +_C:\Sources\Other\ModernKeePass\ModernKeePass\TemplateSelectors\FirstItemDataTemplateSelector.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=4;2=1;4=0;6=0;8=0;10=0;12=0r x‚ ŧ +LC:\Sources\Other\ModernKeePass\ModernKeePass\Controls\ListViewWithDisable.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=1;4=0;6=0;8=0;10=0;12=0r + x‚ Õ +]C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\BreadCrumbUserControl.xaml.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=3;2=0;4=0;6=0;8=0;10=0;12=0jr + ‚ × +_C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\CompositeKeyUserControl.xaml.cs (08@HR 0=0;5=0;10=0;20=1;30=0;60=0;90=0Z1=8;2=4;4=0;6=1;8=0;10=0;12=0j `ort + !"#$%&'()*,-./01234569;<=>@ABCEFGIJKLMNOPQRSTUVWXY[\]^_abcefghijklmpqrsuvwxyz{|~‚ƒ„x ‚%"#&*./26=GIKLRSUW]_ajkmpqry|~ø +JC:\Sources\Other\ModernKeePass\ModernKeePass\Controls\TextBoxWithButton.cs ( +0 +8 @ H R 0=0;5=0;10=1;20=0;30=0;60=0;90=0Z1=8;2=1;4=0;6=0;8=0;10=0;12=0r@ +  !#$%&'()*+,-/0123456789;<=>?@ABCDEx‚ !%&)-1259=>?AÔ +WC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\BooleanToVisibilityConverter.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=0;2=1;4=1;6=0;8=0;10=0;12=0jr + x‚ Ę +PC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\ColorToBrushConverter.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=1;6=0;8=0;10=0;12=0r + x‚ Ø +[C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\DoubleToSolidColorBrushConverter.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=2;2=0;4=0;6=0;8=0;10=0;12=0r + x‚Û +^C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\InverseBooleanToVisibilityConverter.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=0;2=1;4=1;6=0;8=0;10=0;12=0jr + x‚ É +QC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\PluralizationConverter.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=0;6=1;8=0;10=0;12=0jr + x‚ Õ +ZC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\ProgressBarLegalValuesConverter.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=0;6=1;8=0;10=0;12=0r + x‚ ŧ +OC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\TextToWidthConverter.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=1;4=0;6=0;8=0;10=0;12=0r + ‚ + Ž +HC:\Sources\Other\ModernKeePass\ModernKeePass\Events\PasswordEventArgs.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=3;2=0;4=0;6=0;8=0;10=0;12=0r  + ‚ › +EC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IIsEnabled.cs(08@R 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0rē +DC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IPwEntity.cs(08 @ R 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0j "#$r + !%&'Č +CC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPage.xaml.cs + (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=3;2=1;4=0;6=0;8=0;10=0;12=0j + r  !"#$%x‚ !"ģ +SC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\AboutPage.xaml.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=0;6=0;8=0;10=0;12=0jr + + ‚ Û +YC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\NewDatabasePage.xaml.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=2;2=1;4=0;6=0;8=0;10=0;12=0j r + !"#$%x‚ !"à +GC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPage.xaml.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=2;2=1;4=0;6=0;8=0;10=0;12=0j + r x‚Ŋ +UC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\WelcomePage.xaml.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=0;6=0;8=0;10=0;12=0jr + + ‚ ĩ +BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\AboutVm.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=4;2=0;4=0;6=0;8=0;10=0;12=0r ‚  +IC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\CompositeKeyVm.cs: (08*@*H*R 0=0;5=0;10=0;20=0;30=1;60=0;90=0Z1=24;2=2;4=3;6=0;8=0;10=0;12=0j rÎ +  !"$%&'()*+,./01234568:;<=>@ABCDFGHIJKLMNOPRSTUVWXYZ[]^_`aceghijklmnoprtuvwxy{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–˜™š›œžŸĄĸŖĨϧ¨ŠĢŦ­Ž¯°ą˛ŗ´x‚K &)*034<=BCHKLMNTWXY_`ekrvwx€‚†‡ˆ‰ŠŽ“•š›Ąĸ§¨Ž¯°ąÄ +OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\ListMenuItemVm.cs (08 @ H R 0=0;5=0;10=1;20=0;30=0;60=0;90=0Z1=13;2=0;4=0;6=0;8=0;10=0;12=0r + ‚Ģ +OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\MainMenuItemVm.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=4;2=0;4=0;6=0;8=0;10=0;12=0r  +Û +MC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\RecentItemVm.cs ( 0 8 @ H R 0=0;5=0;10=1;20=0;30=0;60=0;90=0Z1=11;2=1;4=0;6=0;8=0;10=0;12=0r+ +  !"$%&')*+,./0123‚ +!&+0ĸ +JC:\Sources\Other\ModernKeePass\ModernKeePass\Views\EntryDetailPage.xaml.cs +(08@HR 0=0;5=0;10=1;20=0;30=0;60=0;90=0Z1=5;2=3;4=2;6=0;8=0;10=0;12=0j "#$%&'()*+,1245678rH  -:;<=>?ABCDHIJKLMNOPQRSTUVWYZ[\]^`abcefghijklmnoprstux‚<=>CKLMNOPQSTU\]bilnorŦ +JC:\Sources\Other\ModernKeePass\ModernKeePass\Views\GroupDetailPage.xaml.cs/ (08@HR 0=0;5=0;10=0;20=0;30=1;60=0;90=0Z1=9;2=6;4=2;6=0;8=0;10=0;12=0j %&'()*+,-./45789:;ˆrĢ +  !"#0=>?ABCDEGHIJPQRSTUVWXYZ[\]_`abcdefghijkmnopqrstuvwxyz{|~€‚ƒ„†‡‰Š‹ŒŽ‘’“”•—˜™š›žŸ ĄĸŖ¤Ĩ§¨ŠḘ̄ޝ°ŗ´x ‚= !"?ABCDITWYZ\beghjpqrstuvxyz‚ƒ‰‹”™šŸ ĄŖŠĒ¯č +ZC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\OpenDatabasePage.xaml.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=3;2=1;4=0;6=0;8=0;10=0;12=0j *r$ +  !"#$%&'(+,-./0x‚ %&(+,-Å +]C:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\RecentDatabasesPage.xaml.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=1;2=0;4=0;6=0;8=0;10=0;12=0jr + + ‚ ī +ZC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\SaveDatabasePage.xaml.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=4;2=1;4=0;6=0;8=0;10=0;12=0j r*  !"#%&'()*+,./02345x‚ !"),./02Ļ +GC:\Sources\Other\ModernKeePass\ModernKeePass\Properties\AssemblyInfo.csR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=0;2=0;4=0;6=0;8=0;10=0;12=0j r  +  +BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\EntryVm.csX I(/0.8l@lHlR 0=0;5=0;10=0;20=0;30=0;60=0;90=1Z1=53;2=17;4=1;6=1;8=0;10=1;12=0j$%&ræ +  !"#')*+,-./0134567:;<=>@ABCDEFGHIKLMNOQRSTUWXYZ[\]^`abcdfghijlmnopqrstvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘“”•–—˜™š›žŸĄŖ¤Ĩϧ¨ŠĢŦ­Ž°˛´ĩšēŧŊžŋĀÁÂÃÅÆĮČÉĘËĖÎĐŅĶÔÕÖ×ŲÚÛÜŪßāáãäåæįčęëėíīđņōķôõö÷øųúüũū˙€‚ƒ„…‡ˆ‰ŠŒŽ‘x‚… !"#+./56<=BEFGMNST[\bchinqrx{|‚…†‹Ž˜š­˛ļˇ¸šĀÅÆĮČÉĘËĖÎŅĶÔÕÖÛāåæįėņōķõöøųū˙„‰Ž× +BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\GroupVm.csR ((08E@EHER 0=0;5=0;10=0;20=0;30=0;60=1;90=0Z1=25;2=11;4=3;6=1;8=0;10=0;12=0j123r´  !#$%')*+-/456789:;=>?@BCDEFHIJKLMNOPRSTUVXYZ[\^_`abcdefghjklnopqrsuwxy{|}~‚ƒ„…‡ˆ‰Š‹ŒŽ‘’“”•—˜™š›œž ĄĸŖ¤ĨϧŠĒĢŦ­Ž°ą˛ŗĩšēģŧŊžŋĀÁÂÄÅÆĮČÉËĖÍÎĐŅŌĶÔÕÖרŲÚÛÜŪßāáâãäåæįčéęėíîīđņx‚ #)*-/69>?DELMOTUZ[dfgjx}~‚ƒ„‰‹ŒŽ‘’“™š›œ¤ĨĻĢŦ­˛ˇ¸šēŧŊŋĀÁÆĮČÍŌÕÖÚâãäčîČ +NC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsNewVm.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=7;2=0;4=0;6=0;8=0;10=0;12=0r  !‚ † +EC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\SettingsVm.cs (08 @ H R 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=5;2=0;4=1;6=0;8=0;10=0;12=0rM +  "$%&'()+-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQSTUVx‚"$&+345;<=BCDFJKLNQSĘ +AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\MainVm.cs (08@HR 0=0;5=0;10=1;20=0;30=0;60=0;90=0Z1=6;2=0;4=1;6=0;8=1;10=0;12=0jvyr‚ +  !"$&'()*+-/01345789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuwz{|}~€‚ƒ…†‡ˆx ‚(!$&(05;?@DHLPVZ\]^beilpswz{}€‚…š +@C:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\NewVm.cs (08@HR 0=1;5=0;10=0;20=0;30=0;60=0;90=0Z1=2;2=0;4=0;6=0;8=0;10=0;12=0rĘ +AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\OpenVm.cs + (08 +@ +H +R 0=0;5=0;10=1;20=0;30=0;60=0;90=0Z1=5;2=2;4=0;6=0;8=0;10=0;12=0r# +  !"#$&'()*+x‚ +  !"#(Ü +CC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\RecentVm.cs (08 @ H R 0=0;5=0;10=1;20=0;30=0;60=0;90=0Z1=5;2=1;4=1;6=0;8=0;10=0;12=0r/ + !"#$&')*+,-./1234567x‚!"&+,-.34ģ +AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\SaveVm.cs (08@HR 0=0;5=1;10=0;20=0;30=0;60=0;90=0Z1=3;2=1;4=0;6=0;8=0;10=0;12=0r + x‚ Š +SC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsDatabaseVm.cs ( 0 8@HR 0=0;5=0;10=0;20=1;30=0;60=0;90=0Z1=13;2=5;4=1;6=0;8=0;10=0;12=0jr] +  !"#$%')*+,-./012456789:;<=>?ACDEFGHJKLMNPQRSTUVWXY[]^_`abdfghijklx ‚ #-/8:<>AEFHLMRUVX[]_dhi +`C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\HamburgerMenuUserControl.xaml.cs (08@HR 0=0;5=0;10=1;20=0;30=0;60=0;90=0Z1=15;2=2;4=0;6=0;8=0;10=0;12=0jrg +  !"#$%&')*+,-./012356789:;<=>?ABCDEFGHIJKMNOPQSTUVWXZ[\]^_`abcdfghijkmnopqrst‚ #'+,/378;?CDGKOPTX\]`djq \ No newline at end of file diff --git a/ModernKeePass/.sonarqube/out/0/output-cs/symrefs.pb b/ModernKeePass/.sonarqube/out/0/output-cs/symrefs.pb new file mode 100644 index 0000000..1914fd4 --- /dev/null +++ b/ModernKeePass/.sonarqube/out/0/output-cs/symrefs.pb @@ -0,0 +1,2912 @@ +ī +GC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\ClipboardAction.cs + G V +    $ +2 >  * 6   ' +     ) . + +  + +% + + +4 = +  ! ,˙ +KC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\NavigateToUrlAction.cs + $F Y + + + " % +2 =  * 5   & +     ( - + +  + +% + + +4 = + > A + 4 6Đ +HC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\SetupFocusAction.cs +   !P ` +   # & +2 F  + ? / + 1 6 + +  + +% + + +4 =Ė +8C:\Sources\Other\ModernKeePass\ModernKeePass\App.xaml.cs + +  + +  + +ļļ '   & + +ŒŒ %!! " +(( )""" 6 + +((1 7( +((U p++ 744 +99 +2 +++ -- .. // 00 2 +,, 22 554 A77 "::8 E + +CC& 0 +CCJ KEE ! +NN (EE KK  + +II + +II@ DKK $( +NN= >dd pp rrI JF +XX \\ __ bb mm) 2ss xx  + +ĒĒ bb. @ +rr +xx9 P + +ŒŒ- 3 + +ŒŒ< = + +ŽŽ  + 0 + +  +  +™™  +™™9 A + +››  +ŸŸ4 6 + +ĒĒ' - + +ĒĒI J +ŦŦ9 : + +ļļ/ 5 + +ļļK L +¸¸  + +¸¸  +ÅÅ $ + +šš  +ŧŧN V +ŊŊ  + +ŋŋ & +ÂÂ7 @ + +ĖĖ /0 + +ĖĖG K +ÎÎ! % +ĐĐ4 8 +ŅŅ1 5$ + +ĪĪ  +ŅŅ  +ŌŌ% .• +OC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\IntToSymbolConverter.cs + + % + + + +  + + +% *   % + + + +1 ; + + + +D M + + + +V ^ +       + +UU ! +UU) .WW" ' + +UU5 ? + +UUH Q + +UUZ b +WW XX ` +RC:\Sources\Other\ModernKeePass\ModernKeePass\Exceptions\DatabaseOpenedException.cs + + (| +JC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ILicenseService.cs + + $ + +  4 < + + + +  + + + +" ' +RC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IProxyInvocationHandler.cs + + , + +  + + " + +/ 5 + +@ Jà +IC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IRecentService.cs + + # + +    + + + + ' + + + +/ 4 + +  * 5 + +  ; N + +    + +   " + +  + 3 + +   x +FC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IRecentItem.cs + +  + +  + +  + +   q +KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IResourceService.cs + + % + +  + +' *ą +MC:\Sources\Other\ModernKeePass\ModernKeePass\Services\SingletonServiceBase.cs + + .2 +/ 08 9% &  + +  +( 4 + +$ 0 + + + + č +`C:\Sources\Other\ModernKeePass\ModernKeePass\TemplateSelectors\SelectableDataTemplateSelector.cs + + / +   $M U + + + %X a + +  ( : +  B F# ' + +  Y b +  #/ ?× +OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsSaveVm.cs + + ( +* 3  "  + + + +  + +    +  / 7  + + ! + 6 ;n +TC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\DonatePage.xaml.cs + + * + + + + Ē +HC:\Sources\Other\ModernKeePass\ModernKeePass\Services\DatabaseService.cs + 7 Fē +$ /## ++ $,, DD $EE JJ $KK PP $QQ TT )UU# .ww  +ƒƒ  +‘‘( 3 +‘‘Y d +§§  +ŦŦ  +ŦŦ% 0 +ŦŦC N +ŋŋ  +ÍÍ  +ŌŌ  +ŌŌ+ 6 +ÛÛ  +įį  +čč  +éé  +ėėB M +îîE P +đđ@ K +ōōE P +ôôB M +öö  +ųųB M +ûûE P +ũũ@ K +˙˙E P +‚‚ L +* 3__ zz !{{% . +ˆˆ  +ĒĒ  +ĐĐ " + - +ŠŠ % +ĶĶ *> + )11 &88 UU9 FVV - +ŠŠ( 5( + # $"" ##- 84 + *>> &?? ss  +œœ $" +  +‘‘  +āā ". + ! +āā  +áá  +ââ  +   "" # +''  +ŒŒT Xf +// ''' *tt= I +ģģ & +ŧŧ  +ŋŋ= I +Ãà  +ÔÔ " +ÖÖ ) +)) % +‘‘E V +,, ,,2 7 +TT 44  +¤¤  +WW 44 ( +22 88 % + +<< ( +?? ??" ' + +BB  +EE EE/ 4 + +HH& : +KK KK, 1 +NN * ) +QQ QQ. 3 + +UU  + +VV  + +YY  + +]]  +]]0 8__  +ii  +œœ > +ii, /nn pp; >ss #ww2 5 +ƒƒ4 7 +ii6 ?uu  +tt ww$ 0 +ƒƒ& 2 + +åå %zz> N +{{ "|| & + +‹‹ " +ŽŽ #$ + +šš  +ŽŽ  +ĶĶ 0 + +““0 2 +••4 6 +––, . +––8 : + +šš  + +ĸĸ  + +¯¯  +ąą( ) + +šš% ) +ŧŧ  + +ģģ  +Ãà & + +ËË  + +ËË% 0 +ÖÖ  + +ŲŲ " + +ŲŲ* , +ÛÛ? A + +ŪŪ $ + +ŪŪ, 1 +āā/ 4¨ + +ëë  +ėė  +îî  +đđ  +ōō  +ôô  +öö+ - +øø  +ųų  +ûû  +ũũ  +˙˙  +  +‚‚+ -á +KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ISettingsService.cs + + %( +  ) *B C + + +  + + ' + ++ 7 + +  + , - + +" * + +. 3į +JC:\Sources\Other\ModernKeePass\ModernKeePass\Common\MessageDialogHelper.cs + + + + + +  ! 1 ++  +  9 >2 7 +  G R9 D +  [ k5 E +   t „F V + +  ž ĢG T + +  Å ŌX e +   ( +HH% 6 1:: 1BB * + + * +9 B+ 4 +U ]  + 3%%" * + +i p + "" $$! + +$$ %% %%0 4 + +)) . + +))G P2 +))c k++< D-- .. 22  + +++• œ + +00  + +66! 0( +66; D88 ::2 ;::E N +:: ==  + +@@! 7 +@@? DBB+ 0 +@@M TBB2 9 +BB EE  +HH> CKK; @ +HHL SKK2 9 +HH\ mNN5 F + +HH‡ ”NNH U2 +KK NN QQ TT VV Ą +GC:\Sources\Other\ModernKeePass\ModernKeePass\Common\NavigationHelper.cs + +<< !F +>> ??0 4II NN TT UU aa ˛ +??  +ĢĢ  +ĢĢ. 3 +ˇˇ  +ˇˇ. 3 +ĀĀ  +ĀĀ+ 0 +ĀĀA F +ČČ  +ČČ+ 0 +ČČD I +ŋŋI N +ĀĀ+ 0 +ĮĮ) . +ééI N + +GG  +GG% )II  + +NN! ' + +NN) * + +áá ;YY >gg : + + .[[ 6ii 2 + +aa# ) + +aa+ ,8 +pp # " + " +…… % +‰‰ . +qq & +—— % +™™ % + (" +{{ ) +úú & +œœ& 3 + +žž " +‚‚# ) + +ŠŠ % +ƒƒ# , + +‡‡  +‰‰! &$ + +““ , + ) +) 9 + +ÆÆ % +šš# , + +ĩĩ ( +››# / + +ááK QH + +ââ$ % +ää  +čč  +éé  +ųų  +€€ l + +ää  +ęę  +ęę2 < +ëë  +ëë/ 9 +õõ $ +öö  +üü ) +ũũ 0 + +íí  +īī * +đđ# - +ņņ! +T + +îî  +īīJ S +īīX a +đđP Y +đđ^ g +ņņL U +ņņZ c$ + +īī  +ōō$ + +ķķ &$ + +đđ  +ōō0 : +ķķ+ 5$ + +ņņ  +ōō? G +ķķ: B$ + +ōō  +õõ/ : +üü4 ?$ + +ķķ  +öö6 = +ũũ7 > + +: @$ + +ŽŽ  +  +›› H + +  +““  +““2 < +””  +—— ) +˜˜" ,$ + +——  +™™  +œœ $ + +˜˜  +™™ , + "= + +ĻĻ  +ĀĀ  +ÆÆ' / ÛÛy  +īī  + +øø . +­­ *< + +­­+ 4 +ĪĪ " +ŅŅ " +ŲŲ " +ÛÛ " + +üü . +´´ *$ + +´´+ 4 +ëë  +íí  + +ŊŊ !0 + +ŊŊ6 7 +  +ŅŅ@ A +ÛÛ@ A$ + +ŋŋ  +ČČ ! +ÛÛi s$ + +ÆÆ  +ČČ) 4 +ËË $ + +ĮĮ ! +ĘĘ ! +ËË, 9$ + +™™ ! +ŅŅ- ? +ÛÛ- ? + +įį # + +įį8 9 + +éé  +īī $ + +ęę  +íí< E +īī# , + +ŽŽ ! +íí) ; + +øø6 < + + # +øø> P + +øøQ R + +üü6 < + +ŖŖ # +üü> P + +üüQ R + +‡‡ ) +œœ $ + +ŒŒ* 3 +  + +™™) < +œœ' : + +™™Y b + & + +¨¨* 3 +ąą  + +ŽŽ= F +ąą &Ŧ +PC:\Sources\Other\ModernKeePass\ModernKeePass\Common\NotifyPropertyChangedBase.cs + + * +  1 @    +   (  +  0 <  G S + + "( +# $* +6 7! " +, 43 ;  +8 == B  +Y e *Ē + +KC:\Sources\Other\ModernKeePass\ModernKeePass\Common\ObservableDictionary.cs + +   % + + : + 7""' K +I O( . +X [  +$ 4 % +  ŧ ++ 6(( ;; FF GG@ KSS 'WW ^^! ,__ hh )mm #rr #ww )|| # + ) +‹‹ # + # +––& 1 +< F )< + %)) !== %II %XX %bb % +7 =""L R +F I""T W +    ""  +&& ..  +&& "((! $))A D +&&+ 0((& + +,, 55  +,,5 9.. .. # + +11  +11G M33" ( +33 55  + +99  +99" %;;( +==D G + +CC 2 +CC8 <FF- 1GG "GGS WIID H +EE FF; GGG* 6 + +OO" % +UU WW( - + +\\  +^^ `` ) +`` bbD G + +ff# ' + +kk  +kk' *mm0 3 + +pp  +pp' *rr0 3 +pp7 <rr9 > + +uu# ) + +zz  +zz: >||- 1 + +  + +„„  + +‰‰9 F + +ŽŽF S + +““ $ + +““: ? +•• ! +™™ $ + +““E O +˜˜  +™™  + +••  +˜˜" + + +––  +™™& *ņ +CC:\Sources\Other\ModernKeePass\ModernKeePass\Common\RelayCommand.cs + +  + (-- EE ( +$ /.. :: ::0 ; +" 3OO + + +  +# *    + +))  +))# *++ --  +))7 A.. $ + +88  + +88& / + +CC  + +CC# , + +MM * +OO PP RR å +HC:\Sources\Other\ModernKeePass\ModernKeePass\Common\SuspensionManager.cs/ + + +ˆˆ` q +ŠŠe v ŒŒq ‚V +2 ?&& &LL4 Aii ss ! +ââ & +ää % +ææ= J) +" -00 $KKs ~ rrw ‚ + 1OO] qnnZ n +$$1 = +Ãà  + +..! + + +::! * +?? /BB *8 + +2 C??3 Dww3 D +˛˛  +ÄÄ  +AA BB< ADD1 6 + +ûû 4DD 0( +JJ (LL' 2RR SS % +KK' 1LL  +OO PP1 5 +PP (SS2 < +VV XX5 6" + +‡‡ )XX 4 +ƒƒ 4 + +gg! - +gg5 C zz} ‹ +nn oo5 9 +oo$ ,ssV ^ +rr+ 5ss@ J +ww /zz *2 +yy zz< AzzN S|| }}4 9" + +‰‰* Ezz] x +ĢĢ :: + +‹‹* C||) B +¤¤ 8 +ÚÚH a +íí 8" + +ōō 7}} 3 +ĩĩ ' + +  +ƒƒ5 6< + +‡‡* F +ŸŸ ; +ąą 7 +ÃÃ7 S +ŪŪ= Y + + (T + +/ 4 +ŸŸ  +¤¤  +ĢĢ  +ąą  +˛˛; @ +ĩĩ( -0 + += L +ŦŦ  +ŦŦ9 H +ąą9 H0 + +U c +ŠŠ& 4 +ĢĢ< J +ŦŦ" 0 + +ŋŋ *$ + +ŋŋ1 6 +ÃÃ( - +ĮĮW \ + +ÄÄ) ; +ĮĮ *$ + +ÆÆ  +ĮĮ< E +ĮĮJ S$ + +ØØ1 E +ôô 1 +ũũ 10 + +ØØL Q +ÚÚ9 > +ŪŪ. 3 +íí H + +ÚÚ  +ÜÜ  +ææ  +ëë  +íí: D +īī < + +ŪŪ # +ßß # +ââ3 B +ää& 5 +ææK Z$ + +ōō> C +ôô2 7 +÷÷ $ + +ôô  +õõ  +÷÷1 ;$ + +ûû; @ +ũũ2 7 +ūū' , + +ũũ  +ūū  + + + + +ƒƒ ) + +‡‡4 5 +ˆˆ/ 0• +GC:\Sources\Other\ModernKeePass\ModernKeePass\Services\LicenseService.cs +     7 E2 +   "22! /44! /:: )== " + +    + +  + +  + +  + +  + 220 < + 440 @ +; C  +' >BB #GG * + +  +   + +!! '( +!!/ 4##O T((] b00] bF +## $$ #''( 7((> M,,, ;.., ;00> M +@@ ('' '.. + +::+ A((' =00' = +EE ',, + +::G T<<X e +::] h<<K V +<< ==$ * +@@. ;BB( 5 +EE- :GG4 AŽ +FC:\Sources\Other\ModernKeePass\ModernKeePass\Services\RecentService.cs +     6 CP +  9 =! %" & #- 1%% ** //  + +  + +1 < +B U + +     2 + 1 60 5= B9 > + M Q + +##  +##% )%%  +##2 :%% # + +((  + +--( 4 +--< A//+ 0ģ +IC:\Sources\Other\ModernKeePass\ModernKeePass\Services\ResourcesService.cs + + ! + -  9 I +  ( 7   * + +   & +  . 1  L O +    ö +HC:\Sources\Other\ModernKeePass\ModernKeePass\Services\SettingsService.cs + 8 G2 + + +& -- 4   < +        0 1  I J G H + +    +  & .5 = +  2 > # + +  + 3 4( +) 1$ ,  % +5 :$ )' ,Ö +NC:\Sources\Other\ModernKeePass\ModernKeePass\Common\ToastNotificationHelper.cs + + + + / + +   )( +  4 : #a g9 ? +  C IK Q +  R VH L + T ^; E< +  /) 8) 8 +. = +    +  " + < B +   @ E +## +33  +##3 8''H M +##A E((H L2 +%% && /'') 8(() 8**. = +&& '' ((  +** ..@ E + +11 ) +114 =33 &33/ 8† +`C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\DiscreteIntToSolidColorBrushConverter.cs + + 6 + + + +  + + +% *  0 5 + + + +1 ; + + + +D M + + + +V ^ +       + + ! + +) . + +5 ? + +H Q + +Z b‹ +[C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\EmptyStringToVisibilityConverter.cs + + + * + +    +  % *     ) . + +  1 ; + +  D M + +  V ^ +     ( , + + ! + +) . + +5 ? + +H Q + +Z bá +QC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\NullToBooleanConverter.cs + + ' + +  +% * + +  + +1 ; + +D M + +V ^ + +   ! + +  ) . + +  5 ? + +  H Q + +  Z bŽ +HC:\Sources\Other\ModernKeePass\ModernKeePass\Exceptions\SaveException.cs + +  + +    + +    +  ' 0   &į +SC:\Sources\Other\ModernKeePass\ModernKeePass\Extensions\DispatcherTaskExtensions.cs + + 0( +  1 2  ! " + +   @ A + +  $ 0 +  H R    + + + 9 = + + +7 ?  & .( +   $ ( ( - +! #6 8 + +! - +B L ) + ? C +4 <X `‘ +KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IDatabaseService.cs + + + + % + +    + +    + +  + +  + +  + + ! + +  + + 3 + + # + +  + +  + +  + +  + +  + + " + +) 2 + +  + +  + +  + + " + +  + +% * + +    + +  # % + +!!  + +!! #i +OC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IHasSelectableObject.cs + + ) + + %e +KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ISelectableModel.cs + + % + + Ą +SC:\Sources\Other\ModernKeePass\ModernKeePass\Views\BasePages\LayoutAwarePageBase.cs + +   $x + 0      00  +ŒŒ # +šš  +ĸĸ  +ÆÆ  +ËË : + ( +ˆˆ0 8 +0 8 +––  +˛˛B J( +, :JJ "RR "aa  +, 1cc. 3 + + " +?? 1* D +__ 1* D + +ŽŽ   D J + +††   T ] + + )$$* <, + +žž ,%% !11 ! +ƒƒ ! + +(( 0 + +((8 > + +((Z [N +ww 1// +HH / +ˆˆ * + * +ŽŽ + +˛˛" < + +??9 ?( +??T UDD PP RR7 8 + +__9 ? +__T Ucc  +pp =yy1 R + +1 7 + +d e + +    +ĄĄ/ : + +ŦŦ - +   2 + +˛˛  +´´ " + +ÄÄ - + +ÄÄB C +ÆÆ+ , + +ÉÉ / + +ÉÉD E +ËË- .| +bC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsDatabasePage.xaml.cs + + 4 + + + + # +eC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsNewDatabasePage.xaml.cs + + 7 + + + + &x +^C:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsSavePage.xaml.cs + + 0 + + + +   +bC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsSecurityPage.xaml.cs + +   4 + +   # + + @ + +H N + +b c{ +aC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsWelcomePage.xaml.cs + + 3 + + + + "ũ +_C:\Sources\Other\ModernKeePass\ModernKeePass\TemplateSelectors\FirstItemDataTemplateSelector.cs + + . + %T ] +   %` i + +  ( : + +  B F +  Y b  J SB K +   ! - +  !ú +LC:\Sources\Other\ModernKeePass\ModernKeePass\Controls\ListViewWithDisable.cs + + $ + +   ? +  Q X  1 8   # +  a e  : > !( +      ( + % /" ,) 3Û +]C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\BreadCrumbUserControl.xaml.cs +   5 , + +   $ + +& 1 +2 E: M . + 0 5 + +> ? + +A EÍ +_C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\CompositeKeyUserControl.xaml.cs( + 7 .)) .55 .R + #KK LLF KSSD IUUJ O]]- 2rr  +  + 99/ 8SSW ` +2 C( 9 , + . 3 + +- . + +0 4 +   99< EII  +%%2 C""( 9## , +## ##. 3 + +**- . + +**0 4( +,, !QQ *RR WW  +112 E..* =// . +// //0 5 + +66, - + +66/ 3 + +99 + + +;; & +AA 9@@ 1 +@@2 DGG  + +AAA G + +AAS T +CC 8BB 0 +BB1 BLL !UU % + +CC@ F + +CCZ [ +EE -__ " + +EE5 ; + +EEM N +PP RR & +QQ WW & + +[[ ( +[[0 6__# )( +[[K L]] __+ ,aa  + +ee . + +ee6 < + +eeN O +gg mm pp # +pp qq rr  + +uu 4 + +uu< B + +uuT U +ww || ~~ ' +~~   + $Ö +JC:\Sources\Other\ModernKeePass\ModernKeePass\Controls\TextBoxWithButton.cs2 + " (   (,, (88 ( + + + + " +2 F  * >   / +     1 6 + +2 3 + +5 9 +3 >AA5 @ + + # +2 G* ? 0 + 2 7 + +!!4 5 + +!!7 ; + +## # +((2 I%%( ?&& 2 +&& &&4 9 + +--, - + +--/ 3 + +// & +442 F11. B22 / +22 221 6 + +99, - + +99/ 3 + +;; / +>> ?? AA  +AA' -AAI O +AA/ 0AAQ Rą +WC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\BooleanToVisibilityConverter.cs + + - + +    +  % *     1 6 + +  1 ; + +  D M + +  V ^ +       + + ! +) . "@ E + +5 ? + +H Q + +Z b +  ŧ +PC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\ColorToBrushConverter.cs + + & + + + +  + + +% *     2 7 + + + +1 ; + + +D M  ( 1  _ h + + + +V ^< +           + + ! + +) . + +5 ? + +H Q + +Z b× +[C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\DoubleToSolidColorBrushConverter.cs + + 1 + + + +  + + +% *, 1 + + + +1 ; + + +D M, 5 + + + +V ^ + 2 > + A I + 2 7D I + ? B + + ! + +) . + +5 ? + +H Q + +Z b¸ +^C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\InverseBooleanToVisibilityConverter.cs + + 4 + +    +  % *     0 5 + +  1 ; + +  D M + +  V ^ +       + + ! +) . "? D + +5 ? + +H Q + +Z b +  õ +QC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\PluralizationConverter.cs + + ' + +  +% *     - 2 + +1 ; +D M + +, 5 + +V ^ + + + )  ' @2 +   $   $  0 D$ 8> R +      +  " + + ! + +) . + +5 ? + +H Q + +Z b˛ +ZC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\ProgressBarLegalValuesConverter.cs + + 0 + +  +% * 2 7 + +1 ; +D M + +* 3 + +V ^ + + + '  % <2 +   "   "  . @( :( : +  ) 1 +  ) 1( +     + + ! + +) . + +5 ? + +H Q + +Z b• +OC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\TextToWidthConverter.cs + + % + +  +% *    + +1 ; +D M + +( 1 + +V ^ + + +   " * +       + + ! + +) . + +5 ? + +H Q + +Z bŽ +HC:\Sources\Other\ModernKeePass\ModernKeePass\Events\PasswordEventArgs.cs + + " +     + + + +  + + +) 0   _ +EC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IIsEnabled.cs + +  + +  +DC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IPwEntity.cs +     + +  + +    + + + +  + +    + +    + +   ) + +  + +  + +  + + % + +  + +  + +!!  + +%%  + +%%" 1 +CC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPage.xaml.cs + +   ( +  $ + +  + + 2 +: @+ 1 +\ ]3 42 +   3 ?J V + + - +B C!! m +SC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\AboutPage.xaml.cs + + ) + + + + í +YC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\NewDatabasePage.xaml.cs + + / + ""  + +  + + - + +5 ; + +M N +     ' +   !! "" Ī +GC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPage.xaml.cs + +   , + # $ + +  + + 2 +: @+ 1 +\ ]3 4 +  ,U ao +UC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\WelcomePage.xaml.cs + + + + + + + ā +BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\AboutVm.cs + + ( +! )   & &  + +    + +    +  !* 1 + +  + +  + & ÷ +IC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\CompositeKeyVm.cs + + X + CC0 ;MM" -mm  +ŠŠ6 A +$ / +››L W +ĨĨ/ : + MM. 4" +  +ŠŠB G +0 5 + +  +  +››X _8 + (xx  +€€  +1 9 +šš , + 88/ : +‡‡  +ŽŽ  +gg ! % , + . 3, +$$ 88> H +ˆˆ  +¯¯  +hh && $)) + +'' ))- 2, +.. "88_ m +‰‰ " +°°  +ii $00 (33 / +11 331 6 + +88 * +jj 88 *  +““ 8 +RR "88L S +ĸĸ  +¯¯ % +¯¯p w +:: NN  +§§  +ll << ==" ) +== ==+ 0 +@@ MM  +¨¨  +mm 'BB )CC" - +CC CC< A +FF ee\ d +ŽŽE M +kk HH "KK  +II KK ! +nn $TT !WW  +UU WW XX # +]] !XX ( +oo #__ %``" .ww  +`` ``0 5 +cc  +% . + +ee 1f +pp* 3vv ww $ +††8 A +‡‡9 B +ˆˆ8 A +‰‰< E +ŽŽ ( +›› " + +rr  + +tt  +tt/ 7xx  +ttJ Rvv  + +{{ , +{{2 ; +€€: C$ + +ĢĢ / +€€$ 6 +šš$ 6< + +††  +‡‡! - +ˆˆ , +‰‰$ 0 +ŠŠ )0 + +ĨĨ ! +ŠŠ  +  +››  + +ŒŒ  +ŽŽT U + +ŽŽ  + " + +˜˜  + +žž !$ + +žž. 2 +ĄĄ " +ĸĸ  + +ĨĨ) - +§§  + +ĨĨ; ? +¨¨ "< + +­­  +ŽŽ ) +¯¯/ ; +°° , +ąą ņ +OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\ListMenuItemVm.cs + +  + + +  $" - +     + +  + +  + +  + +  + +  + / 4 + + 'u +OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\MainMenuItemVm.cs + +  + +  + + Ķ +MC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\RecentItemVm.cs + +  + + +  $" -( +   ' * &&$ 0 +    00& + +   + +  + +  + / 4 + +  + +  +# (  +1 9  +H L  + + $ +$$ $!!  +$$6 >&&  + +)) $ +.. *++  +..: @00 ū +JC:\Sources\Other\ModernKeePass\ModernKeePass\Views\EntryDetailPage.xaml.cs + + /< + KK NN SS7 <TT \\3 82 + 0  << CC  + +  +-- /* D + +--7 = + +--R S + +:: -( +::B C<<+ ,== >># $ + +AA / +AAD ECC- . + +HH ' + +HH/ 5 + +HHG Hd +JJ LL MM NN1 9NN^ fOO1 9PP QQ SS> FTT$ , +KK OOa h +NN SSk o + +QQG H + +YY ( + +YY0 6 + +YYH I +[[ \\: B\\l t + +`` 2 + +``: @ +``W Xbb/ 0 + +ee @ +eeH Ngg ! + +eej k +gg ii nn $ +hh nn rr% *Ę +JC:\Sources\Other\ModernKeePass\ModernKeePass\Views\GroupDetailPage.xaml.cs + /\\" 1 +””" 12 + 0!! "" ?? II z + pp ss xx; @yy  +3 8 +4 9 +””4 9 +™™  +    +ŠŠ  + +  +00 /""* D + +007 = + +00R S + +== -< +==B C??+ ,AA BB3 4CC DD( ) + +GG / +GGD EII- . + +PP , +PP4 :RR ! + +PPV W +RR TT YY $ +SS YY \\4 9 + +__ - + +__5 ; + +__W X +aa gg jj4 9 + +mm ' + +mm/ 5 + +mmG Hd +oo qq rr ss1 9ss^ ftt1 9uu vv xxB Jyy( 0 +pp tta h +ss xxo s + +vvG H + +~~ ( + +~~0 6 + +~~H I$ + +€€  +: B +‚‚  + +†† 3 + +††; A0 + +††d e +‰‰  +‹‹  +‹‹) * + +ŽŽ , + +ŽŽ4 : + +ŽŽL M + +’’ , + +’’4 : + +’’L M + +—— / + +——7 =$ + +——Z [ +™™  +šš  + + 5 + +@ F$ + +o s +  E I +ŖŖ  + +ŸŸ  ŖŖ€ ˆ + +    +ĄĄ# * + +  1 2 +  6 70 + +ĄĄ  +ŖŖO U +ŖŖ\ b +ŖŖu { + +§§ 7 + +§§B H + +§§s w +ŠŠE I + +ŠŠ  +ĒĒ4 9 + +ŠŠ8 9 +ŠŠ= > + +­­ 2 + +­­: @ + +­­W X +¯¯/ 0° +ZC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\OpenDatabasePage.xaml.cs + + 0 +   + --  + +  + + - +B C   + +   - + +  5 ; + +  M N +"" (( ++ # +++ ,, -- w +]C:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\RecentDatabasesPage.xaml.cs + + 3 + + + + "ō +ZC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\SaveDatabasePage.xaml.cs + + 0( +  "" 22  + !! 00  + +  + + - +B C   + + - + +5 ; + +M N + +%% / + +%%7 = + +%%O P +'' ,, .. ' +.. // 00 I +GC:\Sources\Other\ModernKeePass\ModernKeePass\Properties\AssemblyInfo.csã +BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\EntryVm.cs +  +——' .p + """I T##H S##a l +šš: E +šš  +įį1 < +ņņ ' +øø  +ųų : + $ +ėė  +ņņ  +ōō  +˙˙0 = + +% 4ˆ + +ŖŖ! )8 @8 @7 ?   (!! $[[ [[; Cbb, 4cc) 1hh !ii) 1ii? G +‹‹ ! +ŽŽ  +˜˜- 5 +¸¸  +ĶĶ  +ÛÛ  +āā  +ūū  +ūū0 8 +‰‰  +ŽŽM U + +% 4 + + + +@@ E M\ d + + * + +‰‰ %" 3cc 'ii ' + + 1 + , +ÅÅ ( + , +ÆÆ ( + ) +ĮĮ % + ( +ÉÉ $ + - +ĘĘ ) + ( +ËË $ + * +ČČ & + + +ĖĖ ' + ! +ÎÎ" -" +    +õõ) / +˙˙c i + +!!  + +"" %Ž + +¤¤* 3"") 2 +ļļ  +åå  +åå/ 8 +ææ  +įį  +įįJ S +õõ  +˙˙  +˙˙J S +„„  + +##& 0, +'' nn # +ššH R +ŽŽ  +)) $ +ÁÁ - + +¨¨ &++ (..  +,, .." 'z + +ĢĢ *// %FF %GG %rr %|| % +†† % + % +ÔÔ ! +ÕÕ ! +ÖÖ ! + +33 > + +ŲŲ $55 &<< &BB &MM &SS &> + +ŪŪ "66 == EE NN TT  +66 663 8 + +::  +== ==6 ; +CC EE4 9 + +KK  +NN NN1 6 + +QQ  +TT TT3 8 + +WW  + +`` ( +cc cc? D + +ff " +ii ii\ a + +ll  + +ĻĻ nn' 2qq  +oo qq # + +vv  + +ŠŠ xx #{{  +yy {{ " + +€€ $$ + +§§ & +‚‚ * +…… ! + +ƒƒ  +……$ ) + +ŒŒ  +ŽŽ# ( + +““& -$ + +——  +šš  +  + +˜˜ ) +šš, 8 + +˛˛  +šš$ + + +ĄĄ1 @ +­­ $ + +ĨĨ* 3 +ˇˇ  +ŽŽ ) + +ĢĢ2 > +­­G S + +°°  + +˛˛! & +˛˛? D + +˛˛0 6 +˛˛F L + +´´  + +´´ $ +¸¸  + +´´. 4 +šš  + +´´G O +ļļ  + +´´b j +ˇˇ  + +ŧŧ $„ + +žž  +ÅÅ* 3 +ÆÆ* 3 +ĮĮ' 0 +ČČ( 1 +ÉÉ& / +ĘĘ+ 4 +ËË& / +ĖĖ) 2 +ÎÎ  +ŅŅ/ 8$ + +ĐĐ $ +ŅŅ% - +ĶĶ8 @ + +ŲŲ, / +ÛÛ- 0 + +ŪŪ* - +āā" % + +ŪŪ6 > +āāA I + +ãã ! + +ãã) 8 +ææ+ :$ + +īī  +įį  +ėė  + +ęę $ + +īī! , +ķķ  +øø % + +üü  + +‚‚  + +‡‡ ! + +ŒŒ 'ķ +BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\GroupVm.cs  +      ''$ +''] dbb' .cc ww* 1{{( / +„„. 5 +——  +››  +ĩĩ  +ãã2 9v + "++! ,--0 ;//X cdd (ff" -  +ˇˇ ' +ŋŋ  +ĀĀ  +ÁÁ F + $ +˛˛  +ˇˇ  +¸¸  +šš  +ĮĮ0 =Z +- 4$ +==Z a +‚‚  +ƒƒ  +ĨĨ  +ÖÖ  +ÖÖ< C +rr. 6 !* 2 + 4 9 +$ .  . 8( +     ## ! + "  ( -\ +''- 3& , +„„  +œœ  +¸¸  +ĀĀ  +ãã  +ãã; A8 +)) ** " +ĢĢE K +ŧŧ) / +ČČ* 0° +nn! ))) (99 %DD !DD; CEE LL LL; COO }}  +( 0 +' / +ŽŽ  +‘‘1 9 +’’ ! +šš  +šš " +šš1 9 +ÁÁ  +ÁÁ* 2 +ÆÆ  +ÆÆ/ 7 +ĮĮ_ g +ĮĮq y +ÕÕ  +ââ  +ããe m +** 66c e66i k +++ --# , + +-- @ +44 --< F//I S//d n +­­1 ; +ĮĮ> H + +// %Ę +oo* 3//) 266 "66. 766M V99/ 8~~  +L U +ĢĢ  +ĢĢ/ 8 +ŦŦ  +­­  +­­> G +ŧŧ  +ĮĮ  +ĮĮJ S +ČČ  +ÍÍ  +77 99  + +==< L. +BB  +››7 ; +ããQ U +îî  +EE EE" ' + +HH  +OO OO, 1 +RR  +››D N +pp TT $UU" - +UU UU/ 4 + +XX  +ss "ZZ &[[" / +[[ [[1 6 + +^^& 0 +bb gg jj 2 +cc dd ff ff !gg %. +qq ' + $ +‘‘ ' +’’K Z + +uu " +ww  +„„V ] +›› & +ww! (ww] d +ww2 8wwf l +wwA Mxx& 2 + +{{ , +{{ &}}  +‚‚8 ? +„„7 > +{{0 6  +{{I Q~~ . +{{Z f +  += I +„„g s + +‚‚O P +‚‚` a + +‡‡ . +ƒƒ) B + +„„M N +„„^ _ + +‡‡6 << + +‡‡_ ` +‰‰  +ŒŒ* + +‘‘N O +’’7 8$ + +ŒŒ  +> F +ŽŽ. 6 + +—— "0 + +——* . +™™2 6 +››> B +››f j$ + +™™  +šš % +››' .$ + +››  +œœ  +  + +   " + +ĸĸ  +ŖŖ' .0 + +ŖŖ  +¤¤  +ĨĨ  +ĻĻ  + +ŠŠ ! + +ŠŠ) 8 +ŦŦ+ :$ + +ĩĩ  +­­  +˛˛  + +°° $ + +ĩĩ! , +ēē  +ŋŋ % + +ÄÄ  + +ËË  + +ĐĐ  + +ŌŌ  +ÕÕ& . + +ÖÖL M +ÖÖQ R + +ØØ  +ÚÚ4 5 + +ŪŪ  + +ããJ K +ããO P + +ãã^ _ +ããc d + +ææ  +čč4 5 + +ėė '˜ +NC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsNewVm.cs + + < +  * 3  "  "  + +    + +  +. 6  + + " + 1 6 + +# . + + ' + < Aņ +EC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\SettingsVm.cs + +   P +   , & ! ! !"" -$$ !&& ! +F P #" , +E NSS  + . 3 + ,QQ  + % *""? D + +++  + +--  +--+ 3FF (NN (Z +--F N33 $44 $;; $<< $BB $CC $JJ $KK $ +// QQ $SS% . +QQ4 5QQ9 :ã +AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\MainVm.cs + +    +F T '" 0P + , & ! !!! !$$ -&& !(( ! + +  +E R +……  + 2 7 + ,ww  + % *$$? D + +--  + +//  +// ,//M [ +//4 D//] m + +33 F +33 *>> .GG .OO .YY .dd" 0" 0F +332 B==" 2FF" 2NN" 2XX" 2kk" 2rr" 2z +33U ]55! )555 =@@! )@@5 =@@M U\\ !\\- 5zz zz$ ,}} $ +€€ (P +33p x;; $DD $LL $VV $bb $ii $pp $ + +33‰ ]] ^^ & +55 QQ! /RR .* +77 ww ({{  +……) 6 +ww8 9ww= >Z +@C:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\NewVm.cs + +  + + Ģ +AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\OpenVm.cs + +  + + + + #2 +* 3 + +' 0   '     + +    + +  + + 2 +' /  % -  +   +) -  +   +) -  % )##  +> D##" ( +&& $##  +&&1 5(( (( ! +&&F L(( § +CC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\RecentVm.cs + + ( + + +( /++ ,, !33 P +  ! . & ! ! ! -!! !""  +  2 > %" .2 +1 <,, -- .. *44  + 0 5 + ,..  + % */ 4 + +&&  + +))  +))' -++  + +11 õ +AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\SaveVm.cs + + 2 + + +* 3     + +    + +    +  ' /  + +  +$ )  + +  +% )   +SC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsDatabaseVm.cs + + #‚ +* 3 "    "## $::E N>> EEF OFF LL% .MM hh ii F + %UU !VV !XX ![[ -]] !__ ! + + ! + . 3 + #UU. = +!! ##  +''- 3RR ii  + +))# *( +-- --" %--K N//7 : + +44 2 +88 88" %88M P::. 1::c f +>> >>? D + +AA# / + +CC % +FF FFv { + +HH# 1 +HHL MHHQ R + +JJ ' +MMK LMMP Q +MM MMZ _ + +PP , +RR/ 0RR4 5 +SS UU% *[[8 = + +dd ! + +ff ! +ff3 ;hh Ž +`C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\HamburgerMenuUserControl.xaml.csP + + + 8 /&& /22 />> /JJ /WW /cc / + +   ' + + ! +2 E* = . + 0 5 + +0 1 + +3 7 + + ! +""2 E* =   . +     0 5 + +''0 1 + +''3 7 + +)) ' +..2 K++* C,, 4 +,, ,,6 ; + +33/ 0 + +332 6 + +55 " +::2 F77" 688 / +88 881 6 + +??, - + +??/ 3 + +AA ) +FF2 ICC. EDD 2 +DD DD4 9 + +KK< = + +KK? C + +MM& 1 +SS2 EOO: MPP . +PP PP0 5 + +XX= > + +XX@ D + +ZZ " +__2 F\\" 6]] / +]] ]]1 6 + +dd, - + +dd/ 3 +gg 9ff 1 +ff2 Bjj  + +ggA G + +ggc d + +hh 0 +hh8 >jj% + +hhZ [jj- . +nn 6mm . +mm/ <qq  + +nn> D + +nnV W + +oo ' +oo/ 5qq" ( +ooG Hqq* + \ No newline at end of file diff --git a/ModernKeePass/.sonarqube/out/0/output-cs/token-cpd.pb b/ModernKeePass/.sonarqube/out/0/output-cs/token-cpd.pb new file mode 100644 index 0000000..b50b350 --- /dev/null +++ b/ModernKeePass/.sonarqube/out/0/output-cs/token-cpd.pb @@ -0,0 +1,24951 @@ +¤ +GC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\ClipboardAction.cs + namespace  + ModernKeePass +  +.  +Actions  +{  +public + +class  +ClipboardAction  +:! " +DependencyObject# 3 +,3 4 +IAction5 < +{  +public    +string    +Text    +{ + +  +get    +{    +return    +(    +string    +)   ! +GetValue  ! ) +(  ) * + TextProperty  * 6 +)  6 7 +;  7 8 +}  9 : +set    +{    +SetValue    +(    + TextProperty   ' +,  ' ( +value  ) . +)  . / +;  / 0 +}  1 2 +}    +public  +static  +readonly  +DependencyProperty 1 + TextProperty2 > +=? @ +DependencyProperty  +.  +Register ' +(' ( +$str( . +,. / +typeof0 6 +(6 7 +string7 = +)= > +,> ? +typeof@ F +(F G +ClipboardActionG V +)V W +,W X +newY \ +PropertyMetadata] m +(m n +stringn t +.t u +Emptyu z +)z { +){ | +;| } +public  +object  +Execute  +(  +object $ +sender% + +,+ , +object- 3 + parameter4 = +)= > +{  +var  + dataPackage  +=  +new ! + DataPackage" - +{. / +RequestedOperation0 B +=C D +DataPackageOperationE Y +.Y Z +CopyZ ^ +}_ ` +;` a + dataPackage  +.  +SetText  +(  +Text $ +)$ % +;% & + Clipboard  +.  + +SetContent  +( ! + dataPackage! , +), - +;- . +return  +null  +;  +}  +}  +} Ī +KC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\NavigateToUrlAction.cs + namespace  + ModernKeePass +  +.  +Actions  +{  +public + +class  +NavigateToUrlAction $ +:% & +DependencyObject' 7 +,7 8 +IAction9 @ +{    +public + +  +string + +  +Url + +  +{    +get    +{    +return    +(    +string    +)   ! +GetValue  ! ) +(  ) * + UrlProperty  * 5 +)  5 6 +;  6 7 +}  8 9 +set    +{    +SetValue    +(    + UrlProperty   & +,  & ' +value  ( - +)  - . +;  . / +}  0 1 +}  +public  +static  +readonly  +DependencyProperty 1 + UrlProperty2 = +=> ? +DependencyProperty  +.  +Register ' +(' ( +$str( - +,- . +typeof/ 5 +(5 6 +string6 < +)< = +,= > +typeof? E +(E F +NavigateToUrlActionF Y +)Y Z +,Z [ +new\ _ +PropertyMetadata` p +(p q +stringq w +.w x +Emptyx } +)} ~ +)~  +;  € +public  +object  +Execute  +(  +object $ +sender% + +,+ , +object- 3 + parameter4 = +)= > +{  +try  +{  +var  +uri  +=  +new  +Uri ! +(! " +Url" % +)% & +;& ' +return  +Windows  +.  +System % +.% & +Launcher& . +.. / +LaunchUriAsync/ = +(= > +uri> A +)A B +.B C + +GetAwaiterC M +(M N +)N O +.O P + GetResultP Y +(Y Z +)Z [ +;[ \ +}  +catch  +(  + Exception  +ex  +)  +{  +MessageDialogHelper # +.# $ +ShowErrorDialog$ 3 +(3 4 +ex4 6 +)6 7 +;7 8 +return  +false  +;  +}  +}  +}    +}!! ŋ +HC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\SetupFocusAction.cs + namespace  + ModernKeePass +  +.  +Actions  +{  +public   + +class    +SetupFocusAction   ! +:  " # +DependencyObject  $ 4 +,  4 5 +IAction  6 = +{ + +  +public    +Control    + TargetObject   # +{    +get    +{    +return    +(    +Control   ! +)  ! " +GetValue  " * +(  * + +TargetObjectProperty  + ? +)  ? @ +;  @ A +}  B C +set  +{  +SetValue  +(  +TargetObjectProperty / +,/ 0 +value1 6 +)6 7 +;7 8 +}9 : +}  +public  +static  +readonly  +DependencyProperty 1 +TargetObjectProperty2 F +=G H +DependencyProperty  +.  +Register ' +(' ( +$str( 6 +,6 7 +typeof8 > +(> ? +Control? F +)F G +,G H +typeofI O +(O P +SetupFocusActionP ` +)` a +,a b +newc f +PropertyMetadatag w +(w x +nullx | +)| } +)} ~ +;~  +public  +object  +Execute  +(  +object $ +sender% + +,+ , +object- 3 + parameter4 = +)= > +{  +return  +Task  +.  +Factory  +.  +StartNew ( +(( ) +(  +)  +=>  + +Dispatcher  +. ! +RunAsync! ) +() *" +CoreDispatcherPriority* @ +.@ A +LowA D +,D E +(  +)  +=>  + TargetObject & +?& ' +.' ( +Focus( - +(- . + +FocusState. 8 +.8 9 + Programmatic9 E +)E F +)F G +)G H +;H I +}  +}  +} Ŋ\ +8C:\Sources\Other\ModernKeePass\ModernKeePass\App.xaml.cs + namespace  + ModernKeePass +  +{  +sealed + +partial  +class  +App  +{  +public  +App  +(  +)  +{  + HockeyClient  +.  +Current  +. ! + Configure! * +(* + +$str+ M +)M N +;N O +InitializeComponent  +(  +) ! +;! " + +Suspending    ++=    + OnSuspending   & +;  & ' +Resuming!!  ++=!!  + +OnResuming!! " +;!!" # +UnhandledException""  ++="" ! +OnUnhandledException""" 6 +;""6 7 +}##  +private((  +void((  +OnUnhandledException(( ) +((() * +object((* 0 +sender((1 7 +,((7 8' +UnhandledExceptionEventArgs((9 T' +unhandledExceptionEventArgs((U p +)((p q +{))  +var++  + exception++  +=++ ' +unhandledExceptionEventArgs++ 7 +.++7 8 + Exception++8 A +;++A B +var,,  + realException,,  +=,,  + exception--  +is-- % +TargetInvocationException-- 6 +&&--7 9 + exception..  +...  +InnerException.. ( +!=..) + +null.., 0 +?//  + exception//  +.//  +InnerException// . +:00  + exception00  +;00  +if22  +(22  + realException22  +is22  + SaveException22! . +)22. / +{33 ' +unhandledExceptionEventArgs44 + +.44+ , +Handled44, 3 +=444 5 +true446 : +;44: ; +MessageDialogHelper55 # +.55# $ +SaveErrorDialog55$ 3 +(553 4 + realException554 A +as55B D + SaveException55E R +,55R S +DatabaseService55T c +.55c d +Instance55d l +)55l m +;55m n +}66  +else77  +if77  +(77  + realException77 " +is77# %# +DatabaseOpenedException77& = +)77= > +{88 ' +unhandledExceptionEventArgs99 + +.99+ , +Handled99, 3 +=994 5 +true996 : +;99: ; +MessageDialogHelper:: # +.::# $ +SaveUnchangedDialog::$ 7 +(::7 8 + realException::8 E +as::F H# +DatabaseOpenedException::I ` +,::` a +DatabaseService::b q +.::q r +Instance::r z +)::z { +;::{ | +};;  +}<<  + protectedCC  +overrideCC  +asyncCC  +voidCC! % + +OnLaunchedCC& 0 +(CC0 1$ +LaunchActivatedEventArgsCC1 I +eCCJ K +)CCK L +{DD  +OnLaunchOrActivatedEE  +(EE  +eEE ! +)EE! " +;EE" # +awaitFF  + HockeyClientFF  +.FF  +CurrentFF & +.FF& ' +SendCrashesAsyncFF' 7 +(FF7 8 +)FFU V +;FFV W +}GG  + protectedII  +overrideII  +voidII  + OnActivatedII + +(II+ , +IActivatedEventArgsII, ? +argsII@ D +)IID E +{JJ  +OnLaunchOrActivatedKK  +(KK  +argsKK $ +)KK$ % +;KK% & +}LL  +privateNN  +voidNN  +OnLaunchOrActivatedNN ( +(NN( ) +IActivatedEventArgsNN) < +eNN= > +)NN> ? +{OO  +ifRR  +(RR  +SystemRR  +.RR  + DiagnosticsRR " +.RR" # +DebuggerRR# + +.RR+ , + +IsAttachedRR, 6 +)RR6 7 +{SS  +}UU  +varXX  + rootFrameXX  +=XX  +WindowXX " +.XX" # +CurrentXX# * +.XX* + +ContentXX+ 2 +asXX3 5 +FrameXX6 ; +;XX; < +if\\  +(\\  + rootFrame\\  +==\\  +null\\ ! +)\\! " +{]]  + rootFrame__  +=__  +new__  +Frame__ % +{__& ' +Language__' / +=__0 1 +Windows__2 9 +.__9 : + Globalization__: G +.__G H +ApplicationLanguages__H \ +.__\ ] + Languages__] f +[__f g +$num__g h +]__h i +}__i j +;__j k + rootFramebb  +.bb  +NavigationFailedbb * ++=bb+ - +OnNavigationFailedbb. @ +;bb@ A +ifdd  +(dd  +edd  +.dd " +PreviousExecutionStatedd , +==dd- /% +ApplicationExecutionStatedd0 I +.ddI J + +TerminatedddJ T +)ddT U +{ee  +MessageDialogHelperhh ' +.hh' (" +ShowNotificationDialoghh( > +(hh> ? +$strhh? O +,hhO P +$strhhQ } +)hh} ~ +;hh~  +}jj  +Windowmm  +.mm  +Currentmm  +.mm  +Contentmm & +=mm' ( + rootFramemm) 2 +;mm2 3 +}nn  +ifpp  +(pp  +epp  +ispp $ +LaunchActivatedEventArgspp - +)pp- . +{qq  +varrr # +lauchActivatedEventArgsrr + +=rr, - +(rr. /$ +LaunchActivatedEventArgsrr/ G +)rrG H +errI J +;rrJ K +ifss  +(ss  + rootFramess  +.ss  +Contentss % +==ss& ( +nullss) - +)ss- . +{tt  + rootFramexx  +.xx  +Navigatexx & +(xx& ' +typeofxx' - +(xx- . +MainPagexx. 6 +)xx6 7 +,xx7 8# +lauchActivatedEventArgsxx9 P +.xxP Q + ArgumentsxxQ Z +)xxZ [ +;xx[ \ +}yy  +}  +Window +‰‰  +. +‰‰  +Current +‰‰  +. +‰‰  +Activate +‰‰ # +( +‰‰# $ +) +‰‰$ % +; +‰‰% & +} +ŠŠ  +private +ŒŒ  +async +ŒŒ  +void +ŒŒ  + +OnResuming +ŒŒ % +( +ŒŒ% & +object +ŒŒ& , +sender +ŒŒ- 3 +, +ŒŒ3 4 +object +ŒŒ5 ; +e +ŒŒ< = +) +ŒŒ= > +{ +  +var +ŽŽ  + currentFrame +ŽŽ  += +ŽŽ  +Window +ŽŽ % +. +ŽŽ% & +Current +ŽŽ& - +. +ŽŽ- . +Content +ŽŽ. 5 +as +ŽŽ6 8 +Frame +ŽŽ9 > +; +ŽŽ> ? +var +  +database +  += +  +DatabaseService + * +. +* + +Instance ++ 3 +; +3 4 +if +  +( +  +database +  +. +  + DatabaseFile + % +== +& ( +null +) - +) +- . +{ +‘‘ % +ToastNotificationHelper +““ ' +. +““' ( +ShowGenericToast +““( 8 +( +““8 9 +$str +““9 H +, +““H I +$str +““J v +) +““v w +; +““w x +return +••  +; +••  +} +––  +try +——  +{ +˜˜  +if +™™  +( +™™  +database +™™  +. +™™  + CompositeKey +™™ ) +!= +™™* , +null +™™- 1 +) +™™1 2 +await +™™3 8 +database +™™9 A +. +™™A B +ReOpen +™™B H +( +™™H I +) +™™I J +; +™™J K +} +šš  +catch +››  +( +››  + Exception +››  +ex +››  +) +››  +{ +œœ  + currentFrame +  +? +  +. +  +Navigate + & +( +& ' +typeof +' - +( +- . +MainPage +. 6 +) +6 7 +) +7 8 +; +8 9! +MessageDialogHelper +ŸŸ # +. +ŸŸ# $ +ShowErrorDialog +ŸŸ$ 3 +( +ŸŸ3 4 +ex +ŸŸ4 6 +) +ŸŸ6 7 +; +ŸŸ7 8% +ToastNotificationHelper +ĄĄ ' +. +ĄĄ' ( +ShowGenericToast +ĄĄ( 8 +( +ĄĄ8 9 +$str +ĄĄ9 H +, +ĄĄH I +$str +ĄĄJ t +) +ĄĄt u +; +ĄĄu v +} +ĸĸ  +} +ŖŖ  +void +ĒĒ  +OnNavigationFailed +ĒĒ  +( +ĒĒ  +object +ĒĒ & +sender +ĒĒ' - +, +ĒĒ- .' +NavigationFailedEventArgs +ĒĒ/ H +e +ĒĒI J +) +ĒĒJ K +{ +ĢĢ  +throw +ŦŦ  +new +ŦŦ  + Exception +ŦŦ  +( +ŦŦ  +$str +ŦŦ 6 ++ +ŦŦ7 8 +e +ŦŦ9 : +. +ŦŦ: ; +SourcePageType +ŦŦ; I +. +ŦŦI J +FullName +ŦŦJ R +) +ŦŦR S +; +ŦŦS T +} +­­  +private +ļļ  +async +ļļ  +void +ļļ  + OnSuspending +ļļ ' +( +ļļ' ( +object +ļļ( . +sender +ļļ/ 5 +, +ļļ5 6! +SuspendingEventArgs +ļļ7 J +e +ļļK L +) +ļļL M +{ +ˇˇ  +var +¸¸  +deferral +¸¸  += +¸¸  +e +¸¸  +. +¸¸ ! +SuspendingOperation +¸¸ 0 +. +¸¸0 1 + GetDeferral +¸¸1 < +( +¸¸< = +) +¸¸= > +; +¸¸> ? +var +šš  +database +šš  += +šš  +DatabaseService +šš * +. +šš* + +Instance +šš+ 3 +; +šš3 4 +try +ēē  +{ +ģģ  +if +ŧŧ  +( +ŧŧ  +SettingsService +ŧŧ # +. +ŧŧ# $ +Instance +ŧŧ$ , +. +ŧŧ, - + +GetSetting +ŧŧ- 7 +( +ŧŧ7 8 +$str +ŧŧ8 E +, +ŧŧE F +true +ŧŧG K +) +ŧŧK L +) +ŧŧL M +database +ŧŧN V +. +ŧŧV W +Save +ŧŧW [ +( +ŧŧ[ \ +) +ŧŧ\ ] +; +ŧŧ] ^ +await +ŊŊ  +database +ŊŊ  +. +ŊŊ  +Close +ŊŊ $ +( +ŊŊ$ % +false +ŊŊ% * +) +ŊŊ* + +; +ŊŊ+ , +} +žž  +catch +ŋŋ  +( +ŋŋ  + Exception +ŋŋ  + exception +ŋŋ & +) +ŋŋ& ' +{ +ĀĀ % +ToastNotificationHelper + ' +. +ÂÂ' ( +ShowErrorToast +ÂÂ( 6 +( +ÂÂ6 7 + exception +ÂÂ7 @ +) +ÂÂ@ A +; +ÂÂA B +} +ÄÄ  +deferral +ÅÅ  +. +ÅÅ  +Complete +ÅÅ  +( +ÅÅ  +) +ÅÅ  +; +ÅÅ  +} +ÆÆ  + protected +ĖĖ  +override +ĖĖ  +void +ĖĖ  +OnFileActivated +ĖĖ / +( +ĖĖ/ 0$ +FileActivatedEventArgs +ĖĖ0 F +args +ĖĖG K +) +ĖĖK L +{ +ÍÍ  +base +ÎÎ  +. +ÎÎ  +OnFileActivated +ÎÎ  +( +ÎÎ ! +args +ÎÎ! % +) +ÎÎ% & +; +ÎÎ& ' +var +ĪĪ  + rootFrame +ĪĪ  += +ĪĪ  +new +ĪĪ  +Frame +ĪĪ % +( +ĪĪ% & +) +ĪĪ& ' +; +ĪĪ' ( +DatabaseService +ĐĐ  +. +ĐĐ  +Instance +ĐĐ $ +. +ĐĐ$ % + DatabaseFile +ĐĐ% 1 += +ĐĐ2 3 +args +ĐĐ4 8 +. +ĐĐ8 9 +Files +ĐĐ9 > +[ +ĐĐ> ? +$num +ĐĐ? @ +] +ĐĐ@ A +as +ĐĐB D + StorageFile +ĐĐE P +; +ĐĐP Q + rootFrame +ŅŅ  +. +ŅŅ  +Navigate +ŅŅ  +( +ŅŅ  +typeof +ŅŅ % +( +ŅŅ% & +MainPage +ŅŅ& . +) +ŅŅ. / +, +ŅŅ/ 0 +args +ŅŅ1 5 +) +ŅŅ5 6 +; +ŅŅ6 7 +Window +ŌŌ  +. +ŌŌ  +Current +ŌŌ  +. +ŌŌ  +Content +ŌŌ " += +ŌŌ# $ + rootFrame +ŌŌ% . +; +ŌŌ. / +Window +ĶĶ  +. +ĶĶ  +Current +ĶĶ  +. +ĶĶ  +Activate +ĶĶ # +( +ĶĶ# $ +) +ĶĶ$ % +; +ĶĶ% & +} +ÔÔ  +} +××  +}ØØ ÎX +OC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\IntToSymbolConverter.cs + namespace  + ModernKeePass +  +.  + +Converters " +{  +public + +class  +IntToSymbolConverter % +:& ' +IValueConverter( 7 +{    +public + +  +object + +  +Convert + +  +( + +  +object + + $ +value + +% * +, + +* + +Type + +, 0 + +targetType + +1 ; +, + +; < +object + += C + parameter + +D M +, + +M N +string + +O U +language + +V ^ +) + +^ _ +{    +var    +icon    +=    +(    +PwIcon    +)    +value   % +;  % & +switch    +(    +icon    +)    +{  +case  +PwIcon  +.  +Key  +:  +return! ' +Symbol( . +.. / + Permissions/ : +;: ; +case  +PwIcon  +.  + WorldSocket ' +:' ( +case  +PwIcon  +.  +World ! +:! " +return# ) +Symbol* 0 +.0 1 +World1 6 +;6 7 +case  +PwIcon  +.  +Warning # +:# $ +return% + +Symbol, 2 +.2 3 + Important3 < +;< = +case  +PwIcon  +.  + WorldComputer ) +:) * +case  +PwIcon  +.  +Drive ! +:! " +case  +PwIcon  +.  + DriveWindows ( +:( ) +case  +PwIcon  +.  + NetworkServer ) +:) * +return+ 1 +Symbol2 8 +.8 9 +MapDrive9 A +;A B +case  +PwIcon  +.  +MarkedDirectory + +:+ , +return- 3 +Symbol4 : +.: ; +Map; > +;> ? +case  +PwIcon  +.  +UserCommunication - +:- . +return/ 5 +Symbol6 < +.< = + ContactInfo= H +;H I +case  +PwIcon  +.  +Parts ! +:! " +return# ) +Symbol* 0 +.0 1 +ViewAll1 8 +;8 9 +case  +PwIcon  +.  +Notepad # +:# $ +return% + +Symbol, 2 +.2 3 +Document3 ; +;; < +case  +PwIcon  +.  +Identity $ +:$ % +return& , +Symbol- 3 +.3 4 +Contact24 < +;< = +case  +PwIcon  +.  + +PaperReady & +:& ' +return( . +Symbol/ 5 +.5 6 + +SyncFolder6 @ +;@ A +case  +PwIcon  +.  +Digicam # +:# $ +return% + +Symbol, 2 +.2 3 +Camera3 9 +;9 : +case  +PwIcon  +.  +IRCommunication + +:+ , +return- 3 +Symbol4 : +.: ; +View; ? +;? @ +case  +PwIcon  +.  +Energy " +:" # +return$ * +Symbol+ 1 +.1 2 +ZeroBars2 : +;: ; +case    +PwIcon    +.    +Scanner   # +:  # $ +return  % + +Symbol  , 2 +.  2 3 +Scan  3 7 +;  7 8 +case!!  +PwIcon!!  +.!!  +CDRom!! ! +:!!! " +return!!# ) +Symbol!!* 0 +.!!0 1 +Rotate!!1 7 +;!!7 8 +case""  +PwIcon""  +.""  +Monitor"" # +:""# $ +return""% + +Symbol"", 2 +.""2 3 +Caption""3 : +;"": ; +case##  +PwIcon##  +.##  +EMailBox## $ +:##$ % +case$$  +PwIcon$$  +.$$  +EMail$$ ! +:$$! " +return$$# ) +Symbol$$* 0 +.$$0 1 +Mail$$1 5 +;$$5 6 +case%%  +PwIcon%%  +.%%  + Configuration%% ) +:%%) * +return%%+ 1 +Symbol%%2 8 +.%%8 9 +Setting%%9 @ +;%%@ A +case&&  +PwIcon&&  +.&&  +ClipboardReady&& * +:&&* + +return&&, 2 +Symbol&&3 9 +.&&9 : +Paste&&: ? +;&&? @ +case''  +PwIcon''  +.''  +PaperNew'' $ +:''$ % +return''& , +Symbol''- 3 +.''3 4 +Page2''4 9 +;''9 : +case((  +PwIcon((  +.((  +Screen(( " +:((" # +return(($ * +Symbol((+ 1 +.((1 2 + GoToStart((2 ; +;((; < +case))  +PwIcon))  +.))  + EnergyCareful)) ) +:))) * +return))+ 1 +Symbol))2 8 +.))8 9 +FourBars))9 A +;))A B +case**  +PwIcon**  +.**  +Disk**  +:** ! +return**" ( +Symbol**) / +.**/ 0 +Save**0 4 +;**4 5 +case--  +PwIcon--  +.--  +Console-- # +:--# $ +return--% + +Symbol--, 2 +.--2 3 + SlideShow--3 < +;--< = +case..  +PwIcon..  +...  +Printer.. # +:..# $ +return..% + +Symbol.., 2 +...2 3 +Scan..3 7 +;..7 8 +case//  +PwIcon//  +.//  + ProgramIcons// ( +://( ) +return//* 0 +Symbol//1 7 +.//7 8 + GoToStart//8 A +;//A B +case11  +PwIcon11  +.11  +Settings11 $ +:11$ % +case22  +PwIcon22  +.22  +Tool22  +:22 ! +return22" ( +Symbol22) / +.22/ 0 +Repair220 6 +;226 7 +case33  +PwIcon33  +.33  +Archive33 # +:33# $ +return33% + +Symbol33, 2 +.332 3 +Crop333 7 +;337 8 +case44  +PwIcon44  +.44  +Count44 ! +:44! " +return44# ) +Symbol44* 0 +.440 1 + +Calculator441 ; +;44; < +case55  +PwIcon55  +.55  +Clock55 ! +:55! " +return55# ) +Symbol55* 0 +.550 1 +Clock551 6 +;556 7 +case66  +PwIcon66  +.66  + EMailSearch66 ' +:66' ( +return66) / +Symbol660 6 +.666 7 +Find667 ; +;66; < +case77  +PwIcon77  +.77  + PaperFlag77 % +:77% & +return77' - +Symbol77. 4 +.774 5 +Flag775 9 +;779 : +case99  +PwIcon99  +.99  +TrashBin99 $ +:99$ % +return99& , +Symbol99- 3 +.993 4 +Delete994 : +;99: ; +case::  +PwIcon::  +.::  +Expired:: # +:::# $ +return::% + +Symbol::, 2 +.::2 3 +Cancel::3 9 +;::9 : +case;;  +PwIcon;;  +.;;  +Info;;  +:;; ! +return;;" ( +Symbol;;) / +.;;/ 0 +Help;;0 4 +;;;4 5 +case==  +PwIcon==  +.==  +Folder== " +:==" # +case>>  +PwIcon>>  +.>>  + +FolderOpen>> & +:>>& ' +case??  +PwIcon??  +.??  + FolderPackage?? ) +:??) * +return??+ 1 +Symbol??2 8 +.??8 9 +Folder??9 ? +;??? @ +caseAA  +PwIconAA  +.AA  + PaperLockedAA ' +:AA' ( +returnAA) / +SymbolAA0 6 +.AA6 7 +ProtectedDocumentAA7 H +;AAH I +caseBB  +PwIconBB  +.BB  +CheckedBB # +:BB# $ +returnBB% + +SymbolBB, 2 +.BB2 3 +AcceptBB3 9 +;BB9 : +caseCC  +PwIconCC  +.CC  +PenCC  +:CC  +returnCC! ' +SymbolCC( . +.CC. / +EditCC/ 3 +;CC3 4 +caseDD  +PwIconDD  +.DD  + ThumbnailDD % +:DD% & +returnDD' - +SymbolDD. 4 +.DD4 5 + BrowsePhotosDD5 A +;DDA B +caseEE  +PwIconEE  +.EE  +BookEE  +:EE ! +returnEE" ( +SymbolEE) / +.EE/ 0 +LibraryEE0 7 +;EE7 8 +caseFF  +PwIconFF  +.FF  +ListFF  +:FF ! +returnFF" ( +SymbolFF) / +.FF/ 0 +ListFF0 4 +;FF4 5 +caseGG  +PwIconGG  +.GG  +UserKeyGG # +:GG# $ +returnGG% + +SymbolGG, 2 +.GG2 3 +ContactPresenceGG3 B +;GGB C +caseHH  +PwIconHH  +.HH  +HomeHH  +:HH ! +returnHH" ( +SymbolHH) / +.HH/ 0 +HomeHH0 4 +;HH4 5 +caseII  +PwIconII  +.II  +StarII  +:II ! +returnII" ( +SymbolII) / +.II/ 0 + OutlineStarII0 ; +;II; < +caseNN  +PwIconNN  +.NN  +MoneyNN ! +:NN! " +returnNN# ) +SymbolNN* 0 +.NN0 1 +ShopNN1 5 +;NN5 6 +caseOO  +PwIconOO  +.OO  + CertificateOO ' +:OO' ( +returnOO) / +SymbolOO0 6 +.OO6 7 + PreviewLinkOO7 B +;OOB C +casePP  +PwIconPP  +.PP  + +BlackBerryPP & +:PP& ' +returnPP( . +SymbolPP/ 5 +.PP5 6 + CellPhonePP6 ? +;PP? @ +defaultQQ  +:QQ  +returnQQ  +SymbolQQ & +.QQ& ' +StopQQ' + +;QQ+ , +}RR  +}SS  +publicUU  +objectUU  + ConvertBackUU ! +(UU! " +objectUU" ( +valueUU) . +,UU. / +TypeUU0 4 + +targetTypeUU5 ? +,UU? @ +objectUUA G + parameterUUH Q +,UUQ R +stringUUS Y +languageUUZ b +)UUb c +{VV  +varWW  +symbolWW  +=WW  +(WW  +SymbolWW  +)WW ! +valueWW" ' +;WW' ( +switchXX  +(XX  +symbolXX  +)XX  +{YY  +casehh  +Symbolhh  +.hh  +Deletehh " +:hh" # +returnii  +PwIconii ! +.ii! " +TrashBinii" * +;ii* + +default +ÜÜ  +: +ÜÜ  +return +ŨŨ  +PwIcon +ŨŨ ! +. +ŨŨ! " +Folder +ŨŨ" ( +; +ŨŨ( ) +} +ŪŪ  +} +ßß  +} +āā  +}áá Õ +RC:\Sources\Other\ModernKeePass\ModernKeePass\Exceptions\DatabaseOpenedException.cs + namespace  + ModernKeePass +  +.  + +Exceptions " +{  +public + +class # +DatabaseOpenedException ( +:( ) + Exception* 3 +{  +}  +}    +JC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ILicenseService.cs + namespace  + ModernKeePass +  +.  + +Interfaces " +{  +public + + interface  +ILicenseService $ +{  +IReadOnlyDictionary    +<    +string   " +,  " # +ProductListing  $ 2 +>  2 3 +Products  4 < +{  = > +get  ? B +;  B C +}  D E +Task + +  +< + +  +int + +  +> + +  +Purchase + +  +( + +  +string + + ! +addOn + +" ' +) + +' ( +; + +( ) +}    +}  à +RC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IProxyInvocationHandler.cs + namespace  + ModernKeePass +  +.  + +Interfaces " +{  +public + + interface # +IProxyInvocationHandler , +{  +object  +Invoke  +(  +object  +proxy " +," # + +MethodInfo$ . +method/ 5 +,5 6 +object7 = +[= > +]> ? + +parameters@ J +)J K +;K L +}  +}  Ŋ +IC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IRecentService.cs + namespace  + ModernKeePass +  +.  + +Interfaces " +{  +public + + interface  +IRecentService # +{  +int    + +EntryCount    +{    +get    +;    +}    +Task + +  +< + +  + IStorageItem + +  +> + +  + GetFileAsync + + ' +( + +' ( +string + +( . +token + +/ 4 +) + +4 5 +; + +5 6 +ObservableCollection    +<    + IRecentItem   ( +>  ( ) + GetAllFiles  * 5 +(  5 6 +bool  6 : +removeIfNonExistant  ; N +=  O P +true  Q U +)  U V +;  V W +void    +Add    +(    + IStorageItem    +file   " +,  " # +string  $ * +metadata  + 3 +)  3 4 +;  4 5 +void    +ClearAll    +(    +)    +;    +}  +} Õ +FC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IRecentItem.cs + namespace  + ModernKeePass +  +.  + +Interfaces " +{  +public + + interface  + IRecentItem  +{  + StorageFile  + DatabaseFile  +{! " +get# & +;& ' +}( ) +string  +Token  +{  +get  +;  +}  +string    +Name    +{    +get    +;    +}    +} + +  +}  Š +KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IResourceService.cs + namespace  + ModernKeePass +  +.  + +Interfaces " +{  +public + + interface  +IResourceService % +{  +string  +GetResourceValue  +(  +string & +key' * +)* + +;+ , +}  +} € +MC:\Sources\Other\ModernKeePass\ModernKeePass\Services\SingletonServiceBase.cs + namespace  + ModernKeePass +  +.  +Services  +{  +public + +abstract  +class  +SingletonServiceBase . +<. / +T/ 0 +>0 1 +where2 7 +T8 9 +:: ; +new< ? +(? @ +)@ A +{  +private  +static  +readonly  +Lazy $ +<$ % +T% & +>& ' + LazyInstance( 4 +=5 6 +new  +Lazy  +<  +T  +>  +(  +(  +)  +=>  +new ! +T" # +(# $ +)$ % +)% & +;& ' +public + +  +static + +  +T + +  +Instance + +  +=> + +! # + LazyInstance + +$ 0 +. + +0 1 +Value + +1 6 +; + +6 7 +}    +}  Ū + +`C:\Sources\Other\ModernKeePass\ModernKeePass\TemplateSelectors\SelectableDataTemplateSelector.cs + namespace  + ModernKeePass +  +.  +TemplateSelectors ) +{  +public + +class * +SelectableDataTemplateSelector / +:/ 0 +DataTemplateSelector1 E +{  +public    + DataTemplate    +TrueItem   $ +{  % & +get  ' * +;  * + +set  , / +;  / 0 +}  1 2 +public + +  + DataTemplate + +  + FalseItem + + % +{ + +& ' +get + +( + +; + ++ , +set + +- 0 +; + +0 1 +} + +2 3 + protected    +override    + DataTemplate   ' +SelectTemplateCore  ( : +(  : ; +object  ; A +item  B F +,  F G +DependencyObject  H X + container  Y b +)  b c +{    +var  +isSelectableItem  +=! " +item# ' +as( * +ISelectableModel+ ; +;; < +return  +isSelectableItem # +!=$ & +null' + +&&, . +isSelectableItem/ ? +.? @ + +IsSelected@ J +?K L +TrueItemM U +:V W + FalseItemX a +;a b +}  +}  +} ø + +OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsSaveVm.cs + namespace  + ModernKeePass +  +.  + +ViewModels " +{  +public + +class  +SettingsSaveVm  +{  +private  +readonly  +ISettingsService ) + _settings* 3 +;3 4 +public + +  +SettingsSaveVm + +  +( + +  +) + +  +: + + ! +this + +" & +( + +& ' +SettingsService + +' 6 +. + +6 7 +Instance + +7 ? +) + +? @ +{    +}   +  +public    +SettingsSaveVm    +(    +ISettingsService   . +settings  / 7 +)  7 8 +{  + _settings  +=  +settings  +; ! +}  +public  +bool  + IsSaveSuspend ! +{  +get  +{  +return  + _settings " +." # + +GetSetting# - +(- . +$str. ; +,; < +true= A +)A B +;B C +}D E +set  +{  + _settings  +.  + +PutSetting & +(& ' +$str' 4 +,4 5 +value6 ; +); < +;< = +}> ? +}  +}  +} ū +TC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\DonatePage.xaml.cs + namespace  + ModernKeePass +  +.  +Views  +{  +public + +sealed  +partial  +class  + +DonatePage * +{    +public + +  + +DonatePage + +  +( + +  +) + +  +{    +InitializeComponent    +(    +)   ! +;  ! " +}    +}  +} ģŦ +HC:\Sources\Other\ModernKeePass\ModernKeePass\Services\DatabaseService.cs + namespace  + ModernKeePass +  +.  +Services  +{  +public + +class  +DatabaseService  +: ! +SingletonServiceBase" 6 +<6 7 +DatabaseService7 F +>F G +,G H +IDatabaseServiceI Y +{  +private  +readonly  + +PwDatabase # + _pwDatabase$ / +=0 1 +new2 5 + +PwDatabase6 @ +(@ A +)A B +;B C +private  +readonly  +ISettingsService ) + _settings* 3 +;3 4 +private  + StorageFile  +_realDatabaseFile - +;- . +private  + StorageFile  + _databaseFile ) +;) * +private  +GroupVm  + _recycleBin # +;# $ +private  + CompositeKey  + _compositeKey * +;* + +public  +GroupVm  + RootGroup  +{! " +get# & +;& ' +set( + +;+ , +}- . +public  +GroupVm  + +RecycleBin ! +{  +get  +{  +return  + _recycleBin $ +;$ % +}& ' +set    +{!!  + _recycleBin""  +=""  +value"" # +;""# $ + _pwDatabase##  +.##  +RecycleBinUuid## * +=##+ , + _recycleBin##- 8 +?##8 9 +.##9 : +IdUuid##: @ +;##@ A +}$$  +}%%  +public''  +string''  +Name''  +=>''  + DatabaseFile'' * +?''* + +.''+ , +Name'', 0 +;''0 1 +public))  +bool))  +RecycleBinEnabled)) % +{**  +get++  +{++  +return++  + _pwDatabase++ $ +.++$ % +RecycleBinEnabled++% 6 +;++6 7 +}++8 9 +set,,  +{,,  + _pwDatabase,,  +.,,  +RecycleBinEnabled,, / +=,,0 1 +value,,2 7 +;,,7 8 +},,9 : +}--  +public//  + StorageFile//  + DatabaseFile// ' +{00  +get11  +{11  +return11  + _databaseFile11 & +;11& ' +}11( ) +set22  +{33  +if44  +(44  +IsOpen44  +&&44  + +HasChanged44 ( +)44( ) +{55  +throw66  +new66 # +DatabaseOpenedException66 5 +(665 6 +)666 7 +;667 8 +}77  + _databaseFile88  +=88  +value88 % +;88% & +}99  +}::  +public<<  + CompositeKey<<  + CompositeKey<< ( +{==  +get>>  +{>>  +return>>  + _compositeKey>> & +;>>& ' +}>>( ) +set??  +{??  + _compositeKey??  +=?? ! +value??" ' +;??' ( +}??) * +}@@  +publicBB  +PwUuidBB  + +DataCipherBB  +{CC  +getDD  +{DD  +returnDD  + _pwDatabaseDD $ +.DD$ % +DataCipherUuidDD% 3 +;DD3 4 +}DD5 6 +setEE  +{EE  + _pwDatabaseEE  +.EE  +DataCipherUuidEE , +=EE- . +valueEE/ 4 +;EE4 5 +}EE6 7 +}FF  +publicHH " +PwCompressionAlgorithmHH % +CompressionAlgorithmHH& : +{II  +getJJ  +{JJ  +returnJJ  + _pwDatabaseJJ $ +.JJ$ % + CompressionJJ% 0 +;JJ0 1 +}JJ2 3 +setKK  +{KK  + _pwDatabaseKK  +.KK  + CompressionKK ) +=KK* + +valueKK, 1 +;KK1 2 +}KK3 4 +}LL  +publicNN  + KdfParametersNN  + KeyDerivationNN * +{OO  +getPP  +{PP  +returnPP  + _pwDatabasePP $ +.PP$ % + KdfParametersPP% 2 +;PP2 3 +}PP4 5 +setQQ  +{QQ  + _pwDatabaseQQ  +.QQ  + KdfParametersQQ + +=QQ, - +valueQQ. 3 +;QQ3 4 +}QQ5 6 +}RR  +publicTT  +boolTT  +IsOpenTT  +=>TT  + _pwDatabaseTT ) +.TT) * +IsOpenTT* 0 +;TT0 1 +publicUU  +boolUU  + +IsFileOpenUU  +=>UU ! +!UU" # + _pwDatabaseUU# . +.UU. / +IsOpenUU/ 5 +&&UU6 8 + _databaseFileUU9 F +!=UUG I +nullUUJ N +;UUN O +publicVV  +boolVV  +IsClosedVV  +=>VV  + _databaseFileVV - +==VV. 0 +nullVV1 5 +;VV5 6 +publicWW  +boolWW  + +HasChangedWW  +{WW  +getWW! $ +;WW$ % +setWW& ) +;WW) * +}WW+ , +publicYY  +DatabaseServiceYY  +(YY  +)YY  +:YY! " +thisYY# ' +(YY' ( +SettingsServiceYY( 7 +.YY7 8 +InstanceYY8 @ +)YY@ A +{ZZ  +}[[  +public]]  +DatabaseService]]  +(]]  +ISettingsService]] / +settings]]0 8 +)]]8 9 +{^^  + _settings__  +=__  +settings__  +;__ ! +}``  +publicii  +asyncii  +Taskii  +Openii  +(ii  + CompositeKeyii + +keyii, / +,ii/ 0 +boolii1 5 + createNewii6 ? +=ii@ A +falseiiB G +)iiG H +{jj  +tryll  +{mm  +ifnn  +(nn  +keynn  +==nn  +nullnn  +)nn  +{oo  +throwpp  +newpp ! +ArgumentNullExceptionpp 3 +(pp3 4 +nameofpp4 : +(pp: ; +keypp; > +)pp> ? +)pp? @ +;pp@ A +}qq  + _compositeKeyss  +=ss  +keyss # +;ss# $ +vartt  + ioConnectiontt  +=tt! " +IOConnectionInfott# 3 +.tt3 4 +FromFilett4 < +(tt< = + DatabaseFilett= I +)ttI J +;ttJ K +ifuu  +(uu  + createNewuu  +)uu  +{vv  + _pwDatabaseww  +.ww  +Newww # +(ww# $ + ioConnectionww$ 0 +,ww0 1 +keyww2 5 +)ww5 6 +;ww6 7 +ifzz  +(zz  + _settingszz ! +.zz! " + +GetSettingzz" , +<zz, - +boolzz- 1 +>zz1 2 +(zz2 3 +$strzz3 ; +)zz; < +)zz< = +CreateSampleDatazz> N +(zzN O +)zzO P +;zzP Q +var{{  + +fileFormat{{ " +={{# $ + _settings{{% . +.{{. / + +GetSetting{{/ 9 +<{{9 : +string{{: @ +>{{@ A +({{A B +$str{{B U +){{U V +;{{V W +switch||  +(||  + +fileFormat|| & +)||& ' +{}}  +case~~  +$str~~  +:~~ ! + KeyDerivation ) +=* + +KdfPool, 3 +.3 4 +Get4 7 +(7 8 +$str8 @ +)@ A +.A B +GetDefaultParametersB V +(V W +)W X +;X Y +break +€€ ! +; +€€! " +} +  +} +‚‚  +else +ƒƒ  + _pwDatabase +ƒƒ  +. +ƒƒ ! +Open +ƒƒ! % +( +ƒƒ% & + ioConnection +ƒƒ& 2 +, +ƒƒ2 3 +key +ƒƒ4 7 +, +ƒƒ7 8 +new +ƒƒ9 < +NullStatusLogger +ƒƒ= M +( +ƒƒM N +) +ƒƒN O +) +ƒƒO P +; +ƒƒP Q +if +ˆˆ  +( +ˆˆ  + _settings +ˆˆ  +. +ˆˆ  + +GetSetting +ˆˆ ( +< +ˆˆ( ) +bool +ˆˆ) - +> +ˆˆ- . +( +ˆˆ. / +$str +ˆˆ/ ? +) +ˆˆ? @ +) +ˆˆ@ A +{ +‰‰  +_realDatabaseFile +ŠŠ % += +ŠŠ& ' + _databaseFile +ŠŠ( 5 +; +ŠŠ5 6 +var +‹‹  + +backupFile +‹‹ " += +‹‹# $ +await +ŒŒ  +ApplicationData +ŒŒ - +. +ŒŒ- . +Current +ŒŒ. 5 +. +ŒŒ5 6 + RoamingFolder +ŒŒ6 C +. +ŒŒC D +CreateFileAsync +ŒŒD S +( +ŒŒS T +Name +ŒŒT X +, +ŒŒX Y% +CreationCollisionOption + 3 +. +3 4 + FailIfExists +4 @ +) +@ A +; +A B +Save +ŽŽ  +( +ŽŽ  + +backupFile +ŽŽ # +) +ŽŽ# $ +; +ŽŽ$ % +} +  + RootGroup +‘‘  += +‘‘  +new +‘‘  +GroupVm +‘‘ ' +( +‘‘' ( + _pwDatabase +‘‘( 3 +. +‘‘3 4 + RootGroup +‘‘4 = +, +‘‘= > +null +‘‘? C +, +‘‘C D +RecycleBinEnabled +‘‘E V +? +‘‘W X + _pwDatabase +‘‘Y d +. +‘‘d e +RecycleBinUuid +‘‘e s +: +‘‘t u +null +‘‘v z +) +‘‘z { +; +‘‘{ | +} +’’  +catch +““  +( +““ * +InvalidCompositeKeyException +““ / +ex +““0 2 +) +““2 3 +{ +””  + HockeyClient +••  +. +••  +Current +•• $ +. +••$ % +TrackException +••% 3 +( +••3 4 +ex +••4 6 +) +••6 7 +; +••7 8 +throw +––  +new +––  +ArgumentException +–– + +( +––+ , +ex +––, . +. +––. / +Message +––/ 6 +, +––6 7 +ex +––8 : +) +––: ; +; +––; < +} +——  +} +˜˜  +public +šš  +async +šš  +Task +šš  +ReOpen +šš  +( +šš ! +) +šš! " +{ +››  +await +œœ  +Open +œœ  +( +œœ  + _compositeKey +œœ $ +) +œœ$ % +; +œœ% & +} +  +public +ĸĸ  +void +ĸĸ  +Save +ĸĸ  +( +ĸĸ  +) +ĸĸ  +{ +ŖŖ  +if +¤¤  +( +¤¤  +! +¤¤  +IsOpen +¤¤  +) +¤¤  +return +¤¤  +; +¤¤  +try +ĨĨ  +{ +ĻĻ  + _pwDatabase +§§  +. +§§  +Save +§§  +( +§§ ! +new +§§! $ +NullStatusLogger +§§% 5 +( +§§5 6 +) +§§6 7 +) +§§7 8 +; +§§8 9 +if +ĒĒ  +( +ĒĒ  + _settings +ĒĒ  +. +ĒĒ  + +GetSetting +ĒĒ ( +< +ĒĒ( ) +bool +ĒĒ) - +> +ĒĒ- . +( +ĒĒ. / +$str +ĒĒ/ ? +) +ĒĒ? @ +) +ĒĒ@ A +{ +ĢĢ  + _pwDatabase +ŦŦ  +. +ŦŦ  +Open +ŦŦ $ +( +ŦŦ$ % + _pwDatabase +ŦŦ% 0 +. +ŦŦ0 1 +IOConnectionInfo +ŦŦ1 A +, +ŦŦA B + _pwDatabase +ŦŦC N +. +ŦŦN O + MasterKey +ŦŦO X +, +ŦŦX Y +new +ŦŦZ ] +NullStatusLogger +ŦŦ^ n +( +ŦŦn o +) +ŦŦo p +) +ŦŦp q +; +ŦŦq r +} +­­  +} +ŽŽ  +catch +¯¯  +( +¯¯  + Exception +¯¯  +e +¯¯  +) +¯¯  +{ +°°  +throw +ąą  +new +ąą  + SaveException +ąą ' +( +ąą' ( +e +ąą( ) +) +ąą) * +; +ąą* + +} +˛˛  +} +ŗŗ  +public +šš  +void +šš  +Save +šš  +( +šš  + StorageFile +šš $ +file +šš% ) +) +šš) * +{ +ēē  +var +ģģ  +oldFile +ģģ  += +ģģ  + DatabaseFile +ģģ & +; +ģģ& ' + DatabaseFile +ŧŧ  += +ŧŧ  +file +ŧŧ  +; +ŧŧ  +try +ŊŊ  +{ +žž  + _pwDatabase +ŋŋ  +. +ŋŋ  +SaveAs +ŋŋ " +( +ŋŋ" # +IOConnectionInfo +ŋŋ# 3 +. +ŋŋ3 4 +FromFile +ŋŋ4 < +( +ŋŋ< = + DatabaseFile +ŋŋ= I +) +ŋŋI J +, +ŋŋJ K +true +ŋŋL P +, +ŋŋP Q +new +ŋŋR U +NullStatusLogger +ŋŋV f +( +ŋŋf g +) +ŋŋg h +) +ŋŋh i +; +ŋŋi j +} +ĀĀ  +catch +ÁÁ  +{ +  + DatabaseFile +Ãà  += +Ãà  +oldFile +Ãà & +; +ÃÃ& ' +throw +ÄÄ  +; +ÄÄ  +} +ÅÅ  +} +ÆÆ  +public +ËË  +async +ËË  +Task +ËË  +Close +ËË  +( +ËË  +bool +ËË $ + releaseFile +ËË% 0 += +ËË1 2 +true +ËË3 7 +) +ËË7 8 +{ +ĖĖ  + _pwDatabase +ÍÍ  +? +ÍÍ  +. +ÍÍ  +Close +ÍÍ  +( +ÍÍ  +) +ÍÍ  +; +ÍÍ ! +if +ĐĐ  +( +ĐĐ  + _settings +ĐĐ  +. +ĐĐ  + +GetSetting +ĐĐ $ +< +ĐĐ$ % +bool +ĐĐ% ) +> +ĐĐ) * +( +ĐĐ* + +$str +ĐĐ+ ; +) +ĐĐ; < +) +ĐĐ< = +{ +ŅŅ  +if +ŌŌ  +( +ŌŌ  + _pwDatabase +ŌŌ  +!= +ŌŌ " +null +ŌŌ# ' +&& +ŌŌ( * + _pwDatabase +ŌŌ+ 6 +. +ŌŌ6 7 +Modified +ŌŌ7 ? +) +ŌŌ? @ +Save +ĶĶ  +( +ĶĶ  +_realDatabaseFile +ĶĶ * +) +ĶĶ* + +; +ĶĶ+ , +await +ÔÔ  + DatabaseFile +ÔÔ " +. +ÔÔ" # + DeleteAsync +ÔÔ# . +( +ÔÔ. / +) +ÔÔ/ 0 +; +ÔÔ0 1 +} +ÕÕ  +if +ÖÖ  +( +ÖÖ  + releaseFile +ÖÖ  +) +ÖÖ  + DatabaseFile +ÖÖ ) += +ÖÖ* + +null +ÖÖ, 0 +; +ÖÖ0 1 +} +××  +public +ŲŲ  +void +ŲŲ  +AddDeletedItem +ŲŲ " +( +ŲŲ" # +PwUuid +ŲŲ# ) +id +ŲŲ* , +) +ŲŲ, - +{ +ÚÚ  + _pwDatabase +ÛÛ  +. +ÛÛ  +DeletedObjects +ÛÛ & +. +ÛÛ& ' +Add +ÛÛ' * +( +ÛÛ* + +new +ÛÛ+ . +PwDeletedObject +ÛÛ/ > +( +ÛÛ> ? +id +ÛÛ? A +, +ÛÛA B +DateTime +ÛÛC K +. +ÛÛK L +UtcNow +ÛÛL R +) +ÛÛR S +) +ÛÛS T +; +ÛÛT U +} +ÜÜ  +public +ŪŪ  +void +ŪŪ  +CreateRecycleBin +ŪŪ $ +( +ŪŪ$ % +string +ŪŪ% + +title +ŪŪ, 1 +) +ŪŪ1 2 +{ +ßß  + +RecycleBin +āā  += +āā  + RootGroup +āā " +. +āā" # + AddNewGroup +āā# . +( +āā. / +title +āā/ 4 +) +āā4 5 +; +āā5 6 + +RecycleBin +áá  +. +áá  + +IsSelected +áá ! += +áá" # +true +áá$ ( +; +áá( ) + +RecycleBin +ââ  +. +ââ  +IconId +ââ  += +ââ  +( +ââ ! +int +ââ! $ +) +ââ$ % +PwIcon +ââ% + +. +ââ+ , +TrashBin +ââ, 4 +; +ââ4 5 +} +ãã  +private +åå  +void +åå  +CreateSampleData +åå % +( +åå% & +) +åå& ' +{ +ææ  + _pwDatabase +įį  +. +įį  + RootGroup +įį ! +. +įį! " +AddGroup +įį" * +( +įį* + +new +įį+ . +PwGroup +įį/ 6 +( +įį6 7 +true +įį7 ; +, +įį; < +true +įį= A +, +įįA B +$str +įįC L +, +įįL M +PwIcon +įįN T +. +įįT U +Count +įįU Z +) +įįZ [ +, +įį[ \ +true +įį] a +) +įįa b +; +įįb c + _pwDatabase +čč  +. +čč  + RootGroup +čč ! +. +čč! " +AddGroup +čč" * +( +čč* + +new +čč+ . +PwGroup +čč/ 6 +( +čč6 7 +true +čč7 ; +, +čč; < +true +čč= A +, +ččA B +$str +ččC J +, +ččJ K +PwIcon +ččL R +. +ččR S +EMail +ččS X +) +ččX Y +, +ččY Z +true +čč[ _ +) +čč_ ` +; +čč` a + _pwDatabase +éé  +. +éé  + RootGroup +éé ! +. +éé! " +AddGroup +éé" * +( +éé* + +new +éé+ . +PwGroup +éé/ 6 +( +éé6 7 +true +éé7 ; +, +éé; < +true +éé= A +, +ééA B +$str +ééC M +, +ééM N +PwIcon +ééO U +. +ééU V +World +ééV [ +) +éé[ \ +, +éé\ ] +true +éé^ b +) +ééb c +; +ééc d +var +ëë  +pe +ëë  += +ëë  +new +ëë  +PwEntry +ëë  +( +ëë ! +true +ëë! % +, +ëë% & +true +ëë' + +) +ëë+ , +; +ëë, - +pe +ėė  +. +ėė  +Strings +ėė  +. +ėė  +Set +ėė  +( +ėė  +PwDefs +ėė ! +. +ėė! " + +TitleField +ėė" , +, +ėė, - +new +ėė. 1 +ProtectedString +ėė2 A +( +ėėA B + _pwDatabase +ėėB M +. +ėėM N +MemoryProtection +ėėN ^ +. +ėė^ _ + ProtectTitle +ėė_ k +, +ėėk l +$str +íí  +) +íí  +) +íí  +; +íí ! +pe +îî  +. +îî  +Strings +îî  +. +îî  +Set +îî  +( +îî  +PwDefs +îî ! +. +îî! " + UserNameField +îî" / +, +îî/ 0 +new +îî1 4 +ProtectedString +îî5 D +( +îîD E + _pwDatabase +îîE P +. +îîP Q +MemoryProtection +îîQ a +. +îîa b +ProtectUserName +îîb q +, +îîq r +$str +īī  +) +īī  +) +īī  +; +īī  +pe +đđ  +. +đđ  +Strings +đđ  +. +đđ  +Set +đđ  +( +đđ  +PwDefs +đđ ! +. +đđ! " +UrlField +đđ" * +, +đđ* + +new +đđ, / +ProtectedString +đđ0 ? +( +đđ? @ + _pwDatabase +đđ@ K +. +đđK L +MemoryProtection +đđL \ +. +đđ\ ] + +ProtectUrl +đđ] g +, +đđg h +PwDefs +ņņ  +. +ņņ  + HomepageUrl +ņņ " +) +ņņ" # +) +ņņ# $ +; +ņņ$ % +pe +ōō  +. +ōō  +Strings +ōō  +. +ōō  +Set +ōō  +( +ōō  +PwDefs +ōō ! +. +ōō! " + PasswordField +ōō" / +, +ōō/ 0 +new +ōō1 4 +ProtectedString +ōō5 D +( +ōōD E + _pwDatabase +ōōE P +. +ōōP Q +MemoryProtection +ōōQ a +. +ōōa b +ProtectPassword +ōōb q +, +ōōq r +$str +ķķ  +) +ķķ  +) +ķķ  +; +ķķ  +pe +ôô  +. +ôô  +Strings +ôô  +. +ôô  +Set +ôô  +( +ôô  +PwDefs +ôô ! +. +ôô! " + +NotesField +ôô" , +, +ôô, - +new +ôô. 1 +ProtectedString +ôô2 A +( +ôôA B + _pwDatabase +ôôB M +. +ôôM N +MemoryProtection +ôôN ^ +. +ôô^ _ + ProtectNotes +ôô_ k +, +ôôk l +$str +õõ 3 +) +õõ3 4 +) +õõ4 5 +; +õõ5 6 + _pwDatabase +öö  +. +öö  + RootGroup +öö ! +. +öö! " +AddEntry +öö" * +( +öö* + +pe +öö+ - +, +öö- . +true +öö/ 3 +) +öö3 4 +; +öö4 5 +pe +øø  += +øø  +new +øø  +PwEntry +øø  +( +øø  +true +øø ! +, +øø! " +true +øø# ' +) +øø' ( +; +øø( ) +pe +ųų  +. +ųų  +Strings +ųų  +. +ųų  +Set +ųų  +( +ųų  +PwDefs +ųų ! +. +ųų! " + +TitleField +ųų" , +, +ųų, - +new +ųų. 1 +ProtectedString +ųų2 A +( +ųųA B + _pwDatabase +ųųB M +. +ųųM N +MemoryProtection +ųųN ^ +. +ųų^ _ + ProtectTitle +ųų_ k +, +ųųk l +$str +úú ! +) +úú! " +) +úú" # +; +úú# $ +pe +ûû  +. +ûû  +Strings +ûû  +. +ûû  +Set +ûû  +( +ûû  +PwDefs +ûû ! +. +ûû! " + UserNameField +ûû" / +, +ûû/ 0 +new +ûû1 4 +ProtectedString +ûû5 D +( +ûûD E + _pwDatabase +ûûE P +. +ûûP Q +MemoryProtection +ûûQ a +. +ûûa b +ProtectUserName +ûûb q +, +ûûq r +$str +üü  +) +üü  +) +üü  +; +üü  +pe +ũũ  +. +ũũ  +Strings +ũũ  +. +ũũ  +Set +ũũ  +( +ũũ  +PwDefs +ũũ ! +. +ũũ! " +UrlField +ũũ" * +, +ũũ* + +new +ũũ, / +ProtectedString +ũũ0 ? +( +ũũ? @ + _pwDatabase +ũũ@ K +. +ũũK L +MemoryProtection +ũũL \ +. +ũũ\ ] + +ProtectUrl +ũũ] g +, +ũũg h +PwDefs +ūū  +. +ūū  +HelpUrl +ūū  ++ +ūū  +$str +ūū! 3 +) +ūū3 4 +) +ūū4 5 +; +ūū5 6 +pe +˙˙  +. +˙˙  +Strings +˙˙  +. +˙˙  +Set +˙˙  +( +˙˙  +PwDefs +˙˙ ! +. +˙˙! " + PasswordField +˙˙" / +, +˙˙/ 0 +new +˙˙1 4 +ProtectedString +˙˙5 D +( +˙˙D E + _pwDatabase +˙˙E P +. +˙˙P Q +MemoryProtection +˙˙Q a +. +˙˙a b +ProtectPassword +˙˙b q +, +˙˙q r +$str +€€  +) +€€  +) +€€  +; +€€  +pe +  +. +  +AutoType +  +. +  +Add +  +( +  +new + ! +AutoTypeAssociation + 3 +( +3 4 +$str +4 K +, +K L +string +M S +. +S T +Empty +T Y +) +Y Z +) +Z [ +; +[ \ + _pwDatabase +‚‚  +. +‚‚  + RootGroup +‚‚ ! +. +‚‚! " +AddEntry +‚‚" * +( +‚‚* + +pe +‚‚+ - +, +‚‚- . +true +‚‚/ 3 +) +‚‚3 4 +; +‚‚4 5 +} +ƒƒ  +} +„„  +}…… ¸ +KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ISettingsService.cs + namespace  + ModernKeePass +  +.  + +Interfaces " +{  +public + + interface  +ISettingsService % +{  +T  + +GetSetting +  +<  +T  +>  +(  +string  +property ' +,' ( +T) * + defaultValue+ 7 +=8 9 +default: A +(A B +TB C +)C D +)D E +;E F +void  + +PutSetting  +<  +T  +>  +(  +string ! +property" * +,* + +T, - +value. 3 +)3 4 +;4 5 +}  +} ˇ8 +JC:\Sources\Other\ModernKeePass\ModernKeePass\Common\MessageDialogHelper.cs + namespace  + ModernKeePass +  +.  +Common  +{   +public + + + +static + +  +class + +  +MessageDialogHelper + + + +{    +public    +static    +async    +void    +ShowActionDialog  ! 1 +(  1 2 +string  2 8 +title  9 > +,  > ? +string  @ F + contentText  G R +,  R S +string  T Z +actionButtonText  [ k +,  k l +string  m s +cancelButtonText   t „ +, +  „ …% +UICommandInvokedHandler +  †  + actionCommand +  ž Ģ +, +  Ģ Ŧ% +UICommandInvokedHandler +  ­ Ä + cancelCommand +  Å Ō +) +  Ō Ķ +{  +var  + messageDialog  +=  +CreateBasicDialog 1 +(1 2 +title2 7 +,7 8 + contentText9 D +,D E +cancelButtonTextF V +,V W + cancelCommandX e +)e f +;f g + messageDialog  +.  +Commands " +." # +Add# & +(& ' +new' * + UICommand+ 4 +(4 5 +actionButtonText5 E +,E F + actionCommandG T +)T U +)U V +;V W +await  + messageDialog  +.  + ShowAsync ) +() * +)* + +;+ , +}  +public  +static  +void  +SaveErrorDialog * +(* + + SaveException+ 8 + exception9 B +,B C +IDatabaseServiceD T +databaseU ] +)] ^ +{  +ShowActionDialog  +(  +$str ) +,) * + exception+ 4 +.4 5 +InnerException5 C +.C D +MessageD K +,K L +$strM V +,V W +$strX a +,a b +asyncc h +commandi p +=>q s +{  +var  + +savePicker  +=  +new! $ +FileSavePicker% 3 +{ " +SuggestedStartLocation * +=+ , +PickerLocationId- = +.= > +DocumentsLibrary> N +,N O +SuggestedFileName   % +=  & ' +$"  ( * +{  * + +database  + 3 +.  3 4 + DatabaseFile  4 @ +.  @ A + DisplayName  A L +}  L M + - copy  M T +"  T U +}!!  +;!!  + +savePicker""  +.""  +FileTypeChoices"" * +.""* + +Add""+ . +("". / +$str""/ E +,""E F +new""G J +List""K O +<""O P +string""P V +>""V W +{""X Y +$str""Z a +}""b c +)""c d +;""d e +var$$  +file$$  +=$$  +await$$  + +savePicker$$! + +.$$+ , +PickSaveFileAsync$$, = +($$= > +)$$> ? +;$$? @ +if%%  +(%%  +file%%  +!=%%  +null%%  +)%% ! +database%%" * +.%%* + +Save%%+ / +(%%/ 0 +file%%0 4 +)%%4 5 +;%%5 6 +}&&  +,&&  +null&&  +)&&  +;&&  +}''  +public))  +static))  +void))  +SaveUnchangedDialog)) . +()). /# +DatabaseOpenedException))/ F + exception))G P +,))P Q +IDatabaseService))R b +database))c k +)))k l +{**  +ShowActionDialog++  +(++  +$str++ . +,++. / +$"++0 2 + Database ++2 ; +{++; < +database++< D +.++D E +Name++E I +}++I J9 +- is currently opened. What to you wish to do?++J w +"++w x +,++x y +$str ++z ˆ +, +++ˆ ‰ +$str +++Š “ +, +++“ ” +command +++• œ +=> +++ Ÿ +{,,  +database--  +.--  +Save--  +(--  +)--  +;--  +database..  +...  +Close..  +(..  +)..  +;.. ! +}//  +,//  +command00  +=>00  +{11  +database22  +.22  +Close22  +(22  +)22  +;22 ! +}33  +)33  +;33  +}44  +public66  +static66  +async66  +void66  +ShowErrorDialog66! 0 +(660 1 + Exception661 : + exception66; D +)66D E +{77  +if88  +(88  + exception88  +==88  +null88 ! +)88! " +return88# ) +;88) * +var::  + messageDialog::  +=::  +CreateBasicDialog:: 1 +(::1 2 + exception::2 ; +.::; < +Message::< C +,::C D + exception::E N +.::N O + +StackTrace::O Y +,::Y Z +$str::[ _ +)::_ ` +;::` a +await==  + messageDialog==  +.==  + ShowAsync== ) +(==) * +)==* + +;==+ , +}>>  +public@@  +static@@  +async@@  +void@@ " +ShowNotificationDialog@@! 7 +(@@7 8 +string@@8 > +title@@? D +,@@D E +string@@F L +message@@M T +)@@T U +{AA  +varBB  +dialogBB  +=BB  +CreateBasicDialogBB * +(BB* + +titleBB+ 0 +,BB0 1 +messageBB2 9 +,BB9 : +$strBB; ? +)BB? @ +;BB@ A +awaitEE  +dialogEE  +.EE  + ShowAsyncEE " +(EE" # +)EE# $ +;EE$ % +}FF  +privateHH  +staticHH  + MessageDialogHH $ +CreateBasicDialogHH% 6 +(HH6 7 +stringHH7 = +titleHH> C +,HHC D +stringHHE K +messageHHL S +,HHS T +stringHHU [ +dismissActionTextHH\ m +,HHm n$ +UICommandInvokedHandler HHo † + cancelCommand +HH‡ ” += +HH• – +null +HH— › +) +HH› œ +{II  +varKK  + messageDialogKK  +=KK  +newKK # + MessageDialogKK$ 1 +(KK1 2 +messageKK2 9 +,KK9 : +titleKK; @ +)KK@ A +;KKA B + messageDialogNN  +.NN  +CommandsNN " +.NN" # +AddNN# & +(NN& ' +newNN' * + UICommandNN+ 4 +(NN4 5 +dismissActionTextNN5 F +,NNF G + cancelCommandNNH U +)NNU V +)NNV W +;NNW X + messageDialogQQ  +.QQ  +DefaultCommandIndexQQ - +=QQ. / +$numQQ0 1 +;QQ1 2 + messageDialogTT  +.TT  +CancelCommandIndexTT , +=TT- . +$numTT/ 0 +;TT0 1 +returnVV  + messageDialogVV  +;VV ! +}WW  +}XX  +}YY ާ +GC:\Sources\Other\ModernKeePass\ModernKeePass\Common\NavigationHelper.cs + namespace   + ModernKeePass   +  +.    +Common    +{  +[;;  +Windows;;  +.;;  + +Foundation;;  +.;;  +Metadata;;  +.;; ! + WebHostHidden;;! . +];;. / +public<< + +class<<  +NavigationHelper<< ! +:<<" # +DependencyObject<<$ 4 +{==  +private>>  +Page>>  +Page>>  +{>>  +get>>  +;>>  +set>>! $ +;>>$ % +}>>& ' +private??  +Frame??  +Frame??  +{??  +get?? ! +{??" # +return??$ * +this??+ / +.??/ 0 +Page??0 4 +.??4 5 +Frame??5 : +;??: ; +}??< = +}??> ? +publicGG  +NavigationHelperGG  +(GG  +PageGG $ +pageGG% ) +)GG) * +{HH  +thisII  +.II  +PageII  +=II  +pageII  +;II  +thisNN  +.NN  +PageNN  +.NN  +LoadedNN  ++=NN  +(NN ! +senderNN! ' +,NN' ( +eNN) * +)NN* + +=>NN, . +{OO  +ifTT  +(TT  +thisTT  +.TT  +PageTT  +.TT  + ActualHeightTT * +==TT+ - +WindowTT. 4 +.TT4 5 +CurrentTT5 < +.TT< = +BoundsTT= C +.TTC D +HeightTTD J +&&TTK M +thisUU  +.UU  +PageUU  +.UU  + ActualWidthUU ) +==UU* , +WindowUU- 3 +.UU3 4 +CurrentUU4 ; +.UU; < +BoundsUU< B +.UUB C +WidthUUC H +)UUH I +{VV  +WindowXX  +.XX  +CurrentXX " +.XX" # + +CoreWindowXX# - +.XX- . + +DispatcherXX. 8 +.XX8 9# +AcceleratorKeyActivatedXX9 P ++=XXQ S2 +&CoreDispatcher_AcceleratorKeyActivatedYY > +;YY> ? +WindowZZ  +.ZZ  +CurrentZZ " +.ZZ" # + +CoreWindowZZ# - +.ZZ- . +PointerPressedZZ. < ++=ZZ= ? +this[[  +.[[ % +CoreWindow_PointerPressed[[ 6 +;[[6 7 +}\\  +}^^  +;^^  +thisaa  +.aa  +Pageaa  +.aa  +Unloadedaa  ++=aa ! +(aa" # +senderaa# ) +,aa) * +eaa+ , +)aa, - +=>aa. 0 +{bb  +Windowff  +.ff  +Currentff  +.ff  + +CoreWindowff ) +.ff) * + +Dispatcherff* 4 +.ff4 5# +AcceleratorKeyActivatedff5 L +-=ffM O2 +&CoreDispatcher_AcceleratorKeyActivatedgg : +;gg: ; +Windowhh  +.hh  +Currenthh  +.hh  + +CoreWindowhh ) +.hh) * +PointerPressedhh* 8 +-=hh9 ; +thisii  +.ii % +CoreWindow_PointerPressedii 2 +;ii2 3 +}kk  +;kk  +}ll  + RelayCommandpp  +_goBackCommandpp # +;pp# $ + RelayCommandqq  +_goForwardCommandqq & +;qq& ' +public{{  + RelayCommand{{  + GoBackCommand{{ ) +{||  +get}}  +{~~  +if  +(  +_goBackCommand " +==# % +null& * +)* + +{ +€€  +_goBackCommand + " += +# $ +new +% ( + RelayCommand +) 5 +( +5 6 +( +‚‚  +) +‚‚  +=> +‚‚  +this +‚‚ " +. +‚‚" # +GoBack +‚‚# ) +( +‚‚) * +) +‚‚* + +, +‚‚+ , +( +ƒƒ  +) +ƒƒ  +=> +ƒƒ  +this +ƒƒ " +. +ƒƒ" # + CanGoBack +ƒƒ# , +( +ƒƒ, - +) +ƒƒ- . +) +ƒƒ. / +; +ƒƒ/ 0 +} +„„  +return +……  +_goBackCommand +…… % +; +……% & +} +††  +set +‡‡  +{ +ˆˆ  +_goBackCommand +‰‰  += +‰‰  +value +‰‰! & +; +‰‰& ' +} +ŠŠ  +} +‹‹  +public +““  + RelayCommand +““  +GoForwardCommand +““ , +{ +””  +get +••  +{ +––  +if +——  +( +——  +_goForwardCommand +—— % +== +——& ( +null +——) - +) +——- . +{ +˜˜  +_goForwardCommand +™™ % += +™™& ' +new +™™( + + RelayCommand +™™, 8 +( +™™8 9 +( +šš  +) +šš  +=> +šš  +this +šš " +. +šš" # + GoForward +šš# , +( +šš, - +) +šš- . +, +šš. / +( +››  +) +››  +=> +››  +this +›› " +. +››" # + CanGoForward +››# / +( +››/ 0 +) +››0 1 +) +››1 2 +; +››2 3 +} +œœ  +return +  +_goForwardCommand + ( +; +( ) +} +žž  +} +ŸŸ  +public +ŠŠ  +virtual +ŠŠ  +bool +ŠŠ  + CanGoBack +ŠŠ % +( +ŠŠ% & +) +ŠŠ& ' +{ +ĒĒ  +return +ĢĢ  +this +ĢĢ  +. +ĢĢ  +Frame +ĢĢ  +!= +ĢĢ  +null +ĢĢ! % +&& +ĢĢ& ( +this +ĢĢ) - +. +ĢĢ- . +Frame +ĢĢ. 3 +. +ĢĢ3 4 + CanGoBack +ĢĢ4 = +; +ĢĢ= > +} +ŦŦ  +public +ĩĩ  +virtual +ĩĩ  +bool +ĩĩ  + CanGoForward +ĩĩ ( +( +ĩĩ( ) +) +ĩĩ) * +{ +ļļ  +return +ˇˇ  +this +ˇˇ  +. +ˇˇ  +Frame +ˇˇ  +!= +ˇˇ  +null +ˇˇ! % +&& +ˇˇ& ( +this +ˇˇ) - +. +ˇˇ- . +Frame +ˇˇ. 3 +. +ˇˇ3 4 + CanGoForward +ˇˇ4 @ +; +ˇˇ@ A +} +¸¸  +public +žž  +virtual +žž  +void +žž  +GoBack +žž " +( +žž" # +) +žž# $ +{ +ŋŋ  +if +ĀĀ  +( +ĀĀ  +this +ĀĀ  +. +ĀĀ  +Frame +ĀĀ  +!= +ĀĀ  +null +ĀĀ " +&& +ĀĀ# % +this +ĀĀ& * +. +ĀĀ* + +Frame +ĀĀ+ 0 +. +ĀĀ0 1 + CanGoBack +ĀĀ1 : +) +ĀĀ: ; +this +ĀĀ< @ +. +ĀĀ@ A +Frame +ĀĀA F +. +ĀĀF G +GoBack +ĀĀG M +( +ĀĀM N +) +ĀĀN O +; +ĀĀO P +} +ÁÁ  +public +ÆÆ  +virtual +ÆÆ  +void +ÆÆ  + GoForward +ÆÆ % +( +ÆÆ% & +) +ÆÆ& ' +{ +ĮĮ  +if +ČČ  +( +ČČ  +this +ČČ  +. +ČČ  +Frame +ČČ  +!= +ČČ  +null +ČČ " +&& +ČČ# % +this +ČČ& * +. +ČČ* + +Frame +ČČ+ 0 +. +ČČ0 1 + CanGoForward +ČČ1 = +) +ČČ= > +this +ČČ? C +. +ČČC D +Frame +ČČD I +. +ČČI J + GoForward +ČČJ S +( +ČČS T +) +ČČT U +; +ČČU V +} +ÉÉ  +private +áá  +void +áá 4 +&CoreDispatcher_AcceleratorKeyActivated +áá ; +( +áá; < +CoreDispatcher +áá< J +sender +ááK Q +, +ááQ R% +AcceleratorKeyEventArgs +ââ # +e +ââ$ % +) +ââ% & +{ +ãã  +var +ää  + +virtualKey +ää  += +ää  +e +ää  +. +ää  + +VirtualKey +ää ) +; +ää) * +if +čč  +( +čč  +( +čč  +e +čč  +. +čč  + EventType +čč  +== +čč ) +CoreAcceleratorKeyEventType +čč ; +. +čč; < + SystemKeyDown +čč< I +|| +ččJ L +e +éé  +. +éé  + EventType +éé  +== +éé ) +CoreAcceleratorKeyEventType +éé : +. +éé: ; +KeyDown +éé; B +) +ééB C +&& +ééD F +( +ęę  + +virtualKey +ęę  +== +ęę  + +VirtualKey +ęę ) +. +ęę) * +Left +ęę* . +|| +ęę/ 1 + +virtualKey +ęę2 < +== +ęę= ? + +VirtualKey +ęę@ J +. +ęęJ K +Right +ęęK P +|| +ęęQ S +( +ëë  +int +ëë  +) +ëë  + +virtualKey +ëë  +== +ëë " +$num +ëë# & +|| +ëë' ) +( +ëë* + +int +ëë+ . +) +ëë. / + +virtualKey +ëë/ 9 +== +ëë: < +$num +ëë= @ +) +ëë@ A +) +ëëA B +{ +ėė  +var +íí  + +coreWindow +íí  += +íí  +Window +íí! ' +. +íí' ( +Current +íí( / +. +íí/ 0 + +CoreWindow +íí0 : +; +íí: ; +var +îî  + downState +îî  += +îî " +CoreVirtualKeyStates +îî 4 +. +îî4 5 +Down +îî5 9 +; +îî9 : +bool +īī  +menuKey +īī  += +īī  +( +īī  + +coreWindow +īī * +. +īī* + + GetKeyState +īī+ 6 +( +īī6 7 + +VirtualKey +īī7 A +. +īīA B +Menu +īīB F +) +īīF G +& +īīH I + downState +īīJ S +) +īīS T +== +īīU W + downState +īīX a +; +īīa b +bool +đđ  + +controlKey +đđ  += +đđ ! +( +đđ" # + +coreWindow +đđ# - +. +đđ- . + GetKeyState +đđ. 9 +( +đđ9 : + +VirtualKey +đđ: D +. +đđD E +Control +đđE L +) +đđL M +& +đđN O + downState +đđP Y +) +đđY Z +== +đđ[ ] + downState +đđ^ g +; +đđg h +bool +ņņ  +shiftKey +ņņ  += +ņņ  +( +ņņ ! + +coreWindow +ņņ! + +. +ņņ+ , + GetKeyState +ņņ, 7 +( +ņņ7 8 + +VirtualKey +ņņ8 B +. +ņņB C +Shift +ņņC H +) +ņņH I +& +ņņJ K + downState +ņņL U +) +ņņU V +== +ņņW Y + downState +ņņZ c +; +ņņc d +bool +ōō  + noModifiers +ōō  += +ōō! " +! +ōō# $ +menuKey +ōō$ + +&& +ōō, . +! +ōō/ 0 + +controlKey +ōō0 : +&& +ōō; = +! +ōō> ? +shiftKey +ōō? G +; +ōōG H +bool +ķķ  +onlyAlt +ķķ  += +ķķ  +menuKey +ķķ & +&& +ķķ' ) +! +ķķ* + + +controlKey +ķķ+ 5 +&& +ķķ6 8 +! +ķķ9 : +shiftKey +ķķ: B +; +ķķB C +if +õõ  +( +õõ  +( +õõ  +( +õõ  +int +õõ  +) +õõ  + +virtualKey +õõ $ +== +õõ% ' +$num +õõ( + +&& +õõ, . + noModifiers +õõ/ : +) +õõ: ; +|| +õõ< > +( +öö  + +virtualKey +öö  +== +öö " + +VirtualKey +öö# - +. +öö- . +Left +öö. 2 +&& +öö3 5 +onlyAlt +öö6 = +) +öö= > +) +öö> ? +{ +÷÷  +e +ųų  +. +ųų  +Handled +ųų  += +ųų  +true +ųų $ +; +ųų$ % +this +úú  +. +úú  + GoBackCommand +úú & +. +úú& ' +Execute +úú' . +( +úú. / +null +úú/ 3 +) +úú3 4 +; +úú4 5 +} +ûû  +else +üü  +if +üü  +( +üü  +( +üü  +( +üü  +int +üü  +) +üü  + +virtualKey +üü ) +== +üü* , +$num +üü- 0 +&& +üü1 3 + noModifiers +üü4 ? +) +üü? @ +|| +üüA C +( +ũũ  + +virtualKey +ũũ  +== +ũũ " + +VirtualKey +ũũ# - +. +ũũ- . +Right +ũũ. 3 +&& +ũũ4 6 +onlyAlt +ũũ7 > +) +ũũ> ? +) +ũũ? @ +{ +ūū  +e +€€  +. +€€  +Handled +€€  += +€€  +true +€€ $ +; +€€$ % +this +  +. +  +GoForwardCommand + ) +. +) * +Execute +* 1 +( +1 2 +null +2 6 +) +6 7 +; +7 8 +} +‚‚  +} +ƒƒ  +} +„„  +private +  +void + ' +CoreWindow_PointerPressed + . +( +. / + +CoreWindow +/ 9 +sender +: @ +, +@ A +PointerEventArgs +ŽŽ  +e +ŽŽ  +) +ŽŽ  +{ +  +var +  + +properties +  += +  +e +  +. +  + CurrentPoint + + +. ++ , + +Properties +, 6 +; +6 7 +if +““  +( +““  + +properties +““  +. +““ ! +IsLeftButtonPressed +““ . +|| +““/ 1 + +properties +““2 < +. +““< =" +IsRightButtonPressed +““= Q +|| +““R T + +properties +””  +. +”” # +IsMiddleButtonPressed +”” 0 +) +””0 1 +return +””2 8 +; +””8 9 +bool +——  + backPressed +——  += +——  + +properties +—— ) +. +——) * +IsXButton1Pressed +——* ; +; +——; < +bool +˜˜  +forwardPressed +˜˜  += +˜˜ ! + +properties +˜˜" , +. +˜˜, - +IsXButton2Pressed +˜˜- > +; +˜˜> ? +if +™™  +( +™™  + backPressed +™™  +^ +™™  +forwardPressed +™™ , +) +™™, - +{ +šš  +e +››  +. +››  +Handled +››  += +››  +true +››  +; +›› ! +if +œœ  +( +œœ  + backPressed +œœ  +) +œœ  +this +œœ! % +. +œœ% & + GoBackCommand +œœ& 3 +. +œœ3 4 +Execute +œœ4 ; +( +œœ; < +null +œœ< @ +) +œœ@ A +; +œœA B +if +  +( +  +forwardPressed + " +) +" # +this +$ ( +. +( ) +GoForwardCommand +) 9 +. +9 : +Execute +: A +( +A B +null +B F +) +F G +; +G H +} +žž  +} +ŸŸ  +private +ĻĻ  +String +ĻĻ  +_pageKey +ĻĻ  +; +ĻĻ  +public +­­  +event +­­ # +LoadStateEventHandler +­­ * + LoadState +­­+ 4 +; +­­4 5 +public +´´  +event +´´ # +SaveStateEventHandler +´´ * + SaveState +´´+ 4 +; +´´4 5 +public +ŊŊ  +void +ŊŊ  + OnNavigatedTo +ŊŊ ! +( +ŊŊ! "! +NavigationEventArgs +ŊŊ" 5 +e +ŊŊ6 7 +) +ŊŊ7 8 +{ +žž  +var +ŋŋ  + +frameState +ŋŋ  += +ŋŋ  +SuspensionManager +ŋŋ . +. +ŋŋ. /" +SessionStateForFrame +ŋŋ/ C +( +ŋŋC D +this +ŋŋD H +. +ŋŋH I +Frame +ŋŋI N +) +ŋŋN O +; +ŋŋO P +this +ĀĀ  +. +ĀĀ  +_pageKey +ĀĀ  += +ĀĀ  +$str +ĀĀ # ++ +ĀĀ$ % +this +ĀĀ& * +. +ĀĀ* + +Frame +ĀĀ+ 0 +. +ĀĀ0 1 +BackStackDepth +ĀĀ1 ? +; +ĀĀ? @ +if +  +( +  +e +  +. +  +NavigationMode +  +== +ÂÂ! # +NavigationMode +ÂÂ$ 2 +. +ÂÂ2 3 +New +ÂÂ3 6 +) +ÂÂ6 7 +{ +Ãà  +var +ÆÆ  + nextPageKey +ÆÆ  += +ÆÆ ! +this +ÆÆ" & +. +ÆÆ& ' +_pageKey +ÆÆ' / +; +ÆÆ/ 0 +int +ĮĮ  + nextPageIndex +ĮĮ ! += +ĮĮ" # +this +ĮĮ$ ( +. +ĮĮ( ) +Frame +ĮĮ) . +. +ĮĮ. / +BackStackDepth +ĮĮ/ = +; +ĮĮ= > +while +ČČ  +( +ČČ  + +frameState +ČČ ! +. +ČČ! " +Remove +ČČ" ( +( +ČČ( ) + nextPageKey +ČČ) 4 +) +ČČ4 5 +) +ČČ5 6 +{ +ÉÉ  + nextPageIndex +ĘĘ ! +++ +ĘĘ! # +; +ĘĘ# $ + nextPageKey +ËË  += +ËË ! +$str +ËË" ) ++ +ËË* + + nextPageIndex +ËË, 9 +; +ËË9 : +} +ĖĖ  +if +ĪĪ  +( +ĪĪ  +this +ĪĪ  +. +ĪĪ  + LoadState +ĪĪ " +!= +ĪĪ# % +null +ĪĪ& * +) +ĪĪ* + +{ +ĐĐ  +this +ŅŅ  +. +ŅŅ  + LoadState +ŅŅ " +( +ŅŅ" # +this +ŅŅ# ' +, +ŅŅ' ( +new +ŅŅ) , +LoadStateEventArgs +ŅŅ- ? +( +ŅŅ? @ +e +ŅŅ@ A +. +ŅŅA B + Parameter +ŅŅB K +, +ŅŅK L +null +ŅŅM Q +) +ŅŅQ R +) +ŅŅR S +; +ŅŅS T +} +ŌŌ  +} +ĶĶ  +else +ÔÔ  +{ +ÕÕ  +if +ŲŲ  +( +ŲŲ  +this +ŲŲ  +. +ŲŲ  + LoadState +ŲŲ " +!= +ŲŲ# % +null +ŲŲ& * +) +ŲŲ* + +{ +ÚÚ  +this +ÛÛ  +. +ÛÛ  + LoadState +ÛÛ " +( +ÛÛ" # +this +ÛÛ# ' +, +ÛÛ' ( +new +ÛÛ) , +LoadStateEventArgs +ÛÛ- ? +( +ÛÛ? @ +e +ÛÛ@ A +. +ÛÛA B + Parameter +ÛÛB K +, +ÛÛK L +( +ÛÛM N + +Dictionary +ÛÛN X +< +ÛÛX Y +String +ÛÛY _ +, +ÛÛ_ ` +Object +ÛÛa g +> +ÛÛg h +) +ÛÛh i + +frameState +ÛÛi s +[ +ÛÛs t +this +ÛÛt x +. +ÛÛx y +_pageKey ÛÛy  +] Ûہ ‚ +) ÛÛ‚ ƒ +) ÛÛƒ „ +; ÛÛ„ … +} +ÜÜ  +} +ŨŨ  +} +ŪŪ  +public +įį  +void +įį  +OnNavigatedFrom +įį # +( +įį# $! +NavigationEventArgs +įį$ 7 +e +įį8 9 +) +įį9 : +{ +čč  +var +éé  + +frameState +éé  += +éé  +SuspensionManager +éé . +. +éé. /" +SessionStateForFrame +éé/ C +( +ééC D +this +ééD H +. +ééH I +Frame +ééI N +) +ééN O +; +ééO P +var +ęę  + pageState +ęę  += +ęę  +new +ęę  + +Dictionary +ęę * +< +ęę* + +String +ęę+ 1 +, +ęę1 2 +Object +ęę3 9 +> +ęę9 : +( +ęę: ; +) +ęę; < +; +ęę< = +if +ëë  +( +ëë  +this +ëë  +. +ëë  + SaveState +ëë  +!= +ëë ! +null +ëë" & +) +ëë& ' +{ +ėė  +this +íí  +. +íí  + SaveState +íí  +( +íí  +this +íí # +, +íí# $ +new +íí% ( +SaveStateEventArgs +íí) ; +( +íí; < + pageState +íí< E +) +ííE F +) +ííF G +; +ííG H +} +îî  + +frameState +īī  +[ +īī  +_pageKey +īī  +] +īī  += +īī! " + pageState +īī# , +; +īī, - +} +đđ  +} +ķķ  +public +øø + +delegate +øø  +void +øø # +LoadStateEventHandler +øø . +( +øø. / +object +øø/ 5 +sender +øø6 < +, +øø< = +LoadStateEventArgs +øø> P +e +øøQ R +) +øøR S +; +øøS T +public +üü + +delegate +üü  +void +üü # +SaveStateEventHandler +üü . +( +üü. / +object +üü/ 5 +sender +üü6 < +, +üü< = +SaveStateEventArgs +üü> P +e +üüQ R +) +üüR S +; +üüS T +public + + +class +  +LoadStateEventArgs + # +: +$ % + EventArgs +& / +{ +‚‚  +public +‡‡  +Object +‡‡ ! +NavigationParameter +‡‡ ) +{ +‡‡* + +get +‡‡, / +; +‡‡/ 0 +private +‡‡1 8 +set +‡‡9 < +; +‡‡< = +} +‡‡> ? +public +ŒŒ  + +Dictionary +ŒŒ  +< +ŒŒ  +string +ŒŒ  +, +ŒŒ ! +Object +ŒŒ" ( +> +ŒŒ( ) + PageState +ŒŒ* 3 +{ +ŒŒ4 5 +get +ŒŒ6 9 +; +ŒŒ9 : +private +ŒŒ; B +set +ŒŒC F +; +ŒŒF G +} +ŒŒH I +public +™™  +LoadStateEventArgs +™™ ! +( +™™! " +Object +™™" (! +navigationParameter +™™) < +, +™™< = + +Dictionary +™™> H +< +™™H I +string +™™I O +, +™™O P +Object +™™Q W +> +™™W X + pageState +™™Y b +) +™™b c +: +šš  +base +šš  +( +šš  +) +šš  +{ +››  +this +œœ  +. +œœ ! +NavigationParameter +œœ $ += +œœ% &! +navigationParameter +œœ' : +; +œœ: ; +this +  +. +  + PageState +  += +  + pageState + & +; +& ' +} +žž  +} +ŸŸ  +public +ŖŖ + +class +ŖŖ  +SaveStateEventArgs +ŖŖ # +: +ŖŖ$ % + EventArgs +ŖŖ& / +{ +¤¤  +public +¨¨  + +Dictionary +¨¨  +< +¨¨  +string +¨¨  +, +¨¨ ! +Object +¨¨" ( +> +¨¨( ) + PageState +¨¨* 3 +{ +¨¨4 5 +get +¨¨6 9 +; +¨¨9 : +private +¨¨; B +set +¨¨C F +; +¨¨F G +} +¨¨H I +public +ŽŽ  +SaveStateEventArgs +ŽŽ ! +( +ŽŽ! " + +Dictionary +ŽŽ" , +< +ŽŽ, - +string +ŽŽ- 3 +, +ŽŽ3 4 +Object +ŽŽ5 ; +> +ŽŽ; < + pageState +ŽŽ= F +) +ŽŽF G +: +¯¯  +base +¯¯  +( +¯¯  +) +¯¯  +{ +°°  +this +ąą  +. +ąą  + PageState +ąą  += +ąą  + pageState +ąą & +; +ąą& ' +} +˛˛  +} +ŗŗ  +}´´ ą +PC:\Sources\Other\ModernKeePass\ModernKeePass\Common\NotifyPropertyChangedBase.cs + namespace  + ModernKeePass +  +.  +Common  +{  +public + +class % +NotifyPropertyChangedBase * +:+ ," +INotifyPropertyChanged- C +{  +public    +event   ' +PropertyChangedEventHandler   0 +PropertyChanged  1 @ +;  @ A + protected    +void    +OnPropertyChanged   ( +(  ( ) +string  ) / + propertyName  0 < +=  = > +$str  ? A +)  A B +{    +PropertyChanged    +?    +.    +Invoke   # +(  # $ +this  $ ( +,  ( ) +new  * -$ +PropertyChangedEventArgs  . F +(  F G + propertyName  G S +)  S T +)  T U +;  U V +}  + protected  +bool  + SetProperty " +<" # +T# $ +>$ % +(% & +ref& ) +T* + +property, 4 +,4 5 +T6 7 +value8 = +,= > +[? @ +CallerMemberName@ P +]P Q +stringR X + propertyNameY e +=f g +$strh j +)j k +{  +if  +(  +EqualityComparer  +< ! +T! " +>" # +.# $ +Default$ + +.+ , +Equals, 2 +(2 3 +property3 ; +,; < +value= B +)B C +)C D +{  +return  +false  +;  +}  +property  +=  +value  +;  +OnPropertyChanged  +(  + propertyName * +)* + +;+ , +return  +true  +;  +}  +}  +} š` +KC:\Sources\Other\ModernKeePass\ModernKeePass\Common\ObservableDictionary.cs + namespace  + ModernKeePass +  +.  +Common  +{  +public   + +class    +ObservableDictionary   % +:  & ' +IObservableMap  ( 6 +<  6 7 +string  7 = +,  = > +object  ? E +>  E F +{    +private  +class 0 +$ObservableDictionaryChangedEventArgs : +:; < +IMapChangedEventArgs= Q +<Q R +stringR X +>X Y +{  +public 0 +$ObservableDictionaryChangedEventArgs 7 +(7 8 +CollectionChange8 H +changeI O +,O P +stringQ W +keyX [ +)[ \ +{  +this  +.  +CollectionChange % +=& ' +change( . +;. / +this  +.  +Key  +=  +key  +;  +}  +public  +CollectionChange # +CollectionChange$ 4 +{5 6 +get7 : +;: ; +private< C +setD G +;G H +}I J +public  +string  +Key  +{  +get # +;# $ +private% , +set- 0 +;0 1 +}2 3 +}  +private  + +Dictionary  +<  +string ! +,! " +object# ) +>) * + _dictionary+ 6 +=7 8 +new9 < + +Dictionary= G +<G H +stringH N +,N O +objectP V +>V W +(W X +)X Y +;Y Z +public  +event " +MapChangedEventHandler + +<+ , +string, 2 +,2 3 +object4 : +>: ; + +MapChanged< F +;F G +private  +void  +InvokeMapChanged % +(% & +CollectionChange& 6 +change7 = +,= > +string? E +keyF I +)I J +{  +var  + eventHandler  +=  + +MapChanged ) +;) * +if    +(    + eventHandler    +!=    +null   $ +)  $ % +{!!  + eventHandler""  +(""  +this"" ! +,""! " +new""# &0 +$ObservableDictionaryChangedEventArgs""' K +(""K L +change""L R +,""R S +key""T W +)""W X +)""X Y +;""Y Z +}##  +}$$  +public&&  +void&&  +Add&&  +(&&  +string&&  +key&& " +,&&" # +object&&$ * +value&&+ 0 +)&&0 1 +{''  +this((  +.((  + _dictionary((  +.((  +Add((  +((( ! +key((! $ +,(($ % +value((& + +)((+ , +;((, - +this))  +.))  +InvokeMapChanged)) ! +())! " +CollectionChange))" 2 +.))2 3 + ItemInserted))3 ? +,))? @ +key))A D +)))D E +;))E F +}**  +public,,  +void,,  +Add,,  +(,,  + KeyValuePair,, $ +<,,$ % +string,,% + +,,,+ , +object,,- 3 +>,,3 4 +item,,5 9 +),,9 : +{--  +this..  +...  +Add..  +(..  +item..  +...  +Key..  +,..  +item.. # +...# $ +Value..$ ) +)..) * +;..* + +}//  +public11  +void11  +AddRange11  +(11  + IEnumerable11 ( +<11( ) + KeyValuePair11) 5 +<115 6 +string116 < +,11< = +object11> D +>11D E +>11E F +values11G M +)11M N +{22  +foreach33  +(33  +var33  +value33  +in33 ! +values33" ( +)33( ) +{44  +Add55  +(55  +value55  +)55  +;55  +}66  +}77  +public99  +bool99  +Remove99  +(99  +string99 ! +key99" % +)99% & +{::  +if;;  +(;;  +this;;  +.;;  + _dictionary;;  +.;; ! +Remove;;! ' +(;;' ( +key;;( + +);;+ , +);;, - +{<<  +this==  +.==  +InvokeMapChanged== % +(==% & +CollectionChange==& 6 +.==6 7 + ItemRemoved==7 B +,==B C +key==D G +)==G H +;==H I +return>>  +true>>  +;>>  +}??  +return@@  +false@@  +;@@  +}AA  +publicCC  +boolCC  +RemoveCC  +(CC  + KeyValuePairCC ' +<CC' ( +stringCC( . +,CC. / +objectCC0 6 +>CC6 7 +itemCC8 < +)CC< = +{DD  +objectEE  + currentValueEE  +;EE  +ifFF  +(FF  +thisFF  +.FF  + _dictionaryFF  +.FF ! + TryGetValueFF! , +(FF, - +itemFF- 1 +.FF1 2 +KeyFF2 5 +,FF5 6 +outFF7 : + currentValueFF; G +)FFG H +&&FFI K +ObjectGG  +.GG  +EqualsGG  +(GG  +itemGG " +.GG" # +ValueGG# ( +,GG( ) + currentValueGG* 6 +)GG6 7 +&&GG8 : +thisGG; ? +.GG? @ + _dictionaryGG@ K +.GGK L +RemoveGGL R +(GGR S +itemGGS W +.GGW X +KeyGGX [ +)GG[ \ +)GG\ ] +{HH  +thisII  +.II  +InvokeMapChangedII % +(II% & +CollectionChangeII& 6 +.II6 7 + ItemRemovedII7 B +,IIB C +itemIID H +.IIH I +KeyIII L +)IIL M +;IIM N +returnJJ  +trueJJ  +;JJ  +}KK  +returnLL  +falseLL  +;LL  +}MM  +publicOO  +objectOO  +thisOO  +[OO  +stringOO ! +keyOO" % +]OO% & +{PP  +getQQ  +{RR  +returnSS  +thisSS  +.SS  + _dictionarySS ' +[SS' ( +keySS( + +]SS+ , +;SS, - +}TT  +setUU  +{VV  +thisWW  +.WW  + _dictionaryWW  +[WW ! +keyWW! $ +]WW$ % +=WW& ' +valueWW( - +;WW- . +thisXX  +.XX  +InvokeMapChangedXX % +(XX% & +CollectionChangeXX& 6 +.XX6 7 + ItemChangedXX7 B +,XXB C +keyXXD G +)XXG H +;XXH I +}YY  +}ZZ  +public\\  +void\\  +Clear\\  +(\\  +)\\  +{]]  +var^^  + priorKeys^^  +=^^  +this^^  +.^^ ! + _dictionary^^! , +.^^, - +Keys^^- 1 +.^^1 2 +ToArray^^2 9 +(^^9 : +)^^: ; +;^^; < +this__  +.__  + _dictionary__  +.__  +Clear__ " +(__" # +)__# $ +;__$ % +foreach``  +(``  +var``  +key``  +in``  + priorKeys`` ) +)``) * +{aa  +thisbb  +.bb  +InvokeMapChangedbb % +(bb% & +CollectionChangebb& 6 +.bb6 7 + ItemRemovedbb7 B +,bbB C +keybbD G +)bbG H +;bbH I +}cc  +}dd  +publicff  + ICollectionff  +<ff  +stringff ! +>ff! " +Keysff# ' +{gg  +gethh  +{hh  +returnhh  +thishh  +.hh  + _dictionaryhh ) +.hh) * +Keyshh* . +;hh. / +}hh0 1 +}ii  +publickk  +boolkk  + ContainsKeykk  +(kk  +stringkk & +keykk' * +)kk* + +{ll  +returnmm  +thismm  +.mm  + _dictionarymm # +.mm# $ + ContainsKeymm$ / +(mm/ 0 +keymm0 3 +)mm3 4 +;mm4 5 +}nn  +publicpp  +boolpp  + TryGetValuepp  +(pp  +stringpp & +keypp' * +,pp* + +outpp, / +objectpp0 6 +valuepp7 < +)pp< = +{qq  +returnrr  +thisrr  +.rr  + _dictionaryrr # +.rr# $ + TryGetValuerr$ / +(rr/ 0 +keyrr0 3 +,rr3 4 +outrr5 8 +valuerr9 > +)rr> ? +;rr? @ +}ss  +publicuu  + ICollectionuu  +<uu  +objectuu ! +>uu! " +Valuesuu# ) +{vv  +getww  +{ww  +returnww  +thisww  +.ww  + _dictionaryww ) +.ww) * +Valuesww* 0 +;ww0 1 +}ww2 3 +}xx  +publiczz  +boolzz  +Containszz  +(zz  + KeyValuePairzz ) +<zz) * +stringzz* 0 +,zz0 1 +objectzz2 8 +>zz8 9 +itemzz: > +)zz> ? +{{{  +return||  +this||  +.||  + _dictionary|| # +.||# $ +Contains||$ , +(||, - +item||- 1 +)||1 2 +;||2 3 +}}}  +public  +int  +Count  +{ +€€  +get +  +{ +  +return +  +this +  +. +  + _dictionary + ) +. +) * +Count +* / +; +/ 0 +} +1 2 +} +‚‚  +public +„„  +bool +„„  + +IsReadOnly +„„  +{ +……  +get +††  +{ +††  +return +††  +false +††  +; +††  +} +†† ! +} +‡‡  +public +‰‰  + IEnumerator +‰‰  +< +‰‰  + KeyValuePair +‰‰ ' +< +‰‰' ( +string +‰‰( . +, +‰‰. / +object +‰‰0 6 +> +‰‰6 7 +> +‰‰7 8 + GetEnumerator +‰‰9 F +( +‰‰F G +) +‰‰G H +{ +ŠŠ  +return +‹‹  +this +‹‹  +. +‹‹  + _dictionary +‹‹ # +. +‹‹# $ + GetEnumerator +‹‹$ 1 +( +‹‹1 2 +) +‹‹2 3 +; +‹‹3 4 +} +ŒŒ  +System +ŽŽ  +. +ŽŽ  + Collections +ŽŽ  +. +ŽŽ  + IEnumerator +ŽŽ & +System +ŽŽ' - +. +ŽŽ- . + Collections +ŽŽ. 9 +. +ŽŽ9 : + IEnumerable +ŽŽ: E +. +ŽŽE F + GetEnumerator +ŽŽF S +( +ŽŽS T +) +ŽŽT U +{ +  +return +  +this +  +. +  + _dictionary + # +. +# $ + GetEnumerator +$ 1 +( +1 2 +) +2 3 +; +3 4 +} +‘‘  +public +““  +void +““  +CopyTo +““  +( +““  + KeyValuePair +““ ' +< +““' ( +string +““( . +, +““. / +object +““0 6 +> +““6 7 +[ +““7 8 +] +““8 9 +array +““: ? +, +““? @ +int +““A D + +arrayIndex +““E O +) +““O P +{ +””  +int +••  + arraySize +••  += +••  +array +•• ! +. +••! " +Length +••" ( +; +••( ) +foreach +––  +( +––  +var +––  +pair +––  +in +––  +this +––! % +. +––% & + _dictionary +––& 1 +) +––1 2 +{ +——  +if +˜˜  +( +˜˜  + +arrayIndex +˜˜  +>= +˜˜ ! + arraySize +˜˜" + +) +˜˜+ , +break +˜˜- 2 +; +˜˜2 3 +array +™™  +[ +™™  + +arrayIndex +™™  +++ +™™ " +] +™™" # += +™™$ % +pair +™™& * +; +™™* + +} +šš  +} +››  +} +œœ  +} ü +CC:\Sources\Other\ModernKeePass\ModernKeePass\Common\RelayCommand.cs + namespace  + ModernKeePass +  +.  +Common  +{   +public + +class  + RelayCommand  +:  +ICommand ( +{  +private  +readonly  +Action  +_execute ( +;( ) +private  +readonly  +Func  +<  +bool " +>" # + _canExecute$ / +;/ 0 +public  +event  + EventHandler ! +CanExecuteChanged" 3 +;3 4 +public  + RelayCommand  +(  +Action " +execute# * +)* + +:    +this    +(    +execute    +,    +null    +)   ! +{!!  +}""  +public))  + RelayCommand))  +())  +Action)) " +execute))# * +,))* + +Func)), 0 +<))0 1 +bool))1 5 +>))5 6 + +canExecute))7 A +)))A B +{**  +if++  +(++  +execute++  +==++  +null++  +)++  +throw,,  +new,, ! +ArgumentNullException,, / +(,,/ 0 +$str,,0 9 +),,9 : +;,,: ; +_execute--  +=--  +execute--  +;--  + _canExecute..  +=..  + +canExecute.. $ +;..$ % +}//  +public88  +bool88  + +CanExecute88  +(88  +object88 % + parameter88& / +)88/ 0 +{99  +return::  + _canExecute::  +==:: ! +null::" & +?::' ( +true::) - +:::. / + _canExecute::0 ; +(::; < +)::< = +;::= > +};;  +publicCC  +voidCC  +ExecuteCC  +(CC  +objectCC " + parameterCC# , +)CC, - +{DD  +_executeEE  +(EE  +)EE  +;EE  +}FF  +publicMM  +voidMM " +RaiseCanExecuteChangedMM * +(MM* + +)MM+ , +{NN  +varOO  +handlerOO  +=OO  +CanExecuteChangedOO + +;OO+ , +ifPP  +(PP  +handlerPP  +!=PP  +nullPP  +)PP  +{QQ  +handlerRR  +(RR  +thisRR  +,RR  + EventArgsRR ' +.RR' ( +EmptyRR( - +)RR- . +;RR. / +}SS  +}TT  +}UU  +}VV ‹ +HC:\Sources\Other\ModernKeePass\ModernKeePass\Common\SuspensionManager.cs + namespace  + ModernKeePass +  +.  +Common  +{  +internal  +sealed  +class  +SuspensionManager + +{  +private  +static  + +Dictionary ! +<! " +string" ( +,( ) +object* 0 +>0 1 + _sessionState2 ? +=@ A +newB E + +DictionaryF P +<P Q +stringQ W +,W X +objectY _ +>_ ` +(` a +)a b +;b c +private  +static  +List  +<  +Type  +> ! + _knownTypes" - +=. / +new0 3 +List4 8 +<8 9 +Type9 = +>= > +(> ? +)? @ +;@ A +private  +const  +string  +sessionStateFilename 1 +=2 3 +$str4 G +;G H +public$$  +static$$  + +Dictionary$$  +<$$ ! +string$$! ' +,$$' ( +object$$) / +>$$/ 0 + SessionState$$1 = +{%%  +get&&  +{&&  +return&&  + _sessionState&& & +;&&& ' +}&&( ) +}''  +public..  +static..  +List..  +<..  +Type..  +>..  + +KnownTypes..! + +{//  +get00  +{00  +return00  + _knownTypes00 $ +;00$ % +}00& ' +}11  +public::  +static::  +async::  +Task::  + SaveAsync::! * +(::* + +)::+ , +{;;  +try<<  +{==  +foreach??  +(??  +var??  +weakFrameReference?? / +in??0 2 +_registeredFrames??3 D +)??D E +{@@  +FrameAA  +frameAA  +;AA  +ifBB  +(BB  +weakFrameReferenceBB * +.BB* + + TryGetTargetBB+ 7 +(BB7 8 +outBB8 ; +frameBB< A +)BBA B +)BBB C +{CC $ +SaveFrameNavigationStateDD 0 +(DD0 1 +frameDD1 6 +)DD6 7 +;DD7 8 +}EE  +}FF  + MemoryStreamJJ  + sessionDataJJ ( +=JJ) * +newJJ+ . + MemoryStreamJJ/ ; +(JJ; < +)JJ< = +;JJ= >" +DataContractSerializerKK & + +serializerKK' 1 +=KK2 3 +newKK4 7" +DataContractSerializerKK8 N +(KKN O +typeofKKO U +(KKU V + +DictionaryKKV ` +<KK` a +stringKKa g +,KKg h +objectKKi o +>KKo p +)KKp q +,KKq r + _knownTypesKKs ~ +)KK~  +; KK € + +serializerLL  +.LL  + WriteObjectLL & +(LL& ' + sessionDataLL' 2 +,LL2 3 + _sessionStateLL4 A +)LLA B +;LLB C + StorageFileOO  +fileOO  +=OO! " +awaitOO# ( +ApplicationDataOO) 8 +.OO8 9 +CurrentOO9 @ +.OO@ A + LocalFolderOOA L +.OOL M +CreateFileAsyncOOM \ +(OO\ ] +sessionStateFilenameOO] q +,OOq r$ +CreationCollisionOption OOs Š +. +OOŠ ‹ +ReplaceExisting +OO‹ š +) +OOš › +; +OO› œ +usingPP  +(PP  +StreamPP  + +fileStreamPP ( +=PP) * +awaitPP+ 0 +filePP1 5 +.PP5 6# +OpenStreamForWriteAsyncPP6 M +(PPM N +)PPN O +)PPO P +{QQ  + sessionDataRR  +.RR  +SeekRR $ +(RR$ % +$numRR% & +,RR& ' + +SeekOriginRR( 2 +.RR2 3 +BeginRR3 8 +)RR8 9 +;RR9 : +awaitSS  + sessionDataSS % +.SS% & + CopyToAsyncSS& 1 +(SS1 2 + +fileStreamSS2 < +)SS< = +;SS= > +}TT  +}UU  +catchVV  +(VV  + ExceptionVV  +eVV  +)VV  +{WW  +throwXX  +newXX & +SuspensionManagerExceptionXX 4 +(XX4 5 +eXX5 6 +)XX6 7 +;XX7 8 +}YY  +}ZZ  +publicgg  +staticgg  +asyncgg  +Taskgg  + RestoreAsyncgg! - +(gg- . +Stringgg. 4 +sessionBaseKeygg5 C +=ggD E +nullggF J +)ggJ K +{hh  + _sessionStateii  +=ii  +newii  + +Dictionaryii * +<ii* + +Stringii+ 1 +,ii1 2 +Objectii3 9 +>ii9 : +(ii: ; +)ii; < +;ii< = +trykk  +{ll  + StorageFilenn  +filenn  +=nn! " +awaitnn# ( +ApplicationDatann) 8 +.nn8 9 +Currentnn9 @ +.nn@ A + LocalFoldernnA L +.nnL M + GetFileAsyncnnM Y +(nnY Z +sessionStateFilenamennZ n +)nnn o +;nno p +usingoo  +(oo  + IInputStreamoo # +inStreamoo$ , +=oo- . +awaitoo/ 4 +fileoo5 9 +.oo9 :# +OpenSequentialReadAsyncoo: Q +(ooQ R +)ooR S +)ooS T +{pp " +DataContractSerializerrr * + +serializerrr+ 5 +=rr6 7 +newrr8 ;" +DataContractSerializerrr< R +(rrR S +typeofrrS Y +(rrY Z + +DictionaryrrZ d +<rrd e +stringrre k +,rrk l +objectrrm s +>rrs t +)rrt u +,rru v + _knownTypes rrw ‚ +) +rr‚ ƒ +; +rrƒ „ + _sessionStatess ! +=ss" # +(ss$ % + +Dictionaryss% / +<ss/ 0 +stringss0 6 +,ss6 7 +objectss8 > +>ss> ? +)ss? @ + +serializerss@ J +.ssJ K + +ReadObjectssK U +(ssU V +inStreamssV ^ +.ss^ _ +AsStreamForReadss_ n +(ssn o +)sso p +)ssp q +;ssq r +}tt  +foreachww  +(ww  +varww  +weakFrameReferenceww / +inww0 2 +_registeredFramesww3 D +)wwD E +{xx  +Frameyy  +frameyy  +;yy  +ifzz  +(zz  +weakFrameReferencezz * +.zz* + + TryGetTargetzz+ 7 +(zz7 8 +outzz8 ; +framezz< A +)zzA B +&&zzC E +(zzF G +stringzzG M +)zzM N +framezzN S +.zzS T +GetValuezzT \ +(zz\ ]' +FrameSessionBaseKeyPropertyzz] x +)zzx y +==zzz | +sessionBaseKey zz} ‹ +) +zz‹ Œ +{{{  +frame||  +.||  + +ClearValue|| ( +(||( )% +FrameSessionStateProperty||) B +)||B C +;||C D' +RestoreFrameNavigationState}} 3 +(}}3 4 +frame}}4 9 +)}}9 : +;}}: ; +}~~  +}  +} +€€  +catch +  +( +  + Exception +  +e +  +) +  +{ +‚‚  +throw +ƒƒ  +new +ƒƒ ( +SuspensionManagerException +ƒƒ 4 +( +ƒƒ4 5 +e +ƒƒ5 6 +) +ƒƒ6 7 +; +ƒƒ7 8 +} +„„  +} +……  +private +‡‡  +static +‡‡  +DependencyProperty +‡‡ )* +FrameSessionStateKeyProperty +‡‡* F += +‡‡G H +DependencyProperty +ˆˆ  +. +ˆˆ  +RegisterAttached +ˆˆ / +( +ˆˆ/ 0 +$str +ˆˆ0 G +, +ˆˆG H +typeof +ˆˆI O +( +ˆˆO P +String +ˆˆP V +) +ˆˆV W +, +ˆˆW X +typeof +ˆˆY _ +( +ˆˆ_ ` +SuspensionManager +ˆˆ` q +) +ˆˆq r +, +ˆˆr s +null +ˆˆt x +) +ˆˆx y +; +ˆˆy z +private +‰‰  +static +‰‰  +DependencyProperty +‰‰ )) +FrameSessionBaseKeyProperty +‰‰* E += +‰‰F G +DependencyProperty +ŠŠ  +. +ŠŠ  +RegisterAttached +ŠŠ / +( +ŠŠ/ 0 +$str +ŠŠ0 L +, +ŠŠL M +typeof +ŠŠN T +( +ŠŠT U +String +ŠŠU [ +) +ŠŠ[ \ +, +ŠŠ\ ] +typeof +ŠŠ^ d +( +ŠŠd e +SuspensionManager +ŠŠe v +) +ŠŠv w +, +ŠŠw x +null +ŠŠy } +) +ŠŠ} ~ +; +ŠŠ~  +private +‹‹  +static +‹‹  +DependencyProperty +‹‹ )' +FrameSessionStateProperty +‹‹* C += +‹‹D E +DependencyProperty +ŒŒ  +. +ŒŒ  +RegisterAttached +ŒŒ / +( +ŒŒ/ 0 +$str +ŒŒ0 D +, +ŒŒD E +typeof +ŒŒF L +( +ŒŒL M + +Dictionary +ŒŒM W +< +ŒŒW X +String +ŒŒX ^ +, +ŒŒ^ _ +Object +ŒŒ` f +> +ŒŒf g +) +ŒŒg h +, +ŒŒh i +typeof +ŒŒj p +( +ŒŒp q +SuspensionManager ŒŒq ‚ +) ŒŒ‚ ƒ +, ŒŒƒ „ +null ŒŒ… ‰ +) ŒŒ‰ Š +; ŒŒŠ ‹ +private +  +static +  +List +  +< +  + WeakReference + ) +< +) * +Frame +* / +> +/ 0 +> +0 1 +_registeredFrames +2 C += +D E +new +F I +List +J N +< +N O + WeakReference +O \ +< +\ ] +Frame +] b +> +b c +> +c d +( +d e +) +e f +; +f g +public +  +static +  +void +  + RegisterFrame + ( +( +( ) +Frame +) . +frame +/ 4 +, +4 5 +String +6 < +sessionStateKey += L +, +L M +String +N T +sessionBaseKey +U c += +d e +null +f j +) +j k +{ +žž  +if +ŸŸ  +( +ŸŸ  +frame +ŸŸ  +. +ŸŸ  +GetValue +ŸŸ  +( +ŸŸ * +FrameSessionStateKeyProperty +ŸŸ ; +) +ŸŸ; < +!= +ŸŸ= ? +null +ŸŸ@ D +) +ŸŸD E +{ +    +throw +ĄĄ  +new +ĄĄ ' +InvalidOperationException +ĄĄ 3 +( +ĄĄ3 4 +$str +ĄĄ4 l +) +ĄĄl m +; +ĄĄm n +} +ĸĸ  +if +¤¤  +( +¤¤  +frame +¤¤  +. +¤¤  +GetValue +¤¤  +( +¤¤ ' +FrameSessionStateProperty +¤¤ 8 +) +¤¤8 9 +!= +¤¤: < +null +¤¤= A +) +¤¤A B +{ +ĨĨ  +throw +ĻĻ  +new +ĻĻ ' +InvalidOperationException +ĻĻ 3 +( +ĻĻ3 4 +$str ĻĻ4 ˜ +) ĻĻ˜ ™ +; ĻĻ™ š +} +§§  +if +ŠŠ  +( +ŠŠ  +! +ŠŠ  +string +ŠŠ  +. +ŠŠ  + IsNullOrEmpty +ŠŠ % +( +ŠŠ% & +sessionBaseKey +ŠŠ& 4 +) +ŠŠ4 5 +) +ŠŠ5 6 +{ +ĒĒ  +frame +ĢĢ  +. +ĢĢ  +SetValue +ĢĢ  +( +ĢĢ ) +FrameSessionBaseKeyProperty +ĢĢ : +, +ĢĢ: ; +sessionBaseKey +ĢĢ< J +) +ĢĢJ K +; +ĢĢK L +sessionStateKey +ŦŦ  += +ŦŦ ! +sessionBaseKey +ŦŦ" 0 ++ +ŦŦ1 2 +$str +ŦŦ3 6 ++ +ŦŦ7 8 +sessionStateKey +ŦŦ9 H +; +ŦŦH I +} +­­  +frame +ąą  +. +ąą  +SetValue +ąą  +( +ąą * +FrameSessionStateKeyProperty +ąą 7 +, +ąą7 8 +sessionStateKey +ąą9 H +) +ąąH I +; +ąąI J +_registeredFrames +˛˛  +. +˛˛  +Add +˛˛ ! +( +˛˛! " +new +˛˛" % + WeakReference +˛˛& 3 +< +˛˛3 4 +Frame +˛˛4 9 +> +˛˛9 : +( +˛˛: ; +frame +˛˛; @ +) +˛˛@ A +) +˛˛A B +; +˛˛B C) +RestoreFrameNavigationState +ĩĩ ' +( +ĩĩ' ( +frame +ĩĩ( - +) +ĩĩ- . +; +ĩĩ. / +} +ļļ  +public +ŋŋ  +static +ŋŋ  +void +ŋŋ  +UnregisterFrame +ŋŋ * +( +ŋŋ* + +Frame +ŋŋ+ 0 +frame +ŋŋ1 6 +) +ŋŋ6 7 +{ +ĀĀ  + SessionState +Ãà  +. +Ãà  +Remove +Ãà  +( +Ãà  +( +Ãà ! +String +ÃÃ! ' +) +ÃÃ' ( +frame +ÃÃ( - +. +ÃÃ- . +GetValue +ÃÃ. 6 +( +ÃÃ6 7* +FrameSessionStateKeyProperty +ÃÃ7 S +) +ÃÃS T +) +ÃÃT U +; +ÃÃU V +_registeredFrames +ÄÄ  +. +ÄÄ  + RemoveAll +ÄÄ ' +( +ÄÄ' ( +( +ÄÄ( ) +weakFrameReference +ÄÄ) ; +) +ÄÄ; < +=> +ÄÄ= ? +{ +ÅÅ  +Frame +ÆÆ  + testFrame +ÆÆ  +; +ÆÆ  +return +ĮĮ  +! +ĮĮ  +weakFrameReference +ĮĮ * +. +ĮĮ* + + TryGetTarget +ĮĮ+ 7 +( +ĮĮ7 8 +out +ĮĮ8 ; + testFrame +ĮĮ< E +) +ĮĮE F +|| +ĮĮG I + testFrame +ĮĮJ S +== +ĮĮT V +frame +ĮĮW \ +; +ĮĮ\ ] +} +ČČ  +) +ČČ  +; +ČČ  +} +ÉÉ  +public +ØØ  +static +ØØ  + +Dictionary +ØØ  +< +ØØ ! +String +ØØ! ' +, +ØØ' ( +Object +ØØ) / +> +ØØ/ 0" +SessionStateForFrame +ØØ1 E +( +ØØE F +Frame +ØØF K +frame +ØØL Q +) +ØØQ R +{ +ŲŲ  +var +ÚÚ  + +frameState +ÚÚ  += +ÚÚ  +( +ÚÚ  + +Dictionary +ÚÚ ( +< +ÚÚ( ) +String +ÚÚ) / +, +ÚÚ/ 0 +Object +ÚÚ1 7 +> +ÚÚ7 8 +) +ÚÚ8 9 +frame +ÚÚ9 > +. +ÚÚ> ? +GetValue +ÚÚ? G +( +ÚÚG H' +FrameSessionStateProperty +ÚÚH a +) +ÚÚa b +; +ÚÚb c +if +ÜÜ  +( +ÜÜ  + +frameState +ÜÜ  +== +ÜÜ  +null +ÜÜ " +) +ÜÜ" # +{ +ŨŨ  +var +ŪŪ  +frameSessionKey +ŪŪ # += +ŪŪ$ % +( +ŪŪ& ' +String +ŪŪ' - +) +ŪŪ- . +frame +ŪŪ. 3 +. +ŪŪ3 4 +GetValue +ŪŪ4 < +( +ŪŪ< =* +FrameSessionStateKeyProperty +ŪŪ= Y +) +ŪŪY Z +; +ŪŪZ [ +if +ßß  +( +ßß  +frameSessionKey +ßß # +!= +ßß$ & +null +ßß' + +) +ßß+ , +{ +āā  +if +ââ  +( +ââ  +! +ââ  + _sessionState +ââ & +. +ââ& ' + ContainsKey +ââ' 2 +( +ââ2 3 +frameSessionKey +ââ3 B +) +ââB C +) +ââC D +{ +ãã  + _sessionState +ää % +[ +ää% & +frameSessionKey +ää& 5 +] +ää5 6 += +ää7 8 +new +ää9 < + +Dictionary +ää= G +< +ääG H +String +ääH N +, +ääN O +Object +ääP V +> +ääV W +( +ääW X +) +ääX Y +; +ääY Z +} +åå  + +frameState +ææ  += +ææ  +( +ææ! " + +Dictionary +ææ" , +< +ææ, - +String +ææ- 3 +, +ææ3 4 +Object +ææ5 ; +> +ææ; < +) +ææ< = + _sessionState +ææ= J +[ +ææJ K +frameSessionKey +ææK Z +] +ææZ [ +; +ææ[ \ +} +įį  +else +čč  +{ +éé  + +frameState +ëë  += +ëë  +new +ëë! $ + +Dictionary +ëë% / +< +ëë/ 0 +String +ëë0 6 +, +ëë6 7 +Object +ëë8 > +> +ëë> ? +( +ëë? @ +) +ëë@ A +; +ëëA B +} +ėė  +frame +íí  +. +íí  +SetValue +íí  +( +íí ' +FrameSessionStateProperty +íí 8 +, +íí8 9 + +frameState +íí: D +) +ííD E +; +ííE F +} +îî  +return +īī  + +frameState +īī  +; +īī  +} +đđ  +private +ōō  +static +ōō  +void +ōō ) +RestoreFrameNavigationState +ōō 7 +( +ōō7 8 +Frame +ōō8 = +frame +ōō> C +) +ōōC D +{ +ķķ  +var +ôô  + +frameState +ôô  += +ôô " +SessionStateForFrame +ôô 1 +( +ôô1 2 +frame +ôô2 7 +) +ôô7 8 +; +ôô8 9 +if +õõ  +( +õõ  + +frameState +õõ  +. +õõ  + ContainsKey +õõ & +( +õõ& ' +$str +õõ' 3 +) +õõ3 4 +) +õõ4 5 +{ +öö  +frame +÷÷  +. +÷÷  +SetNavigationState +÷÷ ( +( +÷÷( ) +( +÷÷) * +String +÷÷* 0 +) +÷÷0 1 + +frameState +÷÷1 ; +[ +÷÷; < +$str +÷÷< H +] +÷÷H I +) +÷÷I J +; +÷÷J K +} +øø  +} +ųų  +private +ûû  +static +ûû  +void +ûû & +SaveFrameNavigationState +ûû 4 +( +ûû4 5 +Frame +ûû5 : +frame +ûû; @ +) +ûû@ A +{ +üü  +var +ũũ  + +frameState +ũũ  += +ũũ " +SessionStateForFrame +ũũ 1 +( +ũũ1 2 +frame +ũũ2 7 +) +ũũ7 8 +; +ũũ8 9 + +frameState +ūū  +[ +ūū  +$str +ūū # +] +ūū# $ += +ūū% & +frame +ūū' , +. +ūū, - +GetNavigationState +ūū- ? +( +ūū? @ +) +ūū@ A +; +ūūA B +} +˙˙  +} +€€  +public + + +class + ( +SuspensionManagerException + + +: +, - + Exception +. 7 +{ +‚‚  +public +ƒƒ ( +SuspensionManagerException +ƒƒ ) +( +ƒƒ) * +) +ƒƒ* + +{ +„„  +} +……  +public +‡‡ ( +SuspensionManagerException +‡‡ ) +( +‡‡) * + Exception +‡‡* 3 +e +‡‡4 5 +) +‡‡5 6 +: +ˆˆ  +base +ˆˆ  +( +ˆˆ  +$str +ˆˆ - +, +ˆˆ- . +e +ˆˆ/ 0 +) +ˆˆ0 1 +{ +‰‰  +} +‹‹  +} +ŒŒ  +} ĸ- +GC:\Sources\Other\ModernKeePass\ModernKeePass\Services\LicenseService.cs + namespace  + ModernKeePass +  +.  +Services  +{  +public   + +class    +LicenseService    +:   ! +SingletonServiceBase  " 6 +<  6 7 +LicenseService  7 E +>  E F +,  F G +ILicenseService  H W +{ + +  +public    +enum    +PurchaseResult   " +{    + Succeeded    +,    +NothingToFulfill  +,  +PurchasePending  +,  +PurchaseReverted  +,  + ServerError  +,  + NotPurchased  +,  +AlreadyPurchased  +}  +public  +IReadOnlyDictionary " +<" # +string# ) +,) * +ProductListing+ 9 +>9 : +Products; C +{D E +getF I +;I J +}K L +private  +readonly  +HashSet  +< ! +Guid! % +>% &# +_consumedTransactionIds' > +=? @ +newA D +HashSetE L +<L M +GuidM Q +>Q R +(R S +)S T +;T U +public  +LicenseService  +(  +)  +{  +var  +listing  +=  + +CurrentApp $ +.$ %' +LoadListingInformationAsync% @ +(@ A +)A B +.B C + +GetAwaiterC M +(M N +)N O +.O P + GetResultP Y +(Y Z +)Z [ +;[ \ +Products  +=  +listing  +.  +ProductListings . +;. / +}  +public!!  +async!!  +Task!!  +<!!  +int!!  +>!!  +Purchase!! ' +(!!' ( +string!!( . +addOn!!/ 4 +)!!4 5 +{""  +var##  +purchaseResults##  +=## ! +await##" ' + +CurrentApp##( 2 +.##2 3' +RequestProductPurchaseAsync##3 N +(##N O +addOn##O T +)##T U +;##U V +switch$$  +($$  +purchaseResults$$ # +.$$# $ +Status$$$ * +)$$* + +{%%  +case&& ! +ProductPurchaseStatus&& * +.&&* + + Succeeded&&+ 4 +:&&4 5 +GrantFeatureLocally'' ' +(''' ( +purchaseResults''( 7 +.''7 8 + TransactionId''8 E +)''E F +;''F G +return((  +(((  +int((  +)((  +await((! &" +ReportFulfillmentAsync((' = +(((= > +purchaseResults((> M +.((M N + TransactionId((N [ +,(([ \ +addOn((] b +)((b c +;((c d +case)) ! +ProductPurchaseStatus)) * +.))* + + NotFulfilled))+ 7 +:))7 8 +if,,  +(,,  +!,,  +IsLocallyFulfilled,, + +(,,+ , +purchaseResults,,, ; +.,,; < + TransactionId,,< I +),,I J +),,J K +{--  +GrantFeatureLocally.. + +(..+ , +purchaseResults.., ; +...; < + TransactionId..< I +)..I J +;..J K +}//  +return00  +(00  +int00  +)00  +await00! &" +ReportFulfillmentAsync00' = +(00= > +purchaseResults00> M +.00M N + TransactionId00N [ +,00[ \ +addOn00] b +)00b c +;00c d +case11 ! +ProductPurchaseStatus11 * +.11* + + NotPurchased11+ 7 +:117 8 +return22  +(22  +int22  +)22  +PurchaseResult22! / +.22/ 0 + NotPurchased220 < +;22< = +case33 ! +ProductPurchaseStatus33 * +.33* + +AlreadyPurchased33+ ; +:33; < +return44  +(44  +int44  +)44  +PurchaseResult44! / +.44/ 0 +AlreadyPurchased440 @ +;44@ A +default55  +:55  +throw66  +new66 ' +ArgumentOutOfRangeException66 9 +(669 : +)66: ; +;66; < +}77  +}88  +private::  +async::  +Task::  +<::  +PurchaseResult:: ) +>::) *" +ReportFulfillmentAsync::+ A +(::A B +Guid::B F + transactionId::G T +,::T U +string::V \ + productName::] h +)::h i +{;;  +var<<  +result<<  +=<<  +await<<  + +CurrentApp<< ) +.<<) *, + ReportConsumableFulfillmentAsync<<* J +(<<J K + productName<<K V +,<<V W + transactionId<<X e +)<<e f +;<<f g +return==  +(==  +PurchaseResult== " +)==" # +result==$ * +;==* + +}>>  +private@@  +void@@  +GrantFeatureLocally@@ ( +(@@( ) +Guid@@) - + transactionId@@. ; +)@@; < +{AA # +_consumedTransactionIdsBB # +.BB# $ +AddBB$ ' +(BB' ( + transactionIdBB( 5 +)BB5 6 +;BB6 7 +}CC  +privateEE  +boolEE  +IsLocallyFulfilledEE ' +(EE' ( +GuidEE( , + transactionIdEE- : +)EE: ; +{FF  +returnGG # +_consumedTransactionIdsGG * +.GG* + +ContainsGG+ 3 +(GG3 4 + transactionIdGG4 A +)GGA B +;GGB C +}HH  +}II  +}JJ ķ +FC:\Sources\Other\ModernKeePass\ModernKeePass\Services\RecentService.cs + namespace   + ModernKeePass   +  +.    +Services    +{ + +  +public   + +class    + RecentService    +:    +SingletonServiceBase  ! 5 +<  5 6 + RecentService  6 C +>  C D +,  D E +IRecentService  F T +{    +private    +readonly   + +StorageItemMostRecentlyUsedList   8 +_mru  9 = +=  > ?) +StorageApplicationPermissions  @ ] +.  ] ^ +MostRecentlyUsedList  ^ r +;  r s +public  +int  + +EntryCount  +=>  +_mru! % +.% & +Entries& - +.- . +Count. 3 +;3 4 +public  +ObservableCollection # +<# $ + IRecentItem$ / +>/ 0 + GetAllFiles1 < +(< = +bool= A +removeIfNonExistantB U +=V W +trueX \ +)\ ] +{  +var  +result  +=  +new  +ObservableCollection 1 +<1 2 + IRecentItem2 = +>= > +(> ? +)? @ +;@ A +foreach  +(  +var  +entry  +in ! +_mru" & +.& ' +Entries' . +). / +{  +try  +{  +var  +file  +=  +_mru # +.# $ + GetFileAsync$ 0 +(0 1 +entry1 6 +.6 7 +Token7 < +,< = +AccessCacheOptions> P +.P Q$ +SuppressAccessTimeUpdateQ i +)i j +.j k + +GetAwaiterk u +(u v +)v w +.w x + GetResult x  +( + ‚ +) +‚ ƒ +; +ƒ „ +result  +.  +Add  +(  +new " + RecentItemVm# / +(/ 0 +entry0 5 +.5 6 +Token6 ; +,; < +entry= B +.B C +MetadataC K +,K L +fileM Q +)Q R +)R S +;S T +}  +catch  +(  + Exception  +) ! +{  +if  +(  +removeIfNonExistant + +)+ , +_mru- 1 +.1 2 +Remove2 8 +(8 9 +entry9 > +.> ? +Token? D +)D E +;E F +}  +}  +return    +result    +;    +}!!  +public##  +void##  +Add##  +(##  + IStorageItem## $ +file##% ) +,##) * +string##+ 1 +metadata##2 : +)##: ; +{$$  +_mru%%  +.%%  +Add%%  +(%%  +file%%  +,%%  +metadata%% # +)%%# $ +;%%$ % +}&&  +public((  +void((  +ClearAll((  +(((  +)((  +{))  +_mru**  +.**  +Clear**  +(**  +)**  +;**  +}++  +public--  +async--  +Task--  +<--  + IStorageItem-- & +>--& ' + GetFileAsync--( 4 +(--4 5 +string--5 ; +token--< A +)--A B +{..  +return//  +await//  +_mru//  +.//  + GetFileAsync// * +(//* + +token//+ 0 +)//0 1 +;//1 2 +}00  +}11  +}22 ė +IC:\Sources\Other\ModernKeePass\ModernKeePass\Services\ResourcesService.cs + namespace  + ModernKeePass +  +.  +Services  +{  +public + +class  +ResourcesService ! +:! " +IResourceService# 3 +{  +private  +const  +string  +ResourceFileName - +=. / +$str0 < +;< = +private    +readonly    +ResourceLoader   ' +_resourceLoader  ( 7 +=  8 9 +ResourceLoader  : H +.  H I +GetForCurrentView  I Z +(  Z [ +)  [ \ +;  \ ] +public    +string    +GetResourceValue   & +(  & ' +string  ' - +key  . 1 +)  1 2 +{    +var    +resource    +=    +_resourceLoader   * +.  * + + GetString  + 4 +(  4 5 +$"  5 7 +/  7 8 +{  8 9 +ResourceFileName  9 I +}  I J +/  J K +{  K L +key  L O +}  O P +"  P Q +)  Q R +;  R S +return  +resource  +;  +}  +}  +} ø +HC:\Sources\Other\ModernKeePass\ModernKeePass\Services\SettingsService.cs + namespace  + ModernKeePass +  +.  +Services  +{  +public + +class  +SettingsService  +:! " +SingletonServiceBase# 7 +<7 8 +SettingsService8 G +>G H +,H I +ISettingsServiceJ Z +{    +private + +  +readonly + +  + IPropertySet + + % +_values + +& - += + +. / +ApplicationData + +0 ? +. + +? @ +Current + +@ G +. + +G H + LocalSettings + +H U +. + +U V +Values + +V \ +; + +\ ] +public    +T    + +GetSetting    +<    +T    +>    +(    +string   % +property  & . +,  . / +T  0 1 + defaultValue  2 > +=  ? @ +default  A H +(  H I +T  I J +)  J K +)  K L +{    +try  +{  +return  +(  +T  +)  +Convert ! +.! " + +ChangeType" , +(, - +_values- 4 +[4 5 +property5 = +]= > +,> ? +typeof@ F +(F G +TG H +)H I +)I J +;J K +}  +catch  +(  +InvalidCastException ' +)' ( +{  +return  + defaultValue # +;# $ +}  +}  +public  +void  + +PutSetting  +<  +T  +> ! +(! " +string" ( +property) 1 +,1 2 +T3 4 +value5 : +): ; +{  +if  +(  +_values  +.  + ContainsKey # +(# $ +property$ , +), - +)- . +_values  +[  +property  +] ! +=" # +value$ ) +;) * +else  +_values  +.  +Add  +(  +property % +,% & +value' , +), - +;- . +}  +}  +} Ë. +NC:\Sources\Other\ModernKeePass\ModernKeePass\Common\ToastNotificationHelper.cs + namespace  + ModernKeePass +  +.  +Common  +{   +public + + + +static + +  +class + + # +ToastNotificationHelper + + / +{    +public    +static    +void    +ShowMovedToast   ) +(  ) * + IPwEntity  * 3 +entity  4 : +,  : ; +string  < B +action  C I +,  I J +string  K Q +text  R V +)  V W +{    +var  + +entityType  +=  +entity # +is$ & +GroupVm' . +?/ 0 +$str1 8 +:9 : +$str; B +;B C +var  +notificationXml  += !$ +ToastNotificationManager" : +.: ; +GetTemplateContent; M +(M N +ToastTemplateTypeN _ +._ ` + ToastText02` k +)k l +;l m +var  + toastElements  +=  +notificationXml / +./ 0 +GetElementsByTagName0 D +(D E +$strE K +)K L +;L M + toastElements  +[  +$num  +]  +.  + AppendChild ( +(( ) +notificationXml) 8 +.8 9 +CreateTextNode9 G +(G H +$"H J +{J K +actionK Q +}Q R +{S T + +entityTypeT ^ +}^ _ +{` a +entitya g +.g h +Nameh l +}l m +"m n +)n o +)o p +;p q + toastElements  +[  +$num  +]  +.  + AppendChild ( +(( ) +notificationXml) 8 +.8 9 +CreateTextNode9 G +(G H +textH L +)L M +)M N +;N O +var  + toastNode  +=  +notificationXml + +.+ , +SelectSingleNode, < +(< = +$str= E +)E F +;F G +var  +launch  +=  +new  + +JsonObject ' +{  +{  +$str  +,  + JsonValue ( +.( ) +CreateStringValue) : +(: ; + +entityType; E +)E F +}F G +,G H +{  +$str  +,  + JsonValue & +.& ' +CreateStringValue' 8 +(8 9 +entity9 ? +.? @ +Id@ B +)B C +}C D +}  +;  +(  +(  + +XmlElement  +)  + toastNode " +)" # +?# $ +.$ % + SetAttribute% 1 +(1 2 +$str2 : +,: ; +launch< B +.B C + StringifyC L +(L M +)M N +)N O +;O P +var  +toast  +=  +new  +ToastNotification - +(- . +notificationXml. = +)= > +{  +ExpirationTime  +=  +DateTime! ) +.) * +Now* - +.- . + +AddSeconds. 8 +(8 9 +$num9 : +): ; +}  +; $ +ToastNotificationManager   $ +.  $ % +CreateToastNotifier  % 8 +(  8 9 +)  9 : +.  : ; +Show  ; ? +(  ? @ +toast  @ E +)  E F +;  F G +}!!  +public##  +static##  +void##  +ShowGenericToast## + +(##+ , +string##, 2 +title##3 8 +,##8 9 +string##: @ +text##A E +)##E F +{$$  +var%%  +notificationXml%%  +=%% !$ +ToastNotificationManager%%" : +.%%: ; +GetTemplateContent%%; M +(%%M N +ToastTemplateType%%N _ +.%%_ ` + ToastText02%%` k +)%%k l +;%%l m +var&&  + toastElements&&  +=&&  +notificationXml&& / +.&&/ 0 +GetElementsByTagName&&0 D +(&&D E +$str&&E K +)&&K L +;&&L M + toastElements''  +[''  +$num''  +]''  +.''  + AppendChild'' ( +(''( ) +notificationXml'') 8 +.''8 9 +CreateTextNode''9 G +(''G H +title''H M +)''M N +)''N O +;''O P + toastElements((  +[((  +$num((  +]((  +.((  + AppendChild(( ( +(((( ) +notificationXml(() 8 +.((8 9 +CreateTextNode((9 G +(((G H +text((H L +)((L M +)((M N +;((N O +var**  +toast**  +=**  +new**  +ToastNotification** - +(**- . +notificationXml**. = +)**= > +{++  +ExpirationTime,,  +=,,  +DateTime,,! ) +.,,) * +Now,,* - +.,,- . + +AddSeconds,,. 8 +(,,8 9 +$num,,9 : +),,: ; +}--  +;-- $ +ToastNotificationManager.. $ +...$ % +CreateToastNotifier..% 8 +(..8 9 +)..9 : +...: ; +Show..; ? +(..? @ +toast..@ E +)..E F +;..F G +}//  +public11  +static11  +void11  +ShowErrorToast11 ) +(11) * + Exception11* 3 + exception114 = +)11= > +{22  +ShowGenericToast33  +(33  + exception33 & +.33& ' +Source33' - +,33- . + exception33/ 8 +.338 9 +Message339 @ +)33@ A +;33A B +}44  +}55  +}66  +`C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\DiscreteIntToSolidColorBrushConverter.cs + namespace  + ModernKeePass +  +.  + +Converters " +{  +public + +class 1 +%DiscreteIntToSolidColorBrushConverter 6 +:7 8 +IValueConverter9 H +{    +public + +  +object + +  +Convert + +  +( + +  +object + + $ +value + +% * +, + +* + +Type + +, 0 + +targetType + +1 ; +, + +; < +object + += C + parameter + +D M +, + +M N +string + +O U +language + +V ^ +) + +^ _ +{    +var    +status    +=    +System    +.    +Convert   ' +.  ' ( +ToInt32  ( / +(  / 0 +value  0 5 +)  5 6 +;  6 7 +switch    +(    +status    +)    +{  +case  +$num  +:  +return  +new " +SolidColorBrush# 2 +(2 3 +Colors3 9 +.9 : +Red: = +)= > +;> ? +case  +$num  +:  +return  +new " +SolidColorBrush# 2 +(2 3 +Colors3 9 +.9 : +Yellow: @ +)@ A +;A B +case  +$num  +:  +return  +new " +SolidColorBrush# 2 +(2 3 +Colors3 9 +.9 : +Green: ? +)? @ +;@ A +default  +:  +return  +new # +SolidColorBrush$ 3 +(3 4 +Colors4 : +.: ; +Black; @ +)@ A +;A B +}  +}  +public  +object  + ConvertBack ! +(! " +object" ( +value) . +,. / +Type0 4 + +targetType5 ? +,? @ +objectA G + parameterH Q +,Q R +stringS Y +languageZ b +)b c +{  +throw  +new # +NotImplementedException - +(- . +). / +;/ 0 +}  +}  +} ļ +[C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\EmptyStringToVisibilityConverter.cs + namespace  + ModernKeePass +  +.  + +Converters " +{  +class , + EmptyStringToVisibilityConverter + * +:* + +IValueConverter, ; +{  +public    +object    +Convert    +(    +object   $ +value  % * +,  * + +Type  , 0 + +targetType  1 ; +,  ; < +object  = C + parameter  D M +,  M N +string  O U +language  V ^ +)  ^ _ +{ + +  +var    +text    +=    +value    +is    +string   & +?  ' ( +value  ) . +.  . / +ToString  / 7 +(  7 8 +)  8 9 +:  : ; +string  < B +.  B C +Empty  C H +;  H I +return    +string    +.    + IsNullOrEmpty   ' +(  ' ( +text  ( , +)  , - +?  . / + +Visibility  0 : +.  : ; + Collapsed  ; D +:  E F + +Visibility  G Q +.  Q R +Visible  R Y +;  Y Z +}    +public  +object  + ConvertBack ! +(! " +object" ( +value) . +,. / +Type0 4 + +targetType5 ? +,? @ +objectA G + parameterH Q +,Q R +stringS Y +languageZ b +)b c +{  +throw  +new # +NotImplementedException - +(- . +). / +;/ 0 +}  +}  +} à +QC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\NullToBooleanConverter.cs + namespace  + ModernKeePass +  +.  + +Converters " +{  +public + +class " +NullToBooleanConverter ' +:( ) +IValueConverter* 9 +{  +public  +object  +Convert  +(  +object $ +value% * +,* + +Type, 0 + +targetType1 ; +,; < +object= C + parameterD M +,M N +stringO U +languageV ^ +)^ _ +{    +return + +  +value + +  +!= + +  +null + +  +; + + ! +}    +public    +object    + ConvertBack   ! +(  ! " +object  " ( +value  ) . +,  . / +Type  0 4 + +targetType  5 ? +,  ? @ +object  A G + parameter  H Q +,  Q R +string  S Y +language  Z b +)  b c +{  +throw  +new # +NotImplementedException - +(- . +). / +;/ 0 +}  +}  +} Á +HC:\Sources\Other\ModernKeePass\ModernKeePass\Exceptions\SaveException.cs + namespace  + ModernKeePass +  +.  + +Exceptions " +{  +public + +class  + SaveException  +:  + Exception! * +{  +public  +new  + Exception  +InnerException + +{, - +get. 1 +;1 2 +}3 4 +public    + SaveException    +(    + Exception   & + exception  ' 0 +)  0 1 +{ + +  +InnerException    +=    + exception   & +;  & ' +}    +}    +} Ī +SC:\Sources\Other\ModernKeePass\ModernKeePass\Extensions\DispatcherTaskExtensions.cs + namespace  + ModernKeePass +  +.  + +Extensions " +{  +public + +static  +class $ +DispatcherTaskExtensions 0 +{  +public    +static    +async    +Task    +<   ! +T  ! " +>  " # + RunTaskAsync  $ 0 +<  0 1 +T  1 2 +>  2 3 +(  3 4 +this  4 8 +CoreDispatcher  9 G + +dispatcher  H R +,  R S +Func + +  +< + +  +Task + +  +< + +  +T + +  +> + +  +> + +  +func + +  +, + + " +CoreDispatcherPriority + + 6 +priority + +7 ? += + +@ A" +CoreDispatcherPriority + +B X +. + +X Y +Normal + +Y _ +) + +_ ` +{    +var    +taskCompletionSource   $ +=  % & +new  ' * +TaskCompletionSource  + ? +<  ? @ +T  @ A +>  A B +(  B C +)  C D +;  D E +await    + +dispatcher    +.    +RunAsync   % +(  % & +priority  & . +,  . / +async  0 5 +(  6 7 +)  7 8 +=>  9 ; +{  +try  +{  +taskCompletionSource ( +.( ) + SetResult) 2 +(2 3 +await3 8 +func9 = +(= > +)> ? +)? @ +;@ A +}  +catch  +(  + Exception  +ex! # +)# $ +{  +taskCompletionSource ( +.( ) + SetException) 5 +(5 6 +ex6 8 +)8 9 +;9 : +}  +}  +)  +;  +return  +await  +taskCompletionSource - +.- . +Task. 2 +;2 3 +}  +public  +static  +async  +Task  + RunTaskAsync! - +(- . +this. 2 +CoreDispatcher3 A + +dispatcherB L +,L M +Func  +<  +Task  +>  +func  +, " +CoreDispatcherPriority 3 +priority4 < +== >" +CoreDispatcherPriority? U +.U V +NormalV \ +)\ ] +=>^ ` +await  + RunTaskAsync  +(  + +dispatcher ) +,) * +async+ 0 +(1 2 +)2 3 +=>4 6 +{7 8 +await9 > +func? C +(C D +)D E +;E F +returnG M +falseN S +;S T +}U V +,V W +priorityX ` +)` a +;a b +}  +}  ã +KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IDatabaseService.cs + namespace  + ModernKeePass +  +.  + +Interfaces " +{   +public + + + + interface + +  +IDatabaseService + + % +{    +string    +Name    +{    +get    +;    +}    +bool    +RecycleBinEnabled    +{    +get  ! $ +;  $ % +set  & ) +;  ) * +}  + , +GroupVm  + RootGroup  +{  +get  +;  +set! $ +;$ % +}& ' +GroupVm  + +RecycleBin  +{  +get  +; ! +set" % +;% & +}' ( + StorageFile  + DatabaseFile  +{! " +get# & +;& ' +set( + +;+ , +}- . + CompositeKey  + CompositeKey ! +{" # +get$ ' +;' ( +set) , +;, - +}. / +PwUuid  + +DataCipher  +{  +get  +;  +set! $ +;$ % +}& '" +PwCompressionAlgorithm  +CompressionAlgorithm 3 +{4 5 +get6 9 +;9 : +set; > +;> ? +}@ A + KdfParameters  + KeyDerivation # +{$ % +get& ) +;) * +set+ . +;. / +}0 1 +bool  +IsOpen  +{  +get  +;  +}  +bool  + +IsFileOpen  +{  +get  +;  +}  +bool  +IsClosed  +{  +get  +;  +}  +bool  + +HasChanged  +{  +get  +;  +set " +;" # +}$ % +Task  +Open  +(  + CompositeKey  +key " +," # +bool$ ( + createNew) 2 +=3 4 +false5 : +): ; +;; < +Task  +ReOpen  +(  +)  +;  +void  +Save  +(  +)  +;  +void  +Save  +(  + StorageFile  +file " +)" # +;# $ +void  +CreateRecycleBin  +(  +string $ +title% * +)* + +;+ , +void    +AddDeletedItem    +(    +PwUuid   " +id  # % +)  % & +;  & ' +Task!!  +Close!!  +(!!  +bool!!  + releaseFile!! # +=!!$ % +true!!& * +)!!* + +;!!+ , +}""  +}## à +OC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IHasSelectableObject.cs + namespace  + ModernKeePass +  +.  + +Interfaces " +{  +public + + interface  +IHasSelectableObject ) +{  +ISelectableModel  + SelectedItem % +{& ' +get( + +;+ , +set- 0 +;0 1 +}2 3 +}  +} ­ +KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ISelectableModel.cs + namespace  + ModernKeePass +  +.  + +Interfaces " +{  +public + + interface  +ISelectableModel % +{  +bool  + +IsSelected  +{  +get  +;  +set " +;" # +}$ % +}  +} ŸI +SC:\Sources\Other\ModernKeePass\ModernKeePass\Views\BasePages\LayoutAwarePageBase.cs + namespace   + ModernKeePass   +  +.    +Views    +.    + BasePages   ' +{ + +  +public   + +class    +LayoutAwarePageBase   $ +:  $ % +Page  & * +{    +public  +NavigationHelper  +NavigationHelper 0 +{1 2 +get3 6 +;6 7 +}8 9 +public  +virtual  +ListView  +ListView ( +{) * +get+ . +;. / +set0 3 +;3 4 +}5 6 +public  +virtual  +CollectionViewSource + +ListViewSource, : +{; < +get= @ +;@ A +setB E +;E F +}G H +public  +virtual  +IHasSelectableObject + +Model, 1 +{2 3 +get4 7 +;7 8 +set9 < +;< = +}> ? +public  +LayoutAwarePageBase " +(" # +)# $ +{  +NavigationHelper  +=  +new " +NavigationHelper# 3 +(3 4 +this4 8 +)8 9 +;9 : +NavigationHelper  +.  + LoadState & ++=' )& +navigationHelper_LoadState* D +;D E +NavigationHelper  +.  + SaveState & ++=' )& +navigationHelper_SaveState* D +;D E +NavigationHelper    +.    + GoBackCommand   * +=  + , +new  - 0 + RelayCommand  1 = +(  = > +(  > ? +)  ? @ +=>  A C +GoBack  D J +(  J K +)  K L +,  L M +(  N O +)  O P +=>  Q S + CanGoBack  T ] +(  ] ^ +)  ^ _ +)  _ ` +;  ` a +Window$$  +.$$  +Current$$  +.$$  + SizeChanged$$ & ++=$$' ) +Window_SizeChanged$$* < +;$$< =! +InvalidateVisualState%% ! +(%%! " +)%%" # +;%%# $ +}&&  + protected((  +void(( % +ListView_SelectionChanged(( 0 +(((0 1 +object((1 7 +sender((8 > +,((> ?% +SelectionChangedEventArgs((@ Y +e((Z [ +)(([ \ +{))  +if//  +(//  +!// & +UsingLogicalPageNavigation// + +(//+ , +)//, - +)//- . +return/// 5 +;//5 6 +NavigationHelper00  +.00  + GoBackCommand00 * +.00* +" +RaiseCanExecuteChanged00+ A +(00A B +)00B C +;00C D! +InvalidateVisualState11 ! +(11! " +)11" # +;11# $ +}22  + protected??  +void?? & +navigationHelper_LoadState?? 1 +(??1 2 +object??2 8 +sender??9 ? +,??? @ +LoadStateEventArgs??A S +e??T U +)??U V +{@@  +ifDD  +(DD  +eDD  +.DD  + PageStateDD  +==DD  +nullDD # +)DD# $ +{EE  +ifHH  +(HH  +!HH & +UsingLogicalPageNavigationHH / +(HH/ 0 +)HH0 1 +)HH1 2 +{II  +ListViewSourceJJ " +.JJ" # +ViewJJ# ' +?JJ' ( +.JJ( ) +MoveCurrentToFirstJJ) ; +(JJ; < +)JJ< = +;JJ= > +}KK  +}LL  +elseMM  +{NN  +ifPP  +(PP  +ePP  +.PP  + PageStatePP  +.PP  + ContainsKeyPP + +(PP+ , +$strPP, : +)PP: ; +)PP; < +{QQ  +ListViewSourceRR " +.RR" # +ViewRR# ' +?RR' ( +.RR( ) + MoveCurrentToRR) 6 +(RR6 7 +eRR7 8 +.RR8 9 + PageStateRR9 B +[RRB C +$strRRC Q +]RRQ R +)RRR S +;RRS T +}SS  +}TT  +}UU  + protected__  +void__ & +navigationHelper_SaveState__ 1 +(__1 2 +object__2 8 +sender__9 ? +,__? @ +SaveStateEventArgs__A S +e__T U +)__U V +{``  +ifaa  +(aa  +ListViewSourceaa  +.aa  +Viewaa # +!=aa$ & +nullaa' + +)aa+ , +{bb  +ecc  +.cc  + PageStatecc  +[cc  +$strcc * +]cc* + +=cc, - +Modelcc. 3 +?cc3 4 +.cc4 5 + SelectedItemcc5 A +;ccA B +}dd  +}ee  + protectedpp  +constpp  +intpp - +!MinimumWidthForSupportingTwoPanespp = +=pp> ? +$numpp@ C +;ppC D + protectedww  +boolww & +UsingLogicalPageNavigationww 1 +(ww1 2 +)ww2 3 +{xx  +returnyy  +Windowyy  +.yy  +Currentyy ! +.yy! " +Boundsyy" ( +.yy( ) +Widthyy) . +<yy/ 0- +!MinimumWidthForSupportingTwoPanesyy1 R +;yyR S +}zz  + protected +  +void +  +Window_SizeChanged + ) +( +) * +object +* 0 +sender +1 7 +, +7 8 +Windows +9 @ +. +@ A +UI +A C +. +C D +Core +D H +. +H I( +WindowSizeChangedEventArgs +I c +e +d e +) +e f +{ +‚‚ # +InvalidateVisualState +ƒƒ ! +( +ƒƒ! " +) +ƒƒ" # +; +ƒƒ# $ +} +„„  + protected +††  +bool +††  + CanGoBack +††  +( +†† ! +) +††! " +{ +‡‡  +if +ˆˆ  +( +ˆˆ ( +UsingLogicalPageNavigation +ˆˆ * +( +ˆˆ* + +) +ˆˆ+ , +&& +ˆˆ- / +ListView +ˆˆ0 8 +. +ˆˆ8 9 + SelectedItem +ˆˆ9 E +!= +ˆˆF H +null +ˆˆI M +) +ˆˆM N +{ +‰‰  +return +ŠŠ  +true +ŠŠ  +; +ŠŠ  +} +‹‹  +return +ŒŒ  +NavigationHelper +ŒŒ # +. +ŒŒ# $ + CanGoBack +ŒŒ$ - +( +ŒŒ- . +) +ŒŒ. / +; +ŒŒ/ 0 +} +  + protected +ŽŽ  +void +ŽŽ  +GoBack +ŽŽ  +( +ŽŽ  +) +ŽŽ  +{ +  +if +  +( + ( +UsingLogicalPageNavigation + * +( +* + +) ++ , +&& +- / +ListView +0 8 +. +8 9 + SelectedItem +9 E +!= +F H +null +I M +) +M N +{ +‘‘  +ListView +––  +. +––  + SelectedItem +–– % += +––& ' +null +––( , +; +––, - +} +——  +else +˜˜  +{ +™™  +NavigationHelper +šš  +. +šš ! +GoBack +šš! ' +( +šš' ( +) +šš( ) +; +šš) * +} +››  +} +œœ  + protected +žž  +void +žž # +InvalidateVisualState +žž , +( +žž, - +) +žž- . +{ +ŸŸ  +var +    + visualState +    += +   " +DetermineVisualState +   2 +( +  2 3 +) +  3 4 +; +  4 5 +VisualStateManager +ĄĄ  +. +ĄĄ  + GoToState +ĄĄ ( +( +ĄĄ( ) +this +ĄĄ) - +, +ĄĄ- . + visualState +ĄĄ/ : +, +ĄĄ: ; +false +ĄĄ< A +) +ĄĄA B +; +ĄĄB C +NavigationHelper +ĸĸ  +. +ĸĸ  + GoBackCommand +ĸĸ * +. +ĸĸ* +$ +RaiseCanExecuteChanged +ĸĸ+ A +( +ĸĸA B +) +ĸĸB C +; +ĸĸC D +} +ŖŖ  + protected +ŦŦ  +string +ŦŦ " +DetermineVisualState +ŦŦ - +( +ŦŦ- . +) +ŦŦ. / +{ +­­  +if +ŽŽ  +( +ŽŽ  +! +ŽŽ ( +UsingLogicalPageNavigation +ŽŽ + +( +ŽŽ+ , +) +ŽŽ, - +) +ŽŽ- . +return +¯¯  +$str +¯¯ $ +; +¯¯$ % +var +˛˛  +logicalPageBack +˛˛  += +˛˛ !( +UsingLogicalPageNavigation +˛˛" < +( +˛˛< = +) +˛˛= > +&& +˛˛? A +ListView +˛˛B J +? +˛˛J K +. +˛˛K L + SelectedItem +˛˛L X +!= +˛˛Y [ +null +˛˛\ ` +; +˛˛` a +return +´´  +logicalPageBack +´´ " +? +´´# $ +$str +´´% 8 +: +´´9 : +$str +´´; G +; +´´G H +} +ĩĩ  + protected +ÄÄ  +override +ÄÄ  +void +ÄÄ  + OnNavigatedTo +ÄÄ - +( +ÄÄ- .! +NavigationEventArgs +ÄÄ. A +e +ÄÄB C +) +ÄÄC D +{ +ÅÅ  +NavigationHelper +ÆÆ  +. +ÆÆ  + OnNavigatedTo +ÆÆ * +( +ÆÆ* + +e +ÆÆ+ , +) +ÆÆ, - +; +ÆÆ- . +} +ĮĮ  + protected +ÉÉ  +override +ÉÉ  +void +ÉÉ  +OnNavigatedFrom +ÉÉ / +( +ÉÉ/ 0! +NavigationEventArgs +ÉÉ0 C +e +ÉÉD E +) +ÉÉE F +{ +ĘĘ  +NavigationHelper +ËË  +. +ËË  +OnNavigatedFrom +ËË , +( +ËË, - +e +ËË- . +) +ËË. / +; +ËË/ 0 +} +ĖĖ  +} +ĪĪ  +}ĐĐ   +bC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsDatabasePage.xaml.cs + namespace  + ModernKeePass +  +.  +Views  +{  +public + +sealed  +partial  +class  +SettingsDatabasePage 4 +{    +public + +  +SettingsDatabasePage + + # +( + +# $ +) + +$ % +{    +InitializeComponent    +(    +)   ! +;  ! " +}    +}  +} Š +eC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsNewDatabasePage.xaml.cs + namespace  + ModernKeePass +  +.  +Views  +{  +public + +sealed  +partial  +class # +SettingsNewDatabasePage 7 +{    +public + + # +SettingsNewDatabasePage + + & +( + +& ' +) + +' ( +{    +InitializeComponent    +(    +)   ! +;  ! " +}    +}  +} ” +^C:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsSavePage.xaml.cs + namespace  + ModernKeePass +  +.  +Views  +{  +public + +sealed  +partial  +class  +SettingsSavePage 0 +{    +public + +  +SettingsSavePage + +  +( + +  +) + + ! +{    +InitializeComponent    +(    +)   ! +;  ! " +}    +}  +} Ķ +bC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsSecurityPage.xaml.cs + namespace  + ModernKeePass +  +.  +Views  +{  +public   + +sealed    +partial    +class    +SettingsSecurityPage   4 +{    +public    +SettingsSecurityPage   # +(  # $ +)  $ % +{  +InitializeComponent  +(  +) ! +;! " +}  +private  +void 7 ++CompositeKeyUserControl_OnValidationChecked @ +(@ A +objectA G +senderH N +,N O +PasswordEventArgsP a +eb c +)c d +{ # +ToastNotificationHelper # +.# $ +ShowGenericToast$ 4 +(4 5 +$str5 D +,D E +$strF f +)f g +;g h +}  +}  +}  +aC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsWelcomePage.xaml.cs + namespace  + ModernKeePass +  +.  +Views  +{  +public + +sealed  +partial  +class  +SettingsWelcomePage 3 +{    +public + +  +SettingsWelcomePage + + " +( + +" # +) + +# $ +{    +InitializeComponent    +(    +)   ! +;  ! " +}    +}  +} ¤ +_C:\Sources\Other\ModernKeePass\ModernKeePass\TemplateSelectors\FirstItemDataTemplateSelector.cs + namespace  + ModernKeePass +  +.  +TemplateSelectors ) +{  +public + +class ) +FirstItemDataTemplateSelector . +:. / +DataTemplateSelector0 D +{  +public  + DataTemplate  + FirstItem % +{& ' +get( + +;+ , +set- 0 +;0 1 +}2 3 +public    + DataTemplate    + OtherItem   % +{  & ' +get  ( + +;  + , +set  - 0 +;  0 1 +}  2 3 + protected    +override    + DataTemplate   ' +SelectTemplateCore  ( : +(  : ; +object  ; A +item  B F +,  F G +DependencyObject  H X + container  Y b +)  b c +{    +var    + itemsControl    +=    + ItemsControl   + +.  + ,) +ItemsControlFromItemContainer  , I +(  I J + container  J S +)  S T +;  T U +var  +returnTemplate  +=  + itemsControl! - +?- . +.. / +IndexFromContainer/ A +(A B + containerB K +)K L +==M O +$numP Q +?R S + FirstItemT ] +:^ _ + OtherItem` i +;i j +return  +returnTemplate ! +;! " +}  +}  +} œ +LC:\Sources\Other\ModernKeePass\ModernKeePass\Controls\ListViewWithDisable.cs + namespace  + ModernKeePass +  +.  +Controls  +{  +public + +class  +ListViewWithDisable $ +:$ % +ListView& . +{  + protected    +override    +void   + +PrepareContainerForItemOverride   ? +(  ? @ +DependencyObject  @ P +element  Q X +,  X Y +object  Z ` +item  a e +)  e f +{ + +  +base    +.   + +PrepareContainerForItemOverride   0 +(  0 1 +element  1 8 +,  8 9 +item  : > +)  > ? +;  ? @ +var    + container    +=    +element   # +as  $ & + ListViewItem  ' 3 +;  3 4 +var  + +binaryItem  +=  +item ! +as" $ + +IIsEnabled% / +;/ 0 +if  +(  + container  +==  +null ! +||" $ + +binaryItem% / +==0 2 +null3 7 +)7 8 +return9 ? +;? @ + container  +.  + IsEnabled  += ! + +binaryItem" , +., - + IsEnabled- 6 +;6 7 + container  +.  +IsHitTestVisible & +=' ( + +binaryItem) 3 +.3 4 + IsEnabled4 = +;= > +}  +}  +} Š +]C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\BreadCrumbUserControl.xaml.cs + namespace  + ModernKeePass +  +.  +Views  +.  + UserControls * +{  +public   + +sealed    +partial    +class   ! +BreadCrumbUserControl   5 +{ + +  +public   ! +BreadCrumbUserControl   $ +(  $ % +)  % & +{    +InitializeComponent    +(    +)   ! +;  ! " +}  +public  + IEnumerable  +<  + IPwEntity $ +>$ % + ItemsSource& 1 +{  +get  +{  +return  +(  + IEnumerable % +<% & + IPwEntity& / +>/ 0 +)0 1 +GetValue1 9 +(9 : +ItemsSourceProperty: M +)M N +;N O +}P Q +set  +{  +SetValue  +(  +ItemsSourceProperty . +,. / +value0 5 +)5 6 +;6 7 +}8 9 +}  +public  +static  +readonly  +DependencyProperty 1 +ItemsSourceProperty2 E +=F G +DependencyProperty  +.  +Register ' +(' ( +$str  +,  +typeof  +(  + IEnumerable " +<" # + IPwEntity# , +>, - +)- . +,. / +typeof  +( ! +BreadCrumbUserControl , +), - +,- . +new  +PropertyMetadata $ +($ % +new% ( +Stack) . +<. / + IPwEntity/ 8 +>8 9 +(9 : +): ; +,; < +(= > +o> ? +,? @ +argsA E +)E F +=>G I +{J K +}L M +)M N +)N O +;O P +}  +}  T +_C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\CompositeKeyUserControl.xaml.cs + namespace  + ModernKeePass +  +.  +Views  +.  + UserControls * +{  +public + +sealed  +partial  +class # +CompositeKeyUserControl 7 +{  +public  +CompositeKeyVm  +Model # +=>$ & +Grid' + +.+ , + DataContext, 7 +as8 : +CompositeKeyVm; I +;I J +public  +bool  + CreateNew  +{  +get  +{  +return  +(  +bool  +)  +GetValue ' +(' ( +CreateNewProperty( 9 +)9 : +;: ; +}< = +set  +{  +SetValue  +(  +CreateNewProperty , +,, - +value. 3 +)3 4 +;4 5 +}6 7 +}  +public  +static  +readonly  +DependencyProperty 1 +CreateNewProperty2 C +=D E +DependencyProperty  +.  +Register ' +(' ( +$str  +,  +typeof  +(  +bool  +)  +,  +typeof  +( # +CompositeKeyUserControl . +). / +,/ 0 +new  +PropertyMetadata $ +($ % +false% * +,* + +(, - +o- . +,. / +args0 4 +)4 5 +=>6 8 +{9 : +}; < +)< = +)= > +;> ? +public    +bool    + UpdateKey    +{!!  +get""  +{""  +return""  +(""  +bool""  +)""  +GetValue"" ' +(""' ( +UpdateKeyProperty""( 9 +)""9 : +;"": ; +}""< = +set##  +{##  +SetValue##  +(##  +UpdateKeyProperty## , +,##, - +value##. 3 +)##3 4 +;##4 5 +}##6 7 +}$$  +public%%  +static%%  +readonly%%  +DependencyProperty%% 1 +UpdateKeyProperty%%2 C +=%%D E +DependencyProperty&&  +.&&  +Register&& ' +(&&' ( +$str''  +,''  +typeof((  +(((  +bool((  +)((  +,((  +typeof))  +()) # +CompositeKeyUserControl)) . +))). / +,))/ 0 +new**  +PropertyMetadata** $ +(**$ % +false**% * +,*** + +(**, - +o**- . +,**. / +args**0 4 +)**4 5 +=>**6 8 +{**9 : +}**; < +)**< = +)**= > +;**> ? +public,,  +string,,  + ButtonLabel,, ! +{--  +get..  +{..  +return..  +(..  +string..  +).. ! +GetValue..! ) +(..) * +ButtonLabelProperty..* = +)..= > +;..> ? +}..@ A +set//  +{//  +SetValue//  +(//  +ButtonLabelProperty// . +,//. / +value//0 5 +)//5 6 +;//6 7 +}//8 9 +}00  +public11  +static11  +readonly11  +DependencyProperty11 1 +ButtonLabelProperty112 E +=11F G +DependencyProperty22  +.22  +Register22 ' +(22' ( +$str33  +,33  +typeof44  +(44  +string44  +)44  +,44  +typeof55  +(55 # +CompositeKeyUserControl55 . +)55. / +,55/ 0 +new66  +PropertyMetadata66 $ +(66$ % +$str66% ) +,66) * +(66+ , +o66, - +,66- . +args66/ 3 +)663 4 +=>665 7 +{668 9 +}66: ; +)66; < +)66< = +;66= > +public99  +bool99 # +ShowComplexityIndicator99 + +=>99, . + CreateNew99/ 8 +||999 ; + UpdateKey99< E +;99E F +public;; # +CompositeKeyUserControl;; & +(;;& ' +);;' ( +{<<  +InitializeComponent==  +(==  +)== ! +;==! " +}>>  +public@@  +event@@ ( +PasswordCheckingEventHandler@@ 1 +ValidationChecking@@2 D +;@@D E +publicAA  +delegateAA  +voidAA ( +PasswordCheckingEventHandlerAA 9 +(AA9 : +objectAA: @ +senderAAA G +,AAG H + EventArgsAAI R +eAAS T +)AAT U +;AAU V +publicBB  +eventBB ' +PasswordCheckedEventHandlerBB 0 +ValidationCheckedBB1 B +;BBB C +publicCC  +delegateCC  +voidCC ' +PasswordCheckedEventHandlerCC 8 +(CC8 9 +objectCC9 ? +senderCC@ F +,CCF G +PasswordEventArgsCCH Y +eCCZ [ +)CC[ \ +;CC\ ] +privateEE  +asyncEE  +voidEE  +OpenButton_OnClickEE - +(EE- . +objectEE. 4 +senderEE5 ; +,EE; < +RoutedEventArgsEE= L +eEEM N +)EEN O +{FF  +ValidationCheckingGG  +?GG  +.GG  +InvokeGG & +(GG& ' +thisGG' + +,GG+ , +newGG- 0 + EventArgsGG1 : +(GG: ; +)GG; < +)GG< = +;GG= > +ifII  +(II  + UpdateKeyII  +)II  +{JJ  +ModelKK  +.KK  + UpdateKeyKK  +(KK  +)KK ! +;KK! " +ValidationCheckedLL ! +?LL! " +.LL" # +InvokeLL# ) +(LL) * +thisLL* . +,LL. / +newLL0 3 +PasswordEventArgsLL4 E +(LLE F +ModelLLF K +.LLK L + RootGroupLLL U +)LLU V +)LLV W +;LLW X +}MM  +elseNN  +{OO  +varPP  +resourcePP  +=PP  +newPP " +ResourcesServicePP# 3 +(PP3 4 +)PP4 5 +;PP5 6 +varQQ  +oldLabelQQ  +=QQ  + ButtonLabelQQ * +;QQ* + + ButtonLabelRR  +=RR  +resourceRR & +.RR& ' +GetResourceValueRR' 7 +(RR7 8 +$strRR8 M +)RRM N +;RRN O +ifSS  +(SS  +awaitSS  + +DispatcherSS $ +.SS$ % + RunTaskAsyncSS% 1 +(SS1 2 +asyncSS2 7 +(SS8 9 +)SS9 : +=>SS; = +awaitSS> C +ModelSSD I +.SSI J + OpenDatabaseSSJ V +(SSV W + CreateNewSSW ` +)SS` a +)SSa b +)SSb c +{TT  +ValidationCheckedUU % +?UU% & +.UU& ' +InvokeUU' - +(UU- . +thisUU. 2 +,UU2 3 +newUU4 7 +PasswordEventArgsUU8 I +(UUI J +ModelUUJ O +.UUO P + RootGroupUUP Y +)UUY Z +)UUZ [ +;UU[ \ +}VV  + ButtonLabelWW  +=WW  +oldLabelWW & +;WW& ' +}XX  +}YY  +private[[  +void[[  +PasswordBox_KeyDown[[ ( +([[( ) +object[[) / +sender[[0 6 +,[[6 7 +KeyRoutedEventArgs[[8 J +e[[K L +)[[L M +{\\  +if]]  +(]]  +e]]  +.]]  +Key]]  +==]]  + +VirtualKey]] # +.]]# $ +Enter]]$ ) +&&]]* , +Model]]- 2 +.]]2 3 +IsValid]]3 : +)]]: ; +{^^  +OpenButton_OnClick__ " +(__" # +sender__# ) +,__) * +e__+ , +)__, - +;__- . +eaa  +.aa  +Handledaa  +=aa  +trueaa  +;aa ! +}bb  +}cc  +privateee  +asyncee  +voidee  +KeyFileButton_Clickee . +(ee. / +objectee/ 5 +senderee6 < +,ee< = +RoutedEventArgsee> M +eeeN O +)eeO P +{ff  +vargg  +pickergg  +=gg  +newhh  +FileOpenPickerhh " +{ii  +ViewModejj  +=jj  +PickerViewModejj - +.jj- . +Listjj. 2 +,jj2 3" +SuggestedStartLocationkk * +=kk+ , +PickerLocationIdkk- = +.kk= > +DocumentsLibrarykk> N +}ll  +;ll  +pickermm  +.mm  +FileTypeFiltermm ! +.mm! " +Addmm" % +(mm% & +$strmm& , +)mm, - +;mm- . +varpp  +filepp  +=pp  +awaitpp  +pickerpp # +.pp# $ +PickSingleFileAsyncpp$ 7 +(pp7 8 +)pp8 9 +;pp9 : +ifqq  +(qq  +fileqq  +==qq  +nullqq  +)qq  +returnqq $ +;qq$ % +Modelrr  +.rr  +KeyFilerr  +=rr  +filerr  +;rr ! +}ss  +privateuu  +asyncuu  +voiduu % +CreateKeyFileButton_Clickuu 4 +(uu4 5 +objectuu5 ; +senderuu< B +,uuB C +RoutedEventArgsuuD S +euuT U +)uuU V +{vv  +varww  + +savePickerww  +=ww  +newww  +FileSavePickerww! / +{xx " +SuggestedStartLocationyy & +=yy' ( +PickerLocationIdyy) 9 +.yy9 : +DocumentsLibraryyy: J +,yyJ K +SuggestedFileNamezz ! +=zz" # +$strzz$ ) +}{{  +;{{  + +savePicker||  +.||  +FileTypeChoices|| & +.||& ' +Add||' * +(||* + +$str||+ 5 +,||5 6 +new||7 : +List||; ? +<||? @ +string||@ F +>||F G +{||H I +$str||J P +}||Q R +)||R S +;||S T +var~~  +file~~  +=~~  +await~~  + +savePicker~~ ' +.~~' ( +PickSaveFileAsync~~( 9 +(~~9 : +)~~: ; +;~~; < +if  +(  +file  +==  +null  +)  +return $ +;$ % +Model +  +. +  + CreateKeyFile +  +( +  +file + $ +) +$ % +; +% & +} +‚‚  +} +ƒƒ  +}„„ 1 +JC:\Sources\Other\ModernKeePass\ModernKeePass\Controls\TextBoxWithButton.cs + namespace  + ModernKeePass +  +.  +Controls  +{  +public + +class  +TextBoxWithButton " +:# $ +TextBox% , +{    +public + +  +string + +  + ButtonSymbol + + " +{    +get    +{    +return    +(    +string    +)   ! +GetValue  ! ) +(  ) * +ButtonSymbolProperty  * > +)  > ? +;  ? @ +}  A B +set    +{    +SetValue    +(    +ButtonSymbolProperty   / +,  / 0 +value  1 6 +)  6 7 +;  7 8 +}  9 : +}  +public  +static  +readonly  +DependencyProperty 1 +ButtonSymbolProperty2 F +=G H +DependencyProperty  +.  +Register ' +(' ( +$str  +,  +typeof  +(  +string  +)  +,  +typeof  +(  +TextBoxWithButton ( +)( ) +,) * +new  +PropertyMetadata $ +($ % +$str% / +,/ 0 +(1 2 +o2 3 +,3 4 +args5 9 +)9 : +=>; = +{> ? +}@ A +)A B +)B C +;C D +public  +event  + EventHandler ! +<! " +RoutedEventArgs" 1 +>1 2 + ButtonClick3 > +;> ? +public  +string  + ButtonTooltip # +{  +get  +{  +return  +(  +string  +) ! +GetValue! ) +() *! +ButtonTooltipProperty* ? +)? @ +;@ A +}B C +set  +{  +SetValue  +( ! +ButtonTooltipProperty 0 +,0 1 +value2 7 +)7 8 +;8 9 +}: ; +}  +public  +static  +readonly  +DependencyProperty 1! +ButtonTooltipProperty2 G +=H I +DependencyProperty  +.  +Register ' +(' ( +$str  +,  +typeof  +(  +string  +)  +,  +typeof    +(    +TextBoxWithButton   ( +)  ( ) +,  ) * +new!!  +PropertyMetadata!! $ +(!!$ % +string!!% + +.!!+ , +Empty!!, 1 +,!!1 2 +(!!3 4 +o!!4 5 +,!!5 6 +args!!7 ; +)!!; < +=>!!= ? +{!!@ A +}!!B C +)!!C D +)!!D E +;!!E F +public##  +bool##  +IsButtonEnabled## # +{$$  +get%%  +{%%  +return%%  +(%%  +bool%%  +)%%  +GetValue%% ' +(%%' (# +IsButtonEnabledProperty%%( ? +)%%? @ +;%%@ A +}%%B C +set&&  +{&&  +SetValue&&  +(&& # +IsButtonEnabledProperty&& 2 +,&&2 3 +value&&4 9 +)&&9 : +;&&: ; +}&&< = +}''  +public((  +static((  +readonly((  +DependencyProperty(( 1# +IsButtonEnabledProperty((2 I +=((J K +DependencyProperty))  +.))  +Register)) ' +())' ( +$str** ! +,**! " +typeof++  +(++  +bool++  +)++  +,++  +typeof,,  +(,,  +TextBoxWithButton,, ( +),,( ) +,,,) * +new--  +PropertyMetadata-- $ +(--$ % +true--% ) +,--) * +(--+ , +o--, - +,--- . +args--/ 3 +)--3 4 +=>--5 7 +{--8 9 +}--: ; +)--; < +)--< = +;--= > +public//  + +FlyoutBase//  + ButtonFlyout// & +{00  +get11  +{11  +return11  +(11  + +FlyoutBase11 $ +)11$ % +GetValue11% - +(11- . +ButtonFlyoutProperty11. B +)11B C +;11C D +}11E F +set22  +{22  +SetValue22  +(22  +ButtonFlyoutProperty22 / +,22/ 0 +value221 6 +)226 7 +;227 8 +}229 : +}33  +public44  +static44  +readonly44  +DependencyProperty44 1 +ButtonFlyoutProperty442 F +=44G H +DependencyProperty55  +.55  +Register55 ' +(55' ( +$str66  +,66  +typeof77  +(77  + +FlyoutBase77 ! +)77! " +,77" # +typeof88  +(88  +TextBoxWithButton88 ( +)88( ) +,88) * +new99  +PropertyMetadata99 $ +(99$ % +null99% ) +,99) * +(99+ , +o99, - +,99- . +args99/ 3 +)993 4 +=>995 7 +{998 9 +}99: ; +)99; < +)99< = +;99= > + protected;;  +override;;  +void;;  +OnApplyTemplate;; / +(;;/ 0 +);;0 1 +{<<  +base==  +.==  +OnApplyTemplate==  +(== ! +)==! " +;==" # +var>>  + actionButton>>  +=>>  +GetTemplateChild>> / +(>>/ 0 +$str>>0 > +)>>> ? +as>>@ B +Button>>C I +;>>I J +if??  +(??  + actionButton??  +!=??  +null?? $ +)??$ % +{@@  + actionButtonAA  +.AA  +ClickAA " ++=AA# % +(AA& ' +senderAA' - +,AA- . +eAA/ 0 +)AA0 1 +=>AA2 4 + ButtonClickAA5 @ +?AA@ A +.AAA B +InvokeAAB H +(AAH I +senderAAI O +,AAO P +eAAQ R +)AAR S +;AAS T +}BB  +}CC  +}DD  +}EE  +WC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\BooleanToVisibilityConverter.cs + namespace  + ModernKeePass +  +.  + +Converters " +{  +public + +class ( +BooleanToVisibilityConverter - +:. / +IValueConverter0 ? +{  +public    +object    +Convert    +(    +object   $ +value  % * +,  * + +Type  , 0 + +targetType  1 ; +,  ; < +object  = C + parameter  D M +,  M N +string  O U +language  V ^ +)  ^ _ +{ + +  +var    +boolean    +=    +value    +is   " +bool  # ' +?  ( ) +(  * + +bool  + / +)  / 0 +value  1 6 +:  7 8 +false  9 > +;  > ? +return    +boolean    +?    + +Visibility   ' +.  ' ( +Visible  ( / +:  0 1 + +Visibility  2 < +.  < = + Collapsed  = F +;  F G +}    +public  +object  + ConvertBack ! +(! " +object" ( +value) . +,. / +Type0 4 + +targetType5 ? +,? @ +objectA G + parameterH Q +,Q R +stringS Y +languageZ b +)b c +{  +var  + +visibility  +=  +value " +is# % + +Visibility& 0 +?1 2 +(3 4 + +Visibility4 > +)> ? +value@ E +:F G + +VisibilityH R +.R S +VisibleS Z +;Z [ +switch  +(  + +visibility  +)  +{  +case  + +Visibility  +.  +Visible ' +:' ( +return) / +true0 4 +;4 5 +case  + +Visibility  +.  + Collapsed ) +:) * +return+ 1 +false2 7 +;7 8 +default  +:  +throw  +new ' +ArgumentOutOfRangeException 9 +(9 : +): ; +;; < +}  +}  +}  +} × +PC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\ColorToBrushConverter.cs + namespace  + ModernKeePass +  +.  + +Converters " +{  +public + +class ! +ColorToBrushConverter & +:' ( +IValueConverter) 8 +{    +public + +  +object + +  +Convert + +  +( + +  +object + + $ +value + +% * +, + +* + +Type + +, 0 + +targetType + +1 ; +, + +; < +object + += C + parameter + +D M +, + +M N +string + +O U +language + +V ^ +) + +^ _ +{    +var    +color    +=    +value    +is    +Color  ! & +?  ' ( +(  ) * +Color  * / +?  / 0 +)  0 1 +value  2 7 +:  8 9 +Color  : ? +.  ? @ +Empty  @ E +;  E F +if    +(    +color    +==    +Color    +.    +Empty   $ +&&  % ' + parameter  ( 1 +is  2 4 +SolidColorBrush  5 D +)  D E +return  F L +(  M N +SolidColorBrush  N ] +)  ] ^ + parameter  _ h +;  h i +return  +new  +SolidColorBrush & +(& ' +Windows' . +.. / +UI/ 1 +.1 2 +Color2 7 +.7 8 +FromArgb8 @ +(@ A +color  +.  +Value  +.  +A  +,  +color  +.  +Value  +.  +R  +,  +color  +.  +Value  +.  +G  +,  +color  +.  +Value  +.  +B  +)  +)  +;  +}  +public  +object  + ConvertBack ! +(! " +object" ( +value) . +,. / +Type0 4 + +targetType5 ? +,? @ +objectA G + parameterH Q +,Q R +stringS Y +languageZ b +)b c +{  +throw  +new # +NotImplementedException - +(- . +). / +;/ 0 +}  +}  +} ž +[C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\DoubleToSolidColorBrushConverter.cs + namespace  + ModernKeePass +  +.  + +Converters " +{  +public + +class , + DoubleToSolidColorBrushConverter 1 +:2 3 +IValueConverter4 C +{    +public + +  +object + +  +Convert + +  +( + +  +object + + $ +value + +% * +, + +* + +Type + +, 0 + +targetType + +1 ; +, + +; < +object + += C + parameter + +D M +, + +M N +string + +O U +language + +V ^ +) + +^ _ +{    +try    +{    +var  + currentValue  +=! " +(# $ +double$ * +)* + +value, 1 +;1 2 +var  +maxValue  +=  +double % +.% & +Parse& + +(+ , + parameter, 5 +as6 8 +string9 ? +)? @ +;@ A +var  +green  +=  +System " +." # +Convert# * +.* + +ToByte+ 1 +(1 2 + currentValue2 > +/? @ +maxValueA I +*J K +byteL P +.P Q +MaxValueQ Y +)Y Z +;Z [ +var  +red  +=  +(  +byte  +)  +(! " +byte" & +.& ' +MaxValue' / +-0 1 +green2 7 +)7 8 +;8 9 +return  +new  +SolidColorBrush * +(* + +Color+ 0 +.0 1 +FromArgb1 9 +(9 : +$num: = +,= > +red? B +,B C +greenD I +,I J +$numK L +)L M +)M N +;N O +}  +catch  +(  +OverflowException $ +)$ % +{  +return  +new  +SolidColorBrush * +(* + +Color+ 0 +.0 1 +FromArgb1 9 +(9 : +$num: = +,= > +$num? @ +,@ A +byteB F +.F G +MaxValueG O +,O P +$numQ R +)R S +)S T +;T U +}  +}  +public  +object  + ConvertBack ! +(! " +object" ( +value) . +,. / +Type0 4 + +targetType5 ? +,? @ +objectA G + parameterH Q +,Q R +stringS Y +languageZ b +)b c +{  +throw  +new # +NotImplementedException - +(- . +). / +;/ 0 +}  +}  +} ž +^C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\InverseBooleanToVisibilityConverter.cs + namespace  + ModernKeePass +  +.  + +Converters " +{  +public + +class / +#InverseBooleanToVisibilityConverter 4 +:5 6 +IValueConverter7 F +{  +public    +object    +Convert    +(    +object   $ +value  % * +,  * + +Type  , 0 + +targetType  1 ; +,  ; < +object  = C + parameter  D M +,  M N +string  O U +language  V ^ +)  ^ _ +{ + +  +var    +boolean    +=    +value    +is   " +bool  # ' +?  ( ) +(  * + +bool  + / +)  / 0 +value  0 5 +:  6 7 +false  8 = +;  = > +return    +boolean    +?    + +Visibility   ' +.  ' ( + Collapsed  ( 1 +:  2 3 + +Visibility  4 > +.  > ? +Visible  ? F +;  F G +}    +public  +object  + ConvertBack ! +(! " +object" ( +value) . +,. / +Type0 4 + +targetType5 ? +,? @ +objectA G + parameterH Q +,Q R +stringS Y +languageZ b +)b c +{  +var  + +visibility  +=  +value " +is# % + +Visibility& 0 +?1 2 +(3 4 + +Visibility4 > +)> ? +value? D +:E F + +VisibilityG Q +.Q R +VisibleR Y +;Y Z +switch  +(  + +visibility  +)  +{  +case  + +Visibility  +.  +Visible ' +:' ( +return) / +false0 5 +;5 6 +case  + +Visibility  +.  + Collapsed ) +:) * +return+ 1 +true2 6 +;6 7 +default  +:  +throw  +new ' +ArgumentOutOfRangeException 9 +(9 : +): ; +;; < +}  +}  +}  +} … +QC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\PluralizationConverter.cs + namespace  + ModernKeePass +  +.  + +Converters " +{  +public + +class " +PluralizationConverter ' +:( ) +IValueConverter* 9 +{  +public  +object  +Convert  +(  +object $ +value% * +,* + +Type, 0 + +targetType1 ; +,; < +object= C + parameterD M +,M N +stringO U +languageV ^ +)^ _ +{    +var + + % +pluralizationOptionString + + ) += + +* + + parameter + +, 5 +as + +6 8 +string + +9 ? +; + +? @ +var    +pluralizationOptions   $ +=  % &% +pluralizationOptionString  ' @ +?  @ A +.  A B +Split  B G +(  G H +new  H K +[  K L +]  L M +{  N O +$str  P S +}  T U +,  U V +StringSplitOptions  W i +.  i j +RemoveEmptyEntries  j | +)  | } +;  } ~ +if    +(    +pluralizationOptions   $ +==  % ' +null  ( , +||  - / +pluralizationOptions  0 D +.  D E +Length  E K +!=  L N +$num  O P +)  P Q +return  R X +string  Y _ +.  _ ` +Empty  ` e +;  e f +var    +count    +=    +value    +is    +int  ! $ +?  % & +(  ' ( +int  ( + +)  + , +value  - 2 +:  3 4 +$num  5 6 +;  6 7 +var  +text  +=  +count  +==  +$num ! +?" # +pluralizationOptions$ 8 +[8 9 +$num9 : +]: ; +:< = +pluralizationOptions> R +[R S +$numS T +]T U +;U V +return  +$"  +{  +count  +}  +{  +text " +}" # +"# $ +;$ % +}  +public  +object  + ConvertBack ! +(! " +object" ( +value) . +,. / +Type0 4 + +targetType5 ? +,? @ +objectA G + parameterH Q +,Q R +stringS Y +languageZ b +)b c +{  +throw  +new # +NotImplementedException - +(- . +). / +;/ 0 +}  +}  +} Ú +ZC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\ProgressBarLegalValuesConverter.cs + namespace  + ModernKeePass +  +.  + +Converters " +{  +public + +class + +ProgressBarLegalValuesConverter 0 +:1 2 +IValueConverter3 B +{  +public  +object  +Convert  +(  +object $ +value% * +,* + +Type, 0 + +targetType1 ; +,; < +object= C + parameterD M +,M N +stringO U +languageV ^ +)^ _ +{    +var + + # +legalValuesOptionString + + ' += + +( ) + parameter + +* 3 +as + +4 6 +string + +7 = +; + += > +var    +legalValuesOptions   " +=  # $# +legalValuesOptionString  % < +?  < = +.  = > +Split  > C +(  C D +new  D G +[  G H +]  H I +{  J K +$str  L O +}  P Q +,  Q R +StringSplitOptions  S e +.  e f +RemoveEmptyEntries  f x +)  x y +;  y z +if    +(    +legalValuesOptions   " +==  # % +null  & * +||  + - +legalValuesOptions  . @ +.  @ A +Length  A G +!=  H J +$num  K L +)  L M +return  N T +$num  U V +;  V W +var  +minValue  +=  +double ! +.! " +Parse" ' +(' ( +legalValuesOptions( : +[: ; +$num; < +]< = +)= > +;> ? +var  +maxValue  +=  +double ! +.! " +Parse" ' +(' ( +legalValuesOptions( : +[: ; +$num; < +]< = +)= > +;> ? +var  +count  +=  +value  +is  +double! ' +?( ) +(* + +double+ 1 +)1 2 +value2 7 +:8 9 +$num: ; +;; < +if  +(  +count  +>  +maxValue  +) ! +return" ( +maxValue) 1 +;1 2 +if  +(  +count  +<  +minValue  +) ! +return" ( +minValue) 1 +;1 2 +return  +count  +;  +}  +public  +object  + ConvertBack ! +(! " +object" ( +value) . +,. / +Type0 4 + +targetType5 ? +,? @ +objectA G + parameterH Q +,Q R +stringS Y +languageZ b +)b c +{  +throw  +new # +NotImplementedException - +(- . +). / +;/ 0 +}  +}  +} á +OC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\TextToWidthConverter.cs + namespace  + ModernKeePass +  +.  + +Converters " +{  +public + +class  +TextToWidthConverter % +:& ' +IValueConverter( 7 +{  +public  +object  +Convert  +(  +object $ +value% * +,* + +Type, 0 + +targetType1 ; +,; < +object= C + parameterD M +,M N +stringO U +languageV ^ +)^ _ +{    +var + +  +fontSize + +  += + +  +double + + ! +. + +! " +Parse + +" ' +( + +' ( + parameter + +( 1 +as + +2 4 +string + +5 ; +) + +; < +; + +< = +var    +text    +=    +value    +as    +string   & +;  & ' +return    +text    +?    +.    +Length    +*   ! +fontSize  " * +??  + - +$num  . / +;  / 0 +}    +public  +object  + ConvertBack ! +(! " +object" ( +value) . +,. / +Type0 4 + +targetType5 ? +,? @ +objectA G + parameterH Q +,Q R +stringS Y +languageZ b +)b c +{  +throw  +new # +NotImplementedException - +(- . +). / +;/ 0 +}  +}  +}  +HC:\Sources\Other\ModernKeePass\ModernKeePass\Events\PasswordEventArgs.cs + namespace  + ModernKeePass +  +.  +Events  +{  +public + +class  +PasswordEventArgs " +:" # + EventArgs$ - +{  +public  +GroupVm  + RootGroup  +{! " +get# & +;& ' +set( + +;+ , +}- . +public + +  +PasswordEventArgs + +  +( + + ! +GroupVm + +! ( +groupVm + +) 0 +) + +0 1 +{    + RootGroup    +=    +groupVm    +;    +}    +}  +} € +EC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IIsEnabled.cs + namespace  + ModernKeePass +  +.  + +Interfaces " +{  +public + + interface  + +IIsEnabled  +{  +bool  + IsEnabled  +{  +get  +;  +}  +}  +} Ā +DC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IPwEntity.cs + namespace  + ModernKeePass +  +.  + +Interfaces " +{  +public + + interface  + IPwEntity  +{  +GroupVm  + ParentGroup  +{  +get ! +;! " +}# $ +GroupVm    + PreviousGroup    +{    +get   # +;  # $ +}  % & +int + +  +IconId + +  +{ + +  +get + +  +; + +  +} + +  +string    +Id    +{    +get    +;    +}    +string    +Name    +{    +get    +;    +set    +;    +}   ! + IEnumerable    +<    + IPwEntity    +>    + +BreadCrumb   ) +{  * + +get  , / +;  / 0 +}  1 2 +bool  + +IsEditMode  +{  +get  +;  +}  +bool  +IsRecycleOnDelete  +{  +get! $ +;$ % +}& ' +void  +Move  +(  +GroupVm  + destination % +)% & +;& ' +void  + CommitDelete  +(  +)  +;  +void  + +UndoDelete  +(  +)  +;  +void!!  +Save!!  +(!!  +)!!  +;!!  +void%%  + MarkForDelete%%  +(%%  +string%% ! +recycleBinTitle%%" 1 +)%%1 2 +;%%2 3 +}&&  +}'' į +CC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPage.xaml.cs + namespace  + ModernKeePass +  +.  +Views  +{  +public   + +sealed    +partial    +class    +MainPage   ( +{    +public  +new  +MainVm  +Model  +=> " +(# $ +MainVm$ * +)* + + DataContext+ 6 +;6 7 +public  +MainPage  +(  +)  +{  +InitializeComponent  +(  +) ! +;! " +ListView  +=  + MenuListView # +;# $ +ListViewSource  +=  +MenuItemsSource , +;, - +}  +private  +new  +void % +ListView_SelectionChanged 2 +(2 3 +object3 9 +sender: @ +,@ A% +SelectionChangedEventArgsB [ +e\ ] +)] ^ +{  +base  +. % +ListView_SelectionChanged * +(* + +sender+ 1 +,1 2 +e3 4 +)4 5 +;5 6 +var  + selectedItem  +=  +Model $ +.$ % + SelectedItem% 1 +as2 4 +MainMenuItemVm5 C +;C D +if  +(  + selectedItem  +==  +null $ +)$ % + MenuFrame& / +./ 0 +Navigate0 8 +(8 9 +typeof9 ? +(? @ + WelcomePage@ K +)K L +)L M +;M N +else  + selectedItem  +.  + Destination ) +.) * +Navigate* 2 +(2 3 + selectedItem3 ? +.? @ +PageType@ H +,H I + selectedItemJ V +.V W + ParameterW ` +)` a +;a b +}  + protected  +override  +void  + OnNavigatedTo - +(- . +NavigationEventArgs. A +eB C +)C D +{    +base!!  +.!!  + OnNavigatedTo!!  +(!!  +e!!  +)!! ! +;!!! " + DataContext""  +=""  +new""  +MainVm"" $ +(""$ % +Frame""% * +,""* + + MenuFrame"", 5 +)""5 6 +;""6 7 +}##  +}$$  +}%% û +SC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\AboutPage.xaml.cs + namespace  + ModernKeePass +  +.  +Views  +{  +public + +sealed  +partial  +class  + AboutPage ) +{    +public + +  + AboutPage + +  +( + +  +) + +  +{    +InitializeComponent    +(    +)   ! +;  ! " +}    +}  +} ķ +YC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\NewDatabasePage.xaml.cs + namespace   + ModernKeePass   +  +.    +Views    +{ + +  +public + +sealed  +partial  +class  +NewDatabasePage / +{  +public  +NewVm  +Model  +=>  +(  +NewVm $ +)$ % + DataContext% 0 +;0 1 +public  +NewDatabasePage  +(  +)  +{  +InitializeComponent  +(  +) ! +;! " +}  +private  +async  +void  +ButtonBase_OnClick - +(- . +object. 4 +sender5 ; +,; < +RoutedEventArgs= L +eM N +)N O +{  +var  + +savePicker  +=  +new  +FileSavePicker! / +{ " +SuggestedStartLocation & +=' ( +PickerLocationId) 9 +.9 : +DocumentsLibrary: J +,J K +SuggestedFileName ! +=" # +$str$ 2 +}  +;  + +savePicker  +.  +FileTypeChoices & +.& ' +Add' * +(* + +$str+ A +,A B +newC F +ListG K +<K L +stringL R +>R S +{T U +$strV ] +}^ _ +)_ ` +;` a +var    +file    +=    +await    + +savePicker   ' +.  ' ( +PickSaveFileAsync  ( 9 +(  9 : +)  : ; +;  ; < +if!!  +(!!  +file!!  +==!!  +null!!  +)!!  +return!! $ +;!!$ % +Model""  +.""  +OpenFile""  +(""  +file""  +)""  +;"" ! +}##  +}$$  +}%% œ +GC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPage.xaml.cs + namespace  + ModernKeePass +  +.  +Views  +{  +public   + +sealed    +partial    +class    + SettingsPage   , +{    +public  +new  + +SettingsVm  +Model # +=>$ & +(' ( + +SettingsVm( 2 +)2 3 + DataContext3 > +;> ? +public  + SettingsPage  +(  +)  +{  +InitializeComponent  +(  +) ! +;! " +ListView  +=  + MenuListView # +;# $ +ListViewSource  +=  +MenuItemsSource , +;, - +}  +private  +new  +void % +ListView_SelectionChanged 2 +(2 3 +object3 9 +sender: @ +,@ A% +SelectionChangedEventArgsB [ +e\ ] +)] ^ +{  +base  +. % +ListView_SelectionChanged * +(* + +sender+ 1 +,1 2 +e3 4 +)4 5 +;5 6 +var  + selectedItem  +=  +Model $ +.$ % + SelectedItem% 1 +as2 4 +ListMenuItemVm5 C +;C D + MenuFrame  +?  +.  +Navigate  +(  + selectedItem , +==- / +null0 4 +?5 6 +typeof7 = +(= > +SettingsWelcomePage> Q +)Q R +:S T + selectedItemU a +.a b +PageTypeb j +)j k +;k l +}  +}  +}  +UC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\WelcomePage.xaml.cs + namespace  + ModernKeePass +  +.  +Views  +{  +public + +sealed  +partial  +class  + WelcomePage + +{    +public + +  + WelcomePage + +  +( + +  +) + +  +{    +InitializeComponent    +(    +)   ! +;  ! " +}    +}  +} â +BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\AboutVm.cs + namespace  + ModernKeePass +  +.  + +ViewModels " +{  +public + +class  +AboutVm  +{  +private  +readonly  +Package  +_package! ) +;) * +public    +string    +Name    +=>    +_package   & +.  & ' + DisplayName  ' 2 +;  2 3 +public    +string    +Version    +{    +get    +{  +var  +version  +=  +_package & +.& ' +Id' ) +.) * +Version* 1 +;1 2 +return  +$"  +{  +version ! +.! " +Major" ' +}' ( +.( ) +{) * +version* 1 +.1 2 +Minor2 7 +}7 8 +"8 9 +;9 : +}  +}  +public  +AboutVm  +(  +)  +:  +this  +(  +Package ' +.' ( +Current( / +)/ 0 +{1 2 +}3 4 +public  +AboutVm  +(  +Package  +package & +)& ' +{  +_package  +=  +package  +;  +}  +}  +} ˆm +IC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\CompositeKeyVm.cs + namespace   + ModernKeePass   +  +.    + +ViewModels   " +{   +public + +class  +CompositeKeyVm  +: % +NotifyPropertyChangedBase! : +{  +public  +enum  + StatusTypes  +{  +Normal  +=  +$num  +,  +Error  +=  +$num  +,  +Warning  +=  +$num  +,  +Success  +=  +$num  +}  +public  +IDatabaseService  +Database ( +{) * +get+ . +;. / +set0 3 +;3 4 +}5 6 +public  +bool  + HasPassword  +{  +get  +{  +return  + _hasPassword % +;% & +}' ( +set  +{  + SetProperty  +(  +ref  + _hasPassword , +,, - +value. 3 +)3 4 +;4 5 +OnPropertyChanged   ! +(  ! " +$str  " + +)  + , +;  , - +}!!  +}""  +public$$  +bool$$  + +HasKeyFile$$  +{%%  +get&&  +{&&  +return&&  + _hasKeyFile&& $ +;&&$ % +}&&& ' +set''  +{((  + SetProperty))  +())  +ref))  + _hasKeyFile)) + +,))+ , +value))- 2 +)))2 3 +;))3 4 +OnPropertyChanged** ! +(**! " +$str**" + +)**+ , +;**, - +}++  +},,  +public..  +bool..  +HasUserAccount.. " +{//  +get00  +{00  +return00  +_hasUserAccount00 ( +;00( ) +}00* + +set11  +{22  + SetProperty33  +(33  +ref33  +_hasUserAccount33 / +,33/ 0 +value331 6 +)336 7 +;337 8 +OnPropertyChanged44 ! +(44! " +$str44" + +)44+ , +;44, - +}55  +}66  +public88  +bool88  +IsValid88  +=>88  +!88  + +_isOpening88 * +&&88+ - +(88. / + HasPassword88/ : +||88; = + +HasKeyFile88> H +&&88I K +KeyFile88L S +!=88T V +null88W [ +||88\ ^ +HasUserAccount88_ m +)88m n +;88n o +public::  +string::  +Status::  +{;;  +get<<  +{<<  +return<<  +_status<<  +;<< ! +}<<" # +set==  +{==  + SetProperty==  +(==  +ref== ! +_status==" ) +,==) * +value==+ 0 +)==0 1 +;==1 2 +}==3 4 +}>>  +public@@  +int@@  + +StatusType@@  +{AA  +getBB  +{BB  +returnBB  +(BB  +intBB  +)BB  + _statusTypeBB ) +;BB) * +}BB+ , +setCC  +{CC  + SetPropertyCC  +(CC  +refCC ! + _statusTypeCC" - +,CC- . +(CC/ 0 + StatusTypesCC0 ; +)CC; < +valueCC< A +)CCA B +;CCB C +}CCD E +}DD  +publicFF  +stringFF  +PasswordFF  +{GG  +getHH  +{HH  +returnHH  + _passwordHH " +;HH" # +}HH$ % +setII  +{JJ  + _passwordKK  +=KK  +valueKK ! +;KK! " +OnPropertyChangedLL ! +(LL! " +$strLL" ? +)LL? @ +;LL@ A + +StatusTypeMM  +=MM  +(MM  +intMM ! +)MM! " + StatusTypesMM" - +.MM- . +NormalMM. 4 +;MM4 5 +StatusNN  +=NN  +stringNN  +.NN  +EmptyNN % +;NN% & +}OO  +}PP  +publicRR  + StorageFileRR  +KeyFileRR " +{SS  +getTT  +{TT  +returnTT  +_keyFileTT ! +;TT! " +}TT# $ +setUU  +{VV  +_keyFileWW  +=WW  +valueWW  +;WW ! + KeyFileTextXX  +=XX  +valueXX # +?XX# $ +.XX$ % +NameXX% ) +;XX) * +OnPropertyChangedYY ! +(YY! " +$strYY" + +)YY+ , +;YY, - +}ZZ  +}[[  +public]]  +string]]  + KeyFileText]] ! +{^^  +get__  +{__  +return__  + _keyFileText__ % +;__% & +}__' ( +set``  +{``  + SetProperty``  +(``  +ref`` ! + _keyFileText``" . +,``. / +value``0 5 +)``5 6 +;``6 7 +}``8 9 +}aa  +publiccc  +GroupVmcc  + RootGroupcc  +{cc! " +getcc# & +;cc& ' +setcc( + +;cc+ , +}cc- . +publicee  +doubleee ' +PasswordComplexityIndicatoree 1 +=>ee2 4 +QualityEstimationee5 F +.eeF G +EstimatePasswordBitseeG [ +(ee[ \ +Passwordee\ d +?eed e +.eee f + ToCharArrayeef q +(eeq r +)eer s +)ees t +;eet u +privategg  +boolgg  + _hasPasswordgg ! +;gg! " +privatehh  +boolhh  + _hasKeyFilehh  +;hh ! +privateii  +boolii  +_hasUserAccountii $ +;ii$ % +privatejj  +booljj  + +_isOpeningjj  +;jj  +privatekk  +stringkk  + _passwordkk  +=kk! " +stringkk# ) +.kk) * +Emptykk* / +;kk/ 0 +privatell  +stringll  +_statusll  +;ll  +privatemm  + StatusTypesmm  + _statusTypemm ' +;mm' ( +privatenn  + StorageFilenn  +_keyFilenn $ +;nn$ % +privateoo  +stringoo  + _keyFileTextoo # +;oo# $ +privatepp  +readonlypp  +IResourceServicepp ) + _resourcepp* 3 +;pp3 4 +publicrr  +CompositeKeyVmrr  +(rr  +)rr  +:rr ! +thisrr" & +(rr& ' +DatabaseServicerr' 6 +.rr6 7 +Instancerr7 ? +,rr? @ +newrrA D +ResourcesServicerrE U +(rrU V +)rrV W +)rrW X +{rrY Z +}rr[ \ +publictt  +CompositeKeyVmtt  +(tt  +IDatabaseServicett . +databasett/ 7 +,tt7 8 +IResourceServicett9 I +resourcettJ R +)ttR S +{uu  + _resourcevv  +=vv  +resourcevv  +;vv ! + _keyFileTextww  +=ww  + _resourceww $ +.ww$ % +GetResourceValueww% 5 +(ww5 6 +$strww6 R +)wwR S +;wwS T +Databasexx  +=xx  +databasexx  +;xx  +}yy  +public{{  +async{{  +Task{{  +<{{  +bool{{  +>{{  + OpenDatabase{{ , +({{, - +bool{{- 1 + createNew{{2 ; +){{; < +{||  +try}}  +{~~  + +_isOpening  +=  +true ! +;! " +await +€€  +Database +€€  +. +€€  +Open +€€ # +( +€€# $ +CreateCompositeKey +€€$ 6 +( +€€6 7 +) +€€7 8 +, +€€8 9 + createNew +€€: C +) +€€C D +; +€€D E +await +  +Task +  +. +  +Run +  +( +  +( +  +) + ! +=> +" $ + RootGroup +% . += +/ 0 +Database +1 9 +. +9 : + RootGroup +: C +) +C D +; +D E +return +‚‚  +true +‚‚  +; +‚‚  +} +ƒƒ  +catch +„„  +( +„„  +ArgumentException +„„ $ +) +„„$ % +{ +……  +var +††  + errorMessage +††  += +††! " +new +††# & + StringBuilder +††' 4 +( +††4 5 +$" +††5 7 +{ +††7 8 + _resource +††8 A +. +††A B +GetResourceValue +††B R +( +††R S +$str +††S j +) +††j k +} +††k l +\n +††l n +" +††n o +) +††o p +; +††p q +if +‡‡  +( +‡‡  + HasPassword +‡‡  +) +‡‡  + errorMessage +‡‡! - +. +‡‡- . + +AppendLine +‡‡. 8 +( +‡‡8 9 + _resource +‡‡9 B +. +‡‡B C +GetResourceValue +‡‡C S +( +‡‡S T +$str +‡‡T s +) +‡‡s t +) +‡‡t u +; +‡‡u v +if +ˆˆ  +( +ˆˆ  + +HasKeyFile +ˆˆ  +) +ˆˆ  + errorMessage +ˆˆ , +. +ˆˆ, - + +AppendLine +ˆˆ- 7 +( +ˆˆ7 8 + _resource +ˆˆ8 A +. +ˆˆA B +GetResourceValue +ˆˆB R +( +ˆˆR S +$str +ˆˆS q +) +ˆˆq r +) +ˆˆr s +; +ˆˆs t +if +‰‰  +( +‰‰  +HasUserAccount +‰‰ " +) +‰‰" # + errorMessage +‰‰$ 0 +. +‰‰0 1 + +AppendLine +‰‰1 ; +( +‰‰; < + _resource +‰‰< E +. +‰‰E F +GetResourceValue +‰‰F V +( +‰‰V W +$str +‰‰W u +) +‰‰u v +) +‰‰v w +; +‰‰w x + UpdateStatus +ŠŠ  +( +ŠŠ  + errorMessage +ŠŠ ) +. +ŠŠ) * +ToString +ŠŠ* 2 +( +ŠŠ2 3 +) +ŠŠ3 4 +, +ŠŠ4 5 + StatusTypes +ŠŠ6 A +. +ŠŠA B +Error +ŠŠB G +) +ŠŠG H +; +ŠŠH I +} +‹‹  +catch +ŒŒ  +( +ŒŒ  + Exception +ŒŒ  +e +ŒŒ  +) +ŒŒ  +{ +  +var +ŽŽ  +error +ŽŽ  += +ŽŽ  +$" +ŽŽ  +{ +ŽŽ  + _resource +ŽŽ ( +. +ŽŽ( ) +GetResourceValue +ŽŽ) 9 +( +ŽŽ9 : +$str +ŽŽ: Q +) +ŽŽQ R +} +ŽŽR S +{ +ŽŽS T +e +ŽŽT U +. +ŽŽU V +Message +ŽŽV ] +} +ŽŽ] ^ +" +ŽŽ^ _ +; +ŽŽ_ ` + UpdateStatus +  +( +  +error + " +, +" # + StatusTypes +$ / +. +/ 0 +Error +0 5 +) +5 6 +; +6 7 +} +  +finally +‘‘  +{ +’’  + +_isOpening +““  += +““  +false +““ " +; +““" # +} +””  +return +••  +false +••  +; +••  +} +––  +public +˜˜  +void +˜˜  + UpdateKey +˜˜  +( +˜˜  +) +˜˜  +{ +™™  +Database +šš  +. +šš  + CompositeKey +šš ! += +šš" # +CreateCompositeKey +šš$ 6 +( +šš6 7 +) +šš7 8 +; +šš8 9 + UpdateStatus +››  +( +››  + _resource +›› " +. +››" # +GetResourceValue +››# 3 +( +››3 4 +$str +››4 I +) +››I J +, +››J K + StatusTypes +››L W +. +››W X +Success +››X _ +) +››_ ` +; +››` a +} +œœ  +public +žž  +void +žž  + CreateKeyFile +žž ! +( +žž! " + StorageFile +žž" - +file +žž. 2 +) +žž2 3 +{ +ŸŸ  + +KcpKeyFile +ĄĄ  +. +ĄĄ  +Create +ĄĄ  +( +ĄĄ  +file +ĄĄ " +, +ĄĄ" # +null +ĄĄ$ ( +) +ĄĄ( ) +; +ĄĄ) * +KeyFile +ĸĸ  += +ĸĸ  +file +ĸĸ  +; +ĸĸ  +} +ŖŖ  +private +ĨĨ  +void +ĨĨ  + UpdateStatus +ĨĨ ! +( +ĨĨ! " +string +ĨĨ" ( +text +ĨĨ) - +, +ĨĨ- . + StatusTypes +ĨĨ/ : +type +ĨĨ; ? +) +ĨĨ? @ +{ +ĻĻ  +Status +§§  += +§§  +text +§§  +; +§§  + +StatusType +¨¨  += +¨¨  +( +¨¨  +int +¨¨  +) +¨¨  +type +¨¨ " +; +¨¨" # +} +ŠŠ  +private +ĢĢ  + CompositeKey +ĢĢ  +CreateCompositeKey +ĢĢ / +( +ĢĢ/ 0 +) +ĢĢ0 1 +{ +ŦŦ  +var +­­  + compositeKey +­­  += +­­  +new +­­ " + CompositeKey +­­# / +( +­­/ 0 +) +­­0 1 +; +­­1 2 +if +ŽŽ  +( +ŽŽ  + HasPassword +ŽŽ  +) +ŽŽ  + compositeKey +ŽŽ ) +. +ŽŽ) * + +AddUserKey +ŽŽ* 4 +( +ŽŽ4 5 +new +ŽŽ5 8 + KcpPassword +ŽŽ9 D +( +ŽŽD E +Password +ŽŽE M +) +ŽŽM N +) +ŽŽN O +; +ŽŽO P +if +¯¯  +( +¯¯  + +HasKeyFile +¯¯  +&& +¯¯  +KeyFile +¯¯ % +!= +¯¯& ( +null +¯¯) - +) +¯¯- . + compositeKey +¯¯/ ; +. +¯¯; < + +AddUserKey +¯¯< F +( +¯¯F G +new +¯¯G J + +KcpKeyFile +¯¯K U +( +¯¯U V +IOConnectionInfo +¯¯V f +. +¯¯f g +FromFile +¯¯g o +( +¯¯o p +KeyFile +¯¯p w +) +¯¯w x +) +¯¯x y +) +¯¯y z +; +¯¯z { +if +°°  +( +°°  +HasUserAccount +°°  +) +°°  + compositeKey +°° , +. +°°, - + +AddUserKey +°°- 7 +( +°°7 8 +new +°°8 ; +KcpUserAccount +°°< J +( +°°J K +) +°°K L +) +°°L M +; +°°M N +return +ąą  + compositeKey +ąą  +; +ąą  +} +˛˛  +} +ŗŗ  +}´´ ¯ +OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\ListMenuItemVm.cs + namespace  + ModernKeePass +  +.  + +ViewModels " +{  +public + +class  +ListMenuItemVm  +: !% +NotifyPropertyChangedBase" ; +,; < + +IIsEnabled= G +,G H +ISelectableModelI Y +{    +private + +  +bool + +  + _isSelected + +  +; + + ! +public    +string    +Title    +{    +get   ! +;  ! " +set  # & +;  & ' +}  ( ) +public  +string  +Group  +{  +get ! +;! " +set# & +;& ' +}( ) +=* + +$str, / +;/ 0 +public  +Type  +PageType  +{  +get " +;" # +set$ ' +;' ( +}) * +public  +Symbol  + +SymbolIcon  +{! " +get# & +;& ' +set( + +;+ , +}- . +public  +bool  + IsEnabled  +{  +get # +;# $ +set% ( +;( ) +}* + +=, - +true. 2 +;2 3 +public  +bool  + +IsSelected  +{  +get  +{  +return  + _isSelected $ +;$ % +}& ' +set  +{  + SetProperty  +(  +ref ! + _isSelected" - +,- . +value/ 4 +)4 5 +;5 6 +}7 8 +}  +public  +override  +string  +ToString ' +(' ( +)( ) +{  +return  +Title  +;  +}  +}  +} ‰ +OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\MainMenuItemVm.cs + namespace  + ModernKeePass +  +.  + +ViewModels " +{  +public + +class  +MainMenuItemVm  +:  +ListMenuItemVm! / +{  +public  +object  + Parameter  +{ ! +get" % +;% & +set' * +;* + +}, - +public  +Frame  + Destination  +{! " +get# & +;& ' +set( + +;+ , +}- . +}    +} + + œ +MC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\RecentItemVm.cs + namespace  + ModernKeePass +  +.  + +ViewModels " +{  +public + +class  + RecentItemVm  +: % +NotifyPropertyChangedBase 8 +,8 9 +ISelectableModel: J +,J K + IRecentItemL W +{    +private + +  +bool + +  + _isSelected + +  +; + + ! +public    + StorageFile    + DatabaseFile   ' +{  ( ) +get  * - +;  - . +}  / 0 +public    +string    +Token    +{    +get   ! +;  ! " +}  # $ +public  +string  +Name  +{  +get  +; ! +}" # +public  +string  +Path  +=>  + DatabaseFile * +?* + +.+ , +Path, 0 +;0 1 +public  +bool  + +IsSelected  +{  +get  +{  +return  + _isSelected $ +;$ % +}& ' +set  +{  + SetProperty  +(  +ref ! + _isSelected" - +,- . +value/ 4 +)4 5 +;5 6 +}7 8 +}  +public  + RecentItemVm  +(  +)  +{  +}  +public  + RecentItemVm  +(  +string " +token# ( +,( ) +string* 0 +metadata1 9 +,9 : + IStorageItem; G +fileH L +)L M +{  +Token  +=  +token  +;  +Name  +=  +metadata  +;  + DatabaseFile  +=  +file  +as " + StorageFile# . +;. / +}  +public  +void  +OpenDatabaseFile $ +($ % +)% & +{    +OpenDatabaseFile!!  +(!!  +DatabaseService!! , +.!!, - +Instance!!- 5 +)!!5 6 +;!!6 7 +}""  +public$$  +void$$  +OpenDatabaseFile$$ $ +($$$ % +IDatabaseService$$% 5 +database$$6 > +)$$> ? +{%%  +database&&  +.&&  + DatabaseFile&& ! +=&&" # + DatabaseFile&&$ 0 +;&&0 1 +}''  +public))  +void))  +UpdateAccessTime)) $ +())$ % +)))% & +{**  +UpdateAccessTime++  +(++  + RecentService++ * +.++* + +Instance+++ 3 +)++3 4 +;++4 5 +},,  +public..  +async..  +void..  +UpdateAccessTime.. * +(..* + +IRecentService..+ 9 +recent..: @ +)..@ A +{//  +await00  +recent00  +.00  + GetFileAsync00 % +(00% & +Token00& + +)00+ , +;00, - +}11  +}22  +}33 Ĩ; +JC:\Sources\Other\ModernKeePass\ModernKeePass\Views\EntryDetailPage.xaml.cs + namespace   + ModernKeePass   +  +.    +Views    +{   +public + +sealed  +partial  +class  +EntryDetailPage / +{  +public  +EntryVm  +Model  +=>  +( ! +EntryVm! ( +)( ) + DataContext* 5 +;5 6 +public  +NavigationHelper  +NavigationHelper 0 +{1 2 +get3 6 +;6 7 +}8 9 +public  +EntryDetailPage  +(  +)  +{  +InitializeComponent  +(  +) ! +;! " +NavigationHelper  +=  +new " +NavigationHelper# 3 +(3 4 +this4 8 +)8 9 +;9 : +NavigationHelper  +.  + LoadState & ++=' )& +navigationHelper_LoadState* D +;D E +}    +private--  +void-- & +navigationHelper_LoadState-- / +(--/ 0 +object--0 6 +sender--7 = +,--= > +LoadStateEventArgs--? Q +e--R S +)--S T +{--U V +}--V W + protected::  +override::  +void::  + OnNavigatedTo:: - +(::- . +NavigationEventArgs::. A +e::B C +)::C D +{;;  +NavigationHelper<<  +.<<  + OnNavigatedTo<< * +(<<* + +e<<+ , +)<<, - +;<<- . +if==  +(==  +!==  +(==  +e==  +.==  + Parameter==  +is==  +EntryVm==! ( +)==( ) +)==) * +return==+ 1 +;==1 2 + DataContext>>  +=>>  +(>>  +EntryVm>> " +)>>" # +e>># $ +.>>$ % + Parameter>>% . +;>>. / +}??  + protectedAA  +overrideAA  +voidAA  +OnNavigatedFromAA / +(AA/ 0 +NavigationEventArgsAA0 C +eAAD E +)AAE F +{BB  +NavigationHelperCC  +.CC  +OnNavigatedFromCC , +(CC, - +eCC- . +)CC. / +;CC/ 0 +}DD  +privateHH  +voidHH  +DeleteButton_ClickHH ' +(HH' ( +objectHH( . +senderHH/ 5 +,HH5 6 +RoutedEventArgsHH7 F +eHHG H +)HHH I +{II  +varJJ  +resourceJJ  +=JJ  +newJJ  +ResourcesServiceJJ / +(JJ/ 0 +)JJ0 1 +;JJ1 2 +varKK  +messageKK  +=KK  +ModelKK  +.KK  +IsRecycleOnDeleteKK 1 +?LL  +resourceLL  +.LL  +GetResourceValueLL + +(LL+ , +$strLL, H +)LLH I +:MM  +resourceMM  +.MM  +GetResourceValueMM + +(MM+ , +$strMM, G +)MMG H +;MMH I +varNN  +textNN  +=NN  +ModelNN  +.NN  +IsRecycleOnDeleteNN . +?NN/ 0 +resourceNN1 9 +.NN9 : +GetResourceValueNN: J +(NNJ K +$strNNK Z +)NNZ [ +:NN\ ] +resourceNN^ f +.NNf g +GetResourceValueNNg w +(NNw x +$str NNx † +) +NN† ‡ +; +NN‡ ˆ +MessageDialogHelperOO  +.OO  +ShowActionDialogOO 0 +(OO0 1 +resourceOO1 9 +.OO9 : +GetResourceValueOO: J +(OOJ K +$strOOK ^ +)OO^ _ +,OO_ ` +messageOOa h +,OOh i +resourcePP  +.PP  +GetResourceValuePP ) +(PP) * +$strPP* D +)PPD E +,PPE F +resourceQQ  +.QQ  +GetResourceValueQQ ) +(QQ) * +$strQQ* D +)QQD E +,QQE F +aQQG H +=>QQI K +{RR # +ToastNotificationHelperSS ' +.SS' ( +ShowMovedToastSS( 6 +(SS6 7 +ModelSS7 < +,SS< = +resourceSS> F +.SSF G +GetResourceValueSSG W +(SSW X +$strSSX h +)SSh i +,SSi j +textSSk o +)SSo p +;SSp q +ModelTT  +.TT  + MarkForDeleteTT # +(TT# $ +resourceTT$ , +.TT, - +GetResourceValueTT- = +(TT= > +$strTT> O +)TTO P +)TTP Q +;TTQ R +ifUU  +(UU  +FrameUU  +.UU  + CanGoBackUU # +)UU# $ +FrameUU% * +.UU* + +GoBackUU+ 1 +(UU1 2 +)UU2 3 +;UU3 4 +}VV  +,VV  +nullVV  +)VV  +;VV  +}WW  +privateYY  +voidYY  +RestoreButton_ClickYY ( +(YY( ) +objectYY) / +senderYY0 6 +,YY6 7 +RoutedEventArgsYY8 G +eYYH I +)YYI J +{ZZ  +var[[  +resource[[  +=[[  +new[[  +ResourcesService[[ / +([[/ 0 +)[[0 1 +;[[1 2# +ToastNotificationHelper\\ # +.\\# $ +ShowMovedToast\\$ 2 +(\\2 3 +Model\\3 8 +,\\8 9 +resource\\: B +.\\B C +GetResourceValue\\C S +(\\S T +$str\\T i +)\\i j +,\\j k +resource\\l t +.\\t u +GetResourceValue \\u … +( +\\… † +$str +\\† • +) +\\• – +) +\\– — +; +\\— ˜ +if]]  +(]]  +Frame]]  +.]]  + CanGoBack]]  +)]]  +Frame]]! & +.]]& ' +GoBack]]' - +(]]- . +)]]. / +;]]/ 0 +}^^  +private``  +void`` ) +EntryDetailPage_OnSizeChanged`` 2 +(``2 3 +object``3 9 +sender``: @ +,``@ A +SizeChangedEventArgs``B V +e``W X +)``X Y +{aa  +VisualStateManagerbb  +.bb  + GoToStatebb ( +(bb( ) +thisbb) - +,bb- . +ebb/ 0 +.bb0 1 +NewSizebb1 8 +.bb8 9 +Widthbb9 > +<bb? @ +$numbbA D +?bbE F +$strbbG N +:bbO P +$strbbQ X +,bbX Y +truebbZ ^ +)bb^ _ +;bb_ ` +}cc  +privateee  +voidee 7 ++HamburgerMenuUserControl_OnSelectionChangedee @ +(ee@ A +objecteeA G +sendereeH N +,eeN O% +SelectionChangedEventArgseeP i +eeej k +)eek l +{ff  +vargg  +listViewgg  +=gg  +sendergg ! +asgg" $ +ListViewgg% - +;gg- . +EntryVmhh  +entryhh  +;hh  +switchii  +(ii  +listViewii  +?ii  +.ii  + SelectedIndexii + +)ii+ , +{jj  +casekk  +-kk  +$numkk  +:kk  +returnll  +;ll  +defaultmm  +:mm  +entrynn  +=nn  +listViewnn $ +?nn$ % +.nn% & + SelectedItemnn& 2 +asnn3 5 +EntryVmnn6 = +;nn= > +breakoo  +;oo  +}pp  + +StackPanelrr  +.rr  + DataContextrr " +=rr# $ +entryrr% * +;rr* + +}ss  +}tt  +}uu Šr +JC:\Sources\Other\ModernKeePass\ModernKeePass\Views\GroupDetailPage.xaml.cs + namespace  + ModernKeePass +  +.  +Views  +{  +public + +sealed  +partial  +class  +GroupDetailPage / +{  +public  +NavigationHelper  +NavigationHelper 0 +{1 2 +get3 6 +;6 7 +}8 9 +public  +GroupVm  +Model  +=>  +( ! +GroupVm! ( +)( ) + DataContext) 4 +;4 5 +public  +GroupDetailPage  +(  +)  +{  +InitializeComponent    +(    +)   ! +;  ! " +NavigationHelper!!  +=!!  +new!! " +NavigationHelper!!# 3 +(!!3 4 +this!!4 8 +)!!8 9 +;!!9 : +NavigationHelper""  +.""  + LoadState"" & ++=""' )& +navigationHelper_LoadState""* D +;""D E +}##  +private00  +void00 & +navigationHelper_LoadState00 / +(00/ 0 +object000 6 +sender007 = +,00= > +LoadStateEventArgs00? Q +e00R S +)00S T +{00U V +}00V W + protected==  +override==  +void==  + OnNavigatedTo== - +(==- . +NavigationEventArgs==. A +e==B C +)==C D +{>>  +NavigationHelper??  +.??  + OnNavigatedTo?? * +(??* + +e??+ , +)??, - +;??- . +ifAA  +(AA  +eAA  +.AA  + ParameterAA  +isAA  +PasswordEventArgsAA 0 +)AA0 1 + DataContextBB  +=BB  +(BB  +(BB  +PasswordEventArgsBB 1 +)BB1 2 +eBB3 4 +.BB4 5 + ParameterBB5 > +)BB> ? +.BB? @ + RootGroupBB@ I +;BBI J +elseCC  +ifCC  +(CC  +eCC  +.CC  + ParameterCC  +isCC! # +GroupVmCC$ + +)CC+ , + DataContextDD  +=DD  +(DD  +GroupVmDD & +)DD& ' +eDD( ) +.DD) * + ParameterDD* 3 +;DD3 4 +}EE  + protectedGG  +overrideGG  +voidGG  +OnNavigatedFromGG / +(GG/ 0 +NavigationEventArgsGG0 C +eGGD E +)GGE F +{HH  +NavigationHelperII  +.II  +OnNavigatedFromII , +(II, - +eII- . +)II. / +;II/ 0 +}JJ  +privatePP  +voidPP # +groups_SelectionChangedPP , +(PP, - +objectPP- 3 +senderPP4 : +,PP: ;% +SelectionChangedEventArgsPP< U +ePPV W +)PPW X +{QQ  +varRR  +listViewRR  +=RR  +senderRR ! +asRR" $ +ListViewRR% - +;RR- . +GroupVmSS  +groupSS  +;SS  +switchTT  +(TT  +listViewTT  +?TT  +.TT  + SelectedIndexTT + +)TT+ , +{UU  +caseVV  +-VV  +$numVV  +:VV  +returnWW  +;WW  +defaultXX  +:XX  +groupYY  +=YY  +listViewYY $ +?YY$ % +.YY% & + SelectedItemYY& 2 +asYY3 5 +GroupVmYY6 = +;YY= > +breakZZ  +;ZZ  +}[[  +Frame\\  +.\\  +Navigate\\  +(\\  +typeof\\ ! +(\\! " +GroupDetailPage\\" 1 +)\\1 2 +,\\2 3 +group\\4 9 +)\\9 : +;\\: ; +}]]  +private__  +void__ $ +entries_SelectionChanged__ - +(__- . +object__. 4 +sender__5 ; +,__; <% +SelectionChangedEventArgs__= V +e__W X +)__X Y +{``  +EntryVmaa  +entryaa  +;aa  +switchbb  +(bb  +GridViewbb  +.bb  + SelectedIndexbb * +)bb* + +{cc  +casedd  +-dd  +$numdd  +:dd  +returnee  +;ee  +defaultff  +:ff  +entrygg  +=gg  +GridViewgg $ +.gg$ % + SelectedItemgg% 1 +asgg2 4 +EntryVmgg5 < +;gg< = +breakhh  +;hh  +}ii  +Framejj  +.jj  +Navigatejj  +(jj  +typeofjj ! +(jj! " +EntryDetailPagejj" 1 +)jj1 2 +,jj2 3 +entryjj4 9 +)jj9 : +;jj: ; +}kk  +privatemm  +voidmm  +DeleteButton_Clickmm ' +(mm' ( +objectmm( . +sendermm/ 5 +,mm5 6 +RoutedEventArgsmm7 F +emmG H +)mmH I +{nn  +varoo  +resourceoo  +=oo  +newoo  +ResourcesServiceoo / +(oo/ 0 +)oo0 1 +;oo1 2 +varpp  +messagepp  +=pp  +Modelpp  +.pp  +IsRecycleOnDeletepp 1 +?qq  +resourceqq  +.qq  +GetResourceValueqq + +(qq+ , +$strqq, H +)qqH I +:rr  +resourcerr  +.rr  +GetResourceValuerr + +(rr+ , +$strrr, G +)rrG H +;rrH I +varss  +textss  +=ss  +Modelss  +.ss  +IsRecycleOnDeletess . +?ss/ 0 +resourcess1 9 +.ss9 : +GetResourceValuess: J +(ssJ K +$strssK Z +)ssZ [ +:ss\ ] +resourcess^ f +.ssf g +GetResourceValuessg w +(ssw x +$str ssx † +) +ss† ‡ +; +ss‡ ˆ +MessageDialogHelpertt  +.tt  +ShowActionDialogtt 0 +(tt0 1 +resourcett1 9 +.tt9 : +GetResourceValuett: J +(ttJ K +$strttK ^ +)tt^ _ +,tt_ ` +messagetta h +,tth i +resourceuu  +.uu  +GetResourceValueuu ) +(uu) * +$struu* D +)uuD E +,uuE F +resourcevv  +.vv  +GetResourceValuevv ) +(vv) * +$strvv* D +)vvD E +,vvE F +avvG H +=>vvI K +{ww # +ToastNotificationHelperxx + +.xx+ , +ShowMovedToastxx, : +(xx: ; +Modelxx; @ +,xx@ A +resourcexxB J +.xxJ K +GetResourceValuexxK [ +(xx[ \ +$strxx\ l +)xxl m +,xxm n +textxxo s +)xxs t +;xxt u +Modelyy  +.yy  + MarkForDeleteyy ' +(yy' ( +resourceyy( 0 +.yy0 1 +GetResourceValueyy1 A +(yyA B +$stryyB S +)yyS T +)yyT U +;yyU V +ifzz  +(zz  +Framezz  +.zz  + CanGoBackzz ' +)zz' ( +Framezz) . +.zz. / +GoBackzz/ 5 +(zz5 6 +)zz6 7 +;zz7 8 +}{{  +,{{  +null{{  +){{  +;{{  +}||  +private~~  +void~~  +RestoreButton_Click~~ ( +(~~( ) +object~~) / +sender~~0 6 +,~~6 7 +RoutedEventArgs~~8 G +e~~H I +)~~I J +{  +var +€€  +resource +€€  += +€€  +new +€€  +ResourcesService +€€ / +( +€€/ 0 +) +€€0 1 +; +€€1 2% +ToastNotificationHelper + # +. +# $ +ShowMovedToast +$ 2 +( +2 3 +Model +3 8 +, +8 9 +resource +: B +. +B C +GetResourceValue +C S +( +S T +$str +T i +) +i j +, +j k +resource +‚‚  +. +‚‚  +GetResourceValue +‚‚ ) +( +‚‚) * +$str +‚‚* 9 +) +‚‚9 : +) +‚‚: ; +; +‚‚; < +if +ƒƒ  +( +ƒƒ  +Frame +ƒƒ  +. +ƒƒ  + CanGoBack +ƒƒ  +) +ƒƒ  +Frame +ƒƒ! & +. +ƒƒ& ' +GoBack +ƒƒ' - +( +ƒƒ- . +) +ƒƒ. / +; +ƒƒ/ 0 +} +„„  +private +††  +void +†† , +SemanticZoom_ViewChangeStarted +†† 3 +( +††3 4 +object +††4 : +sender +††; A +, +††A B. + SemanticZoomViewChangedEventArgs +††C c +e +††d e +) +††e f +{ +‡‡  +if +‰‰  +( +‰‰  +e +‰‰  +. +‰‰ " +IsSourceZoomedInView +‰‰ & +== +‰‰' ) +false +‰‰* / +) +‰‰/ 0 +{ +ŠŠ  +e +‹‹  +. +‹‹  +DestinationItem +‹‹ ! +. +‹‹! " +Item +‹‹" & += +‹‹' ( +e +‹‹) * +. +‹‹* + + +SourceItem +‹‹+ 5 +. +‹‹5 6 +Item +‹‹6 : +; +‹‹: ; +} +ŒŒ  +} +  +private +ŽŽ  +void +ŽŽ % +CreateEntry_ButtonClick +ŽŽ , +( +ŽŽ, - +object +ŽŽ- 3 +sender +ŽŽ4 : +, +ŽŽ: ; +RoutedEventArgs +ŽŽ< K +e +ŽŽL M +) +ŽŽM N +{ +  +Frame +  +. +  +Navigate +  +( +  +typeof + ! +( +! " +EntryDetailPage +" 1 +) +1 2 +, +2 3 +Model +4 9 +. +9 : + AddNewEntry +: E +( +E F +) +F G +) +G H +; +H I +} +‘‘  +private +’’  +void +’’ % +CreateGroup_ButtonClick +’’ , +( +’’, - +object +’’- 3 +sender +’’4 : +, +’’: ; +RoutedEventArgs +’’< K +e +’’L M +) +’’M N +{ +““  +Frame +””  +. +””  +Navigate +””  +( +””  +typeof +”” ! +( +””! " +GroupDetailPage +””" 1 +) +””1 2 +, +””2 3 +Model +””4 9 +. +””9 : + AddNewGroup +””: E +( +””E F +) +””F G +) +””G H +; +””H I +} +••  +private +——  +void +—— ( +GridView_DragItemsStarting +—— / +( +——/ 0 +object +——0 6 +sender +——7 = +, +——= >( +DragItemsStartingEventArgs +——? Y +e +——Z [ +) +——[ \ +{ +˜˜  +e +™™  +. +™™  +Cancel +™™  += +™™  +! +™™  +Model +™™  +. +™™  + +IsEditMode +™™ ( +; +™™( ) +e +šš  +. +šš  +Data +šš  +. +šš  +RequestedOperation +šš % += +šš& '" +DataPackageOperation +šš( < +. +šš< = +Move +šš= A +; +ššA B +} +››  +private +  +void + . + SearchBox_OnSuggestionsRequested + 5 +( +5 6 + SearchBox +6 ? +sender +@ F +, +F G4 +&SearchBoxSuggestionsRequestedEventArgs +H n +args +o s +) +s t +{ +žž  +var +ŸŸ  +imageUri +ŸŸ  += +ŸŸ ) +RandomAccessStreamReference +ŸŸ 6 +. +ŸŸ6 7 + CreateFromUri +ŸŸ7 D +( +ŸŸD E +new +ŸŸE H +Uri +ŸŸI L +( +ŸŸL M +$str ŸŸM „ +) ŸŸ„ … +) ŸŸ… † +; ŸŸ† ‡ +var +    +results +    += +    +Model +    +. +    + +SubEntries +   * +. +  * + +Where +  + 0 +( +  0 1 +e +  1 2 +=> +  3 5 +e +  6 7 +. +  7 8 +Name +  8 < +. +  < = +IndexOf +  = D +( +  D E +args +  E I +. +  I J + QueryText +  J S +, +  S T +StringComparison +  U e +. +  e f +OrdinalIgnoreCase +  f w +) +  w x +>= +  y { +$num +  | } +) +  } ~ +. +  ~  +Take    ƒ +(   ƒ „ +$num   „ … +)   … † +;   † ‡ +foreach +ĄĄ  +( +ĄĄ  +var +ĄĄ  +result +ĄĄ  +in +ĄĄ " +results +ĄĄ# * +) +ĄĄ* + +{ +ĸĸ  +args +ŖŖ  +. +ŖŖ  +Request +ŖŖ  +. +ŖŖ ( +SearchSuggestionCollection +ŖŖ 7 +. +ŖŖ7 8$ +AppendResultSuggestion +ŖŖ8 N +( +ŖŖN O +result +ŖŖO U +. +ŖŖU V +Name +ŖŖV Z +, +ŖŖZ [ +result +ŖŖ\ b +. +ŖŖb c + ParentGroup +ŖŖc n +. +ŖŖn o +Name +ŖŖo s +, +ŖŖs t +result +ŖŖu { +. +ŖŖ{ | +Id +ŖŖ| ~ +, +ŖŖ~  +imageUri ŖŖ€ ˆ +, ŖŖˆ ‰ +string ŖŖŠ  +. ŖŖ ‘ +Empty ŖŖ‘ – +) ŖŖ– — +; ŖŖ— ˜ +} +¤¤  +} +ĨĨ  +private +§§  +void +§§ 0 +"SearchBox_OnResultSuggestionChosen +§§ 7 +( +§§7 8 + SearchBox +§§8 A +sender +§§B H +, +§§H I6 +(SearchBoxResultSuggestionChosenEventArgs +§§J r +args +§§s w +) +§§w x +{ +¨¨  +var +ŠŠ  +entry +ŠŠ  += +ŠŠ  +Model +ŠŠ  +. +ŠŠ  + +SubEntries +ŠŠ ( +. +ŠŠ( ) +FirstOrDefault +ŠŠ) 7 +( +ŠŠ7 8 +e +ŠŠ8 9 +=> +ŠŠ: < +e +ŠŠ= > +. +ŠŠ> ? +Id +ŠŠ? A +== +ŠŠB D +args +ŠŠE I +. +ŠŠI J +Tag +ŠŠJ M +) +ŠŠM N +; +ŠŠN O +Frame +ĒĒ  +. +ĒĒ  +Navigate +ĒĒ  +( +ĒĒ  +typeof +ĒĒ ! +( +ĒĒ! " +EntryDetailPage +ĒĒ" 1 +) +ĒĒ1 2 +, +ĒĒ2 3 +entry +ĒĒ4 9 +) +ĒĒ9 : +; +ĒĒ: ; +} +ĢĢ  +private +­­  +void +­­ + +GroupDetailPage_OnSizeChanged +­­ 2 +( +­­2 3 +object +­­3 9 +sender +­­: @ +, +­­@ A" +SizeChangedEventArgs +­­B V +e +­­W X +) +­­X Y +{ +ŽŽ  +VisualStateManager +¯¯  +. +¯¯  + GoToState +¯¯ ( +( +¯¯( ) +this +¯¯) - +, +¯¯- . +e +¯¯/ 0 +. +¯¯0 1 +NewSize +¯¯1 8 +. +¯¯8 9 +Width +¯¯9 > +< +¯¯? @ +$num +¯¯A D +? +¯¯E F +$str +¯¯G N +: +¯¯O P +$str +¯¯Q X +, +¯¯X Y +true +¯¯Z ^ +) +¯¯^ _ +; +¯¯_ ` +} +°°  +} +ŗŗ  +}´´ – +ZC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\OpenDatabasePage.xaml.cs + namespace + +  + ModernKeePass + + +  +. + +  +Views + +  +{   +public + +sealed  +partial  +class  +OpenDatabasePage 0 +{  +private  +Frame  + +_mainFrame  +; ! +public  +OpenVm  +Model  +=>  +(  +OpenVm & +)& ' + DataContext' 2 +;2 3 +public  +OpenDatabasePage  +(  +) ! +{  +InitializeComponent  +(  +) ! +;! " +}  + protected  +override  +void  + OnNavigatedTo - +(- . +NavigationEventArgs. A +eB C +)C D +{  +base  +.  + OnNavigatedTo  +(  +e  +) ! +;! " + +_mainFrame  +=  +e  +.  + Parameter $ +as% ' +Frame( - +;- . +}  +private    +async    +void    +ButtonBase_OnClick   - +(  - . +object  . 4 +sender  5 ; +,  ; < +RoutedEventArgs  = L +e  M N +)  N O +{!!  +var""  +picker""  +=""  +new##  +FileOpenPicker## " +{$$  +ViewMode%%  +=%%  +PickerViewMode%% - +.%%- . +List%%. 2 +,%%2 3" +SuggestedStartLocation&& * +=&&+ , +PickerLocationId&&- = +.&&= > +DocumentsLibrary&&> N +}''  +;''  +picker((  +.((  +FileTypeFilter(( ! +.((! " +Add((" % +(((% & +$str((& - +)((- . +;((. / +var++  +file++  +=++  +await++  +picker++ # +.++# $ +PickSingleFileAsync++$ 7 +(++7 8 +)++8 9 +;++9 : +if,,  +(,,  +file,,  +==,,  +null,,  +),,  +return,, $ +;,,$ % +Model--  +.--  +OpenFile--  +(--  +file--  +)--  +;-- ! +}..  +}//  +}00 ™ +]C:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\RecentDatabasesPage.xaml.cs + namespace  + ModernKeePass +  +.  +Views  +{  +public + +sealed  +partial  +class  +RecentDatabasesPage 3 +{    +public + +  +RecentDatabasesPage + + " +( + +" # +) + +# $ +{    +InitializeComponent    +(    +)   ! +;  ! " +}    +}  +} â +ZC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\SaveDatabasePage.xaml.cs + namespace   + ModernKeePass   +  +.    +Views    +{   +public + +sealed  +partial  +class  +SaveDatabasePage 0 +{  +private  +Frame  + +_mainFrame  +; ! +public  +SaveVm  +Model  +=>  +(  +SaveVm & +)& ' + DataContext' 2 +;2 3 +public  +SaveDatabasePage  +(  +) ! +{  +InitializeComponent  +(  +) ! +;! " +}  + protected  +override  +void  + OnNavigatedTo - +(- . +NavigationEventArgs. A +eB C +)C D +{  +base  +.  + OnNavigatedTo  +(  +e  +) ! +;! " + +_mainFrame  +=  +e  +.  + Parameter $ +as% ' +Frame( - +;- . +}  +private  +async  +void  +SaveButton_OnClick - +(- . +object. 4 +sender5 ; +,; < +RoutedEventArgs= L +eM N +)N O +{    +await!!  +Model!!  +.!!  +Save!!  +(!!  +)!!  +;!!  + +_mainFrame""  +.""  +Navigate""  +(""  +typeof"" & +(""& ' +MainPage""' / +)""/ 0 +)""0 1 +;""1 2 +}##  +private%%  +async%%  +void%%  +SaveAsButton_OnClick%% / +(%%/ 0 +object%%0 6 +sender%%7 = +,%%= > +RoutedEventArgs%%? N +e%%O P +)%%P Q +{&&  +var''  + +savePicker''  +=''  +new''  +FileSavePicker''! / +{(( " +SuggestedStartLocation)) & +=))' ( +PickerLocationId))) 9 +.))9 : +DocumentsLibrary)): J +,))J K +SuggestedFileName** ! +=**" # +$str**$ 2 +}++  +;++  + +savePicker,,  +.,,  +FileTypeChoices,, & +.,,& ' +Add,,' * +(,,* + +$str,,+ A +,,,A B +new,,C F +List,,G K +<,,K L +string,,L R +>,,R S +{,,T U +$str,,V ] +},,^ _ +),,_ ` +;,,` a +var..  +file..  +=..  +await..  + +savePicker.. ' +...' ( +PickSaveFileAsync..( 9 +(..9 : +)..: ; +;..; < +if//  +(//  +file//  +==//  +null//  +)//  +return// $ +;//$ % +Model00  +.00  +Save00  +(00  +file00  +)00  +;00  + +_mainFrame22  +.22  +Navigate22  +(22  +typeof22 & +(22& ' +MainPage22' / +)22/ 0 +)220 1 +;221 2 +}33  +}44  +}55 ī +GC:\Sources\Other\ModernKeePass\ModernKeePass\Properties\AssemblyInfo.cs +[  +assembly  +: + + AssemblyTitle  +(  +$str ( +)( ) +]) * +[  +assembly  +: + +AssemblyDescription  +(  +$str b +)b c +]c d +[   +assembly    +:   +! +AssemblyConfiguration    +(   ! +$str  ! # +)  # $ +]  $ % +[ + +  +assembly + +  +: + + + +AssemblyCompany + +  +( + +  +$str + + # +) + +# $ +] + +$ % +[   +assembly    +:   + +AssemblyProduct    +(    +$str   * +)  * + +]  + , +[   +assembly    +:   + +AssemblyCopyright    +(    +$str   / +)  / 0 +]  0 1 +[   +assembly    +:   + +AssemblyTrademark    +(    +$str    +)    +]   ! +[  +assembly  +: + +AssemblyCulture  +(  +$str  +)  +]  +[  +assembly  +: + +AssemblyVersion  +(  +$str % +)% & +]& ' +[  +assembly  +: + +AssemblyFileVersion  +(  +$str ) +)) * +]* + +[  +assembly  +: + + +ComVisible  +(  +false  +)  +] ĀÄ +BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\EntryVm.cs + namespace   + ModernKeePass   +  +.    + +ViewModels   " +{   +public + +class  +EntryVm  +: " +INotifyPropertyChanged 1 +,1 2 + IPwEntity3 < +,< = +ISelectableModel> N +{  +public  +GroupVm  + ParentGroup " +{# $ +get% ( +;( ) +private* 1 +set2 5 +;5 6 +}7 8 +public  +GroupVm  + PreviousGroup $ +{% & +get' * +;* + +private, 3 +set4 7 +;7 8 +}9 : +public  +System  +.  +Drawing  +.  +Color # +?# $ +BackgroundColor% 4 +=>5 7 +_pwEntry8 @ +?@ A +.A B +BackgroundColorB Q +;Q R +public  +System  +.  +Drawing  +.  +Color # +?# $ +ForegroundColor% 4 +=>5 7 +_pwEntry8 @ +?@ A +.A B +ForegroundColorB Q +;Q R +public  +bool # +IsRevealPasswordEnabled + +=>, . +!/ 0 +string0 6 +.6 7 + IsNullOrEmpty7 D +(D E +PasswordE M +)M N +;N O +public  +bool  + +HasExpired  +=> ! +HasExpirationDate" 3 +&&4 6 +_pwEntry7 ? +.? @ + +ExpiryTime@ J +<K L +DateTimeM U +.U V +NowV Y +;Y Z +public  +double ' +PasswordComplexityIndicator 1 +=>2 4 +QualityEstimation5 F +.F G +EstimatePasswordBitsG [ +([ \ +Password\ d +?d e +.e f + ToCharArrayf q +(q r +)r s +)s t +;t u +public  +bool $ +UpperCasePatternSelected , +{- . +get/ 2 +;2 3 +set4 7 +;7 8 +}9 : +=; < +true= A +;A B +public  +bool $ +LowerCasePatternSelected , +{- . +get/ 2 +;2 3 +set4 7 +;7 8 +}9 : +=; < +true= A +;A B +public  +bool ! +DigitsPatternSelected ) +{* + +get, / +;/ 0 +set1 4 +;4 5 +}6 7 +=8 9 +true: > +;> ? +public  +bool  +MinusPatternSelected ( +{) * +get+ . +;. / +set0 3 +;3 4 +}5 6 +public  +bool % +UnderscorePatternSelected - +{. / +get0 3 +;3 4 +set5 8 +;8 9 +}: ; +public  +bool  +SpacePatternSelected ( +{) * +get+ . +;. / +set0 3 +;3 4 +}5 6 +public  +bool " +SpecialPatternSelected * +{+ , +get- 0 +;0 1 +set2 5 +;5 6 +}7 8 +public  +bool # +BracketsPatternSelected + +{, - +get. 1 +;1 2 +set3 6 +;6 7 +}8 9 +public  +string  + CustomChars ! +{" # +get$ ' +;' ( +set) , +;, - +}. / +=0 1 +string2 8 +.8 9 +Empty9 > +;> ? +public    +PwUuid    +IdUuid    +=>    +_pwEntry   ( +?  ( ) +.  ) * +Uuid  * . +;  . / +public!!  +string!!  +Id!!  +=>!!  +_pwEntry!! $ +?!!$ % +.!!% & +Uuid!!& * +.!!* + + ToHexString!!+ 6 +(!!6 7 +)!!7 8 +;!!8 9 +public""  +bool""  +IsRecycleOnDelete"" % +=>""& ( + _database"") 2 +.""2 3 +RecycleBinEnabled""3 D +&&""E G +!""H I + ParentGroup""I T +.""T U + +IsSelected""U _ +;""_ ` +public##  + IEnumerable##  +<##  + IPwEntity## $ +>##$ % + +BreadCrumb##& 0 +=>##1 3 +new##4 7 +List##8 < +<##< = + IPwEntity##= F +>##F G +(##G H + ParentGroup##H S +.##S T + +BreadCrumb##T ^ +)##^ _ +{##` a + ParentGroup##a l +}##l m +;##m n +public''  +bool''  + +IsSelected''  +{''  +get''! $ +;''$ % +set''& ) +;'') * +}''+ , +=''- . +true''/ 3 +;''3 4 +public))  +double))  +PasswordLength)) $ +{**  +get++  +{++  +return++  +_passwordLength++ ( +;++( ) +}++* + +set,,  +{--  +_passwordLength..  +=.. ! +value.." ' +;..' (! +NotifyPropertyChanged// % +(//% & +$str//& 6 +)//6 7 +;//7 8 +}00  +}11  +public33  +string33  +Name33  +{44  +get55  +{55  +return55  + GetEntryValue55 & +(55& ' +PwDefs55' - +.55- . + +TitleField55. 8 +)558 9 +;559 : +}55; < +set66  +{66  + SetEntryValue66  +(66  +PwDefs66 & +.66& ' + +TitleField66' 1 +,661 2 +value663 8 +)668 9 +;669 : +}66; < +}77  +public::  +string::  +UserName::  +{;;  +get<<  +{<<  +return<<  + GetEntryValue<< & +(<<& ' +PwDefs<<' - +.<<- . + UserNameField<<. ; +)<<; < +;<<< = +}<<> ? +set==  +{==  + SetEntryValue==  +(==  +PwDefs== & +.==& ' + UserNameField==' 4 +,==4 5 +value==6 ; +)==; < +;==< = +}==> ? +}>>  +public@@  +string@@  +Password@@  +{AA  +getBB  +{BB  +returnBB  + GetEntryValueBB & +(BB& ' +PwDefsBB' - +.BB- . + PasswordFieldBB. ; +)BB; < +;BB< = +}BB> ? +setCC  +{DD  + SetEntryValueEE  +(EE  +PwDefsEE $ +.EE$ % + PasswordFieldEE% 2 +,EE2 3 +valueEE4 9 +)EE9 : +;EE: ;! +NotifyPropertyChangedFF % +(FF% & +$strFF& 0 +)FF0 1 +;FF1 2! +NotifyPropertyChangedGG % +(GG% & +$strGG& C +)GGC D +;GGD E +}HH  +}II  +publicKK  +stringKK  +UrlKK  +{LL  +getMM  +{MM  +returnMM  + GetEntryValueMM & +(MM& ' +PwDefsMM' - +.MM- . +UrlFieldMM. 6 +)MM6 7 +;MM7 8 +}MM9 : +setNN  +{NN  + SetEntryValueNN  +(NN  +PwDefsNN & +.NN& ' +UrlFieldNN' / +,NN/ 0 +valueNN1 6 +)NN6 7 +;NN7 8 +}NN9 : +}OO  +publicQQ  +stringQQ  +NotesQQ  +{RR  +getSS  +{SS  +returnSS  + GetEntryValueSS & +(SS& ' +PwDefsSS' - +.SS- . + +NotesFieldSS. 8 +)SS8 9 +;SS9 : +}SS; < +setTT  +{TT  + SetEntryValueTT  +(TT  +PwDefsTT & +.TT& ' + +NotesFieldTT' 1 +,TT1 2 +valueTT3 8 +)TT8 9 +;TT9 : +}TT; < +}UU  +publicWW  +intWW  +IconIdWW  +{XX  +getYY  +{ZZ  +if[[  +([[  +_pwEntry[[  +?[[  +.[[  +IconId[[ $ +!=[[% ' +null[[( , +)[[, - +return[[. 4 +([[5 6 +int[[6 9 +)[[9 : +_pwEntry[[; C +?[[C D +.[[D E +IconId[[E K +;[[K L +return\\  +-\\  +$num\\  +;\\  +}]]  +}^^  +public``  +DateTimeOffset``  + +ExpiryDate`` ( +{aa  +getbb  +{bb  +returnbb  +newbb  +DateTimeOffsetbb + +(bb+ , +_pwEntrybb, 4 +.bb4 5 + +ExpiryTimebb5 ? +.bb? @ +Datebb@ D +)bbD E +;bbE F +}bbG H +setcc  +{cc  +ifcc  +(cc  +HasExpirationDatecc ' +)cc' ( +_pwEntrycc) 1 +.cc1 2 + +ExpiryTimecc2 < +=cc= > +valuecc? D +.ccD E +DateTimeccE M +;ccM N +}ccO P +}dd  +publicff  +TimeSpanff  + +ExpiryTimeff " +{gg  +gethh  +{hh  +returnhh  +_pwEntryhh ! +.hh! " + +ExpiryTimehh" , +.hh, - + TimeOfDayhh- 6 +;hh6 7 +}hh8 9 +setii  +{ii  +ifii  +(ii  +HasExpirationDateii ' +)ii' ( +_pwEntryii) 1 +.ii1 2 + +ExpiryTimeii2 < +=ii= > +_pwEntryii? G +.iiG H + +ExpiryTimeiiH R +.iiR S +DateiiS W +.iiW X +AddiiX [ +(ii[ \ +valueii\ a +)iia b +;iib c +}iid e +}jj  +publicll  +boolll  + +IsEditModell  +{mm  +getnn  +{nn  +returnnn  + +IsSelectednn # +&&nn$ & + _isEditModenn' 2 +;nn2 3 +}nn4 5 +setoo  +{pp  + _isEditModeqq  +=qq  +valueqq # +;qq# $! +NotifyPropertyChangedrr % +(rr% & +$strrr& 2 +)rr2 3 +;rr3 4 +}ss  +}tt  +publicvv  +boolvv  + IsVisiblevv  +{ww  +getxx  +{xx  +returnxx  + +_isVisiblexx # +;xx# $ +}xx% & +setyy  +{zz  + +_isVisible{{  +={{  +value{{ " +;{{" #! +NotifyPropertyChanged|| % +(||% & +$str||& 1 +)||1 2 +;||2 3 +}}}  +}~~  +public +€€  +bool +€€  +IsRevealPassword +€€ $ +{ +  +get +‚‚  +{ +‚‚  +return +‚‚  +_isRevealPassword +‚‚ * +; +‚‚* + +} +‚‚, - +set +ƒƒ  +{ +„„  +_isRevealPassword +…… ! += +……" # +value +……$ ) +; +……) *# +NotifyPropertyChanged +†† % +( +††% & +$str +††& 8 +) +††8 9 +; +††9 : +} +‡‡  +} +ˆˆ  +public +‰‰  +bool +‰‰  +HasExpirationDate +‰‰ % +{ +ŠŠ  +get +‹‹  +{ +‹‹  +return +‹‹  +_pwEntry +‹‹ ! +. +‹‹! " +Expires +‹‹" ) +; +‹‹) * +} +‹‹+ , +set +ŒŒ  +{ +  +_pwEntry +ŽŽ  +. +ŽŽ  +Expires +ŽŽ  += +ŽŽ! " +value +ŽŽ# ( +; +ŽŽ( )# +NotifyPropertyChanged + % +( +% & +$str +& 9 +) +9 : +; +: ; +} +  +} +‘‘  +public +““  + IEnumerable +““  +< +““  + IPwEntity +““ $ +> +““$ % +History +““& - +{ +””  +get +••  +{ +––  +var +——  +history +——  += +——  +new +—— ! +List +——" & +< +——& ' +EntryVm +——' . +> +——. / +{ +——0 1 +this +——1 5 +} +——5 6 +; +——6 7 +foreach +˜˜  +( +˜˜  +var +˜˜  + historyEntry +˜˜ ) +in +˜˜* , +_pwEntry +˜˜- 5 +. +˜˜5 6 +History +˜˜6 = +) +˜˜= > +{ +™™  +history +šš  +. +šš  +Add +šš  +( +šš  +new +šš # +EntryVm +šš$ + +( +šš+ , + historyEntry +šš, 8 +, +šš8 9 + ParentGroup +šš: E +) +ššE F +{ +ššG H + +IsSelected +ššH R += +ššS T +false +ššU Z +} +ššZ [ +) +šš[ \ +; +šš\ ] +} +››  +return +  +history +  +; +  +} +žž  +} +ŸŸ  +public +ĄĄ  +event +ĄĄ ) +PropertyChangedEventHandler +ĄĄ 0 +PropertyChanged +ĄĄ1 @ +; +ĄĄ@ A +private +ŖŖ  +readonly +ŖŖ  +PwEntry +ŖŖ  +_pwEntry +ŖŖ! ) +; +ŖŖ) * +private +¤¤  +readonly +¤¤  +IDatabaseService +¤¤ ) + _database +¤¤* 3 +; +¤¤3 4 +private +ĨĨ  +readonly +ĨĨ  +IResourceService +ĨĨ ) + _resource +ĨĨ* 3 +; +ĨĨ3 4 +private +ĻĻ  +bool +ĻĻ  + _isEditMode +ĻĻ  +; +ĻĻ ! +private +§§  +bool +§§  +_isRevealPassword +§§ & +; +§§& ' +private +¨¨  +double +¨¨  +_passwordLength +¨¨ & += +¨¨' ( +$num +¨¨) + +; +¨¨+ , +private +ŠŠ  +bool +ŠŠ  + +_isVisible +ŠŠ  += +ŠŠ ! +true +ŠŠ" & +; +ŠŠ& ' +private +ĢĢ  +void +ĢĢ # +NotifyPropertyChanged +ĢĢ * +( +ĢĢ* + +string +ĢĢ+ 1 + propertyName +ĢĢ2 > +) +ĢĢ> ? +{ +ŦŦ  +PropertyChanged +­­  +? +­­  +. +­­  +Invoke +­­ # +( +­­# $ +this +­­$ ( +, +­­( ) +new +­­* -& +PropertyChangedEventArgs +­­. F +( +­­F G + propertyName +­­G S +) +­­S T +) +­­T U +; +­­U V +} +ŽŽ  +public +°°  +EntryVm +°°  +( +°°  +) +°°  +{ +°°  +} +°°  +internal +˛˛  +EntryVm +˛˛  +( +˛˛  +PwEntry +˛˛  +entry +˛˛! & +, +˛˛& ' +GroupVm +˛˛( / +parent +˛˛0 6 +) +˛˛6 7 +: +˛˛8 9 +this +˛˛: > +( +˛˛> ? +entry +˛˛? D +, +˛˛D E +parent +˛˛F L +, +˛˛L M +DatabaseService +˛˛N ] +. +˛˛] ^ +Instance +˛˛^ f +, +˛˛f g +new +˛˛h k +ResourcesService +˛˛l | +( +˛˛| } +) +˛˛} ~ +) +˛˛~  +{ ˛˛€  +} ˛˛‚ ƒ +public +´´  +EntryVm +´´  +( +´´  +PwEntry +´´  +entry +´´ $ +, +´´$ % +GroupVm +´´& - +parent +´´. 4 +, +´´4 5 +IDatabaseService +´´6 F +database +´´G O +, +´´O P +IResourceService +´´Q a +resource +´´b j +) +´´j k +{ +ĩĩ  + _database +ļļ  += +ļļ  +database +ļļ  +; +ļļ ! + _resource +ˇˇ  += +ˇˇ  +resource +ˇˇ  +; +ˇˇ ! +_pwEntry +¸¸  += +¸¸  +entry +¸¸  +; +¸¸  + ParentGroup +šš  += +šš  +parent +šš  +; +šš ! +} +ēē  +public +ŧŧ  +void +ŧŧ  +GeneratePassword +ŧŧ $ +( +ŧŧ$ % +) +ŧŧ% & +{ +ŊŊ  +var +žž  + pwProfile +žž  += +žž  +new +žž  + PwProfile +žž ) +{ +ŋŋ  + GeneratorType +ĀĀ  += +ĀĀ # +PasswordGeneratorType +ĀĀ 5 +. +ĀĀ5 6 +CharSet +ĀĀ6 = +, +ĀĀ= > +Length +ÁÁ  += +ÁÁ  +( +ÁÁ  +uint +ÁÁ  +) +ÁÁ  +PasswordLength +ÁÁ - +, +ÁÁ- . +CharSet +  += +  +new +  + PwCharSet + ' +( +ÂÂ' ( +) +ÂÂ( ) +} +Ãà  +; +Ãà  +if +ÅÅ  +( +ÅÅ & +UpperCasePatternSelected +ÅÅ ( +) +ÅÅ( ) + pwProfile +ÅÅ* 3 +. +ÅÅ3 4 +CharSet +ÅÅ4 ; +. +ÅÅ; < +Add +ÅÅ< ? +( +ÅÅ? @ + PwCharSet +ÅÅ@ I +. +ÅÅI J + UpperCase +ÅÅJ S +) +ÅÅS T +; +ÅÅT U +if +ÆÆ  +( +ÆÆ & +LowerCasePatternSelected +ÆÆ ( +) +ÆÆ( ) + pwProfile +ÆÆ* 3 +. +ÆÆ3 4 +CharSet +ÆÆ4 ; +. +ÆÆ; < +Add +ÆÆ< ? +( +ÆÆ? @ + PwCharSet +ÆÆ@ I +. +ÆÆI J + LowerCase +ÆÆJ S +) +ÆÆS T +; +ÆÆT U +if +ĮĮ  +( +ĮĮ # +DigitsPatternSelected +ĮĮ % +) +ĮĮ% & + pwProfile +ĮĮ' 0 +. +ĮĮ0 1 +CharSet +ĮĮ1 8 +. +ĮĮ8 9 +Add +ĮĮ9 < +( +ĮĮ< = + PwCharSet +ĮĮ= F +. +ĮĮF G +Digits +ĮĮG M +) +ĮĮM N +; +ĮĮN O +if +ČČ  +( +ČČ $ +SpecialPatternSelected +ČČ & +) +ČČ& ' + pwProfile +ČČ( 1 +. +ČČ1 2 +CharSet +ČČ2 9 +. +ČČ9 : +Add +ČČ: = +( +ČČ= > + PwCharSet +ČČ> G +. +ČČG H + SpecialChars +ČČH T +) +ČČT U +; +ČČU V +if +ÉÉ  +( +ÉÉ " +MinusPatternSelected +ÉÉ $ +) +ÉÉ$ % + pwProfile +ÉÉ& / +. +ÉÉ/ 0 +CharSet +ÉÉ0 7 +. +ÉÉ7 8 +Add +ÉÉ8 ; +( +ÉÉ; < +$char +ÉÉ< ? +) +ÉÉ? @ +; +ÉÉ@ A +if +ĘĘ  +( +ĘĘ ' +UnderscorePatternSelected +ĘĘ ) +) +ĘĘ) * + pwProfile +ĘĘ+ 4 +. +ĘĘ4 5 +CharSet +ĘĘ5 < +. +ĘĘ< = +Add +ĘĘ= @ +( +ĘĘ@ A +$char +ĘĘA D +) +ĘĘD E +; +ĘĘE F +if +ËË  +( +ËË " +SpacePatternSelected +ËË $ +) +ËË$ % + pwProfile +ËË& / +. +ËË/ 0 +CharSet +ËË0 7 +. +ËË7 8 +Add +ËË8 ; +( +ËË; < +$char +ËË< ? +) +ËË? @ +; +ËË@ A +if +ĖĖ  +( +ĖĖ % +BracketsPatternSelected +ĖĖ ' +) +ĖĖ' ( + pwProfile +ĖĖ) 2 +. +ĖĖ2 3 +CharSet +ĖĖ3 : +. +ĖĖ: ; +Add +ĖĖ; > +( +ĖĖ> ? + PwCharSet +ĖĖ? H +. +ĖĖH I +Brackets +ĖĖI Q +) +ĖĖQ R +; +ĖĖR S + pwProfile +ÎÎ  +. +ÎÎ  +CharSet +ÎÎ  +. +ÎÎ  +Add +ÎÎ ! +( +ÎÎ! " + CustomChars +ÎÎ" - +) +ÎÎ- . +; +ÎÎ. / +ProtectedString +ĐĐ  +password +ĐĐ $ +; +ĐĐ$ % + PwGenerator +ŅŅ  +. +ŅŅ  +Generate +ŅŅ  +( +ŅŅ ! +out +ŅŅ! $ +password +ŅŅ% - +, +ŅŅ- . + pwProfile +ŅŅ/ 8 +, +ŅŅ8 9 +null +ŅŅ: > +, +ŅŅ> ? +new +ŅŅ@ C# +CustomPwGeneratorPool +ŅŅD Y +( +ŅŅY Z +) +ŅŅZ [ +) +ŅŅ[ \ +; +ŅŅ\ ] +_pwEntry +ĶĶ  +? +ĶĶ  +. +ĶĶ  +Strings +ĶĶ  +. +ĶĶ  +Set +ĶĶ ! +( +ĶĶ! " +PwDefs +ĶĶ" ( +. +ĶĶ( ) + PasswordField +ĶĶ) 6 +, +ĶĶ6 7 +password +ĶĶ8 @ +) +ĶĶ@ A +; +ĶĶA B# +NotifyPropertyChanged +ÔÔ ! +( +ÔÔ! " +$str +ÔÔ" , +) +ÔÔ, - +; +ÔÔ- .# +NotifyPropertyChanged +ÕÕ ! +( +ÕÕ! " +$str +ÕÕ" ; +) +ÕÕ; < +; +ÕÕ< =# +NotifyPropertyChanged +ÖÖ ! +( +ÖÖ! " +$str +ÖÖ" ? +) +ÖÖ? @ +; +ÖÖ@ A +} +××  +private +ŲŲ  +string +ŲŲ  + GetEntryValue +ŲŲ $ +( +ŲŲ$ % +string +ŲŲ% + +key +ŲŲ, / +) +ŲŲ/ 0 +{ +ÚÚ  +return +ÛÛ  +_pwEntry +ÛÛ  +? +ÛÛ  +. +ÛÛ  +Strings +ÛÛ $ +. +ÛÛ$ % +GetSafe +ÛÛ% , +( +ÛÛ, - +key +ÛÛ- 0 +) +ÛÛ0 1 +. +ÛÛ1 2 + +ReadString +ÛÛ2 < +( +ÛÛ< = +) +ÛÛ= > +; +ÛÛ> ? +} +ÜÜ  +private +ŪŪ  +void +ŪŪ  + SetEntryValue +ŪŪ " +( +ŪŪ" # +string +ŪŪ# ) +key +ŪŪ* - +, +ŪŪ- . +string +ŪŪ/ 5 +newValue +ŪŪ6 > +) +ŪŪ> ? +{ +ßß  +_pwEntry +āā  +? +āā  +. +āā  +Strings +āā  +. +āā  +Set +āā ! +( +āā! " +key +āā" % +, +āā% & +new +āā' * +ProtectedString +āā+ : +( +āā: ; +true +āā; ? +, +āā? @ +newValue +āāA I +) +āāI J +) +āāJ K +; +āāK L +} +áá  +public +ãã  +void +ãã  + MarkForDelete +ãã ! +( +ãã! " +string +ãã" ( +recycleBinTitle +ãã) 8 +) +ãã8 9 +{ +ää  +if +åå  +( +åå  + _database +åå  +. +åå  +RecycleBinEnabled +åå + +&& +åå, . + _database +åå/ 8 +. +åå8 9 + +RecycleBin +åå9 C +? +ååC D +. +ååD E +IdUuid +ååE K +== +ååL N +null +ååO S +) +ååS T + _database +ææ  +. +ææ  +CreateRecycleBin +ææ * +( +ææ* + +recycleBinTitle +ææ+ : +) +ææ: ; +; +ææ; < +Move +įį  +( +įį  + _database +įį  +. +įį  +RecycleBinEnabled +įį , +&& +įį- / +! +įį0 1 + ParentGroup +įį1 < +. +įį< = + +IsSelected +įį= G +? +įįH I + _database +įįJ S +. +įįS T + +RecycleBin +įįT ^ +: +įį_ ` +null +įįa e +) +įįe f +; +įįf g +} +čč  +public +ęę  +void +ęę  + +UndoDelete +ęę  +( +ęę  +) +ęę  +{ +ëë  +Move +ėė  +( +ėė  + PreviousGroup +ėė  +) +ėė  +; +ėė  +} +íí  +public +īī  +void +īī  +Move +īī  +( +īī  +GroupVm +īī  + destination +īī! , +) +īī, - +{ +đđ  + PreviousGroup +ņņ  += +ņņ  + ParentGroup +ņņ ' +; +ņņ' ( + PreviousGroup +ōō  +. +ōō  +Entries +ōō ! +. +ōō! " +Remove +ōō" ( +( +ōō( ) +this +ōō) - +) +ōō- . +; +ōō. / +if +ķķ  +( +ķķ  + destination +ķķ  +== +ķķ  +null +ķķ # +) +ķķ# $ +{ +ôô  + _database +õõ  +. +õõ  +AddDeletedItem +õõ ( +( +õõ( ) +IdUuid +õõ) / +) +õõ/ 0 +; +õõ0 1 +return +öö  +; +öö  +} +÷÷  + ParentGroup +øø  += +øø  + destination +øø % +; +øø% & + ParentGroup +ųų  +. +ųų  +Entries +ųų  +. +ųų  +Add +ųų # +( +ųų# $ +this +ųų$ ( +) +ųų( ) +; +ųų) * +} +úú  +public +üü  +void +üü  + CommitDelete +üü  +( +üü ! +) +üü! " +{ +ũũ  +_pwEntry +ūū  +. +ūū  + ParentGroup +ūū  +. +ūū ! +Entries +ūū! ( +. +ūū( ) +Remove +ūū) / +( +ūū/ 0 +_pwEntry +ūū0 8 +) +ūū8 9 +; +ūū9 : +if +˙˙  +( +˙˙  +! +˙˙  + _database +˙˙  +. +˙˙  +RecycleBinEnabled +˙˙ , +|| +˙˙- / + PreviousGroup +˙˙0 = +. +˙˙= > + +IsSelected +˙˙> H +) +˙˙H I + _database +˙˙J S +. +˙˙S T +AddDeletedItem +˙˙T b +( +˙˙b c +IdUuid +˙˙c i +) +˙˙i j +; +˙˙j k +} +€€  +public +‚‚  +void +‚‚  +Save +‚‚  +( +‚‚  +) +‚‚  +{ +ƒƒ  + _database +„„  +. +„„  +Save +„„  +( +„„  +) +„„  +; +„„  +} +……  +public +‡‡  +PwEntry +‡‡  + +GetPwEntry +‡‡ ! +( +‡‡! " +) +‡‡" # +{ +ˆˆ  +return +‰‰  +_pwEntry +‰‰  +; +‰‰  +} +ŠŠ  +public +ŒŒ  +override +ŒŒ  +string +ŒŒ  +ToString +ŒŒ ' +( +ŒŒ' ( +) +ŒŒ( ) +{ +  +return +ŽŽ  + +IsSelected +ŽŽ  +? +ŽŽ  + _resource +ŽŽ ) +. +ŽŽ) * +GetResourceValue +ŽŽ* : +( +ŽŽ: ; +$str +ŽŽ; I +) +ŽŽI J +: +ŽŽK L +_pwEntry +ŽŽM U +. +ŽŽU V" +LastModificationTime +ŽŽV j +. +ŽŽj k +ToString +ŽŽk s +( +ŽŽs t +$str +ŽŽt w +) +ŽŽw x +; +ŽŽx y +} +  +} +  +}‘‘ čŗ +BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\GroupVm.cs + namespace   + ModernKeePass   +  +.    + +ViewModels   " +{   +public   + +class    +GroupVm    +:   % +NotifyPropertyChangedBase   4 +,  4 5 + IPwEntity  6 ? +,  ? @ +ISelectableModel  A Q +{  +public  +GroupVm  + ParentGroup " +{# $ +get% ( +;( ) +private* 1 +set2 5 +;5 6 +}7 8 +public  +GroupVm  + PreviousGroup $ +{% & +get' * +;* + +private, 3 +set4 7 +;7 8 +}9 : +public  +ObservableCollection # +<# $ +EntryVm$ + +>+ , +Entries- 4 +{  +get  +{  +return  +_entries ! +;! " +}# $ +private  +set  +{  + SetProperty % +(% & +ref& ) +_entries* 2 +,2 3 +value4 9 +)9 : +;: ; +}< = +}  +public  + IEnumerable  +<  +EntryVm " +>" # + +SubEntries$ . +{  +get  +{  +var  + +subEntries  +=  +new! $ +List% ) +<) * +EntryVm* 1 +>1 2 +(2 3 +)3 4 +;4 5 + +subEntries  +.  +AddRange # +(# $ +Entries$ + +)+ , +;, - +foreach  +(  +var  +group " +in# % +Groups& , +), - +{  + +subEntries    +.    +AddRange   ' +(  ' ( +group  ( - +.  - . + +SubEntries  . 8 +)  8 9 +;  9 : +}!!  +return##  + +subEntries## ! +;##! " +}$$  +}%%  +public''  +ObservableCollection'' # +<''# $ +GroupVm''$ + +>''+ , +Groups''- 3 +{''4 5 +get''6 9 +;''9 : +set''; > +;''> ? +}''@ A +=''B C +new''D G +ObservableCollection''H \ +<''\ ] +GroupVm''] d +>''d e +(''e f +)''f g +;''g h +public))  +PwUuid))  +IdUuid))  +=>))  +_pwGroup)) ( +?))( ) +.))) * +Uuid))* . +;)). / +public**  +string**  +Id**  +=>**  +IdUuid** " +?**" # +.**# $ + ToHexString**$ / +(**/ 0 +)**0 1 +;**1 2 +public++  +bool++  + IsNotRoot++  +=>++  + ParentGroup++! , +!=++- / +null++0 4 +;++4 5 +public--  +bool--  + ShowRestore--  +=>-- " + IsNotRoot--# , +&&--- / + ParentGroup--0 ; +.--; < + +IsSelected--< F +;--F G +public//  +bool//  +IsRecycleOnDelete// % +=>//& ( + _database//) 2 +.//2 3 +RecycleBinEnabled//3 D +&&//E G +!//H I + +IsSelected//I S +&&//T V +!//W X + ParentGroup//X c +.//c d + +IsSelected//d n +;//n o +public44  +bool44  + +IsSelected44  +{55  +get66  +{66  +return66  + _database66 " +!=66# % +null66& * +&&66+ - + _database66. 7 +.667 8 +RecycleBinEnabled668 I +&&66J L + _database66M V +.66V W + +RecycleBin66W a +?66a b +.66b c +Id66c e +==66f h +Id66i k +;66k l +}66m n +set77  +{88  +if99  +(99  +value99  +&&99  +_pwGroup99 % +!=99& ( +null99) - +)99- . + _database99/ 8 +.998 9 + +RecycleBin999 C +=99D E +this99F J +;99J K +}::  +};;  +public==  +IOrderedEnumerable== ! +<==! " + IGrouping==" + +<==+ , +char==, 0 +,==0 1 +EntryVm==2 9 +>==9 : +>==: ; +EntriesZoomedOut==< L +=>==M O +from==P T +e==U V +in==W Y +Entries==Z a +group>>  +e>>  +by>>  +e>>  +.>>  +Name>>  +.>>  +ToUpper>> % +(>>% & +)>>& ' +.>>' ( +FirstOrDefault>>( 6 +(>>6 7 +)>>7 8 +into>>9 = +grp>>> A +orderby??  +grp??  +.??  +Key??  +select@@  +grp@@  +;@@  +publicBB  +stringBB  +NameBB  +{CC  +getDD  +{DD  +returnDD  +_pwGroupDD ! +==DD" $ +nullDD% ) +?DD* + +stringDD, 2 +.DD2 3 +EmptyDD3 8 +:DD9 : +_pwGroupDD; C +.DDC D +NameDDD H +;DDH I +}DDJ K +setEE  +{EE  +_pwGroupEE  +.EE  +NameEE  +=EE ! +valueEE" ' +;EE' ( +}EE) * +}FF  +publicHH  +intHH  +IconIdHH  +{II  +getJJ  +{KK  +ifLL  +(LL  +_pwGroupLL  +?LL  +.LL  +IconIdLL $ +!=LL% ' +nullLL( , +)LL, - +returnLL. 4 +(LL5 6 +intLL6 9 +)LL9 : +_pwGroupLL; C +?LLC D +.LLD E +IconIdLLE K +;LLK L +returnMM  +-MM  +$numMM  +;MM  +}NN  +setOO  +{OO  +_pwGroupOO  +.OO  +IconIdOO ! +=OO" # +(OO$ % +PwIconOO% + +)OO+ , +valueOO, 1 +;OO1 2 +}OO3 4 +}PP  +publicRR  +boolRR  + +IsEditModeRR  +{SS  +getTT  +{TT  +returnTT  + _isEditModeTT $ +;TT$ % +}TT& ' +setUU  +{UU  + SetPropertyUU  +(UU  +refUU ! + _isEditModeUU" - +,UU- . +valueUU/ 4 +)UU4 5 +;UU5 6 +}UU7 8 +}VV  +publicXX  +boolXX  + IsMenuClosedXX  +{YY  +getZZ  +{ZZ  +returnZZ  + _isMenuClosedZZ & +;ZZ& ' +}ZZ( ) +set[[  +{[[  + SetProperty[[  +([[  +ref[[ ! + _isMenuClosed[[" / +,[[/ 0 +value[[1 6 +)[[6 7 +;[[7 8 +}[[9 : +}\\  +public^^  + IEnumerable^^  +<^^  + IPwEntity^^ $ +>^^$ % + +BreadCrumb^^& 0 +{__  +get``  +{aa  +varbb  +groupsbb  +=bb  +newbb  +Stackbb! & +<bb& ' +GroupVmbb' . +>bb. / +(bb/ 0 +)bb0 1 +;bb1 2 +varcc  +groupcc  +=cc  +thiscc  +;cc ! +whiledd  +(dd  +groupdd  +.dd  + ParentGroupdd ( +!=dd) + +nulldd, 0 +)dd0 1 +{ee  +groupff  +=ff  +groupff ! +.ff! " + ParentGroupff" - +;ff- . +groupsgg  +.gg  +Pushgg  +(gg  +groupgg % +)gg% & +;gg& ' +}hh  +returnjj  +groupsjj  +;jj  +}kk  +}ll  +privatenn  +readonlynn  +PwGroupnn  +_pwGroupnn! ) +;nn) * +privateoo  +readonlyoo  +IDatabaseServiceoo ) + _databaseoo* 3 +;oo3 4 +privatepp  +boolpp  + _isEditModepp  +;pp ! +privateqq  +PwEntryqq  +_reorderedEntryqq ' +;qq' ( +privaterr  +ObservableCollectionrr $ +<rr$ % +EntryVmrr% , +>rr, - +_entriesrr. 6 +=rr7 8 +newrr9 < +ObservableCollectionrr= Q +<rrQ R +EntryVmrrR Y +>rrY Z +(rrZ [ +)rr[ \ +;rr\ ] +privatess  +boolss  + _isMenuClosedss " +=ss# $ +truess% ) +;ss) * +publicuu  +GroupVmuu  +(uu  +)uu  +{uu  +}uu  +internalww  +GroupVmww  +(ww  +PwGroupww  +pwGroupww! ( +,ww( ) +GroupVmww* 1 +parentww2 8 +,ww8 9 +PwUuidww: @ + recycleBinIdwwA M +=wwN O +nullwwP T +)wwT U +:wwV W +thiswwX \ +(ww\ ] +pwGroupww] d +,wwd e +parentwwf l +,wwl m +DatabaseServicexx  +.xx  +Instancexx $ +,xx$ % + recycleBinIdxx& 2 +)xx2 3 +{yy  +}yy +  +public{{  +GroupVm{{  +({{  +PwGroup{{  +pwGroup{{ & +,{{& ' +GroupVm{{( / +parent{{0 6 +,{{6 7 +IDatabaseService{{8 H +database{{I Q +,{{Q R +PwUuid{{S Y + recycleBinId{{Z f +={{g h +null{{i m +){{m n +{||  +_pwGroup}}  +=}}  +pwGroup}}  +;}}  + _database~~  +=~~  +database~~  +;~~ ! + ParentGroup  +=  +parent  +; ! +if +  +( +  + recycleBinId +  +!= +  +null + $ +&& +% ' +_pwGroup +( 0 +. +0 1 +Uuid +1 5 +. +5 6 +Equals +6 < +( +< = + recycleBinId += I +) +I J +) +J K + _database +L U +. +U V + +RecycleBin +V ` += +a b +this +c g +; +g h +Entries +‚‚  += +‚‚  +new +‚‚ " +ObservableCollection +‚‚ . +< +‚‚. / +EntryVm +‚‚/ 6 +> +‚‚6 7 +( +‚‚7 8 +pwGroup +‚‚8 ? +. +‚‚? @ +Entries +‚‚@ G +. +‚‚G H +Select +‚‚H N +( +‚‚N O +e +‚‚O P +=> +‚‚Q S +new +‚‚T W +EntryVm +‚‚X _ +( +‚‚_ ` +e +‚‚` a +, +‚‚a b +this +‚‚c g +) +‚‚g h +) +‚‚h i +) +‚‚i j +; +‚‚j k +Entries +ƒƒ  +. +ƒƒ  +CollectionChanged +ƒƒ % ++= +ƒƒ& (' +Entries_CollectionChanged +ƒƒ) B +; +ƒƒB C +Groups +„„  += +„„  +new +„„ " +ObservableCollection +„„ - +< +„„- . +GroupVm +„„. 5 +> +„„5 6 +( +„„6 7 +pwGroup +„„7 > +. +„„> ? +Groups +„„? E +. +„„E F +Select +„„F L +( +„„L M +g +„„M N +=> +„„O Q +new +„„R U +GroupVm +„„V ] +( +„„] ^ +g +„„^ _ +, +„„_ ` +this +„„a e +, +„„e f + recycleBinId +„„g s +) +„„s t +) +„„t u +) +„„u v +; +„„v w +} +……  +private +‡‡  +void +‡‡ ' +Entries_CollectionChanged +‡‡ . +( +‡‡. / +object +‡‡/ 5 +sender +‡‡6 < +, +‡‡< =. + NotifyCollectionChangedEventArgs +‡‡> ^ +e +‡‡_ ` +) +‡‡` a +{ +ˆˆ  +switch +‰‰  +( +‰‰  +e +‰‰  +. +‰‰  +Action +‰‰  +) +‰‰  +{ +ŠŠ  +case +‹‹ + +NotifyCollectionChangedAction +‹‹ 2 +. +‹‹2 3 +Remove +‹‹3 9 +: +‹‹9 : +var +ŒŒ  +oldIndex +ŒŒ  += +ŒŒ! " +( +ŒŒ# $ +uint +ŒŒ$ ( +) +ŒŒ( ) +e +ŒŒ* + +. +ŒŒ+ , +OldStartingIndex +ŒŒ, < +; +ŒŒ< = +_reorderedEntry + $ += +% & +_pwGroup +' / +. +/ 0 +Entries +0 7 +. +7 8 +GetAt +8 = +( += > +oldIndex +> F +) +F G +; +G H +_pwGroup +ŽŽ  +. +ŽŽ  +Entries +ŽŽ $ +. +ŽŽ$ % +RemoveAt +ŽŽ% - +( +ŽŽ- . +oldIndex +ŽŽ. 6 +) +ŽŽ6 7 +; +ŽŽ7 8 +break +  +; +  +case + + +NotifyCollectionChangedAction + 2 +. +2 3 +Add +3 6 +: +6 7 +if +‘‘  +( +‘‘  +_reorderedEntry +‘‘ ' +== +‘‘( * +null +‘‘+ / +) +‘‘/ 0 +_pwGroup +‘‘1 9 +. +‘‘9 : +AddEntry +‘‘: B +( +‘‘B C +( +‘‘C D +( +‘‘D E +EntryVm +‘‘E L +) +‘‘L M +e +‘‘N O +. +‘‘O P +NewItems +‘‘P X +[ +‘‘X Y +$num +‘‘Y Z +] +‘‘Z [ +) +‘‘[ \ +. +‘‘\ ] + +GetPwEntry +‘‘] g +( +‘‘g h +) +‘‘h i +, +‘‘i j +true +‘‘k o +) +‘‘o p +; +‘‘p q +else +’’  +_pwGroup +’’ ! +. +’’! " +Entries +’’" ) +. +’’) * +Insert +’’* 0 +( +’’0 1 +( +’’1 2 +uint +’’2 6 +) +’’6 7 +e +’’7 8 +. +’’8 9 +NewStartingIndex +’’9 I +, +’’I J +_reorderedEntry +’’K Z +) +’’Z [ +; +’’[ \ +break +““  +; +““  +} +””  +} +••  +public +——  +GroupVm +——  + AddNewGroup +—— " +( +——" # +string +——# ) +name +——* . += +——/ 0 +$str +——1 3 +) +——3 4 +{ +˜˜  +var +™™  +pwGroup +™™  += +™™  +new +™™  +PwGroup +™™ % +( +™™% & +true +™™& * +, +™™* + +true +™™, 0 +, +™™0 1 +name +™™2 6 +, +™™6 7 +PwIcon +™™8 > +. +™™> ? +Folder +™™? E +) +™™E F +; +™™F G +_pwGroup +šš  +. +šš  +AddGroup +šš  +( +šš  +pwGroup +šš % +, +šš% & +true +šš' + +) +šš+ , +; +šš, - +var +››  +newGroup +››  += +››  +new +››  +GroupVm +›› & +( +››& ' +pwGroup +››' . +, +››. / +this +››0 4 +) +››4 5 +{ +››6 7 +Name +››7 ; += +››< = +name +››> B +, +››B C + +IsEditMode +››D N += +››O P +string +››Q W +. +››W X + IsNullOrEmpty +››X e +( +››e f +name +››f j +) +››j k +} +››k l +; +››l m +Groups +œœ  +. +œœ  +Add +œœ  +( +œœ  +newGroup +œœ  +) +œœ  +; +œœ ! +return +  +newGroup +  +; +  +} +žž  +public +    +EntryVm +    + AddNewEntry +   " +( +  " # +) +  # $ +{ +ĄĄ  +var +ĸĸ  +pwEntry +ĸĸ  += +ĸĸ  +new +ĸĸ  +PwEntry +ĸĸ % +( +ĸĸ% & +true +ĸĸ& * +, +ĸĸ* + +true +ĸĸ, 0 +) +ĸĸ0 1 +; +ĸĸ1 2 +var +ŖŖ  +newEntry +ŖŖ  += +ŖŖ  +new +ŖŖ  +EntryVm +ŖŖ & +( +ŖŖ& ' +pwEntry +ŖŖ' . +, +ŖŖ. / +this +ŖŖ0 4 +) +ŖŖ4 5 +{ +ŖŖ6 7 + +IsEditMode +ŖŖ7 A += +ŖŖB C +true +ŖŖD H +} +ŖŖH I +; +ŖŖI J +newEntry +¤¤  +. +¤¤  +GeneratePassword +¤¤ % +( +¤¤% & +) +¤¤& ' +; +¤¤' ( +Entries +ĨĨ  +. +ĨĨ  +Add +ĨĨ  +( +ĨĨ  +newEntry +ĨĨ  +) +ĨĨ ! +; +ĨĨ! " +return +ĻĻ  +newEntry +ĻĻ  +; +ĻĻ  +} +§§  +public +ŠŠ  +void +ŠŠ  + MarkForDelete +ŠŠ ! +( +ŠŠ! " +string +ŠŠ" ( +recycleBinTitle +ŠŠ) 8 +) +ŠŠ8 9 +{ +ĒĒ  +if +ĢĢ  +( +ĢĢ  + _database +ĢĢ  +. +ĢĢ  +RecycleBinEnabled +ĢĢ + +&& +ĢĢ, . + _database +ĢĢ/ 8 +. +ĢĢ8 9 + +RecycleBin +ĢĢ9 C +? +ĢĢC D +. +ĢĢD E +IdUuid +ĢĢE K +== +ĢĢL N +null +ĢĢO S +) +ĢĢS T + _database +ŦŦ  +. +ŦŦ  +CreateRecycleBin +ŦŦ * +( +ŦŦ* + +recycleBinTitle +ŦŦ+ : +) +ŦŦ: ; +; +ŦŦ; < +Move +­­  +( +­­  + _database +­­  +. +­­  +RecycleBinEnabled +­­ , +&& +­­- / +! +­­0 1 + +IsSelected +­­1 ; +? +­­< = + _database +­­> G +. +­­G H + +RecycleBin +­­H R +: +­­S T +null +­­U Y +) +­­Y Z +; +­­Z [ +} +ŽŽ  +public +°°  +void +°°  + +UndoDelete +°°  +( +°°  +) +°°  +{ +ąą  +Move +˛˛  +( +˛˛  + PreviousGroup +˛˛  +) +˛˛  +; +˛˛  +} +ŗŗ  +public +ĩĩ  +void +ĩĩ  +Move +ĩĩ  +( +ĩĩ  +GroupVm +ĩĩ  + destination +ĩĩ! , +) +ĩĩ, - +{ +ļļ  + PreviousGroup +ˇˇ  += +ˇˇ  + ParentGroup +ˇˇ ' +; +ˇˇ' ( + PreviousGroup +¸¸  +. +¸¸  +Groups +¸¸  +. +¸¸ ! +Remove +¸¸! ' +( +¸¸' ( +this +¸¸( , +) +¸¸, - +; +¸¸- . + PreviousGroup +šš  +. +šš  +_pwGroup +šš " +. +šš" # +Groups +šš# ) +. +šš) * +Remove +šš* 0 +( +šš0 1 +_pwGroup +šš1 9 +) +šš9 : +; +šš: ; +if +ēē  +( +ēē  + destination +ēē  +== +ēē  +null +ēē # +) +ēē# $ +{ +ģģ  + _database +ŧŧ  +. +ŧŧ  +AddDeletedItem +ŧŧ ( +( +ŧŧ( ) +IdUuid +ŧŧ) / +) +ŧŧ/ 0 +; +ŧŧ0 1 +return +ŊŊ  +; +ŊŊ  +} +žž  + ParentGroup +ŋŋ  += +ŋŋ  + destination +ŋŋ % +; +ŋŋ% & + ParentGroup +ĀĀ  +. +ĀĀ  +Groups +ĀĀ  +. +ĀĀ  +Add +ĀĀ " +( +ĀĀ" # +this +ĀĀ# ' +) +ĀĀ' ( +; +ĀĀ( ) + ParentGroup +ÁÁ  +. +ÁÁ  +_pwGroup +ÁÁ  +. +ÁÁ ! +AddGroup +ÁÁ! ) +( +ÁÁ) * +_pwGroup +ÁÁ* 2 +, +ÁÁ2 3 +true +ÁÁ4 8 +) +ÁÁ8 9 +; +ÁÁ9 : +} +  +public +ÄÄ  +void +ÄÄ  + CommitDelete +ÄÄ  +( +ÄÄ ! +) +ÄÄ! " +{ +ÅÅ  +_pwGroup +ÆÆ  +. +ÆÆ  + ParentGroup +ÆÆ  +. +ÆÆ ! +Groups +ÆÆ! ' +. +ÆÆ' ( +Remove +ÆÆ( . +( +ÆÆ. / +_pwGroup +ÆÆ/ 7 +) +ÆÆ7 8 +; +ÆÆ8 9 +if +ĮĮ  +( +ĮĮ  + _database +ĮĮ  +. +ĮĮ  +RecycleBinEnabled +ĮĮ + +&& +ĮĮ, . +! +ĮĮ/ 0 + PreviousGroup +ĮĮ0 = +. +ĮĮ= > + +IsSelected +ĮĮ> H +) +ĮĮH I + _database +ĮĮJ S +. +ĮĮS T + +RecycleBin +ĮĮT ^ +. +ĮĮ^ _ +_pwGroup +ĮĮ_ g +. +ĮĮg h +AddGroup +ĮĮh p +( +ĮĮp q +_pwGroup +ĮĮq y +, +ĮĮy z +true +ĮĮ{  +) ĮĮ € +; ĮĮ€  +else +ČČ  + _database +ČČ  +. +ČČ  +AddDeletedItem +ČČ ) +( +ČČ) * +IdUuid +ČČ* 0 +) +ČČ0 1 +; +ČČ1 2 +} +ÉÉ  +public +ËË  +void +ËË  +Save +ËË  +( +ËË  +) +ËË  +{ +ĖĖ  + _database +ÍÍ  +. +ÍÍ  +Save +ÍÍ  +( +ÍÍ  +) +ÍÍ  +; +ÍÍ  +} +ÎÎ  +public +ĐĐ  +void +ĐĐ  + SortEntries +ĐĐ  +( +ĐĐ  +) +ĐĐ ! +{ +ŅŅ  +var +ŌŌ  +comparer +ŌŌ  += +ŌŌ  +new +ŌŌ  +PwEntryComparer +ŌŌ . +( +ŌŌ. / +PwDefs +ŌŌ/ 5 +. +ŌŌ5 6 + +TitleField +ŌŌ6 @ +, +ŌŌ@ A +true +ŌŌB F +, +ŌŌF G +false +ŌŌH M +) +ŌŌM N +; +ŌŌN O +try +ĶĶ  +{ +ÔÔ  +_pwGroup +ÕÕ  +. +ÕÕ  +Entries +ÕÕ  +. +ÕÕ ! +Sort +ÕÕ! % +( +ÕÕ% & +comparer +ÕÕ& . +) +ÕÕ. / +; +ÕÕ/ 0 +Entries +ÖÖ  += +ÖÖ  +new +ÖÖ " +ObservableCollection +ÖÖ 2 +< +ÖÖ2 3 +EntryVm +ÖÖ3 : +> +ÖÖ: ; +( +ÖÖ; < +Entries +ÖÖ< C +. +ÖÖC D +OrderBy +ÖÖD K +( +ÖÖK L +e +ÖÖL M +=> +ÖÖN P +e +ÖÖQ R +. +ÖÖR S +Name +ÖÖS W +) +ÖÖW X +) +ÖÖX Y +; +ÖÖY Z +} +××  +catch +ØØ  +( +ØØ  + Exception +ØØ  +e +ØØ  +) +ØØ  +{ +ŲŲ ! +MessageDialogHelper +ÚÚ # +. +ÚÚ# $ +ShowErrorDialog +ÚÚ$ 3 +( +ÚÚ3 4 +e +ÚÚ4 5 +) +ÚÚ5 6 +; +ÚÚ6 7 +} +ÛÛ  +} +ÜÜ  +public +ŪŪ  +void +ŪŪ  + +SortGroups +ŪŪ  +( +ŪŪ  +) +ŪŪ  +{ +ßß  +try +āā  +{ +áá  +_pwGroup +ââ  +. +ââ  + SortSubGroups +ââ & +( +ââ& ' +false +ââ' , +) +ââ, - +; +ââ- . +Groups +ãã  += +ãã  +new +ãã " +ObservableCollection +ãã 1 +< +ãã1 2 +GroupVm +ãã2 9 +> +ãã9 : +( +ãã: ; +Groups +ãã; A +. +ããA B +OrderBy +ããB I +( +ããI J +g +ããJ K +=> +ããL N +g +ããO P +. +ããP Q +Name +ããQ U +) +ããU V +. +ããV W +ThenBy +ããW ] +( +ãã] ^ +g +ãã^ _ +=> +ãã` b +g +ããc d +. +ããd e +_pwGroup +ããe m +== +ããn p +null +ããq u +) +ããu v +) +ããv w +; +ããw x +OnPropertyChanged +ää ! +( +ää! " +$str +ää" * +) +ää* + +; +ää+ , +} +åå  +catch +ææ  +( +ææ  + Exception +ææ  +e +ææ  +) +ææ  +{ +įį ! +MessageDialogHelper +čč # +. +čč# $ +ShowErrorDialog +čč$ 3 +( +čč3 4 +e +čč4 5 +) +čč5 6 +; +čč6 7 +} +éé  +} +ęę  +public +ėė  +override +ėė  +string +ėė  +ToString +ėė ' +( +ėė' ( +) +ėė( ) +{ +íí  +return +îî  +Name +îî  +; +îî  +} +īī  +} +đđ  +}ņņ Ā +NC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsNewVm.cs + namespace  + ModernKeePass +  +.  + +ViewModels " +{  +public + +class  + SettingsNewVm  +{  +private    +readonly    +ISettingsService   ) + _settings  * 3 +;  3 4 +public    + SettingsNewVm    +(    +)    +:    +this  ! % +(  % & +SettingsService  & 5 +.  5 6 +Instance  6 > +)  > ? +{    +}   +  +public  + SettingsNewVm  +(  +ISettingsService - +settings. 6 +)6 7 +{  + _settings  +=  +settings  +; ! +}  +public  +bool  +IsCreateSample " +{  +get  +{  +return  + _settings " +." # + +GetSetting# - +<- . +bool. 2 +>2 3 +(3 4 +$str4 < +)< = +;= > +}? @ +set  +{  + _settings  +.  + +PutSetting & +(& ' +$str' / +,/ 0 +value1 6 +)6 7 +;7 8 +}9 : +}  +public  + IEnumerable  +<  +string ! +>! " + FileFormats# . +=>/ 1 +new2 5 +[6 7 +]7 8 +{8 9 +$str9 < +,< = +$str> A +}A B +;B C +public  +string  +FileFormatVersion ' +{  +get  +{  +return  + _settings " +." # + +GetSetting# - +<- . +string. 4 +>4 5 +(5 6 +$str6 I +)I J +;J K +}L M +set  +{  + _settings  +.  + +PutSetting & +(& ' +$str' : +,: ; +value< A +)A B +;B C +}D E +}  +}    +}!! Ō3 +EC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\SettingsVm.cs + namespace   + ModernKeePass   +  +.    + +ViewModels   " +{ + +  +public   + +class    + +SettingsVm    +:   % +NotifyPropertyChangedBase   7 +,  7 8 +IHasSelectableObject  9 M +{    +private    +ListMenuItemVm    + _selectedItem   , +;  , - +private  +IOrderedEnumerable " +<" # + IGrouping# , +<, - +string- 3 +,3 4 +ListMenuItemVm5 C +>C D +>D E + +_menuItemsF P +;P Q +public  +IOrderedEnumerable ! +<! " + IGrouping" + +<+ , +string, 2 +,2 3 +ListMenuItemVm4 B +>B C +>C D + MenuItemsE N +{  +get  +{  +return  + +_menuItems # +;# $ +}% & +set  +{  + SetProperty  +(  +ref ! + +_menuItems" , +,, - +value. 3 +)3 4 +;4 5 +}6 7 +}  +public  +ISelectableModel  + SelectedItem , +{  +get  +{  +return  + _selectedItem & +;& ' +}( ) +set  +{  +if  +(  + _selectedItem ! +==" $ +value% * +)* + +return, 2 +;2 3 +if  +(  + _selectedItem ! +!=" $ +null% ) +)) * +{  + _selectedItem ! +.! " + +IsSelected" , +=- . +false/ 4 +;4 5 +}    + SetProperty""  +(""  +ref""  + _selectedItem"" - +,""- . +(""/ 0 +ListMenuItemVm""0 > +)""> ? +value""? D +)""D E +;""E F +if$$  +($$  + _selectedItem$$ ! +!=$$" $ +null$$% ) +)$$) * +{%%  + _selectedItem&& ! +.&&! " + +IsSelected&&" , +=&&- . +true&&/ 3 +;&&3 4 +}''  +}((  +}))  +public++  + +SettingsVm++  +(++  +)++  +:++  +this++ " +(++" # +DatabaseService++# 2 +.++2 3 +Instance++3 ; +,++; < +new++= @ +ResourcesService++A Q +(++Q R +)++R S +)++S T +{++U V +}++W X +public--  + +SettingsVm--  +(--  +IDatabaseService-- * +database--+ 3 +,--3 4 +IResourceService--5 E +resource--F N +)--N O +{..  +var//  + menuItems//  +=//  +new//  +ObservableCollection// 4 +<//4 5 +ListMenuItemVm//5 C +>//C D +{00  +new11  +ListMenuItemVm11 " +{22  +Title33  +=33  +resource33 $ +.33$ % +GetResourceValue33% 5 +(335 6 +$str336 K +)33K L +,33L M +Group44  +=44  +resource44 $ +.44$ % +GetResourceValue44% 5 +(445 6 +$str446 T +)44T U +,44U V + +SymbolIcon55  +=55  +Symbol55! ' +.55' ( +Add55( + +,55+ , +PageType66  +=66  +typeof66 % +(66% &# +SettingsNewDatabasePage66& = +)66= > +,66> ? + +IsSelected77  +=77  +true77! % +}88  +,88  +new99  +ListMenuItemVm99 " +{::  +Title;;  +=;;  +resource;; $ +.;;$ % +GetResourceValue;;% 5 +(;;5 6 +$str;;6 L +);;L M +,;;M N +Group<<  +=<<  +resource<< $ +.<<$ % +GetResourceValue<<% 5 +(<<5 6 +$str<<6 T +)<<T U +,<<U V + +SymbolIcon==  +===  +Symbol==! ' +.==' ( +Save==( , +,==, - +PageType>>  +=>>  +typeof>> % +(>>% & +SettingsSavePage>>& 6 +)>>6 7 +}??  +,??  +new@@  +ListMenuItemVm@@ " +{AA  +TitleBB  +=BB  +resourceBB $ +.BB$ % +GetResourceValueBB% 5 +(BB5 6 +$strBB6 O +)BBO P +,BBP Q +GroupCC  +=CC  +resourceCC $ +.CC$ % +GetResourceValueCC% 5 +(CC5 6 +$strCC6 Q +)CCQ R +,CCR S + +SymbolIconDD  +=DD  +SymbolDD! ' +.DD' ( +SettingDD( / +,DD/ 0 +PageTypeEE  +=EE  +typeofEE % +(EE% & +SettingsDatabasePageEE& : +)EE: ; +,EE; < + IsEnabledFF  +=FF  +databaseFF ( +.FF( ) +IsOpenFF) / +}GG  +,GG  +newHH  +ListMenuItemVmHH " +{II  +TitleJJ  +=JJ  +resourceJJ $ +.JJ$ % +GetResourceValueJJ% 5 +(JJ5 6 +$strJJ6 P +)JJP Q +,JJQ R +GroupKK  +=KK  +resourceKK $ +.KK$ % +GetResourceValueKK% 5 +(KK5 6 +$strKK6 Q +)KKQ R +,KKR S + +SymbolIconLL  +=LL  +SymbolLL! ' +.LL' ( + PermissionsLL( 3 +,LL3 4 +PageTypeMM  +=MM  +typeofMM % +(MM% & +SettingsSecurityPageMM& : +)MM: ; +,MM; < + IsEnabledNN  +=NN  +databaseNN ( +.NN( ) +IsOpenNN) / +}OO  +}PP  +;PP  + SelectedItemQQ  +=QQ  + menuItemsQQ $ +.QQ$ % +FirstOrDefaultQQ% 3 +(QQ3 4 +mQQ4 5 +=>QQ6 8 +mQQ9 : +.QQ: ; + +IsSelectedQQ; E +)QQE F +;QQF G + MenuItemsSS  +=SS  +fromSS  +itemSS ! +inSS" $ + menuItemsSS% . +groupSS/ 4 +itemSS5 9 +bySS: < +itemSS= A +.SSA B +GroupSSB G +intoSSH L +grpSSM P +orderbySSQ X +grpSSY \ +.SS\ ] +KeySS] ` +selectSSa g +grpSSh k +;SSk l +}TT  +}UU  +}VV ÕU +AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\MainVm.cs + namespace + +  + ModernKeePass + + +  +. + +  + +ViewModels + + " +{   +public   + +class    +MainVm    +:   % +NotifyPropertyChangedBase   3 +,  3 4 +IHasSelectableObject  5 I +{    +private  +IOrderedEnumerable " +<" # + IGrouping# , +<, - +string- 3 +,3 4 +MainMenuItemVm5 C +>C D +>D E +_mainMenuItemsF T +;T U +private  +MainMenuItemVm  + _selectedItem , +;, - +public  +string  +Name  +{  +get  +; ! +}" # +=$ % +Package& - +.- . +Current. 5 +.5 6 + DisplayName6 A +;A B +public  +IOrderedEnumerable ! +<! " + IGrouping" + +<+ , +string, 2 +,2 3 +MainMenuItemVm4 B +>B C +>C D + MainMenuItemsE R +{  +get  +{  +return  +_mainMenuItems ' +;' ( +}) * +set  +{  + SetProperty  +(  +ref ! +_mainMenuItems" 0 +,0 1 +value2 7 +)7 8 +;8 9 +}: ; +}  +public  +ISelectableModel  + SelectedItem , +{  +get  +{  +return  + _selectedItem & +;& ' +}( ) +set  +{  +if  +(  + _selectedItem ! +==" $ +value% * +)* + +return, 2 +;2 3 +if  +(  + _selectedItem ! +!=" $ +null% ) +)) * +{    + _selectedItem!! ! +.!!! " + +IsSelected!!" , +=!!- . +false!!/ 4 +;!!4 5 +}""  + SetProperty$$  +($$  +ref$$  + _selectedItem$$ - +,$$- . +($$/ 0 +MainMenuItemVm$$0 > +)$$> ? +value$$? D +)$$D E +;$$E F +if&&  +(&&  + _selectedItem&& ! +!=&&" $ +null&&% ) +)&&) * +{''  + _selectedItem(( ! +.((! " + +IsSelected((" , +=((- . +true((/ 3 +;((3 4 +}))  +}**  +}++  +public--  +MainVm--  +(--  +)--  +{--  +}--  +internal//  +MainVm//  +(//  +Frame//  +referenceFrame// , +,//, - +Frame//. 3 +destinationFrame//4 D +)//D E +://F G +this//H L +(//L M +referenceFrame//M [ +,//[ \ +destinationFrame//] m +,//m n +DatabaseService00  +.00  +Instance00 $ +,00$ % +new00& ) +ResourcesService00* : +(00: ; +)00; < +,00< = + RecentService00> K +.00K L +Instance00L T +)00T U +{11  +}11 +  +public33  +MainVm33  +(33  +Frame33  +referenceFrame33 * +,33* + +Frame33, 1 +destinationFrame332 B +,33B C +IDatabaseService33D T +database33U ] +,33] ^ +IResourceService33_ o +resource33p x +,33x y +IRecentService 33z ˆ +recent +33‰  +) +33  +{44  +var55  +isDatabaseOpen55  +=55  +database55! ) +!=55* , +null55- 1 +&&552 4 +database555 = +.55= > +IsOpen55> D +;55D E +var77  + mainMenuItems77  +=77  +new77 # +ObservableCollection77$ 8 +<778 9 +MainMenuItemVm779 G +>77G H +{88  +new99  +MainMenuItemVm99 " +{::  +Title;;  +=;;  +resource;; $ +.;;$ % +GetResourceValue;;% 5 +(;;5 6 +$str;;6 H +);;H I +,;;I J +PageType<<  +=<<  +typeof<< % +(<<% & +OpenDatabasePage<<& 6 +)<<6 7 +,<<7 8 + Destination==  +=== ! +destinationFrame==" 2 +,==2 3 + Parameter>>  +=>>  +referenceFrame>> . +,>>. / + +SymbolIcon??  +=??  +Symbol??! ' +.??' ( +Page2??( - +,??- . + +IsSelected@@  +=@@  +database@@! ) +!=@@* , +null@@- 1 +&&@@2 4 +database@@5 = +.@@= > + +IsFileOpen@@> H +&&@@I K +!@@L M +database@@M U +.@@U V +IsOpen@@V \ +}AA  +,AA  +newBB  +MainMenuItemVmBB " +{CC  +TitleDD  +=DD  +resourceDD $ +.DD$ % +GetResourceValueDD% 5 +(DD5 6 +$strDD6 G +)DDG H +,DDH I +PageTypeEE  +=EE  +typeofEE % +(EE% & +NewDatabasePageEE& 5 +)EE5 6 +,EE6 7 + DestinationFF  +=FF ! +destinationFrameFF" 2 +,FF2 3 + ParameterGG  +=GG  +referenceFrameGG . +,GG. / + +SymbolIconHH  +=HH  +SymbolHH! ' +.HH' ( +AddHH( + +}II  +,II  +newJJ  +MainMenuItemVmJJ " +{KK  +TitleLL  +=LL  +resourceLL $ +.LL$ % +GetResourceValueLL% 5 +(LL5 6 +$strLL6 H +)LLH I +,LLI J +PageTypeMM  +=MM  +typeofMM % +(MM% & +SaveDatabasePageMM& 6 +)MM6 7 +,MM7 8 + DestinationNN  +=NN ! +destinationFrameNN" 2 +,NN2 3 + ParameterOO  +=OO  +referenceFrameOO . +,OO. / + +SymbolIconPP  +=PP  +SymbolPP! ' +.PP' ( +SavePP( , +,PP, - + +IsSelectedQQ  +=QQ  +isDatabaseOpenQQ! / +,QQ/ 0 + IsEnabledRR  +=RR  +isDatabaseOpenRR . +}SS  +,SS  +newTT  +MainMenuItemVmTT " +{UU  +TitleVV  +=VV  +resourceVV $ +.VV$ % +GetResourceValueVV% 5 +(VV5 6 +$strVV6 J +)VVJ K +,VVK L +PageTypeWW  +=WW  +typeofWW % +(WW% & +RecentDatabasesPageWW& 9 +)WW9 : +,WW: ; + DestinationXX  +=XX ! +destinationFrameXX" 2 +,XX2 3 + ParameterYY  +=YY  +referenceFrameYY . +,YY. / + +SymbolIconZZ  +=ZZ  +SymbolZZ! ' +.ZZ' ( +CopyZZ( , +,ZZ, - + +IsSelected[[  +=[[  +(\\  +database\\ ! +==\\" $ +null\\% ) +||\\* , +database\\- 5 +.\\5 6 +IsClosed\\6 > +)\\> ? +&&\\@ B +recent]]  +.]]  + +EntryCount]] ) +>]]* + +$num]], - +,]]- . + IsEnabled^^  +=^^  +recent^^ & +.^^& ' + +EntryCount^^' 1 +>^^2 3 +$num^^4 5 +}__  +,__  +new``  +MainMenuItemVm`` " +{aa  +Titlebb  +=bb  +resourcebb $ +.bb$ % +GetResourceValuebb% 5 +(bb5 6 +$strbb6 L +)bbL M +,bbM N +PageTypecc  +=cc  +typeofcc % +(cc% & + SettingsPagecc& 2 +)cc2 3 +,cc3 4 + Destinationdd  +=dd ! +referenceFramedd" 0 +,dd0 1 + +SymbolIconee  +=ee  +Symbolee! ' +.ee' ( +Settingee( / +}ff  +,ff  +newgg  +MainMenuItemVmgg " +{hh  +Titleii  +=ii  +resourceii $ +.ii$ % +GetResourceValueii% 5 +(ii5 6 +$strii6 I +)iiI J +,iiJ K +PageTypejj  +=jj  +typeofjj % +(jj% & + AboutPagejj& / +)jj/ 0 +,jj0 1 + Destinationkk  +=kk ! +destinationFramekk" 2 +,kk2 3 + +SymbolIconll  +=ll  +Symbolll! ' +.ll' ( +Helpll( , +}mm  +,mm  +newnn  +MainMenuItemVmnn " +{oo  +Titlepp  +=pp  +resourcepp $ +.pp$ % +GetResourceValuepp% 5 +(pp5 6 +$strpp6 J +)ppJ K +,ppK L +PageTypeqq  +=qq  +typeofqq % +(qq% & + +DonatePageqq& 0 +)qq0 1 +,qq1 2 + Destinationrr  +=rr ! +destinationFramerr" 2 +,rr2 3 + +SymbolIconss  +=ss  +Symbolss! ' +.ss' ( +Shopss( , +}tt  +}uu  +;uu  + SelectedItemww  +=ww  + mainMenuItemsww ( +.ww( ) +FirstOrDefaultww) 7 +(ww7 8 +mww8 9 +=>ww: < +mww= > +.ww> ? + +IsSelectedww? I +)wwI J +;wwJ K +ifzz  +(zz  +databasezz  +!=zz  +nullzz  +&&zz! # +databasezz$ , +.zz, - +IsOpenzz- 3 +)zz3 4 + mainMenuItems{{  +.{{  +Add{{ ! +({{! " +new{{" % +MainMenuItemVm{{& 4 +{||  +Title}}  +=}}  +database}} $ +.}}$ % +Name}}% ) +,}}) * +PageType~~  +=~~  +typeof~~ % +(~~% & +GroupDetailPage~~& 5 +)~~5 6 +,~~6 7 + Destination  += ! +referenceFrame" 0 +,0 1 + Parameter +€€  += +€€  +database +€€ ( +. +€€( ) + RootGroup +€€) 2 +, +€€2 3 +Group +  += +  +$str + ' +, +' ( + +SymbolIcon +‚‚  += +‚‚  +Symbol +‚‚! ' +. +‚‚' ( +ProtectedDocument +‚‚( 9 +} +ƒƒ  +) +ƒƒ  +; +ƒƒ  + MainMenuItems +……  += +……  +from +……  +item +……! % +in +……& ( + mainMenuItems +……) 6 +group +……7 < +item +……= A +by +……B D +item +……E I +. +……I J +Group +……J O +into +……P T +grp +……U X +orderby +……Y ` +grp +……a d +. +……d e +Key +……e h +select +……i o +grp +……p s +; +……s t +} +††  +} +‡‡  +}ˆˆ Ę +@C:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\NewVm.cs + namespace  + ModernKeePass +  +.  + +ViewModels " +{  +public + +class  +NewVm  +:  +OpenVm  +{  +public  +string  +Password  +{  +get! $ +;$ % +set& ) +;) * +}+ , +}  +} › +AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\OpenVm.cs + namespace  + ModernKeePass +  +.  + +ViewModels " +{  +public + +class  +OpenVm  +: % +NotifyPropertyChangedBase 2 +{    +public + +  +bool + +  +ShowPasswordBox + + # +=> + +$ & + _database + +' 0 +. + +0 1 + +IsFileOpen + +1 ; +; + +; < +public    +string    +Name    +=>    + _database   ' +?  ' ( +.  ( ) +Name  ) - +;  - . +private  +readonly  +IDatabaseService ) + _database* 3 +;3 4 +public  +OpenVm  +(  +)  +:  +this  +(  +DatabaseService . +.. / +Instance/ 7 +)7 8 +{9 : +}; < +public  +OpenVm  +(  +IDatabaseService & +database' / +)/ 0 +{  + _database  +=  +database  +; ! +if  +(  +database  +==  +null  +||! # +!$ % +database% - +.- . + +IsFileOpen. 8 +)8 9 +return: @ +;@ A +OpenFile  +(  +database  +.  + DatabaseFile * +)* + +;+ , +}  +public  +void  +OpenFile  +(  + StorageFile ( +file) - +)- . +{  +OpenFile  +(  +file  +,  + RecentService ( +.( ) +Instance) 1 +)1 2 +;2 3 +}  +public  +void  +OpenFile  +(  + StorageFile ( +file) - +,- . +IRecentService/ = +recent> D +)D E +{  + _database    +.    + DatabaseFile   " +=  # $ +file  % ) +;  ) * +OnPropertyChanged!!  +(!!  +$str!! $ +)!!$ % +;!!% & +OnPropertyChanged""  +(""  +$str"" / +)""/ 0 +;""0 1 +AddToRecentList##  +(##  +file##  +,## ! +recent##" ( +)##( ) +;##) * +}$$  +private&&  +void&&  +AddToRecentList&& $ +(&&$ % + StorageFile&&% 0 +file&&1 5 +,&&5 6 +IRecentService&&7 E +recent&&F L +)&&L M +{''  +recent((  +.((  +Add((  +(((  +file((  +,((  +file(( ! +.((! " + DisplayName((" - +)((- . +;((. / +}))  +}**  +}++ ĩ +CC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\RecentVm.cs + namespace  + ModernKeePass +  +.  + +ViewModels " +{  +public + +class  +RecentVm  +: % +NotifyPropertyChangedBase 5 +,5 6 +IHasSelectableObject7 K +{    +private + +  +readonly + +  +IRecentService + + ' +_recent + +( / +; + +/ 0 +private    +ISelectableModel    + _selectedItem  ! . +;  . / +private    +ObservableCollection   $ +<  $ % + IRecentItem  % 0 +>  0 1 + _recentItems  2 > +=  ? @ +new  A D +ObservableCollection  E Y +<  Y Z + IRecentItem  Z e +>  e f +(  f g +)  g h +;  h i +public  +ObservableCollection # +<# $ + IRecentItem$ / +>/ 0 + RecentItems1 < +{  +get  +{  +return  + _recentItems % +;% & +}' ( +set  +{  + SetProperty  +(  +ref ! + _recentItems" . +,. / +value0 5 +)5 6 +;6 7 +}8 9 +}  +public  +ISelectableModel  + SelectedItem , +{  +get  +{  +return  + _selectedItem & +;& ' +}( ) +set  +{  +if  +(  + _selectedItem ! +==" $ +value% * +)* + +return, 2 +;2 3 +if  +(  + _selectedItem ! +!=" $ +null% ) +)) * +{  + _selectedItem ! +.! " + +IsSelected" , +=- . +false/ 4 +;4 5 +}  + SetProperty  +(  +ref  + _selectedItem - +,- . +value/ 4 +)4 5 +;5 6 +if!!  +(!!  + _selectedItem!! ! +==!!" $ +null!!% ) +)!!) * +return!!+ 1 +;!!1 2 + _selectedItem""  +.""  + +IsSelected"" ( +="") * +true""+ / +;""/ 0 +}##  +}$$  +public&&  +RecentVm&&  +(&&  +)&&  +:&&  +this&&  +(&&! " + RecentService&&" / +.&&/ 0 +Instance&&0 8 +)&&8 9 +{''  +}'' +  +public))  +RecentVm))  +())  +IRecentService)) & +recent))' - +)))- . +{**  +_recent++  +=++  +recent++  +;++  + RecentItems,,  +=,,  +_recent,, ! +.,,! " + GetAllFiles,," - +(,,- . +),,. / +;,,/ 0 +if--  +(--  + RecentItems--  +.--  +Count-- ! +>--" # +$num--$ % +)--% & + SelectedItem..  +=..  + RecentItems.. * +[..* + +$num..+ , +].., - +as... 0 + RecentItemVm..1 = +;..= > +}//  +public11  +void11  +ClearAll11  +(11  +)11  +{22  +_recent33  +.33  +ClearAll33  +(33  +)33  +;33  + RecentItems44  +.44  +Clear44  +(44  +)44  +;44  +}55  +}66  +}77 Æ +AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\SaveVm.cs + namespace  + ModernKeePass +  +.  + +ViewModels " +{  +public + +class  +SaveVm  +{    +private + +  +readonly + +  +IDatabaseService + + ) + _database + +* 3 +; + +3 4 +public    +SaveVm    +(    +)    +:    +this    +(    +DatabaseService   . +.  . / +Instance  / 7 +)  7 8 +{  9 : +}  ; < +public    +SaveVm    +(    +IDatabaseService   & +database  ' / +)  / 0 +{  + _database  +=  +database  +; ! +}  +public  +async  +Task  +Save  +(  +bool # +close$ ) +=* + +true, 0 +)0 1 +{  + _database  +.  +Save  +(  +)  +;  +if  +(  +close  +)  +await  + _database  +.  +Close % +(% & +)& ' +;' ( +}  +public  +void  +Save  +(  + StorageFile $ +file% ) +)) * +{  + _database  +.  +Save  +(  +file  +)  +; ! +}  +}  +} ü@ +SC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsDatabaseVm.cs + namespace   + ModernKeePass   +  +.    + +ViewModels   " +{   +public + +class  +SettingsDatabaseVm # +:# $% +NotifyPropertyChangedBase% > +,> ? +IHasSelectableObject@ T +{  +private  +readonly  +IDatabaseService ) + _database* 3 +;3 4 +private  +GroupVm  + _selectedItem % +;% & +public  +bool  + HasRecycleBin ! +{  +get  +{  +return  + _database " +." # +RecycleBinEnabled# 4 +;4 5 +}6 7 +set  +{  + _database  +.  +RecycleBinEnabled + +=, - +value. 3 +;3 4 +OnPropertyChanged ! +(! " +$str" 1 +)1 2 +;2 3 +}  +}  +public  +bool  +IsNewRecycleBin # +{  +get    +{    +return    + _database   " +.  " # + +RecycleBin  # - +==  . 0 +null  1 5 +;  5 6 +}  7 8 +set!!  +{""  +if##  +(##  +value##  +)##  + _database## $ +.##$ % + +RecycleBin##% / +=##0 1 +null##2 6 +;##6 7 +}$$  +}%%  +public''  +ObservableCollection'' # +<''# $ +GroupVm''$ + +>''+ , +Groups''- 3 +{''4 5 +get''6 9 +;''9 : +set''; > +;''> ? +}''@ A +public))  + IEnumerable))  +<))  +string)) ! +>))! " +Ciphers))# * +{**  +get++  +{,,  +for--  +(--  +var--  +inx--  +=--  +$num--  +;-- ! +inx--" % +<--& ' + +CipherPool--( 2 +.--2 3 + +GlobalPool--3 = +.--= > + EngineCount--> I +;--I J +inx--K N +++--N P +)--P Q +{..  +yield//  +return//  + +CipherPool//! + +.//+ , + +GlobalPool//, 6 +[//6 7 +inx//7 : +]//: ; +.//; < + DisplayName//< G +;//G H +}00  +}11  +}22  +public44  +int44  + CipherIndex44  +{55  +get66  +{77  +for88  +(88  +var88  +inx88  +=88  +$num88  +;88 ! +inx88" % +<88& ' + +CipherPool88( 2 +.882 3 + +GlobalPool883 = +.88= > + EngineCount88> I +;88I J +++88K M +inx88M P +)88P Q +{99  +if::  +(::  + +CipherPool:: " +.::" # + +GlobalPool::# - +[::- . +inx::. 1 +]::1 2 +.::2 3 + +CipherUuid::3 = +.::= > +Equals::> D +(::D E + _database::E N +.::N O + +DataCipher::O Y +)::Y Z +)::Z [ +return::\ b +inx::c f +;::f g +};;  +return<<  +-<<  +$num<<  +;<<  +}==  +set>>  +{>>  + _database>>  +.>>  + +DataCipher>> & +=>>' ( + +CipherPool>>) 3 +.>>3 4 + +GlobalPool>>4 > +[>>> ? +value>>? D +]>>D E +.>>E F + +CipherUuid>>F P +;>>P Q +}>>R S +}??  +publicAA  + IEnumerableAA  +<AA  +stringAA ! +>AA! " + CompressionsAA# / +=>AA0 2 +EnumAA3 7 +.AA7 8 +GetNamesAA8 @ +(AA@ A +typeofAAA G +(AAG H" +PwCompressionAlgorithmAAH ^ +)AA^ _ +)AA_ ` +.AA` a +TakeAAa e +(AAe f +(AAf g +intAAg j +)AAj k# +PwCompressionAlgorithm AAk  +. +AA ‚ +Count +AA‚ ‡ +) +AA‡ ˆ +; +AAˆ ‰ +publicCC  +stringCC  +CompressionNameCC % +{DD  +getEE  +{EE  +returnEE  +EnumEE  +.EE  +GetNameEE % +(EE% & +typeofEE& , +(EE, -" +PwCompressionAlgorithmEE- C +)EEC D +,EED E + _databaseEEF O +.EEO P +CompressionAlgorithmEEP d +)EEd e +;EEe f +}EEg h +setFF  +{FF  + _databaseFF  +.FF  +CompressionAlgorithmFF 0 +=FF1 2 +(FF3 4" +PwCompressionAlgorithmFF4 J +)FFJ K +EnumFFK O +.FFO P +ParseFFP U +(FFU V +typeofFFV \ +(FF\ ]" +PwCompressionAlgorithmFF] s +)FFs t +,FFt u +valueFFv { +)FF{ | +;FF| } +}FF~  +}GG  +publicHH  + IEnumerableHH  +<HH  +stringHH ! +>HH! " +KeyDerivationsHH# 1 +=>HH2 4 +KdfPoolHH5 < +.HH< = +EnginesHH= D +.HHD E +SelectHHE K +(HHK L +eHHL M +=>HHN P +eHHQ R +.HHR S +NameHHS W +)HHW X +;HHX Y +publicJJ  +stringJJ  +KeyDerivationNameJJ ' +{KK  +getLL  +{LL  +returnLL  +KdfPoolLL  +.LL ! +GetLL! $ +(LL$ % + _databaseLL% . +.LL. / + KeyDerivationLL/ < +.LL< = +KdfUuidLL= D +)LLD E +.LLE F +NameLLF J +;LLJ K +}LLL M +setMM  +{MM  + _databaseMM  +.MM  + KeyDerivationMM ) +=MM* + +KdfPoolMM, 3 +.MM3 4 +EnginesMM4 ; +.MM; < +FirstOrDefaultMM< J +(MMJ K +eMMK L +=>MMM O +eMMP Q +.MMQ R +NameMMR V +==MMW Y +valueMMZ _ +)MM_ ` +?MM` a +.MMa b +GetDefaultParametersMMb v +(MMv w +)MMw x +;MMx y +}MMz { +}NN  +publicPP  +ISelectableModelPP  + SelectedItemPP , +{QQ  +getRR  +{RR  +returnRR  +GroupsRR  +.RR  +FirstOrDefaultRR . +(RR. / +gRR/ 0 +=>RR1 3 +gRR4 5 +.RR5 6 + +IsSelectedRR6 @ +)RR@ A +;RRA B +}RRC D +setSS  +{TT  +ifUU  +(UU  + _selectedItemUU ! +==UU" $ +valueUU% * +||UU+ - +IsNewRecycleBinUU. = +)UU= > +returnUU? E +;UUE F +ifVV  +(VV  + _selectedItemVV ! +!=VV" $ +nullVV% ) +)VV) * +{WW  + _selectedItemXX ! +.XX! " + +IsSelectedXX" , +=XX- . +falseXX/ 4 +;XX4 5 +}YY  + SetProperty[[  +([[  +ref[[  + _selectedItem[[ - +,[[- . +([[/ 0 +GroupVm[[0 7 +)[[7 8 +value[[8 = +)[[= > +;[[> ? +if]]  +(]]  + _selectedItem]] ! +!=]]" $ +null]]% ) +)]]) * +{^^  + _selectedItem__ ! +.__! " + +IsSelected__" , +=__- . +true__/ 3 +;__3 4 +}``  +}aa  +}bb  +publicdd  +SettingsDatabaseVmdd ! +(dd! " +)dd" # +:dd$ % +thisdd& * +(dd* + +DatabaseServicedd+ : +.dd: ; +Instancedd; C +)ddC D +{ddE F +}ddG H +publicff  +SettingsDatabaseVmff ! +(ff! " +IDatabaseServiceff" 2 +databaseff3 ; +)ff; < +{gg  + _databasehh  +=hh  +databasehh  +;hh ! +Groupsii  +=ii  + _databaseii  +?ii  +.ii  + RootGroupii ) +.ii) * +Groupsii* 0 +;ii0 1 +}jj  +}kk  +}ll ôT +`C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\HamburgerMenuUserControl.xaml.cs + namespace  + ModernKeePass +  +.  +Views  +.  + UserControls * +{   +public + + + +sealed + +  +partial + +  +class + + $ +HamburgerMenuUserControl + + 8 +{    +public   $ +HamburgerMenuUserControl   ' +(  ' ( +)  ( ) +{    +InitializeComponent  +(  +) ! +;! " +}  +public  +string  + HeaderLabel ! +{  +get  +{  +return  +(  +string  +) ! +GetValue! ) +() * +HeaderLabelProperty* = +)= > +;> ? +}@ A +set  +{  +SetValue  +(  +HeaderLabelProperty . +,. / +value0 5 +)5 6 +;6 7 +}8 9 +}  +public  +static  +readonly  +DependencyProperty 1 +HeaderLabelProperty2 E +=F G +DependencyProperty  +.  +Register ' +(' ( +$str  +,  +typeof  +(  +string  +)  +,  +typeof  +( $ +HamburgerMenuUserControl / +)/ 0 +,0 1 +new  +PropertyMetadata $ +($ % +$str% - +,- . +(/ 0 +o0 1 +,1 2 +args3 7 +)7 8 +=>9 ; +{< = +}> ? +)? @ +)@ A +;A B +public  +string  + ButtonLabel ! +{  +get  +{  +return  +(  +string  +) ! +GetValue! ) +() * +ButtonLabelProperty* = +)= > +;> ? +}@ A +set    +{    +SetValue    +(    +ButtonLabelProperty   . +,  . / +value  0 5 +)  5 6 +;  6 7 +}  8 9 +}!!  +public""  +static""  +readonly""  +DependencyProperty"" 1 +ButtonLabelProperty""2 E +=""F G +DependencyProperty##  +.##  +Register## ' +(##' ( +$str$$  +,$$  +typeof%%  +(%%  +string%%  +)%%  +,%%  +typeof&&  +(&& $ +HamburgerMenuUserControl&& / +)&&/ 0 +,&&0 1 +new''  +PropertyMetadata'' $ +(''$ % +$str''% - +,''- . +(''/ 0 +o''0 1 +,''1 2 +args''3 7 +)''7 8 +=>''9 ; +{''< = +}''> ? +)''? @ +)''@ A +;''A B +public))  +string))  +DisplayMemberPath)) ' +{**  +get++  +{++  +return++  +(++  +string++  +)++ ! +GetValue++! ) +(++) *% +DisplayMemberPathProperty++* C +)++C D +;++D E +}++F G +set,,  +{,,  +SetValue,,  +(,, % +DisplayMemberPathProperty,, 4 +,,,4 5 +value,,6 ; +),,; < +;,,< = +},,> ? +}--  +public..  +static..  +readonly..  +DependencyProperty.. 1% +DisplayMemberPathProperty..2 K +=..L M +DependencyProperty//  +.//  +Register// ' +(//' ( +$str00 # +,00# $ +typeof11  +(11  +string11  +)11  +,11  +typeof22  +(22 $ +HamburgerMenuUserControl22 / +)22/ 0 +,220 1 +new33  +PropertyMetadata33 $ +(33$ % +$str33% , +,33, - +(33. / +o33/ 0 +,330 1 +args332 6 +)336 7 +=>338 : +{33; < +}33= > +)33> ? +)33? @ +;33@ A +public55  +object55  + ResizeTarget55 " +{66  +get77  +{77  +return77  +GetValue77 ! +(77! " +ResizeTargetProperty77" 6 +)776 7 +;777 8 +}779 : +set88  +{88  +SetValue88  +(88  +ResizeTargetProperty88 / +,88/ 0 +value881 6 +)886 7 +;887 8 +}889 : +}99  +public::  +static::  +readonly::  +DependencyProperty:: 1 +ResizeTargetProperty::2 F +=::G H +DependencyProperty;;  +.;;  +Register;; ' +(;;' ( +$str<<  +,<<  +typeof==  +(==  +object==  +)==  +,==  +typeof>>  +(>> $ +HamburgerMenuUserControl>> / +)>>/ 0 +,>>0 1 +new??  +PropertyMetadata?? $ +(??$ % +null??% ) +,??) * +(??+ , +o??, - +,??- . +args??/ 3 +)??3 4 +=>??5 7 +{??8 9 +}??: ; +)??; < +)??< = +;??= > +publicAA  + +VisibilityAA  +IsButtonVisibleAA ) +{BB  +getCC  +{CC  +returnCC  +(CC  + +VisibilityCC $ +)CC$ % +GetValueCC% - +(CC- .# +IsButtonVisiblePropertyCC. E +)CCE F +;CCF G +}CCH I +setDD  +{DD  +SetValueDD  +(DD # +IsButtonVisiblePropertyDD 2 +,DD2 3 +valueDD4 9 +)DD9 : +;DD: ; +}DD< = +}EE  +publicFF  +staticFF  +readonlyFF  +DependencyPropertyFF 1# +IsButtonVisiblePropertyFF2 I +=FFJ K +DependencyPropertyGG  +.GG  +RegisterGG ' +(GG' ( +$strHH ! +,HH! " +typeofII  +(II  + +VisibilityII ! +)II! " +,II" # +typeofJJ  +(JJ $ +HamburgerMenuUserControlJJ / +)JJ/ 0 +,JJ0 1 +newKK  +PropertyMetadataKK $ +(KK$ % + +VisibilityKK% / +.KK/ 0 + CollapsedKK0 9 +,KK9 : +(KK; < +oKK< = +,KK= > +argsKK? C +)KKC D +=>KKE G +{KKH I +}KKJ K +)KKK L +)KKL M +;KKM N +publicMM  + IEnumerableMM  +<MM  + IPwEntityMM $ +>MM$ % + ItemsSourceMM& 1 +{NN  +getOO  +{OO  +returnOO  +(OO  + IEnumerableOO % +<OO% & + IPwEntityOO& / +>OO/ 0 +)OO0 1 +GetValueOO1 9 +(OO9 : +ItemsSourcePropertyOO: M +)OOM N +;OON O +}OOP Q +setPP  +{PP  +SetValuePP  +(PP  +ItemsSourcePropertyPP . +,PP. / +valuePP0 5 +)PP5 6 +;PP6 7 +}PP8 9 +}QQ  +publicSS  +staticSS  +readonlySS  +DependencyPropertySS 1 +ItemsSourcePropertySS2 E +=SSF G +DependencyPropertyTT  +.TT  +RegisterTT ' +(TT' ( +$strUU  +,UU  +typeofVV  +(VV  + IEnumerableVV " +<VV" # + IPwEntityVV# , +>VV, - +)VV- . +,VV. / +typeofWW  +(WW $ +HamburgerMenuUserControlWW / +)WW/ 0 +,WW0 1 +newXX  +PropertyMetadataXX $ +(XX$ % +newXX% ( +ListXX) - +<XX- . + IPwEntityXX. 7 +>XX7 8 +(XX8 9 +)XX9 : +,XX: ; +(XX< = +oXX= > +,XX> ? +argsXX@ D +)XXD E +=>XXF H +{XXI J +}XXK L +)XXL M +)XXM N +;XXN O +publicZZ  +objectZZ  + SelectedItemZZ " +{[[  +get\\  +{\\  +return\\  +GetValue\\ ! +(\\! " +SelectedItemProperty\\" 6 +)\\6 7 +;\\7 8 +}\\9 : +set]]  +{]]  +SetValue]]  +(]]  +SelectedItemProperty]] / +,]]/ 0 +value]]1 6 +)]]6 7 +;]]7 8 +}]]9 : +}^^  +public__  +static__  +readonly__  +DependencyProperty__ 1 +SelectedItemProperty__2 F +=__G H +DependencyProperty``  +.``  +Register`` ' +(``' ( +$straa  +,aa  +typeofbb  +(bb  +objectbb  +)bb  +,bb  +typeofcc  +(cc $ +HamburgerMenuUserControlcc / +)cc/ 0 +,cc0 1 +newdd  +PropertyMetadatadd $ +(dd$ % +nulldd% ) +,dd) * +(dd+ , +odd, - +,dd- . +argsdd/ 3 +)dd3 4 +=>dd5 7 +{dd8 9 +}dd: ; +)dd; < +)dd< = +;dd= > +publicff  +eventff ( +SelectionChangedEventHandlerff 1 +SelectionChangedff2 B +;ffB C +publicgg  +delegategg  +voidgg ( +SelectionChangedEventHandlergg 9 +(gg9 : +objectgg: @ +senderggA G +,ggG H% +SelectionChangedEventArgsggI b +eggc d +)ggd e +;gge f +privatehh  +voidhh ' +Selector_OnSelectionChangedhh 0 +(hh0 1 +objecthh1 7 +senderhh8 > +,hh> ?% +SelectionChangedEventArgshh@ Y +ehhZ [ +)hh[ \ +{ii  +SelectionChangedjj  +?jj  +.jj  +Invokejj $ +(jj$ % +senderjj% + +,jj+ , +ejj- . +)jj. / +;jj/ 0 +}kk  +publicmm  +eventmm % +ButtonClickedEventHandlermm . + ButtonClickedmm/ < +;mm< = +publicnn  +delegatenn  +voidnn % +ButtonClickedEventHandlernn 6 +(nn6 7 +objectnn7 = +sendernn> D +,nnD E +RoutedEventArgsnnF U +ennV W +)nnW X +;nnX Y +privateoo  +voidoo  +ButtonBase_OnClickoo ' +(oo' ( +objectoo( . +senderoo/ 5 +,oo5 6 +RoutedEventArgsoo7 F +eooG H +)ooH I +{pp  + ButtonClickedqq  +?qq  +.qq  +Invokeqq ! +(qq! " +senderqq" ( +,qq( ) +eqq* + +)qq+ , +;qq, - +}rr  +}ss  +}tt  \ No newline at end of file diff --git a/ModernKeePass/.sonarqube/out/0/output-cs/token-type.pb b/ModernKeePass/.sonarqube/out/0/output-cs/token-type.pb new file mode 100644 index 0000000..e22ce1d --- /dev/null +++ b/ModernKeePass/.sonarqube/out/0/output-cs/token-type.pb @@ -0,0 +1,2160 @@ +ņ +GC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\ClipboardAction.cs +  +  +  +   +     # 3 5 <                           ) .        1   ( . 0 6 7 = @ F G V Y \ ] m n t      $ - 3    ! " - E Y      š +KC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\NavigateToUrlAction.cs +  +  +  +  +   +    $ ' 7 9 @  + +   + +                    ( -        1   ( - / 5 6 < ? E F Y \ _ ` p q w      $ - 3        !   & .      #    ā +HC:\Sources\Other\ModernKeePass\ModernKeePass\Actions\SetupFocusAction.cs +  +  +  +  +  +     +        !   $ 4   6 =                    !   1 6        1   ( 6 8 > ? F I O P ` c f g w x |      $ - 3     * @ . 8† +8C:\Sources\Other\ModernKeePass\ModernKeePass\App.xaml.cs +  +  +  +  +  +  +  +  +   + + +  +   +   +   + ` +     [    +          b  S         + M ((  ((  ((* 0 ((9 T ** O ++  ,,  --  -- 6 .., 0 22  22  22! . 446 : 55 # 55B D 55E R 55T c 77  77  77# % 77& = 996 : :: # ::F H ::I ` ::b q >>  ?? b @@ Z AA  BB Q CC  CC  CC  CC! % CC1 I FF  FF  FF8 U II  II  II  II, ? NN  NN  NN) < RR  RR# + TT > XX  XX " XX3 5 XX6 ; ZZ T [[ 4 \\  \\ ! ^^ a __  __ % __H \ __g h `` + dd  dd0 I ff M hh ' hh? O hhQ } ll 8 mm  pp  pp  pp - rr  rr/ G ss  ss) - uu [ vv _ ww  xx' - xx. 6 z~  +€€ 6 +‡  +ˆˆ 2 +‰‰  +ŒŒ  +ŒŒ  +ŒŒ  +ŒŒ& , +ŒŒ5 ; +ŽŽ  +ŽŽ % +ŽŽ6 8 +ŽŽ9 > +  + * +  +) - +““ ' +““9 H +““J v +••  +——  +™™  +™™- 1 +™™3 8 +››  +››  +' - +. 6 +ŸŸ # +ĄĄ ' +ĄĄ9 H +ĄĄJ t +ĨĨ  +ĻĻ ; +§§  +¨¨ J +ŠŠ H +ĒĒ  +ĒĒ & +ĒĒ/ H +ŦŦ  +ŦŦ  +ŦŦ  +ŦŦ 6 +¯¯  +°° ^ +ąą c +˛˛ # +ŗŗ  +´´ K +ĩĩ F +ļļ  +ļļ  +ļļ  +ļļ( . +ļļ7 J +¸¸  +šš  +šš * +ēē  +ŧŧ  +ŧŧ # +ŧŧ8 E +ŧŧG K +ŊŊ  +ŊŊ% * +ŋŋ  +ŋŋ  + ' +ČČ  +ÉÉ Y +ĘĘ  +ËË J +ĖĖ  +ĖĖ  +ĖĖ  +ĖĖ0 F +ÎÎ  +ĪĪ  +ĪĪ  +ĪĪ % +ĐĐ  +ĐĐ? @ +ĐĐB D +ĐĐE P +ŅŅ % +ŅŅ& . +ŌŌ  +ĶĶ Ü +OC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\IntToSymbolConverter.cs +  +  +  +  +   +    % ( 7  + +   + +   + + $  + +, 0  + += C  + +O U                 ! ' ( .         # ) * 0     % + , 2                 + 1 2 8     - 3 4 :     / 5 6 <     # ) * 0     % + , 2     & , - 3     ( . / 5     % + , 2     - 3 4 :     $ * + 1           % +   , 2 !!  !!  !!# ) !!* 0 ""  ""  ""% + "", 2 ##  ##  $$  $$  $$# ) $$* 0 %%  %%  %%+ 1 %%2 8 &&  &&  &&, 2 &&3 9 ''  ''  ''& , ''- 3 ((  ((  (($ * ((+ 1 ))  ))  ))+ 1 ))2 8 **  **  **" ( **) / ++ 5 ,, @ --  --  --% + --, 2 ..  ..  ..% + .., 2 //  //  //* 0 //1 7 00 2 11  11  22  22  22" ( 22) / 33  33  33% + 33, 2 44  44  44# ) 44* 0 55  55  55# ) 55* 0 66  66  66) / 660 6 77  77  77' - 77. 4 88 5 99  99  99& , 99- 3 ::  ::  ::% + ::, 2 ;;  ;;  ;;" ( ;;) / << 6 ==  ==  >>  >>  ??  ??  ??+ 1 ??2 8 @@ 7 AA  AA  AA) / AA0 6 BB  BB  BB% + BB, 2 CC  CC  CC! ' CC( . DD  DD  DD' - DD. 4 EE  EE  EE" ( EE) / FF  FF  FF" ( FF) / GG  GG  GG% + GG, 2 HH  HH  HH" ( HH) / II  II  II" ( II) / JJ 2 KK 6 LL 4 MM 3 NN  NN  NN# ) NN* 0 OO  OO  OO) / OO0 6 PP  PP  PP( . PP/ 5 QQ  QQ  QQ & UU  UU  UU" ( UU0 4 UUA G UUS Y WW  WW  XX  Zg  hh  hh  ii  ii !  jÛ  +ÜÜ  +ŨŨ  +ŨŨ !¤ +RC:\Sources\Other\ModernKeePass\ModernKeePass\Exceptions\DatabaseOpenedException.cs +  +   +    ( * 3ˆ +JC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ILicenseService.cs +  +  +  +   +    $        "   $ 2   ? B  + +   + +   + + !Î +RC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IProxyInvocationHandler.cs +  +   +    ,     $ . 7 =Û +IC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IRecentService.cs +  +  +  +   +    #          + +   + +   + +( .        (   6 :   Q U           $ *    Ū +FC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IRecentItem.cs +  +   +       # &            Ÿ +KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IResourceService.cs +   +    %    &˙ +MC:\Sources\Other\ModernKeePass\ModernKeePass\Services\SingletonServiceBase.cs +  +   +      . / 0 2 7 8 9 < ?        $ % &        !  + +   + +   + + Æ +`C:\Sources\Other\ModernKeePass\ModernKeePass\TemplateSelectors\SelectableDataTemplateSelector.cs +  +  +  +   +    / 1 E           ' *   , /  + +   + +   + +( +  + +- 0            '   ; A   H X   ( * + ;   ' +Š +OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsSaveVm.cs +  +  +   +          )  + +   + +   + +" &  + +' 6            .         . ; = A   ' 4 6 ;ú +TC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\DonatePage.xaml.cs + ^ +     Q    +        *  + +   + + ā$ +HC:\Sources\Other\ModernKeePass\ModernKeePass\Services\DatabaseService.cs +  +  +  +  +  +  +  +  +   + + +  +   +   +   +  +   +     " 6 7 F I Y      # 2 5 6 @      )                     # & ( +             "" # ''  ''  ))  ))  ++  ++  ,,  ,,2 7 //  //  11  11  22  44  66  66  66 5 88 % <<  <<  >>  >>  ??  ??" ' BB  BB  DD  DD  EE  EE/ 4 HH  HH % JJ  JJ  KK  KK, 1 NN  NN  PP  PP  QQ  QQ. 3 TT  TT  UU  UU  UUJ N VV  VV  VV1 5 WW  WW  WW! $ WW& ) YY  YY  YY# ' YY( 7 ]]  ]]  ]] / cc  dd # ee  ff @ gg [ hh 7 ii  ii  ii  ii + ii1 5 iiB G kk > ll  nn  nn  pp  pp  pp 3 tt  tt# 3 uu  yy 1 zz  zz- 1 zz3 ; {{  {{: @ {{B U ||  ~~  ~~  , 3 8 @ +€€ ! +ƒƒ  +ƒƒ9 < +ƒƒ= M +…… 2 +‡‡ S +ˆˆ  +ˆˆ) - +ˆˆ/ ? +‹‹  +ŒŒ  +ŒŒ - + 3 +‘‘  +‘‘ ' +‘‘? C +‘‘v z +““  +““ / +••  +––  +––  +–– + +šš  +šš  +šš  +œœ  +ŸŸ  +   G +ĄĄ  +ĸĸ  +ĸĸ  +¤¤  +¤¤  +ĨĨ  +§§! $ +§§% 5 +ŠŠ 0 +ĒĒ  +ĒĒ) - +ĒĒ/ ? +ŦŦZ ] +ŦŦ^ n +¯¯  +¯¯  +ąą  +ąą  +ąą ' +ĩĩ  +ļļ A +ˇˇ  +¸¸ < +šš  +šš  +šš $ +ģģ  +ŊŊ  +ŋŋ# 3 +ŋŋL P +ŋŋR U +ŋŋV f +ÁÁ  +ÄÄ  +ČČ  +ÉÉ / +ĘĘ  +ËË  +ËË  +ËË  +ËË $ +ËË3 7 +ĪĪ 8 +ĐĐ  +ĐĐ% ) +ĐĐ+ ; +ŌŌ  +ŌŌ# ' +ÔÔ  +ÖÖ  +ÖÖ, 0 +ŲŲ  +ŲŲ  +ŲŲ# ) +ÛÛ+ . +ÛÛ/ > +ÛÛC K +ŪŪ  +ŪŪ  +ŪŪ% + +áá$ ( +ââ! $ +ââ% + +åå  +åå  +įį+ . +įį/ 6 +įį7 ; +įį= A +įįC L +įįN T +įį] a +čč+ . +čč/ 6 +čč7 ; +čč= A +ččC J +ččL R +čč[ _ +éé+ . +éé/ 6 +éé7 ; +éé= A +ééC M +ééO U +éé^ b +ëë  +ëë  +ëë  +ëë! % +ëë' + +ėė ! +ėė. 1 +ėė2 A +íí  +îî ! +îî1 4 +îî5 D +īī  +đđ ! +đđ, / +đđ0 ? +ņņ  +ōō ! +ōō1 4 +ōō5 D +ķķ  +ôô ! +ôô. 1 +ôô2 A +õõ 3 +öö/ 3 +øø  +øø  +øø ! +øø# ' +ųų ! +ųų. 1 +ųų2 A +úú ! +ûû ! +ûû1 4 +ûû5 D +üü  +ũũ ! +ũũ, / +ũũ0 ? +ūū  +ūū! 3 +˙˙ ! +˙˙1 4 +˙˙5 D +€€  +  + 3 +4 K +M S +‚‚/ 3 +KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ISettingsService.cs +   +    %       ) * : A B C      ! , -Í +JC:\Sources\Other\ModernKeePass\ModernKeePass\Common\MessageDialogHelper.cs +  +  +  +  +  +  +   + + +  + +   + +   + + +    "                   2 8   @ F   T Z   m s +  †  +  ­ Ä  <      ' * + 4  &         + 8 D T  ) M V X a c h   ! $ % 3 - =   ( *   M T   T U ""/ E ""G J ""K O ""P V ""Z a $$  $$  %%  %%  &&  ))  ))  ))  ))/ F ))R b ++ . ++0 2 ++2 ; ++J w ++w x  ++z ˆ +++Š “ 66  66  66  66  661 : 88  88 ! 88# ) 99 < ::  ::[ _ << & ==  @@  @@  @@  @@  @@8 > @@F L BB  BB; ? DD & EE  HH  HH  HH $ HH7 = HHE K HHU [  HHo † +HH— › JJ < KK  KK # KK$ 1 MM 5 NN' * NN+ 4 PP > QQ0 1 SS C TT/ 0 VV Ũ7 +GC:\Sources\Other\ModernKeePass\ModernKeePass\Common\NavigationHelper.cs +  +  +  +  +  +  +  +  +   + + +  +   +      Y  W  X  ]  F      B  T    O  S            + !! B "" N ## N $$  %%  && ^ ''  (( ^ ))  **  ++  ,, ^ -- f .. S //  00 H 11  22 2 33  44  55 J 66  77 4 88  99  ::  ;;! . << + <<  << ! <<$ 4 >>  >>  >>  >>! $ ??  ??  ?? ! ??$ * ??+ / AA  BB S CC  DD U EE U FF ` GG  GG  GG $ II  KK J LL I MM 5 NN  SS \ TT  TT  TT. 4 UU  UU- 3 WW L XX  ZZ  [[  `` G aa  ff  hh  ii  pp  qq  ss  tt Y uu Y vv / ww  xx c yy M zz  {{  {{  }}    & * +% ( +) 5 +‚‚ " +ƒƒ " +……  +‡‡  +‰‰! & +ŒŒ  + V +ŽŽ Z +  + f +‘‘ P +’’  +““  +““  +••  +——  +——) - +™™( + +™™, 8 +šš " +›› " +  +ĄĄ  +ĸĸ K +ŖŖ @ +¤¤  +ĨĨ  +ĻĻ C +§§ + +¨¨  +ŠŠ  +ŠŠ  +ŠŠ  +ĢĢ  +ĢĢ  +ĢĢ! % +ĢĢ) - +­­  +ŽŽ N +¯¯ C +°°  +ąą  +˛˛ C +ŗŗ . +´´  +ĩĩ  +ĩĩ  +ĩĩ  +ˇˇ  +ˇˇ  +ˇˇ! % +ˇˇ) - +ēē  +ģģ K +ŧŧ U +ŊŊ  +žž  +žž  +žž  +ĀĀ  +ĀĀ  +ĀĀ " +ĀĀ& * +ĀĀ< @ +  +Ãà N +ÄÄ X +ÅÅ  +ÆÆ  +ÆÆ  +ÆÆ  +ČČ  +ČČ  +ČČ " +ČČ& * +ČČ? C +ÚÚ  +ÛÛ ` +ÜÜ c +ŨŨ G +ŪŪ  +ßß K +āā _ +áá  +áá  +áá< J +ââ # +ää  +ææ ` +įį  +čč  +čč ; +éé : +ęę ) +ęę@ J +ëë  +ëë# & +ëë+ . +ëë= @ +íí  +íí! ' +îî  +îî 4 +īī  +īī7 A +đđ  +đđ: D +ņņ  +ņņ8 B +ōō  +ķķ  +õõ  +õõ  +õõ( + +öö# - +øø R +ųų $ +úú  +úú/ 3 +üü  +üü  +üü  +üü- 0 +ũũ# - +˙˙ R +€€ $ +  +2 6 +††  +‡‡ _ +ˆˆ a +‰‰ C +ŠŠ  +‹‹ K +ŒŒ _ +  +  +/ 9 +ŽŽ  +  +’’ L +““  +””2 8 +–– R +——  +˜˜  +™™  +››  +œœ  +œœ! % +œœ< @ +  +$ ( +B F +ĻĻ  +ĻĻ  +¨¨  +ŠŠ H +ĒĒ F +ĢĢ G +ŦŦ  +­­  +­­  +­­ * +ŽŽ  +¯¯ ? +°° > +ąą B +˛˛ " +ŗŗ  +´´  +´´  +´´ * +ļļ  +ˇˇ I +¸¸ N +šš N +ēē  +ģģ _ +ŧŧ @ +ŊŊ  +ŊŊ  +ŊŊ" 5 +ŋŋ  +ŋŋ . +ŋŋD H +ĀĀ  +ĀĀ # +ĀĀ& * +  +ÂÂ$ 2 +ÄÄ \ +ÅÅ # +ÆÆ  +ÆÆ" & +ĮĮ  +ĮĮ$ ( +ČČ  +ËË" ) +ÎÎ @ +ĪĪ  +ĪĪ  +ĪĪ& * +ŅŅ  +ŅŅ# ' +ŅŅ) , +ŅŅ- ? +ŅŅM Q +ÔÔ  +ÖÖ \ +×× _ +ØØ  +ŲŲ  +ŲŲ  +ŲŲ& * +ÛÛ  +ÛÛ# ' +ÛÛ) , +ÛÛ- ? +ÛÛN X +ÛÛY _ +ÛÛa g +ÛÛt x +āā  +áá J +ââ N +ãã N +ää  +åå _ +ææ @ +įį  +įį  +įį$ 7 +éé  +éé . +ééD H +ęę  +ęę  +ęę * +ęę+ 1 +ęę3 9 +ëë  +ëë  +ëë" & +íí  +íí # +íí% ( +íí) ; +õõ  +öö ` +÷÷  +øø + +øø  +øø  +øø . +øø/ 5 +øø> P +ųų  +úú ` +ûû  +üü + +üü  +üü  +üü . +üü/ 5 +üü> P +ūū  +˙˙ V +€€  + + +  + # +& / +ƒƒ  +„„ U +…… 3 +††  +‡‡  +‡‡  +‡‡, / +‡‡1 8 +‡‡9 < +ˆˆ  +‰‰ J +ŠŠ I +‹‹  +ŒŒ  +ŒŒ  +ŒŒ  +ŒŒ" ( +ŒŒ6 9 +ŒŒ; B +ŒŒC F +ŽŽ  + U +  +‘‘ . +’’ U +““ 3 +””  +•• $ +–– J +—— I +˜˜  +™™  +™™ ! +™™" ( +™™> H +™™I O +™™Q W +šš  +œœ  +  +    +ĄĄ V +ĸĸ  +ŖŖ + +ŖŖ  +ŖŖ # +ŖŖ& / +ĨĨ  +ĻĻ H +§§  +¨¨  +¨¨  +¨¨  +¨¨" ( +¨¨6 9 +¨¨; B +¨¨C F +ĒĒ  +ĢĢ U +ŦŦ  +­­ h +ŽŽ  +ŽŽ ! +ŽŽ" , +ŽŽ- 3 +ŽŽ5 ; +¯¯  +ąą Ļ +PC:\Sources\Other\ModernKeePass\ModernKeePass\Common\NotifyPropertyChangedBase.cs +  +  +  +   +    * - C            0           ) /   ? A   $ (   * -   . F     # $ & ) * + 6 7 @ P R X h j     ! "        É +KC:\Sources\Other\ModernKeePass\ModernKeePass\Common\ObservableDictionary.cs +  +  +  +  +       [  + +         +        %   ( 6   7 =   ? E      : = Q R X    7 8 H Q W        # 7 : < C D G      # % , - 0      ! # ) 9 < = G H N P V      + , 2 4 :     & 6 ? E          $ "" ! ""# & ""' K &&  &&  &&  &&$ * ((  ))  ))" 2 ,,  ,,  ,, $ ,,% + ,,- 3 ..  11  11  11 ( 11) 5 116 < 11> D 33  33  33 ! 99  99  99 ! ;;  ;;  ==  ==& 6 >>  >>  @@  @@  CC  CC  CC ' CC( . CC0 6 EE  FF  FF  FF7 : GG  GG; ? II  II& 6 JJ  JJ  LL  LL  OO  OO  OO  OO ! QQ  SS  SS  UU  WW  WW( - XX  XX& 6 \\  \\  ^^  ^^  __  ``  ``  ``  bb  bb& 6 ff  ff  ff ! hh  hh  hh  kk  kk  kk & mm  mm  pp  pp  pp & pp, / pp0 6 rr  rr  rr5 8 uu  uu  uu ! ww  ww  ww  zz  zz  zz ) zz* 0 zz2 8 ||  ||      +  +  +  +„„  +„„  +††  +††  +††  +‰‰  +‰‰  +‰‰ ' +‰‰( . +‰‰0 6 +‹‹  +‹‹  +ŽŽ & +ŽŽ: E +  +  +““  +““  +““ ' +““( . +““0 6 +““A D +••  +––  +––  +––  +––! % +˜˜  +˜˜- 2Ŗ + +CC:\Sources\Other\ModernKeePass\ModernKeePass\Common\RelayCommand.cs +  +  +  +  +  +  +   + +     C    0    E  H  I    +      (              "    9        !    :    >      "         $$  %% " &&  '' > (( H ))  ))  )) " )), 0 ))1 5 ++  ++  ,,  ,,  ,, / ,,0 9 11  22 ` 33  44 $ 55 x 66  77 V 88  88  88 % ::  ::" & ::) - ==  >> R ??  @@ $ AA x BB  CC  CC  CC " HH  II J JJ M KK  LL  MM  MM  OO  PP  PP  RR  RR '­( +HC:\Sources\Other\ModernKeePass\ModernKeePass\Common\SuspensionManager.cs +  +  +  +  +  +  +  +  +   + + +  +   +   +     _  b  ^  ]            +      ! " ( * 0 B E F P Q W Y _         0 3 4 8 9 =       4 G    [  A    I !! _ "" I ##  $$  $$  $$  $$! ' $$) / &&  &&  ))  ** Z ++ X ,, 9 --  ..  ..  ..  ..  00  00  33  44 [ 55 X 66 ` 77  88  99 d ::  ::  ::  ::  <<  >> F ??  ??  ??0 2 AA  BB  BB8 ; HH c II  JJ  JJ+ . JJ/ ; KK & KK4 7 KK8 N KKO U KKV ` KKa g KKi o NN d OO  OO# ( OO) 8  OOs Š PP  PP  PP+ 0 RR% & RR( 2 SS  VV  VV  XX  XX  XX 4 \\  ]] d ^^ ` __ a ``  aa  bb ] cc b dd ^ ee [ ff  gg  gg  gg  gg  gg. 4 ggF J ii  ii * ii+ 1 ii3 9 kk  mm A nn  nn# ( nn) 8 oo  oo # oo/ 4 qq 4 rr * rr8 ; rr< R rrS Y rrZ d rre k rrm s ss% / ss0 6 ss8 > vv E ww  ww  ww0 2 yy  zz  zz8 ; zzG M +  +  +ƒƒ  +ƒƒ  +ƒƒ 4 +‡‡  +‡‡  +‡‡ ) +ˆˆ  +ˆˆ0 G +ˆˆI O +ˆˆP V +ˆˆY _ +ˆˆ` q +ˆˆt x +‰‰  +‰‰  +‰‰ ) +ŠŠ  +ŠŠ0 L +ŠŠN T +ŠŠU [ +ŠŠ^ d +ŠŠe v +ŠŠy } +‹‹  +‹‹  +‹‹ ) +ŒŒ  +ŒŒ0 D +ŒŒF L +ŒŒM W +ŒŒX ^ +ŒŒ` f +ŒŒj p ŒŒq ‚ ŒŒ… ‰ +  +  +  + ) +* / +F I +J N +O \ +] b +  + c +‘‘ [ +’’ b +““ Q +”” [ +•• L +––  +—— Y +˜˜ 3 +™™ ^ +šš 9 +›› ] +œœ b +  +  +  +) . +6 < +N T +f j +ŸŸ  +ŸŸ@ D +ĄĄ  +ĄĄ  +ĄĄ 3 +ĄĄ4 l +¤¤  +¤¤= A +ĻĻ  +ĻĻ  +ĻĻ 3 ĻĻ4 ˜ +ŠŠ  +ŠŠ  +ŦŦ3 6 +¯¯ s +°° 1 +˛˛" % +˛˛& 3 +˛˛4 9 +´´ ? +¸¸  +šš d +ēē ^ +ģģ  +ŧŧ  +ŊŊ X +žž  +ŋŋ  +ŋŋ  +ŋŋ  +ŋŋ+ 0 +ÁÁ a + ` +ÃÃ! ' +ÆÆ  +ĮĮ  +ĮĮ8 ; +ËË  +ĖĖ a +ÍÍ ] +ÎÎ X +ĪĪ \ +ĐĐ [ +ŅŅ  +ŌŌ  +ĶĶ X +ÔÔ _ +ÕÕ X +ÖÖ Y +×× 1 +ØØ  +ØØ  +ØØ  +ØØ! ' +ØØ) / +ØØF K +ÚÚ  +ÚÚ ( +ÚÚ) / +ÚÚ1 7 +ÜÜ  +ÜÜ " +ŪŪ  +ŪŪ' - +ßß  +ßß' + +áá P +ââ  +ää9 < +ää= G +ääH N +ääP V +ææ" , +ææ- 3 +ææ5 ; +čč  +ęę I +ëë! $ +ëë% / +ëë0 6 +ëë8 > +īī  +ōō  +ōō  +ōō  +ōō8 = +ôô  +õõ  +õõ' 3 +÷÷* 0 +÷÷< H +ûû  +ûû  +ûû  +ûû5 : +ũũ  +ūū # + + +  + + +. 7 +ƒƒ  +ƒƒ ) +‡‡  +‡‡ ) +‡‡* 3 +ˆˆ  +ˆˆ -ņ +GC:\Sources\Other\ModernKeePass\ModernKeePass\Services\LicenseService.cs +  +  +  +  +  +     +           " 6   7 E   H W            "    " # ) + 9 F I  9       ! % A D E L M Q        $ !!  !!  !!  !!  !!( . ##  ##" ' ##( 2 $$  &&  && * ((  ((  ((! & ))  )) * ** k ++ & ,,  00  00  00! & 11  11 * 22  22  22! / 33  33 * 44  44  44! / 55  66  66  66 9 ::  ::  ::  :: ) ::B F ::V \ <<  <<  << ) ==  == " @@  @@  @@) - EE  EE  EE( , GG Ŧ +FC:\Sources\Other\ModernKeePass\ModernKeePass\Services\RecentService.cs +  +  +  +  +  +  +  +      +           ! 5   6 C   F T            8   @ ]        # $ / = A X \      1 2 =      !     > P  " # /           ##  ##  ## $ ##+ 1 ((  ((  --  --  --  -- & --5 ; //  // • +IC:\Sources\Other\ModernKeePass\ModernKeePass\Services\ResourcesService.cs +  +  +   +    ! # 3       0 <            '   : H           ' -       5 7   7 8   J K   P Q  Ô +HC:\Sources\Other\ModernKeePass\ModernKeePass\Services\SettingsService.cs +  +  +  +  +   +     # 7 8 G J Z  + +   + +   + + %  + +0 ?                %   0 1   A H   I J        ! @ F G H    '         " ( 3 4    – +NC:\Sources\Other\ModernKeePass\ModernKeePass\Common\ToastNotificationHelper.cs +  +  +  +  +  +  +   + + +  + +   + +   + + /               * 3   < B   K Q   $ & ' . 1 8 ; B   " : N _   E K   H J m n     = E      '    (    &   2 :      - ! ) 9 :    $ ##  ##  ##  ##, 2 ##: @ %%  %%" : %%N _ &&  &&E K ''  ((  **  **  ** - ,,! ) ,,9 : .. $ 11  11  11  11* 3” +`C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\DiscreteIntToSolidColorBrushConverter.cs +  +  +  +  +   +    6 9 H  + +   + +   + + $  + +, 0  + += C  + +O U        '            " # 2 3 9        " # 2 3 9        " # 2 3 9      # $ 3 4 :     " ( 0 4 A G S Y      -ų +[C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\EmptyStringToVisibilityConverter.cs +  +  +  +     + * , ;            $   , 0   = C   O U            &   < B           0 :   G Q     " ( 0 4 A G S Y      - +QC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\NullToBooleanConverter.cs +  +  +   +    ' * 9      $ , 0 = C O U  + +   + +            " (   0 4   A G   S Y      -ü +HC:\Sources\Other\ModernKeePass\ModernKeePass\Exceptions\SaveException.cs +  +   +     ! *       . 1            &û +SC:\Sources\Other\ModernKeePass\ModernKeePass\Extensions\DispatcherTaskExtensions.cs +  +  +  +   +      0                   ! "   1 2   4 8   9 G  + +   + +   + +   + + 6  + +B X       ' *   + ?   @ A       0 5   3 8          V         . 2 3 A      3 ? U   + 0 9 > G M N S• +KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IDatabaseService.cs +  +  +  +  +  +  +   + + +  + +   + + %               ! $   & )  "     ! $     " %   # & ( +   $ ' ) ,     ! $   6 9 ; >   & ) + .                  "     $ ( 5 :            $        " !!  !!  !!& *ą +OC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IHasSelectableObject.cs +   +    )   ( + - 0­ +KC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\ISelectableModel.cs +   +    %      "ß +SC:\Sources\Other\ModernKeePass\ModernKeePass\Views\BasePages\LayoutAwarePageBase.cs +  +  +  +  +  +  +  +      +        $   & *      K  '       3 6       + . 0 3      + = @ B E      + 4 7 9 <    "  *  " # 3 4 8  F  8   - 0   1 = "" 7 ## H $$  ((  ((  ((1 7 ((@ Y ** _ ++ _ ,, ` -- b ..  //  /// 5 44  55 ^ 66 A 77  88 ! 99 T ::  ;; \ << a == J >> V ??  ??  ??2 8 ??A S AA L BB Z DD  DD # FF c GG \ HH  MM  OO O PP  PP, : RRC Q WW  XX a YY b ZZ P [[  \\ q ]] ] ^^ ' __  __  __2 8 __A S aa  aa' + cc * ii \ jj Q kk + ll ] mm Y nn  pp  pp  pp  pp@ C rr  ss X tt  uu R vv  ww  ww  yy  yy  ||  }} 0 ~~   ; +€€ X +  +  +* 0 +I c +††  +††  +ˆˆ  +ˆˆI M +ŠŠ  +ŠŠ  +ŒŒ  +ŽŽ  +ŽŽ  +  +I M +’’ ] +““ a +”” [ +••  +––( , +˜˜  +žž  +žž  +    +ĄĄ  +ĄĄ) - +ĄĄ< A +ĨĨ  +ĻĻ ` +§§  +¨¨  +ŠŠ _ +ĒĒ _ +ĢĢ ` +ŦŦ  +ŦŦ  +ŽŽ  +¯¯  +¯¯ $ +ąą Q +˛˛  +˛˛\ ` +´´  +´´% 8 +´´; G +ģģ I +ŧŧ I +ŊŊ  +žž L +ŋŋ ; +ĀĀ @ +ÁÁ J + J +ÄÄ  +ÄÄ  +ÄÄ  +ÄÄ. A +ÉÉ  +ÉÉ  +ÉÉ  +ÉÉ0 Cˆ +bC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsDatabasePage.xaml.cs + ^ +     Q    +        4  + +   + + #‹ +eC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsNewDatabasePage.xaml.cs + { +     h    +        7  + +   + + &„ +^C:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsSavePage.xaml.cs + ^ +     Q    +        0  + +   + + ‚ +bC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsSecurityPage.xaml.cs + ^ +  +  +       Q  + +     +                4        #     A G P a  # 5 D F f‡ +aC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPageFrames\SettingsWelcomePage.xaml.cs + ^ +     Q    +        3  + +   + + "š +_C:\Sources\Other\ModernKeePass\ModernKeePass\TemplateSelectors\FirstItemDataTemplateSelector.cs +  +  +   +    . 0 D     ( + - 0           ( +   - 0            '   ; A   H X        +   P Q  – +LC:\Sources\Other\ModernKeePass\ModernKeePass\Controls\ListViewWithDisable.cs +  +  +  +   +    $ & .               @ P   Z `           $ &   ' 3   " $ % /    ! 3 7 9 ?Û +]C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\BreadCrumbUserControl.xaml.cs +  +  +  + ` +     +                5        $      $      % & /   0 5        1        " # ,    ,    $ % ( ) . / 8Ā +_C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\CompositeKeyUserControl.xaml.cs +  +  +  +  +  +  +  +  +   + + +    „ +   +        7     8 : ; I             . 3        1            .    $ % *         ""  ""  ""  ##  ##. 3 %%  %%  %%  %% 1 &&  ''  ((  ((  ))  )) . **  ** $ **% * ,,  ,,  ..  ..  ..  //  //0 5 11  11  11  11 1 22  33  44  44  55  55 . 66  66 $ 66% ) 99  99  ;;  ;; & @@  @@  @@ 1 AA  AA  AA  AA 9 AA: @ AAI R BB  BB  BB 0 CC  CC  CC  CC 8 CC9 ? CCH Y EE  EE  EE  EE. 4 EE= L GG' + GG- 0 GG1 : II  LL* . LL0 3 LL4 E NN  PP  PP " PP# 3 QQ  RR8 M SS  SS  SS2 7 SS> C UU. 2 UU4 7 UU8 I [[  [[  [[) / [[8 J ]]  ]] # `` 7 aa  ee  ee  ee  ee/ 5 ee> M gg  hh  hh " jj - kk- = mm& , oo G pp  pp  qq  qq  qq $ uu  uu  uu  uu5 ; uuD S ww  ww  ww! / yy) 9 zz$ ) ||+ 5 ||7 : ||; ? ||@ F ||J P ~~  ~~       $ä +JC:\Sources\Other\ModernKeePass\ModernKeePass\Controls\TextBoxWithButton.cs +  +  +  +  +   +    " % ,  + +   + +                    1 6        1            (    $ % /      ! " 1             2 7        1                ( !!  !! $ !!% + ##  ##  %%  %%  %%  &&  &&4 9 ((  ((  ((  (( 1 ))  ** ! ++  ++  ,,  ,, ( --  -- $ --% ) //  //  11  11  11 $ 22  221 6 44  44  44  44 1 55  66  77  77 ! 88  88 ( 99  99 $ 99% ) ;;  ;;  ;;  ==  >>  >>0 > >>@ B >>C I ??  ?? $ã +WC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\BooleanToVisibilityConverter.cs +  +  +  +   +    - 0 ?            $   , 0   = C   O U        "   # '   + /   9 >        '   2 <  $     " ( 0 4 A G S Y   # % & 0 4 > H R       ) / 0 4     + 1 2 7        9ę +PC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\ColorToBrushConverter.cs +  +  +  +  +   +    & ) 8  + +   + +   + + $  + +, 0  + += C  + +O U           ! &   * /   : ?           2 4   5 D   F L   N ]      & 2 7     " ( 0 4 A G S Y      -š +[C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\DoubleToSolidColorBrushConverter.cs +  +  +  +  +   +    1 4 C  + +   + +   + + $  + +, 0  + += C  + +O U       $ *    % 6 8 9 ?   # * L P     " &      * + 0 : = K L    $      * + 0 : = ? @ B F Q R     " ( 0 4 A G S Y      -ę +^C:\Sources\Other\ModernKeePass\ModernKeePass\Converters\InverseBooleanToVisibilityConverter.cs +  +  +  +   +    4 7 F            $   , 0   = C   O U        "   # '   + /   8 =        '   4 >  $     " ( 0 4 A G S Y   # % & 0 4 > G Q       ) / 0 5     + 1 2 6        9ß +QC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\PluralizationConverter.cs +  +  +   +    ' * 9      $ , 0 = C O U  + +   + +6 8  + +9 ?       H K   P S   W i       ( ,   O P   R X   Y _           ! $   ( +   5 6    ! 9 : S T     # $  $     " ( 0 4 A G S Y      -’ +ZC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\ProgressBarLegalValuesConverter.cs +  +  +   +    0 3 B      $ , 0 = C O U  + +   + +4 6  + +7 =       D G   L O   S e       & *   K L   N T   U V    ! ; <    ! ; <     ! ' + 1 : ;   " (   " (       " ( 0 4 A G S Y      -ũ +OC:\Sources\Other\ModernKeePass\ModernKeePass\Converters\TextToWidthConverter.cs +  +  +   +    % ( 7      $ , 0 = C O U  + +   + + !  + +2 4  + +5 ;            &       . /     " ( 0 4 A G S Y      -ˆ +HC:\Sources\Other\ModernKeePass\ModernKeePass\Events\PasswordEventArgs.cs +  +  +   +    " $ -     # & ( +  + +   + +   + +! (™ +EC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IIsEnabled.cs +   +        Ō +DC:\Sources\Other\ModernKeePass\ModernKeePass\Interfaces\IPwEntity.cs +  +  +   +        !        #  + +   + +                                , /       ! $    2    S                        !     !!  ""  ## ! $$  %%  %% !ë +CC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPage.xaml.cs +  +  +  + ^ +       + + Q        +                (       $ *           3 9 B [     2 4 5 C    $ 9 ? @ K         . A !!  ""  "" $ų +SC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\AboutPage.xaml.cs + ^ +     Q    +        )  + +   + + ũ +YC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\NewDatabasePage.xaml.cs +  +  +  +  +  + ^ +          Q      +        /      $           . 4 = L     ! / ) 9 $ 2 + A C F G K L R V ]         !!  !!  !! $ķ +GC:\Sources\Other\ModernKeePass\ModernKeePass\Views\SettingsPage.xaml.cs +  +  + ^ +       ]  + + $        +                ,       ( 2           3 9 B [     2 4 5 C 0 4 7 = > Qû +UC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\WelcomePage.xaml.cs + ^ +     Q    +        +  + +   + + ž +BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\AboutVm.cs +  +   +                                     ( ) 8 9        '      ë +IC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\CompositeKeyVm.cs +  +  +  +  +  +  +  +  +   + + +  +    +     ! :                   + . 0 3             . 3   " + $$  $$  &&  &&  ''  ))  ))- 2 **" + ..  ..  00  00  11  33  331 6 44" + 88  88  88W [ ::  ::  <<  <<  ==  == ! ==+ 0 @@  @@  BB  BB  BB  CC  CC ! CC0 ; CC< A FF  FF  HH  HH  II  KK ! LL" ? MM ! MM" - NN  RR  RR  TT  TT  UU  WW  XX # YY" + ]]  ]]  __  __  ``  `` ! ``0 5 cc  cc  cc# & cc( + ee  ee  ee5 F gg  gg  hh  hh  ii  ii  jj  jj  kk  kk  kk# ) ll  ll  mm  mm  nn  nn  oo  oo  pp  pp  pp ) rr  rr  rr" & rr' 6 rrA D rrE U tt  tt  tt . tt9 I ww6 R {{  {{  {{  {{  {{- 1 }}   ! +€€  +  +  +‚‚  +‚‚  +„„  +„„ $ +††  +††# & +††' 4 +††5 7 +††S j +††l n +††n o +‡‡  +‡‡T s +ˆˆ  +ˆˆS q +‰‰  +‰‰W u +ŠŠ6 A +ŒŒ  +ŒŒ  +ŽŽ  +ŽŽ  +ŽŽ: Q +ŽŽ^ _ +$ / +‘‘  +““ " +••  +••  +˜˜  +˜˜  +››4 I +››L W +žž  +žž  +žž" - +   0 +ĄĄ  +ĄĄ$ ( +ĨĨ  +ĨĨ  +ĨĨ" ( +ĨĨ/ : +¨¨  +ĢĢ  +ĢĢ  +­­  +­­ " +­­# / +ŽŽ  +ŽŽ5 8 +ŽŽ9 D +¯¯  +¯¯) - +¯¯G J +¯¯K U +¯¯V f +°°  +°°8 ; +°°< J +ąą Ë +OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\ListMenuItemVm.cs +  +  +  +  +   +     " ; = G I Y  + +   + +             !   # &      ! # & , /      " $ '     # & ( +      # % ( . 2            ! / 4        ‘ +OC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\MainMenuItemVm.cs +  +   +     ! /     " % ' *     # & ( +š +MC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\RecentItemVm.cs +  +  +  +  +   +      8 : J L W  + +   + +            * -            !                      ! / 4          " * 0 ; G  " # .     !! , $$  $$  $$% 5 ))  ))  ++ * ..  ..  ..  ..+ 9 00 ž +JC:\Sources\Other\ModernKeePass\ModernKeePass\Views\EntryDetailPage.xaml.cs +  +  +  +  +  +  +    ˆ +        ^  G    +        /     ! (    Y  4       3 6      " # 3 4 8 ""  ## o $$ Q %%  && ! '' T ((  )) e ** c ++ M ,, h --  --  --0 6 --? Q 11 ] 22 Q 33  44 g 55 ; 66 ? 77 P 88 M ::  ::  ::  ::. A ==  ==  ==! ( ==+ 1 >> " AA  AA  AA  AA0 C HH  HH  HH( . HH7 F JJ  JJ  JJ / KK  LL, H MM, G NN  NNK Z  NNx † OO  OOK ^ PP* D QQ* D SS ' SSX h TT> O UU  VV  YY  YY  YY) / YY8 G [[  [[  [[ / \\ # \\T i +\\† • ]]  ``  ``  ``3 9 ``B V bb  bb) - bbA D bbG N bbQ X bbZ ^ ee  ee  eeA G eeP i gg  gg" $ gg% - hh  ii  kk  kk  ll  mm  nn3 5 nn6 = oo Æ +JC:\Sources\Other\ModernKeePass\ModernKeePass\Views\GroupDetailPage.xaml.cs +  +  +  +  +  +  +  +  +   + + +  +   +  e +     \      +        /    K  '       3 6     ! (     !! " !!# 3 !!4 8 %%  && ^ '' A ((  )) ! ** T ++  ,, \ -- a .. J // V 00  00  000 6 00? Q 44 I 55 I 66  77 L 88 ; 99 @ :: J ;; J <<  ==  ==  ==  ==. A AA  AA  AA 0 BB 1 CC  CC  CC! # CC$ + DD & GG  GG  GG  GG0 C PP  PP  PP- 3 PP< U RR  RR" $ RR% - SS  TT  VV  VV  WW  XX  YY3 5 YY6 = ZZ  \\ ! \\" 1 __  __  __. 4 __= V aa  bb  dd  dd  ee  ff  gg2 4 gg5 < hh  jj ! jj" 1 mm  mm  mm( . mm7 F oo  oo  oo / pp  qq, H rr, G ss  ssK Z  ssx † tt  ttK ^ uu* D vv* D xx + xx\ l yyB S zz  {{  ~~  ~~  ~~) / ~~8 G +€€  +€€  +€€ / + # +T i +‚‚* 9 +ƒƒ  +††  +††  +††4 : +††C c +ˆˆ n +‰‰  +‰‰* / +ŽŽ  +ŽŽ  +ŽŽ- 3 +ŽŽ< K + ! +" 1 +’’  +’’  +’’- 3 +’’< K +”” ! +””" 1 +——  +——  +——0 6 +——? Y +šš( < +  +  +6 ? +H n +ŸŸ  +ŸŸ 6 +ŸŸE H +ŸŸI L ŸŸM „ +    +  U e +  | }   „ … +ĄĄ  +ĄĄ  +ĄĄ " ŖŖŠ  +§§  +§§  +§§8 A +§§J r +ŠŠ  +ĒĒ ! +ĒĒ" 1 +­­  +­­  +­­3 9 +­­B V +¯¯  +¯¯) - +¯¯A D +¯¯G N +¯¯Q X +¯¯Z ^Ū +ZC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\OpenDatabasePage.xaml.cs +  +  +  +  +  +  + ^ + + +         Q    +        0          &           . A   % ' ( -               . 4   = L ""  ##  ## " %% - &&- = ((& - ** G ++  ++  ,,  ,,  ,, $ƒ +]C:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\RecentDatabasesPage.xaml.cs + { +     h    +        3  + +   + + "  +ZC:\Sources\Other\ModernKeePass\ModernKeePass\Views\MainPageFrames\SaveDatabasePage.xaml.cs +  +  +  +  +  +  +  +  ^ +        Q    +        0          &           . A   % ' ( -       . 4 = L !!  "" & ""' / %%  %%  %%  %%0 6 %%? N ''  ''  ''! / ))) 9 **$ 2 ,,+ A ,,C F ,,G K ,,L R ,,V ] ..  ..  //  //  // $ 22 & 22' /Ë +GC:\Sources\Other\ModernKeePass\ModernKeePass\Properties\AssemblyInfo.cs +  +  + M + M +       (      b           ! #  + +   + +   + + #            *            /                   + M +  +  +  +  +  +  + T + # + '      %      )      Ö' +BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\EntryVm.cs +  +  +  +  +  +  +  +  +   + + +  +    +      1 3 < > N     % ( * 1 2 5     ' * , 3 4 7    #    #     0 6     M U     5 F     / 2 4 7 = A     / 2 4 7 = A     , / 1 4 : >     + . 0 3     0 3 5 8     + . 0 3     - 0 2 5     . 1 3 6     $ ' ) , 2 8         !!  !!  ""  ""  ##  ##  ## $ ##4 7 ##8 < ##= F $$  %% > &&  ''  ''  ''! $ ''& ) ''/ 3 ))  ))  ++  ++  ,,  .." ' //& 6 33  33  55  55  55' - 66  66 & 663 8 ::  ::  <<  <<  <<' - ==  == & ==6 ; @@  @@  BB  BB  BB' - CC  EE $ EE4 9 FF& 0 GG& C KK  KK  MM  MM  MM' - NN  NN & NN1 6 QQ  QQ  SS  SS  SS' - TT  TT & TT3 8 WW  WW  YY  [[  [[( , [[. 4 [[6 9 \\  \\  ``  ``  bb  bb  bb  bb + cc  cc  cc? D ff  ff  hh  hh  ii  ii  ii\ a ll  ll  nn  nn  oo  qq # rr& 2 vv  vv  xx  xx  yy  {{ " ||& 1 +€€  +€€  +‚‚  +‚‚  +ƒƒ  +……$ ) +††& 8 +‰‰  +‰‰  +‹‹  +‹‹  +ŒŒ  +ŽŽ# ( +& 9 +““  +““  +““ $ +••  +——  +—— ! +——" & +——' . +——1 5 +˜˜  +˜˜  +˜˜* , +šš # +šš$ + +ššU Z +  +ĄĄ  +ĄĄ  +ĄĄ 0 +ŖŖ  +ŖŖ  +ŖŖ  +¤¤  +¤¤  +¤¤ ) +ĨĨ  +ĨĨ  +ĨĨ ) +ĻĻ  +ĻĻ  +§§  +§§  +¨¨  +¨¨  +¨¨) + +ŠŠ  +ŠŠ  +ŠŠ" & +ĢĢ  +ĢĢ  +ĢĢ+ 1 +­­$ ( +­­* - +­­. F +°°  +°°  +˛˛  +˛˛  +˛˛  +˛˛( / +˛˛: > +˛˛N ] +˛˛h k +˛˛l | +´´  +´´  +´´  +´´& - +´´6 F +´´Q a +ŧŧ  +ŧŧ  +žž  +žž  +žž ) +ĀĀ 5 +ÁÁ  +  + ' +ÅÅ  +ÅÅ@ I +ÆÆ  +ÆÆ@ I +ĮĮ  +ĮĮ= F +ČČ  +ČČ> G +ÉÉ  +ÉÉ< ? +ĘĘ  +ĘĘA D +ËË  +ËË< ? +ĖĖ  +ĖĖ? H +ĐĐ  +ŅŅ  +ŅŅ! $ +ŅŅ: > +ŅŅ@ C +ŅŅD Y +ĶĶ" ( +ÔÔ" , +ÕÕ" ; +ÖÖ" ? +ŲŲ  +ŲŲ  +ŲŲ% + +ÛÛ  +ŪŪ  +ŪŪ  +ŪŪ# ) +ŪŪ/ 5 +āā' * +āā+ : +āā; ? +ãã  +ãã  +ãã" ( +åå  +ååO S +įįa e +ęę  +ęę  +īī  +īī  +īī  +ōō) - +ķķ  +ķķ # +öö  +ųų$ ( +üü  +üü  +˙˙  +‚‚  +‚‚  +‡‡  +‡‡  +‰‰  +ŒŒ  +ŒŒ  +ŒŒ  +ŽŽ  +ŽŽ; I +ŽŽt w´" +BC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\GroupVm.cs +  +  +  +  +  +  +  +  +   +      +            4   6 ?   A Q     % ( * 1 2 5     ' * , 3 4 7    # $ +         & ) 4 9      "     ! $ % ) * 1     # % ##  ''  '' # ''$ + ''6 9 ''; > ''D G ''H \ ''] d ))  ))  **  **  ++  ++  ++0 4 --  --  //  //  11  22 2 33  44  44  66  66  66& * 77  99  99  99) - 99F J ==  == ! ==" + ==, 0 ==2 9 ==P T ==W Y >>  >>  >>9 = ??  @@  BB  BB  DD  DD  DD% ) DD, 2 EE  EE" ' HH  HH  JJ  LL  LL( , LL. 4 LL6 9 MM  MM  OO  OO% + OO, 1 RR  RR  TT  TT  UU  UU ! UU/ 4 XX  XX  ZZ  ZZ  [[  [[ ! [[1 6 ^^  ^^  ^^ $ ``  bb  bb  bb! & bb' . cc  cc  dd  dd, 0 jj  nn  nn  nn  oo  oo  oo ) pp  pp  qq  qq  rr  rr $ rr% , rr9 < rr= Q rrR Y ss  ss  ss% ) uu  uu  ww  ww  ww  ww* 1 ww: @ wwP T wwX \ xx  {{  {{  {{  {{( / {{8 H {{S Y {{i m +  + $ +c g +‚‚  +‚‚ . +‚‚/ 6 +‚‚T W +‚‚X _ +‚‚c g +„„  +„„ - +„„. 5 +„„R U +„„V ] +„„a e +‡‡  +‡‡  +‡‡/ 5 +‡‡> ^ +‰‰  +‹‹  +‹‹ 2 +ŒŒ  +ŒŒ$ ( +  +  + 2 +‘‘  +‘‘+ / +‘‘E L +‘‘Y Z +‘‘k o +’’  +’’2 6 +““  +——  +——  +——# ) +——1 3 +™™  +™™  +™™ % +™™& * +™™, 0 +™™8 > +šš' + +››  +››  +›› & +››0 4 +››Q W +  +    +    +ĸĸ  +ĸĸ  +ĸĸ % +ĸĸ& * +ĸĸ, 0 +ŖŖ  +ŖŖ  +ŖŖ & +ŖŖ0 4 +ŖŖD H +ĻĻ  +ŠŠ  +ŠŠ  +ŠŠ" ( +ĢĢ  +ĢĢO S +­­U Y +°°  +°°  +ĩĩ  +ĩĩ  +ĩĩ  +¸¸( , +ēē  +ēē # +ŊŊ  +ĀĀ# ' +ÁÁ4 8 +ÄÄ  +ÄÄ  +ĮĮ  +ĮĮ{  +ČČ  +ËË  +ËË  +ĐĐ  +ĐĐ  +ŌŌ  +ŌŌ  +ŌŌ . +ŌŌ/ 5 +ŌŌB F +ŌŌH M +ĶĶ  +ÖÖ  +ÖÖ 2 +ÖÖ3 : +ØØ  +ØØ  +ÚÚ # +ŪŪ  +ŪŪ  +āā  +ââ' , +ãã  +ãã 1 +ãã2 9 +ããq u +ää" * +ææ  +ææ  +čč # +ėė  +ėė  +ėė  +îî † +NC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsNewVm.cs +  +  +  +   +                )           ! %   & 5      -         . 2 4 <   ' / 1 6      ! 2 5 9 < > A         . 4 6 I   ' : < A… +EC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\SettingsVm.cs +  +  +  +  +  +  +  +      +            7   9 M            " # , - 3 5 C    ! " + , 2 4 B        ! . 3             % * , 2   % ) / 4 ""  ""0 > ""? D $$  $$% ) &&/ 3 ++  ++  ++ " ++# 2 ++= @ ++A Q --  --  -- * --5 E //  //  // 4 //5 C 11  11 " 336 K 446 T 55! ' 66 % 66& = 77! % 99  99 " ;;6 L <<6 T ==! ' >> % >>& 6 @@  @@ " BB6 O CC6 Q DD! ' EE % EE& : HH  HH " JJ6 P KK6 Q LL! ' MM % MM& : SS  SS" $ SS/ 4 SS: < SSH L SSQ X SSa gŪ +AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\MainVm.cs +  +  +  +  +  +  +  +  + + +     +            3   5 I    " # , - 3 5 C           & -    ! " + , 2 4 B        ! 2 7             % * , 2   % ) !!/ 4 $$  $$0 > $$? D &&  &&% ) ((/ 3 --  --  //  //  //  //. 3 //H L 00  00& ) 00* : 00> K 33  33  33  33, 1 33D T 33_ o  33z ˆ 55  55- 1 77  77 # 77$ 8 779 G 99  99 " ;;6 H << % <<& 6 ??! ' @@- 1 BB  BB " DD6 G EE % EE& 5 HH! ' JJ  JJ " LL6 H MM % MM& 6 PP! ' TT  TT " VV6 J WW % WW& 9 ZZ! ' \\% ) ]], - ^^4 5 ``  `` " bb6 L cc % cc& 2 ee! ' gg  gg " ii6 I jj % jj& / ll! ' nn  nn " pp6 J qq % qq& 0 ss! ' vv O yy 8 zz  zz  {{" % {{& 4 ~~ % ~~& 5 + ' +‚‚! ' +……  +……& ( +……7 < +……B D +……P T +……Y ` +……i ož +@C:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\NewVm.cs +   +           ! $ & )é +AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\OpenVm.cs +  +  +  +  +   +      2  + +   + +               )        .      &     : @      (  (      ( / = !! $ "" / &&  &&  &&% 0 &&7 Eƒ +CC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\RecentVm.cs +  +  +  +  +   +      5 7 K  + +   + +   + + '                $   % 0   A D   E Y   Z e    # $ /        ! 0 5             % * , 2   % ) / 4   / 4 !!  !!% ) !!+ 1 ""+ / &&  &&  &&  &&" / ))  ))  )) & --  --$ % ..+ , ... 0 ..1 = 11  11 Á +AC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\SaveVm.cs +  +  +  +  +   +      + +   + +   + + )                .            &        # , 0          $¤ +SC:\Sources\Other\ModernKeePass\ModernKeePass\ViewModels\Items\SettingsDatabaseVm.cs +  +  +  +  +  +  +  +  +   + + +  +    #  +    # % > @ T      )               . 3 " 1               1 5 !!  ##  ##  ##2 6 ''  '' # ''$ + ''6 9 ''; > ))  ))  )) ! ++  --  --  --  --( 2 //  //  //! + 44  44  66  88  88  88  88( 2 ::  :: " ::\ b <<  <<  >>  >>) 3 >>? D AA  AA  AA ! AA3 7 AAA G AAH ^ AAg j  AAk  CC  CC  EE  EE  EE  EE& , EE- C FF  FF4 J FFK O FFV \ FF] s FFv { HH  HH  HH ! HH5 < JJ  JJ  LL  LL  LL  MM  MM, 3 MMZ _ PP  PP  RR  RR  SS  UU  UU% * UU? E VV  VV% ) XX/ 4 [[  [[0 7 [[8 = ]]  ]]% ) __/ 3 dd  dd ! dd& * dd+ : ff  ff ! ff" 2Ę +`C:\Sources\Other\ModernKeePass\ModernKeePass\Views\UserControls\HamburgerMenuUserControl.xaml.cs +  +  +  +  + ` +   + + +  + +   + +   + +   + + 8        '             0 5        1            /    $ % -                 0 5 ""  ""  ""  "" 1 ##  $$  %%  %%  &&  && / ''  '' $ ''% - ))  ))  ++  ++  ++  ,,  ,,6 ; ..  ..  ..  .. 1 //  00 # 11  11  22  22 / 33  33 $ 33% , 55  55  77  77  88  881 6 ::  ::  ::  :: 1 ;;  <<  ==  ==  >>  >> / ??  ?? $ ??% ) AA  AA  CC  CC  CC $ DD  DD4 9 FF  FF  FF  FF 1 GG  HH ! II  II ! JJ  JJ / KK  KK $ KK% / MM  MM  MM $ OO  OO  OO % OO& / PP  PP0 5 SS  SS  SS  SS 1 TT  UU  VV  VV " VV# , WW  WW / XX  XX $ XX% ( XX) - XX. 7 ZZ  ZZ  \\  \\  ]]  ]]1 6 __  __  __  __ 1 ``  aa  bb  bb  cc  cc / dd  dd $ dd% ) ff  ff  ff 1 gg  gg  gg  gg 9 gg: @ ggI b hh  hh  hh1 7 hh@ Y mm  mm  mm . nn  nn  nn  nn 6 nn7 = nnF U oo  oo  oo( . oo7 F \ No newline at end of file diff --git a/ModernKeePass/.sonarqube/out/sonar-project.properties b/ModernKeePass/.sonarqube/out/sonar-project.properties new file mode 100644 index 0000000..39199fb --- /dev/null +++ b/ModernKeePass/.sonarqube/out/sonar-project.properties @@ -0,0 +1,210 @@ +sonar.projectKey=ModernKeePass +sonar.working.directory=C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\.sonarqube\\out\\.sonar +sonar.projectBaseDir=C:\\Sources\\Other\\ModernKeePass\\ModernKeePass + +A0CFC681-769B-405A-8482-0CDEE595A91F.sonar.projectKey=ModernKeePass:A0CFC681-769B-405A-8482-0CDEE595A91F +A0CFC681-769B-405A-8482-0CDEE595A91F.sonar.projectName=ModernKeePass.App +A0CFC681-769B-405A-8482-0CDEE595A91F.sonar.projectBaseDir=C:\\Sources\\Other\\ModernKeePass\\ModernKeePass +A0CFC681-769B-405A-8482-0CDEE595A91F.sonar.sourceEncoding=utf-8 +A0CFC681-769B-405A-8482-0CDEE595A91F.sonar.sources=\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Actions\\ClipboardAction.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Actions\\NavigateToUrlAction.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Actions\\SetupFocusAction.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\App.xaml.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Converters\\IntToSymbolConverter.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Exceptions\\DatabaseOpenedException.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Interfaces\\ILicenseService.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Interfaces\\IProxyInvocationHandler.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Interfaces\\IRecentService.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Interfaces\\IRecentItem.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Interfaces\\IResourceService.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Services\\SingletonServiceBase.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\TemplateSelectors\\SelectableDataTemplateSelector.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\Items\\SettingsSaveVm.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\DonatePage.xaml.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Services\\DatabaseService.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Interfaces\\ISettingsService.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Common\\MessageDialogHelper.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Common\\NavigationHelper.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Common\\NotifyPropertyChangedBase.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Common\\ObservableDictionary.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Common\\RelayCommand.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Common\\SuspensionManager.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Services\\LicenseService.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Services\\RecentService.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Services\\ResourcesService.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Services\\SettingsService.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Common\\ToastNotificationHelper.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Converters\\DiscreteIntToSolidColorBrushConverter.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Converters\\EmptyStringToVisibilityConverter.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Converters\\NullToBooleanConverter.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Exceptions\\SaveException.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Extensions\\DispatcherTaskExtensions.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Interfaces\\IDatabaseService.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Interfaces\\IHasSelectableObject.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Interfaces\\ISelectableModel.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\BasePages\\LayoutAwarePageBase.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\SettingsPageFrames\\SettingsDatabasePage.xaml.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\SettingsPageFrames\\SettingsNewDatabasePage.xaml.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\SettingsPageFrames\\SettingsSavePage.xaml.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\SettingsPageFrames\\SettingsSecurityPage.xaml.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\SettingsPageFrames\\SettingsWelcomePage.xaml.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\TemplateSelectors\\FirstItemDataTemplateSelector.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Controls\\ListViewWithDisable.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\UserControls\\BreadCrumbUserControl.xaml.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\UserControls\\CompositeKeyUserControl.xaml.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Controls\\TextBoxWithButton.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Converters\\BooleanToVisibilityConverter.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Converters\\ColorToBrushConverter.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Converters\\DoubleToSolidColorBrushConverter.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Converters\\InverseBooleanToVisibilityConverter.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Converters\\PluralizationConverter.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Converters\\ProgressBarLegalValuesConverter.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Converters\\TextToWidthConverter.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Events\\PasswordEventArgs.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Interfaces\\IIsEnabled.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Interfaces\\IPwEntity.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPage.xaml.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\AboutPage.xaml.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\NewDatabasePage.xaml.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\SettingsPage.xaml.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\WelcomePage.xaml.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\AboutVm.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\CompositeKeyVm.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\Items\\ListMenuItemVm.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\Items\\MainMenuItemVm.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\Items\\RecentItemVm.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\EntryDetailPage.xaml.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\GroupDetailPage.xaml.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\OpenDatabasePage.xaml.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\RecentDatabasesPage.xaml.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\SaveDatabasePage.xaml.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Properties\\AssemblyInfo.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\EntryVm.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\GroupVm.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\Items\\SettingsNewVm.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\SettingsVm.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\MainVm.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\NewVm.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\OpenVm.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\RecentVm.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\SaveVm.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\ViewModels\\Items\\SettingsDatabaseVm.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\UserControls\\HamburgerMenuUserControl.xaml.cs",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\description.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\description.Entry.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\description.Filter.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\description.Group.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\description.New.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\description.Open.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\description.Recent.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\description.Semantic.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\description.Settings.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\Entry.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\Filter.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\Group.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\New.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\Open.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\Recent.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\Semantic.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\images\\Screenshot\\Settings.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\keywords.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\privacyPolicy.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\releaseNotes.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\en-us\\baselisting\\websiteUrl.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\description.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\description.Entry.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\description.Filter.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\description.Group.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\description.New.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\description.Open.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\description.Recent.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\description.Semantic.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\description.Settings.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\Entry.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\Filter.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\Group.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\New.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\Open.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\Recent.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\Semantic.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\images\\Screenshot\\Settings.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\keywords.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\privacyPolicy.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\releaseNotes.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\appMetadata\\fr-fr\\baselisting\\websiteUrl.txt",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Logo.scale-100.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Logo.scale-140.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Logo.scale-180.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Logo.scale-80.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\ModernKeePass-SmallLogo.scale-100.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\ModernKeePass-SmallLogo.scale-140.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\ModernKeePass-SmallLogo.scale-180.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\ModernKeePass-SmallLogo.scale-80.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\ModernKeePass-SmallLogo.targetsize-16.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\ModernKeePass-SmallLogo.targetsize-256.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\ModernKeePass-SmallLogo.targetsize-32.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\ModernKeePass-SmallLogo.targetsize-48.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\ModernKeePass-SplashScreen.scale-100.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\ModernKeePass-SplashScreen.scale-140.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\ModernKeePass-SplashScreen.scale-180.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Square310x310Logo.scale-100.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Square310x310Logo.scale-140.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Square310x310Logo.scale-180.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Square310x310Logo.scale-80.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Square70x70Logo.scale-100.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Square70x70Logo.scale-140.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Square70x70Logo.scale-180.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Square70x70Logo.scale-80.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\StoreLogo.scale-100.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\StoreLogo.scale-140.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\StoreLogo.scale-180.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Wide310x150Logo.scale-100.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Wide310x150Logo.scale-140.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Wide310x150Logo.scale-180.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Assets\\Wide310x150Logo.scale-80.png",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\packages.config",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Strings\\fr-FR\\Resources.resw",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Strings\\fr-FR\\CodeBehind.resw",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Strings\\en-US\\CodeBehind.resw",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Strings\\en-US\\Resources.resw",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Styles\\Colors.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\SettingsPageFrames\\SettingsSavePage.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\UserControls\\BreadCrumbUserControl.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\UserControls\\CompositeKeyUserControl.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPage.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\AboutPage.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\EntryDetailPage.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\GroupDetailPage.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\DonatePage.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\NewDatabasePage.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\OpenDatabasePage.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\RecentDatabasesPage.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\SaveDatabasePage.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\SettingsPage.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\MainPageFrames\\WelcomePage.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\SettingsPageFrames\\SettingsDatabasePage.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\SettingsPageFrames\\SettingsNewDatabasePage.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\SettingsPageFrames\\SettingsSecurityPage.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\SettingsPageFrames\\SettingsWelcomePage.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Styles\\HamburgerButtonStyle.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Styles\\ListViewLeftIndicatorStyle.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Styles\\NoBorderButtonStyle.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Styles\\Styles.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Styles\\TextBoxWithButtonStyle.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\Views\\UserControls\\HamburgerMenuUserControl.xaml",\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\App.xaml" + +A0CFC681-769B-405A-8482-0CDEE595A91F.sonar.cs.roslyn.reportFilePath=C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\bin\\Debug\\ModernKeePass.exe.RoslynCA.json +A0CFC681-769B-405A-8482-0CDEE595A91F.sonar.cs.analyzer.projectOutPath=C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\.sonarqube\\out\\0 +A0CFC681-769B-405A-8482-0CDEE595A91F.sonar.cs.analyzer.projectOutPaths=\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\.sonarqube\\out\\0" +A0CFC681-769B-405A-8482-0CDEE595A91F.sonar.cs.roslyn.reportFilePaths=\ +"C:\\Sources\\Other\\ModernKeePass\\ModernKeePass\\bin\\Debug\\ModernKeePass.exe.RoslynCA.json" + +sonar.organization=geogeob +sonar.host.url=https://sonarcloud.io +sonar.visualstudio.enable=false + +sonar.modules=A0CFC681-769B-405A-8482-0CDEE595A91F + diff --git a/ModernKeePass/.sonarqube/out/summary.md b/ModernKeePass/.sonarqube/out/summary.md new file mode 100644 index 0000000..e604fd9 --- /dev/null +++ b/ModernKeePass/.sonarqube/out/summary.md @@ -0,0 +1,3 @@ +Analysis succeeded for SonarQube project "", version [Analysis results](https://sonarcloud.io/dashboard/index/ModernKeePass) +- Product projects: 1, test projects: 0 +- Invalid projects: 0, skipped projects: 0, excluded projects: 0 diff --git a/ModernKeePass/App.xaml.cs b/ModernKeePass/App.xaml.cs index 2edccc4..7485dc3 100644 --- a/ModernKeePass/App.xaml.cs +++ b/ModernKeePass/App.xaml.cs @@ -190,9 +190,7 @@ namespace ModernKeePass } catch (Exception exception) { -#if DEBUG ToastNotificationHelper.ShowErrorToast(exception); -#endif } deferral.Complete(); }