Full Code of jexuswebserver/JexusManager for AI

master 04a8e6590cf3 cached
1419 files
14.3 MB
3.8M tokens
6018 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (15,260K chars total). Download the full file to get everything.
Repository: jexuswebserver/JexusManager
Branch: master
Commit: 04a8e6590cf3
Files: 1419
Total size: 14.3 MB

Directory structure:
gitextract_arbnly2o/

├── .editorconfig
├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   └── workflows/
│       └── dotnetcore.yml
├── .gitignore
├── .gitmodules
├── .vscode/
│   └── settings.json
├── CODE_OF_CONDUCT.md
├── CertificateInstaller/
│   ├── CertificateInstaller.csproj
│   ├── NativeMethods.json
│   ├── NativeMethods.txt
│   ├── ProcessExtensions.cs
│   ├── Program.cs
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   └── app.manifest
├── IIS.LanguageServer/
│   ├── Handlers/
│   │   ├── CompletionHandler.cs
│   │   ├── DiagnosticsHandler.cs
│   │   ├── HoverHandler.cs
│   │   └── TextDocumentSyncHandler.cs
│   ├── IIS.LanguageServer.csproj
│   ├── Language/
│   │   └── XmlPositionAnalyzer.cs
│   ├── Program.cs
│   └── Schema/
│       ├── SchemaCache.cs
│       └── SchemaLoader.cs
├── JexusManager/
│   ├── BindingExtensions.cs
│   ├── Dialogs/
│   │   ├── CertificateErrorsDialog.Designer.cs
│   │   ├── CertificateErrorsDialog.cs
│   │   ├── CertificateErrorsDialog.resx
│   │   ├── ConnectAsDialog.Designer.cs
│   │   ├── ConnectAsDialog.cs
│   │   ├── ConnectAsDialog.resx
│   │   ├── ConnectAsItem.cs
│   │   ├── CredentialsDialog.Designer.cs
│   │   ├── CredentialsDialog.cs
│   │   ├── CredentialsDialog.resx
│   │   ├── EditSiteDialog.Designer.cs
│   │   ├── EditSiteDialog.cs
│   │   ├── EditSiteDialog.resx
│   │   ├── ExceptionDialog.Designer.cs
│   │   ├── ExceptionDialog.cs
│   │   ├── ExceptionDialog.resx
│   │   ├── NewApplicationDialog.Designer.cs
│   │   ├── NewApplicationDialog.cs
│   │   ├── NewApplicationDialog.resx
│   │   ├── NewSiteDialog.Designer.cs
│   │   ├── NewSiteDialog.cs
│   │   ├── NewSiteDialog.resx
│   │   ├── NewVirtualDirectoryDialog.Designer.cs
│   │   ├── NewVirtualDirectoryDialog.cs
│   │   ├── NewVirtualDirectoryDialog.resx
│   │   ├── SelectPoolDialog.Designer.cs
│   │   ├── SelectPoolDialog.cs
│   │   └── SelectPoolDialog.resx
│   ├── Features/
│   │   └── Main/
│   │       ├── ApplicationFeature.cs
│   │       ├── ApplicationPage.Designer.cs
│   │       ├── ApplicationPage.cs
│   │       ├── ApplicationPage.resx
│   │       ├── ApplicationPoolAdvancedSettings.cs
│   │       ├── ApplicationPoolAdvancedSettingsDialog.Designer.cs
│   │       ├── ApplicationPoolAdvancedSettingsDialog.cs
│   │       ├── ApplicationPoolAdvancedSettingsDialog.resx
│   │       ├── ApplicationPoolBasicSettingsDialog.Designer.cs
│   │       ├── ApplicationPoolBasicSettingsDialog.cs
│   │       ├── ApplicationPoolBasicSettingsDialog.resx
│   │       ├── ApplicationPoolDefaultsSettings.cs
│   │       ├── ApplicationPoolDefaultsSettingsDialog.Designer.cs
│   │       ├── ApplicationPoolDefaultsSettingsDialog.cs
│   │       ├── ApplicationPoolDefaultsSettingsDialog.resx
│   │       ├── ApplicationPoolsFeature.cs
│   │       ├── ApplicationPoolsPage.Designer.cs
│   │       ├── ApplicationPoolsPage.cs
│   │       ├── ApplicationPoolsPage.resx
│   │       ├── ApplicationPoolsSettingsSavedEventHandler.cs
│   │       ├── ApplicationsFeature.cs
│   │       ├── ApplicationsPage.Designer.cs
│   │       ├── ApplicationsPage.cs
│   │       ├── ApplicationsPage.resx
│   │       ├── BindingDiagDialog.Designer.cs
│   │       ├── BindingDiagDialog.cs
│   │       ├── BindingDiagDialog.resx
│   │       ├── BindingDialog.Designer.cs
│   │       ├── BindingDialog.cs
│   │       ├── BindingDialog.resx
│   │       ├── BindingsDialog.Designer.cs
│   │       ├── BindingsDialog.cs
│   │       ├── BindingsDialog.resx
│   │       ├── CLRVersion.cs
│   │       ├── CredentialsDialog.Designer.cs
│   │       ├── CredentialsDialog.cs
│   │       ├── CredentialsDialog.resx
│   │       ├── HomePage.Designer.cs
│   │       ├── HomePage.cs
│   │       ├── HomePage.resx
│   │       ├── IdentityDialog.Designer.cs
│   │       ├── IdentityDialog.cs
│   │       ├── IdentityDialog.resx
│   │       ├── IdentityEditor.cs
│   │       ├── KestrelDiagDialog.Designer.cs
│   │       ├── KestrelDiagDialog.cs
│   │       ├── KestrelDiagDialog.resx
│   │       ├── MainModule.cs
│   │       ├── ModulePageInfoListViewItem.cs
│   │       ├── PhpDiagDialog.Designer.cs
│   │       ├── PhpDiagDialog.cs
│   │       ├── PhpDiagDialog.resx
│   │       ├── PhysicalDirectoryFeature.cs
│   │       ├── PhysicalDirectoryPage.Designer.cs
│   │       ├── PhysicalDirectoryPage.cs
│   │       ├── PhysicalDirectoryPage.resx
│   │       ├── ScheduleCollectionEditor.cs
│   │       ├── ServerFeature.cs
│   │       ├── ServerPage.Designer.cs
│   │       ├── ServerPage.cs
│   │       ├── ServerPage.resx
│   │       ├── ServerSettingsSavedEventHandler.cs
│   │       ├── SiteFeature.cs
│   │       ├── SitePage.Designer.cs
│   │       ├── SitePage.cs
│   │       ├── SitePage.resx
│   │       ├── SitesFeature.cs
│   │       ├── SitesPage.Designer.cs
│   │       ├── SitesPage.cs
│   │       ├── SitesPage.resx
│   │       ├── SslDiagDialog.Designer.cs
│   │       ├── SslDiagDialog.cs
│   │       ├── SslDiagDialog.resx
│   │       ├── VirtualDirectoriesFeature.cs
│   │       ├── VirtualDirectoriesPage.Designer.cs
│   │       ├── VirtualDirectoriesPage.cs
│   │       ├── VirtualDirectoriesPage.resx
│   │       ├── VirtualDirectoryFeature.cs
│   │       ├── VirtualDirectoryPage.Designer.cs
│   │       ├── VirtualDirectoryPage.cs
│   │       ├── VirtualDirectoryPage.resx
│   │       ├── VsDiagDialog.Designer.cs
│   │       ├── VsDiagDialog.cs
│   │       └── VsDiagDialog.resx
│   ├── JexusManager.csproj
│   ├── JexusManager.snk
│   ├── LoggingService.cs
│   ├── MainForm.Designer.cs
│   ├── MainForm.cs
│   ├── MainForm.resx
│   ├── Program.cs
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   ├── Resources.resx
│   │   ├── Settings.Designer.cs
│   │   └── Settings.settings
│   ├── Resources/
│   │   ├── 1.0-release.json
│   │   ├── 1.1-release.json
│   │   ├── 10.0-release.json
│   │   ├── 2.0-release.json
│   │   ├── 2.1-release.json
│   │   ├── 2.2-release.json
│   │   ├── 3.0-release.json
│   │   ├── 3.1-release.json
│   │   ├── 5.0-release.json
│   │   ├── 6.0-release.json
│   │   ├── 7.0-release.json
│   │   ├── 8.0-release.json
│   │   ├── 9.0-release.json
│   │   └── releases-index.json
│   ├── Services/
│   │   └── NavigationService.cs
│   ├── StringFormatter.cs
│   ├── ThirdPartyNotices.txt
│   ├── Tree/
│   │   ├── ApplicationPoolsTreeNode.cs
│   │   ├── ApplicationTreeNode.cs
│   │   ├── Hierarchy/
│   │   │   └── ManagerHierarchyInfo.cs
│   │   ├── ManagerTreeNode.cs
│   │   ├── PhysicalDirectoryTreeNode.cs
│   │   ├── PlaceholderTreeNode.cs
│   │   ├── ServerTreeNode.cs
│   │   ├── SiteTreeNode.cs
│   │   ├── SitesTreeNode.cs
│   │   └── VirtualDirectoryTreeNode.cs
│   ├── UpdateHelper.cs
│   ├── Wizards/
│   │   └── ConnectionWizard/
│   │       ├── BrowsePage.Designer.cs
│   │       ├── BrowsePage.cs
│   │       ├── BrowsePage.resx
│   │       ├── ConnectionWizard.Designer.cs
│   │       ├── ConnectionWizard.cs
│   │       ├── ConnectionWizard.resx
│   │       ├── ConnectionWizardData.cs
│   │       ├── CredentialsPage.Designer.cs
│   │       ├── CredentialsPage.cs
│   │       ├── CredentialsPage.resx
│   │       ├── FinishPage.Designer.cs
│   │       ├── FinishPage.cs
│   │       ├── FinishPage.resx
│   │       ├── ServerPage.Designer.cs
│   │       ├── ServerPage.cs
│   │       ├── ServerPage.resx
│   │       ├── SolutionTypePage.Designer.cs
│   │       ├── SolutionTypePage.cs
│   │       ├── SolutionTypePage.resx
│   │       ├── TypePage.Designer.cs
│   │       ├── TypePage.cs
│   │       └── TypePage.resx
│   └── app.manifest
├── JexusManager.BreadCrumb.Demo/
│   ├── JexusManager.BreadCrumb.Demo.csproj
│   ├── MainForm.cs
│   └── Program.cs
├── JexusManager.Breadcrumb/
│   ├── BreadcrumbControl.cs
│   ├── BreadcrumbItem.cs
│   ├── BreadcrumbItemClickedEventArgs.cs
│   ├── BreadcrumbItemEventArgs.cs
│   ├── JexusManager.Breadcrumb.csproj
│   └── ToolStripBreadcrumbItem.cs
├── JexusManager.Features.Access/
│   ├── AccessFeature.cs
│   ├── AccessModule.cs
│   ├── AccessModuleProvider.cs
│   ├── AccessPage.Designer.cs
│   ├── AccessPage.cs
│   ├── AccessPage.resx
│   ├── AccessSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.Access.csproj
│   ├── JexusManager.snk
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.Asp/
│   ├── AspFeature.cs
│   ├── AspItem.cs
│   ├── AspModule.cs
│   ├── AspModuleProvider.cs
│   ├── AspPage.Designer.cs
│   ├── AspPage.cs
│   ├── AspPage.resx
│   ├── AspSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.Asp.csproj
│   ├── JexusManager.snk
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.Authentication/
│   ├── AnonymousAuthenticationFeature.cs
│   ├── AnonymousEditDialog.Designer.cs
│   ├── AnonymousEditDialog.cs
│   ├── AnonymousEditDialog.resx
│   ├── AnonymousItem.cs
│   ├── AuthenticationModule.cs
│   ├── AuthenticationModuleProvider.cs
│   ├── AuthenticationPage.Designer.cs
│   ├── AuthenticationPage.cs
│   ├── AuthenticationPage.resx
│   ├── BasicAuthenticationFeature.cs
│   ├── BasicEditDialog.Designer.cs
│   ├── BasicEditDialog.cs
│   ├── BasicEditDialog.resx
│   ├── BasicItem.cs
│   ├── ClientCertificateAuthenticationFeature.cs
│   ├── CredentialsDialog.Designer.cs
│   ├── CredentialsDialog.cs
│   ├── CredentialsDialog.resx
│   ├── DigestAuthenticationFeature.cs
│   ├── DigestEditDialog.Designer.cs
│   ├── DigestEditDialog.cs
│   ├── DigestEditDialog.resx
│   ├── DigestItem.cs
│   ├── FormsAuthenticationFeature.cs
│   ├── FormsEditDialog.Designer.cs
│   ├── FormsEditDialog.cs
│   ├── FormsEditDialog.resx
│   ├── FormsItem.cs
│   ├── ImpersonationEditDialog.Designer.cs
│   ├── ImpersonationEditDialog.cs
│   ├── ImpersonationEditDialog.resx
│   ├── ImpersonationFeature.cs
│   ├── ImpersonationItem.cs
│   ├── JexusManager.Features.Authentication.csproj
│   ├── JexusManager.snk
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── ProviderItem.cs
│   ├── ProvidersDialog.Designer.cs
│   ├── ProvidersDialog.cs
│   ├── ProvidersDialog.resx
│   ├── WindowsAdvancedDialog.Designer.cs
│   ├── WindowsAdvancedDialog.cs
│   ├── WindowsAdvancedDialog.resx
│   ├── WindowsAuthenticationFeature.cs
│   ├── WindowsItem.cs
│   └── app.config
├── JexusManager.Features.Authorization/
│   ├── AuthorizationFeature.cs
│   ├── AuthorizationModule.cs
│   ├── AuthorizationModuleProvider.cs
│   ├── AuthorizationPage.Designer.cs
│   ├── AuthorizationPage.cs
│   ├── AuthorizationPage.resx
│   ├── AuthorizationRule.cs
│   ├── AuthorizationSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.Authorization.csproj
│   ├── JexusManager.snk
│   ├── NewRuleDialog.Designer.cs
│   ├── NewRuleDialog.cs
│   ├── NewRuleDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.Caching/
│   ├── CachingAdvancedDialog.Designer.cs
│   ├── CachingAdvancedDialog.cs
│   ├── CachingAdvancedDialog.resx
│   ├── CachingFeature.cs
│   ├── CachingItem.cs
│   ├── CachingModule.cs
│   ├── CachingModuleProvider.cs
│   ├── CachingPage.Designer.cs
│   ├── CachingPage.cs
│   ├── CachingPage.resx
│   ├── CachingSettingsDialog.Designer.cs
│   ├── CachingSettingsDialog.cs
│   ├── CachingSettingsDialog.resx
│   ├── CachingSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.Caching.csproj
│   ├── JexusManager.snk
│   ├── NewCachingDialog.Designer.cs
│   ├── NewCachingDialog.cs
│   ├── NewCachingDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.Certificates/
│   ├── CertificatesFeature.cs
│   ├── CertificatesItem.cs
│   ├── CertificatesModule.cs
│   ├── CertificatesModuleProvider.cs
│   ├── CertificatesPage.Designer.cs
│   ├── CertificatesPage.cs
│   ├── CertificatesPage.resx
│   ├── CertificatesSettingsSavedEventHandler.cs
│   ├── CompleteRequestDialog.Designer.cs
│   ├── CompleteRequestDialog.cs
│   ├── CompleteRequestDialog.resx
│   ├── ExportCertificateDialog.Designer.cs
│   ├── ExportCertificateDialog.cs
│   ├── ExportCertificateDialog.resx
│   ├── ImportCertificateDialog.Designer.cs
│   ├── ImportCertificateDialog.cs
│   ├── ImportCertificateDialog.resx
│   ├── JexusManager.Features.Certificates.csproj
│   ├── JexusManager.snk
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── SelfCertificateDialog.Designer.cs
│   ├── SelfCertificateDialog.cs
│   ├── SelfCertificateDialog.resx
│   ├── Wizards/
│   │   ├── CertificateRenewWizard/
│   │   │   ├── CertificateRenewWizard.Designer.cs
│   │   │   ├── CertificateRenewWizard.cs
│   │   │   ├── CertificateRenewWizard.resx
│   │   │   ├── CertificateRenewWizardData.cs
│   │   │   ├── FinishPage.Designer.cs
│   │   │   ├── FinishPage.cs
│   │   │   ├── FinishPage.resx
│   │   │   ├── OptionsPage.Designer.cs
│   │   │   ├── OptionsPage.cs
│   │   │   └── OptionsPage.resx
│   │   └── CertificateRequestWizard/
│   │       ├── CertificateRequestWizard.Designer.cs
│   │       ├── CertificateRequestWizard.cs
│   │       ├── CertificateRequestWizard.resx
│   │       ├── CertificateRequestWizardData.cs
│   │       ├── FinishPage.Designer.cs
│   │       ├── FinishPage.cs
│   │       ├── FinishPage.resx
│   │       ├── KeysPage.Designer.cs
│   │       ├── KeysPage.cs
│   │       ├── KeysPage.resx
│   │       ├── PropertiesPage.Designer.cs
│   │       ├── PropertiesPage.cs
│   │       └── PropertiesPage.resx
│   └── app.config
├── JexusManager.Features.Cgi/
│   ├── CgiFeature.cs
│   ├── CgiItem.cs
│   ├── CgiModule.cs
│   ├── CgiModuleProvider.cs
│   ├── CgiPage.Designer.cs
│   ├── CgiPage.cs
│   ├── CgiPage.resx
│   ├── CgiSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.Cgi.csproj
│   ├── JexusManager.snk
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.Compression/
│   ├── CompressionFeature.cs
│   ├── CompressionModule.cs
│   ├── CompressionModuleProvider.cs
│   ├── CompressionPage.Designer.cs
│   ├── CompressionPage.cs
│   ├── CompressionPage.resx
│   ├── CompressionSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.Compression.csproj
│   ├── JexusManager.snk
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.DefaultDocument/
│   ├── DefaultDocumentFeature.cs
│   ├── DefaultDocumentModule.cs
│   ├── DefaultDocumentModuleProvider.cs
│   ├── DefaultDocumentPage.Designer.cs
│   ├── DefaultDocumentPage.cs
│   ├── DefaultDocumentPage.resx
│   ├── DefaultDocumentSettingsSavedEventHandler.cs
│   ├── DocumentItem.cs
│   ├── JexusManager.Features.DefaultDocument.csproj
│   ├── JexusManager.snk
│   ├── NewDefaultDocumentDialog.Designer.cs
│   ├── NewDefaultDocumentDialog.cs
│   ├── NewDefaultDocumentDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.DirectoryBrowse/
│   ├── DirectoryBrowseFeature.cs
│   ├── DirectoryBrowseModule.cs
│   ├── DirectoryBrowseModuleProvider.cs
│   ├── DirectoryBrowsePage.Designer.cs
│   ├── DirectoryBrowsePage.cs
│   ├── DirectoryBrowsePage.resx
│   ├── DirectoryBrowseSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.DirectoryBrowse.csproj
│   ├── JexusManager.snk
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.FastCgi/
│   ├── EnvironmentVariables.cs
│   ├── EnvironmentVariablesCollection.cs
│   ├── EnvironmentVariablesCollectionEditor.cs
│   ├── ErrorMode.cs
│   ├── FastCgiFeature.cs
│   ├── FastCgiItem.cs
│   ├── FastCgiModule.cs
│   ├── FastCgiModuleProvider.cs
│   ├── FastCgiPage.Designer.cs
│   ├── FastCgiPage.cs
│   ├── FastCgiPage.resx
│   ├── FastCgiSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.FastCgi.csproj
│   ├── JexusManager.snk
│   ├── NewApplicationDialog.Designer.cs
│   ├── NewApplicationDialog.cs
│   ├── NewApplicationDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── Protocol.cs
│   └── app.config
├── JexusManager.Features.Handlers/
│   ├── HandlersFeature.cs
│   ├── HandlersItem.cs
│   ├── HandlersModule.cs
│   ├── HandlersModuleProvider.cs
│   ├── HandlersPage.Designer.cs
│   ├── HandlersPage.cs
│   ├── HandlersPage.resx
│   ├── HandlersSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.Handlers.csproj
│   ├── JexusManager.snk
│   ├── NewHandlerDialog.Designer.cs
│   ├── NewHandlerDialog.cs
│   ├── NewHandlerDialog.resx
│   ├── NewMappingDialog.Designer.cs
│   ├── NewMappingDialog.cs
│   ├── NewMappingDialog.resx
│   ├── NewScriptMapDialog.Designer.cs
│   ├── NewScriptMapDialog.cs
│   ├── NewScriptMapDialog.resx
│   ├── NewWildcardDialog.Designer.cs
│   ├── NewWildcardDialog.cs
│   ├── NewWildcardDialog.resx
│   ├── PermissionsDialog.Designer.cs
│   ├── PermissionsDialog.cs
│   ├── PermissionsDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── RestrictionsDialog.Designer.cs
│   ├── RestrictionsDialog.cs
│   ├── RestrictionsDialog.resx
│   └── app.config
├── JexusManager.Features.HttpApi/
│   ├── HttpApiFeature.cs
│   ├── HttpApiModule.cs
│   ├── HttpApiModuleProvider.cs
│   ├── HttpApiPage.Designer.cs
│   ├── HttpApiPage.cs
│   ├── HttpApiPage.resx
│   ├── HttpApiSettingsSavedEventHandler.cs
│   ├── IHttpApiFeature.cs
│   ├── IpMappingFeature.cs
│   ├── IpMappingItem.cs
│   ├── JexusManager.Features.HttpApi.csproj
│   ├── JexusManager.snk
│   ├── NewReservedUrlDialog.Designer.cs
│   ├── NewReservedUrlDialog.cs
│   ├── NewReservedUrlDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── ReservedUrlsFeature.cs
│   ├── ReservedUrlsItem.cs
│   ├── SniMappingFeature.cs
│   ├── SniMappingItem.cs
│   └── app.config
├── JexusManager.Features.HttpErrors/
│   ├── EditDialog.Designer.cs
│   ├── EditDialog.cs
│   ├── EditDialog.resx
│   ├── HttpErrorsFeature.cs
│   ├── HttpErrorsItem.cs
│   ├── HttpErrorsModule.cs
│   ├── HttpErrorsModuleProvider.cs
│   ├── HttpErrorsPage.Designer.cs
│   ├── HttpErrorsPage.cs
│   ├── HttpErrorsPage.resx
│   ├── HttpErrorsSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.HttpErrors.csproj
│   ├── JexusManager.snk
│   ├── LocalErrorDialog.Designer.cs
│   ├── LocalErrorDialog.cs
│   ├── LocalErrorDialog.resx
│   ├── NewErrorDialog.Designer.cs
│   ├── NewErrorDialog.cs
│   ├── NewErrorDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.HttpRedirect/
│   ├── HttpRedirectFeature.cs
│   ├── HttpRedirectModule.cs
│   ├── HttpRedirectModuleProvider.cs
│   ├── HttpRedirectPage.Designer.cs
│   ├── HttpRedirectPage.cs
│   ├── HttpRedirectPage.resx
│   ├── HttpRedirectSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.HttpRedirect.csproj
│   ├── JexusManager.snk
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.IpSecurity/
│   ├── DynamicDialog.Designer.cs
│   ├── DynamicDialog.cs
│   ├── DynamicDialog.resx
│   ├── IpSecurityFeature.cs
│   ├── IpSecurityItem.cs
│   ├── IpSecurityModule.cs
│   ├── IpSecurityModuleProvider.cs
│   ├── IpSecurityPage.Designer.cs
│   ├── IpSecurityPage.cs
│   ├── IpSecurityPage.resx
│   ├── IpSecuritySettingsSavedEventHandler.cs
│   ├── JexusManager.Features.IpSecurity.csproj
│   ├── JexusManager.snk
│   ├── NewRestrictionDialog.Designer.cs
│   ├── NewRestrictionDialog.cs
│   ├── NewRestrictionDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── SetRestrictionsDialog.Designer.cs
│   ├── SetRestrictionsDialog.cs
│   ├── SetRestrictionsDialog.resx
│   └── app.config
├── JexusManager.Features.IsapiCgiRestriction/
│   ├── IsapiCgiRestrictionFeature.cs
│   ├── IsapiCgiRestrictionItem.cs
│   ├── IsapiCgiRestrictionModule.cs
│   ├── IsapiCgiRestrictionModuleProvider.cs
│   ├── IsapiCgiRestrictionPage.Designer.cs
│   ├── IsapiCgiRestrictionPage.cs
│   ├── IsapiCgiRestrictionPage.resx
│   ├── IsapiCgiRestrictionSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.IsapiCgiRestriction.csproj
│   ├── JexusManager.snk
│   ├── NewRestrictionDialog.Designer.cs
│   ├── NewRestrictionDialog.cs
│   ├── NewRestrictionDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── SettingsDialog.Designer.cs
│   ├── SettingsDialog.cs
│   ├── SettingsDialog.resx
│   └── app.config
├── JexusManager.Features.IsapiFilters/
│   ├── IsapiFiltersFeature.cs
│   ├── IsapiFiltersItem.cs
│   ├── IsapiFiltersModule.cs
│   ├── IsapiFiltersModuleProvider.cs
│   ├── IsapiFiltersPage.Designer.cs
│   ├── IsapiFiltersPage.cs
│   ├── IsapiFiltersPage.resx
│   ├── IsapiFiltersSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.IsapiFilters.csproj
│   ├── JexusManager.snk
│   ├── NewFilterDialog.Designer.cs
│   ├── NewFilterDialog.cs
│   ├── NewFilterDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.Jexus/
│   ├── JexusFeature.cs
│   ├── JexusManager.Features.Jexus.csproj
│   ├── JexusManager.snk
│   ├── JexusModule.cs
│   ├── JexusModuleProvider.cs
│   ├── JexusPage.Designer.cs
│   ├── JexusPage.cs
│   ├── JexusPage.resx
│   ├── JexusSettingsSavedEventHandler.cs
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.Logging/
│   ├── AddFieldDialog.Designer.cs
│   ├── AddFieldDialog.cs
│   ├── AddFieldDialog.resx
│   ├── Fields.cs
│   ├── FieldsDialog.Designer.cs
│   ├── FieldsDialog.cs
│   ├── FieldsDialog.resx
│   ├── JexusManager.Features.Logging.csproj
│   ├── JexusManager.snk
│   ├── LoggingFeature.cs
│   ├── LoggingModule.cs
│   ├── LoggingModuleProvider.cs
│   ├── LoggingPage.Designer.cs
│   ├── LoggingPage.cs
│   ├── LoggingPage.resx
│   ├── LoggingSettingsSavedEventHandler.cs
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.MimeMap/
│   ├── JexusManager.Features.MimeMap.csproj
│   ├── JexusManager.snk
│   ├── MimeMapFeature.cs
│   ├── MimeMapItem.cs
│   ├── MimeMapModule.cs
│   ├── MimeMapModuleProvider.cs
│   ├── MimeMapPage.Designer.cs
│   ├── MimeMapPage.cs
│   ├── MimeMapPage.resx
│   ├── MimeMapSettingsSavedEventHandler.cs
│   ├── NewMapItemDialog.cs
│   ├── NewMapItemDialog.designer.cs
│   ├── NewMapItemDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.Modules/
│   ├── GlobalModule.cs
│   ├── JexusManager.Features.Modules.csproj
│   ├── JexusManager.snk
│   ├── ModulesFeature.cs
│   ├── ModulesItem.cs
│   ├── ModulesModule.cs
│   ├── ModulesModuleProvider.cs
│   ├── ModulesPage.Designer.cs
│   ├── ModulesPage.cs
│   ├── ModulesPage.resx
│   ├── ModulesSettingsSavedEventHandler.cs
│   ├── NativeModulesDialog.Designer.cs
│   ├── NativeModulesDialog.cs
│   ├── NativeModulesDialog.resx
│   ├── NewModuleDialog.Designer.cs
│   ├── NewModuleDialog.cs
│   ├── NewModuleDialog.resx
│   ├── NewNativeDialog.Designer.cs
│   ├── NewNativeDialog.cs
│   ├── NewNativeDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.RequestFiltering/
│   ├── AppliesToItem.cs
│   ├── DenyStringsItem.cs
│   ├── FileExtensionsFeature.cs
│   ├── FileExtensionsItem.cs
│   ├── FilteringRulesFeature.cs
│   ├── FilteringRulesItem.cs
│   ├── HeadersFeature.cs
│   ├── HeadersItem.cs
│   ├── HiddenSegmentsFeature.cs
│   ├── HiddenSegmentsItem.cs
│   ├── IRequestFilteringFeature.cs
│   ├── JexusManager.Features.RequestFiltering.csproj
│   ├── JexusManager.snk
│   ├── NewExtensionDialog.Designer.cs
│   ├── NewExtensionDialog.cs
│   ├── NewExtensionDialog.resx
│   ├── NewHeaderDialog.Designer.cs
│   ├── NewHeaderDialog.cs
│   ├── NewHeaderDialog.resx
│   ├── NewHiddenSegmentDialog.Designer.cs
│   ├── NewHiddenSegmentDialog.cs
│   ├── NewHiddenSegmentDialog.resx
│   ├── NewQueryDialog.Designer.cs
│   ├── NewQueryDialog.cs
│   ├── NewQueryDialog.resx
│   ├── NewRuleDialog.Designer.cs
│   ├── NewRuleDialog.cs
│   ├── NewRuleDialog.resx
│   ├── NewUrlDialog.Designer.cs
│   ├── NewUrlDialog.cs
│   ├── NewUrlDialog.resx
│   ├── NewVerbDialog.Designer.cs
│   ├── NewVerbDialog.cs
│   ├── NewVerbDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── QueryStringsFeature.cs
│   ├── QueryStringsItem.cs
│   ├── RequestFilteringFeature.cs
│   ├── RequestFilteringModule.cs
│   ├── RequestFilteringModuleProvider.cs
│   ├── RequestFilteringPage.Designer.cs
│   ├── RequestFilteringPage.cs
│   ├── RequestFilteringPage.resx
│   ├── RequestFilteringSettingsSavedEventHandler.cs
│   ├── ScanHeadersItem.cs
│   ├── SegmentSettingsDialog.Designer.cs
│   ├── SegmentSettingsDialog.cs
│   ├── SegmentSettingsDialog.resx
│   ├── UrlsFeature.cs
│   ├── UrlsItem.cs
│   ├── VerbsFeature.cs
│   ├── VerbsItem.cs
│   └── app.config
├── JexusManager.Features.ResponseHeaders/
│   ├── JexusManager.Features.ResponseHeaders.csproj
│   ├── JexusManager.snk
│   ├── NewHeaderDialog.Designer.cs
│   ├── NewHeaderDialog.cs
│   ├── NewHeaderDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── ResponseHeadersFeature.cs
│   ├── ResponseHeadersItem.cs
│   ├── ResponseHeadersModule.cs
│   ├── ResponseHeadersModuleProvider.cs
│   ├── ResponseHeadersPage.Designer.cs
│   ├── ResponseHeadersPage.cs
│   ├── ResponseHeadersPage.resx
│   ├── ResponseHeadersSettingsSavedEventHandler.cs
│   ├── SetCommonHeadersDialog.Designer.cs
│   ├── SetCommonHeadersDialog.cs
│   ├── SetCommonHeadersDialog.resx
│   └── app.config
├── JexusManager.Features.Rewrite/
│   ├── AddProviderDialog.Designer.cs
│   ├── AddProviderDialog.cs
│   ├── AddProviderSettingDialog.Designer.cs
│   ├── AddProviderSettingDialog.cs
│   ├── ConditionItem.cs
│   ├── ConditionListViewItem.cs
│   ├── Inbound/
│   │   ├── AddAllowedVariableDialog.Designer.cs
│   │   ├── AddAllowedVariableDialog.cs
│   │   ├── AddAllowedVariableDialog.resx
│   │   ├── AddConditionDialog.Designer.cs
│   │   ├── AddConditionDialog.cs
│   │   ├── AddConditionDialog.resx
│   │   ├── AddMapDialog.Designer.cs
│   │   ├── AddMapDialog.cs
│   │   ├── AddMapDialog.resx
│   │   ├── AddMapsDialog.Designer.cs
│   │   ├── AddMapsDialog.cs
│   │   ├── AddMapsDialog.resx
│   │   ├── AddServerVariableDialog.Designer.cs
│   │   ├── AddServerVariableDialog.cs
│   │   ├── AddServerVariableDialog.resx
│   │   ├── AllowedVariableItem.cs
│   │   ├── AllowedVariablesFeature.cs
│   │   ├── InboundFeature.cs
│   │   ├── InboundRule.cs
│   │   ├── InboundRulePage.Designer.cs
│   │   ├── InboundRulePage.cs
│   │   ├── InboundRulePage.resx
│   │   ├── MapItem.cs
│   │   ├── MapPage.Designer.cs
│   │   ├── MapPage.cs
│   │   ├── MapPage.resx
│   │   ├── MapRule.cs
│   │   ├── MapSettingsDialog.Designer.cs
│   │   ├── MapSettingsDialog.cs
│   │   ├── MapSettingsDialog.resx
│   │   ├── MapSettingsUpdatedEventHandler.cs
│   │   ├── MapsFeature.cs
│   │   ├── MapsPage.Designer.cs
│   │   ├── MapsPage.cs
│   │   ├── MapsPage.resx
│   │   ├── ServerVariableItem.cs
│   │   ├── ServerVariablesPage.Designer.cs
│   │   ├── ServerVariablesPage.cs
│   │   └── ServerVariablesPage.resx
│   ├── JexusManager.Features.Rewrite.csproj
│   ├── JexusManager.snk
│   ├── NewRewriteRuleDialog.Designer.cs
│   ├── NewRewriteRuleDialog.cs
│   ├── NewRewriteRuleDialog.resx
│   ├── NewRuleBlockingDialog.Designer.cs
│   ├── NewRuleBlockingDialog.cs
│   ├── NewRuleBlockingDialog.resx
│   ├── NewRuleWithRewriteMapsDialog.Designer.cs
│   ├── NewRuleWithRewriteMapsDialog.cs
│   ├── NewRuleWithRewriteMapsDialog.resx
│   ├── Outbound/
│   │   ├── AddCustomTagDialog.Designer.cs
│   │   ├── AddCustomTagDialog.cs
│   │   ├── AddCustomTagDialog.resx
│   │   ├── AddCustomTagsDialog.Designer.cs
│   │   ├── AddCustomTagsDialog.cs
│   │   ├── AddCustomTagsDialog.resx
│   │   ├── AddPreconditionDialog.Designer.cs
│   │   ├── AddPreconditionDialog.cs
│   │   ├── AddPreconditionDialog.resx
│   │   ├── CustomTagItem.cs
│   │   ├── CustomTagsFeature.cs
│   │   ├── CustomTagsItem.cs
│   │   ├── CustomTagsPage.Designer.cs
│   │   ├── CustomTagsPage.cs
│   │   ├── CustomTagsPage.resx
│   │   ├── OutboundFeature.cs
│   │   ├── OutboundRule.cs
│   │   ├── OutboundRulePage.Designer.cs
│   │   ├── OutboundRulePage.cs
│   │   ├── OutboundRulePage.resx
│   │   ├── PreConditionItem.cs
│   │   ├── PreConditionsFeature.cs
│   │   ├── PreConditionsPage.Designer.cs
│   │   ├── PreConditionsPage.cs
│   │   └── PreConditionsPage.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── ProviderItem.cs
│   ├── ProvidersFeature.cs
│   ├── ProvidersPage.Designer.cs
│   ├── ProvidersPage.cs
│   ├── RegexTestDialog.Designer.cs
│   ├── RegexTestDialog.cs
│   ├── RegexTestDialog.resx
│   ├── Resources/
│   │   └── ProvidersPage.resx
│   ├── RewriteFeature.cs
│   ├── RewriteModule.cs
│   ├── RewriteModuleProvider.cs
│   ├── RewritePage.Designer.cs
│   ├── RewritePage.cs
│   ├── RewritePage.resx
│   ├── RewriteSettingsSavedEventHandler.cs
│   ├── RuleSettingsUpdatedEventHandler.cs
│   ├── SettingItem.cs
│   ├── SettingsFeature.cs
│   ├── SettingsPage.Designer.cs
│   ├── SettingsPage.cs
│   ├── SettingsPage.resx
│   └── app.config
├── JexusManager.Features.TraceFailedRequests/
│   ├── JexusManager.Features.TraceFailedRequests.csproj
│   ├── JexusManager.snk
│   ├── NewTraceDialog.Designer.cs
│   ├── NewTraceDialog.cs
│   ├── NewTraceDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── SettingsDialog.Designer.cs
│   ├── SettingsDialog.cs
│   ├── SettingsDialog.resx
│   ├── TraceFailedRequestsFeature.cs
│   ├── TraceFailedRequestsItem.cs
│   ├── TraceFailedRequestsModule.cs
│   ├── TraceFailedRequestsModuleProvider.cs
│   ├── TraceFailedRequestsPage.Designer.cs
│   ├── TraceFailedRequestsPage.cs
│   ├── TraceFailedRequestsPage.resx
│   ├── TraceFailedRequestsSettingsSavedEventHandler.cs
│   ├── Wizards/
│   │   └── AddTraceWizard/
│   │       ├── AddTraceWizard.Designer.cs
│   │       ├── AddTraceWizard.cs
│   │       ├── AddTraceWizard.resx
│   │       ├── AddTraceWizardData.cs
│   │       ├── ConditionsPage.Designer.cs
│   │       ├── ConditionsPage.cs
│   │       ├── ConditionsPage.resx
│   │       ├── ContentPage.Designer.cs
│   │       ├── ContentPage.cs
│   │       ├── ContentPage.resx
│   │       ├── Provider.cs
│   │       ├── ProvidersPage.Designer.cs
│   │       ├── ProvidersPage.cs
│   │       └── ProvidersPage.resx
│   └── app.config
├── JexusManager.Notifications/
│   ├── JexusManager.Notifications.csproj
│   ├── NotificationControl.cs
│   └── NotificationManager.cs
├── JexusManager.Notifications.Demo/
│   ├── JexusManager.Notifications.Demo.csproj
│   ├── JexusManager.Notifications.Demo.slnx
│   ├── MainForm.Designer.cs
│   ├── MainForm.cs
│   └── Program.cs
├── JexusManager.Shared/
│   ├── ApplicationExtensions.cs
│   ├── BindingUtility.cs
│   ├── CertificateInfo.cs
│   ├── ColumnClickHook.cs
│   ├── ConfigurationElementExtensions.cs
│   ├── ConfigurationSectionExtensions.cs
│   ├── DefaultWizardForm.cs
│   ├── DefaultWizardPage.cs
│   ├── DescriptionConverter.cs
│   ├── DialogHelper.cs
│   ├── Features/
│   │   ├── DefaultTaskList.cs
│   │   ├── FeatureBase.cs
│   │   ├── IDuoItem.cs
│   │   ├── IFeatureListViewItem.cs
│   │   ├── IItem.cs
│   │   ├── ScopeExtensions.cs
│   │   ├── ShowHelpTaskList.cs
│   │   ├── TaskItemExtensions.cs
│   │   └── TimeSpanExtensions.cs
│   ├── IMainForm.cs
│   ├── JexusManager.Shared.csproj
│   ├── JexusManager.snk
│   ├── NativeMethods.cs
│   ├── PhysicalDirectory.cs
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── ServerManagerExtensions.cs
│   ├── Services/
│   │   ├── ConfigurationService.cs
│   │   ├── ControlPanel.cs
│   │   ├── IConfigurationService.cs
│   │   └── ManagementUIService.cs
│   ├── StringCompareExtensions.cs
│   ├── StringUtility.cs
│   └── app.config
├── JexusManager.slnx
├── LICENSE.md
├── Microsoft.Web.Administration/
│   ├── Application.cs
│   ├── ApplicationCollection.cs
│   ├── ApplicationDefaults.cs
│   ├── ApplicationDomain.cs
│   ├── ApplicationDomainCollection.cs
│   ├── ApplicationPathValidator.cs
│   ├── ApplicationPool.cs
│   ├── ApplicationPoolCollection.cs
│   ├── ApplicationPoolCpu.cs
│   ├── ApplicationPoolDefaults.cs
│   ├── ApplicationPoolFailure.cs
│   ├── ApplicationPoolNameValidator.cs
│   ├── ApplicationPoolPeriodicRestart.cs
│   ├── ApplicationPoolProcessModel.cs
│   ├── ApplicationPoolRecycling.cs
│   ├── AspNetCoreHelper.cs
│   ├── AsyncHelper.cs
│   ├── AuthenticationLogonMethod.cs
│   ├── Binding.cs
│   ├── BindingCollection.cs
│   ├── CertificateInstallerLocator.cs
│   ├── CommonHelper.cs
│   ├── Configuration.cs
│   ├── ConfigurationAllowDefinition.cs
│   ├── ConfigurationAttribute.cs
│   ├── ConfigurationAttributeCollection.cs
│   ├── ConfigurationAttributeSchema.cs
│   ├── ConfigurationAttributeSchemaCollection.cs
│   ├── ConfigurationAttributeSchemaExtensions.cs
│   ├── ConfigurationChildElementCollection.cs
│   ├── ConfigurationCollectionSchema.cs
│   ├── ConfigurationElement.cs
│   ├── ConfigurationElementCollection.cs
│   ├── ConfigurationElementCollectionBase.cs
│   ├── ConfigurationElementSchema.cs
│   ├── ConfigurationElementSchemaCollection.cs
│   ├── ConfigurationEnumValue.cs
│   ├── ConfigurationEnumValueCollection.cs
│   ├── ConfigurationLockCollection.cs
│   ├── ConfigurationMethod.cs
│   ├── ConfigurationMethodCollection.cs
│   ├── ConfigurationMethodInstance.cs
│   ├── ConfigurationMethodSchema.cs
│   ├── ConfigurationSection.cs
│   ├── ConfigurationValidatorBase.cs
│   ├── Constants.cs
│   ├── CustomLogField.cs
│   ├── CustomLogFieldCollection.cs
│   ├── CustomLogFieldSourceType.cs
│   ├── DefaultValidator.cs
│   ├── FileContext.cs
│   ├── Helper.cs
│   ├── IFeatureDetection.cs
│   ├── IItem.cs
│   ├── IdleTimeoutAction.cs
│   ├── IisExpressServerManager.cs
│   ├── IisServerManager.cs
│   ├── IntegerRangeValidator.cs
│   ├── Jexus.snk
│   ├── JexusHelper.cs
│   ├── JexusManagerOptions.cs
│   ├── JexusServerManager.cs
│   ├── LoadBalancerCapabilities.cs
│   ├── Location.cs
│   ├── LogExtFileFlags.cs
│   ├── LogFormat.cs
│   ├── LogTargetW3C.cs
│   ├── LoggingRolloverPeriod.cs
│   ├── ManagedPipelineMode.cs
│   ├── Microsoft.Web.Administration.csproj
│   ├── NativeMethods.cs
│   ├── NativeMethods.json
│   ├── NativeMethods.txt
│   ├── NonEmptyStringValidator.cs
│   ├── ObjectState.cs
│   ├── OverrideMode.cs
│   ├── PipelineState.cs
│   ├── ProcessModelIdentityType.cs
│   ├── ProcessModelLogEventOnProcessModel.cs
│   ├── ProcessorAction.cs
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── ProtectedConfiguration.cs
│   ├── ProtectedConfigurationProvider.cs
│   ├── ProtectedConfigurationProviderCollection.cs
│   ├── ProtectedConfigurationSection.cs
│   ├── ProtectedProviderSettings.cs
│   ├── ProviderSettings.cs
│   ├── ProviderSettingsCollection.cs
│   ├── PublicNativeMethods.cs
│   ├── RecyclingLogEventOnRecycle.cs
│   ├── Request.cs
│   ├── RequestCollection.cs
│   ├── RequireTrimmedStringValidator.cs
│   ├── Resources/
│   │   ├── FX_schema.xml
│   │   ├── IIS_schema.xml
│   │   ├── original.config
│   │   └── rewrite_schema.xml
│   ├── SOCKADDR_IN.cs
│   ├── SOCKADDR_STORAGE.cs
│   ├── Schedule.cs
│   ├── ScheduleCollection.cs
│   ├── SectionDefinition.cs
│   ├── SectionDefinitionCollection.cs
│   ├── SectionGroup.cs
│   ├── SectionGroupCollection.cs
│   ├── SectionSchema.cs
│   ├── ServerManager.cs
│   ├── ServerManagerException.cs
│   ├── Site.cs
│   ├── SiteCollection.cs
│   ├── SiteDefaultProcessor.cs
│   ├── SiteDefaults.cs
│   ├── SiteLimits.cs
│   ├── SiteLogFile.cs
│   ├── SiteNameValidator.cs
│   ├── SiteTraceFailedRequestsLogging.cs
│   ├── SslFlags.cs
│   ├── StartMode.cs
│   ├── StringExtensions.cs
│   ├── TimeSpanRangeValidator.cs
│   ├── ValidatorRegistry.cs
│   ├── VirtualDirectory.cs
│   ├── VirtualDirectoryCollection.cs
│   ├── VirtualDirectoryDefaults.cs
│   ├── VirtualDirectoryPathValidator.cs
│   ├── WebConfigurationManager.cs
│   ├── WebConfigurationMap.cs
│   ├── WorkerProcess.cs
│   ├── WorkerProcessCollection.cs
│   ├── WorkerProcessState.cs
│   ├── WorkingMode.cs
│   ├── app.config
│   └── schemas/
│       └── rscaext.xml
├── Microsoft.Web.Configuration.AppHostFileProvider/
│   ├── AesEncryptionProvider.cs
│   ├── AppHostFileProvider.cs
│   ├── CngEncryptionProvider.cs
│   ├── EncodingHelper.cs
│   ├── IAppHostProvider.cs
│   ├── IAppHostProviderChangeHandler.cs
│   ├── IAppHostSite.cs
│   ├── IApplication.cs
│   ├── IApplicationPool.cs
│   ├── ICpu.cs
│   ├── ICustomField.cs
│   ├── ICustomFields.cs
│   ├── IEncryptionProvider.cs
│   ├── IEnumApplicationPool.cs
│   ├── IEnumApplications.cs
│   ├── IEnumBindings.cs
│   ├── IEnumCustomFields.cs
│   ├── IEnumEnvironmentVariables.cs
│   ├── IEnumListenerAdapter.cs
│   ├── IEnumLocation.cs
│   ├── IEnumSchedule.cs
│   ├── IEnumSite.cs
│   ├── IEnumVirtualDirectory.cs
│   ├── IEnvironmentVariable.cs
│   ├── IFailure.cs
│   ├── IListenerAdapter.cs
│   ├── ILocation.cs
│   ├── ILogSettings.cs
│   ├── IPeriodicRestart.cs
│   ├── IProcessModel.cs
│   ├── IRecycling.cs
│   ├── ISchedule.cs
│   ├── ISiteBinding.cs
│   ├── ISiteLimits.cs
│   ├── ISiteLogFile.cs
│   ├── ISiteTraceRequestsLogging.cs
│   ├── IVirtualDirectory.cs
│   ├── IWebLimits.cs
│   ├── JexusManager.snk
│   ├── LoadOptions.cs
│   ├── LoggingService.cs
│   ├── Microsoft.Web.Configuration.AppHostFileProvider.csproj
│   ├── NativeMethods.cs
│   ├── NativeMethods.json
│   ├── NativeMethods.txt
│   └── Properties/
│       └── AssemblyInfo.cs
├── Microsoft.Web.Management/
│   ├── Client/
│   │   ├── AssemblyDownloadInfo.cs
│   │   ├── Connection.cs
│   │   ├── ConnectionActiveState.cs
│   │   ├── ConnectionCredential.cs
│   │   ├── ConnectionEventArgs.cs
│   │   ├── ConnectionEventHandler.cs
│   │   ├── ConnectionInfo.cs
│   │   ├── ConnectionInfoCollection.cs
│   │   ├── ControlPanelCategorization.cs
│   │   ├── ControlPanelCategoryInfo.cs
│   │   ├── CredentialInfo.cs
│   │   ├── CredentialInfoEventArgs.cs
│   │   ├── Extensions/
│   │   │   ├── AuthenticationFeature.cs
│   │   │   ├── AuthenticationSettingsSavedEventHandler.cs
│   │   │   ├── AuthenticationType.cs
│   │   │   ├── HomepageExtension.cs
│   │   │   ├── IHomepageTaskListProvider.cs
│   │   │   ├── ProtocolProvider.cs
│   │   │   ├── ProviderFeature.cs
│   │   │   ├── SiteAction.cs
│   │   │   └── SiteUpdatedEventArgs.cs
│   │   ├── GroupTaskItem.cs
│   │   ├── HierarchyCollectionEventArgs.cs
│   │   ├── HierarchyCollectionEventHandler.cs
│   │   ├── HierarchyInfo.cs
│   │   ├── HierarchyInfoEventArgs.cs
│   │   ├── HierarchyInfoEventHandler.cs
│   │   ├── HierarchyInfoSyncSelectionEventArgs.cs
│   │   ├── HierarchyPriority.cs
│   │   ├── HierarchyProvider.cs
│   │   ├── HierarchyRenameEventArgs.cs
│   │   ├── HierarchyService.cs
│   │   ├── HierarchyVisibility.cs
│   │   ├── ICertificateVerificationBuilder.cs
│   │   ├── IConnectionBuilder.cs
│   │   ├── IConnectionManager.cs
│   │   ├── IControlPanel.cs
│   │   ├── ICredentialBuilder.cs
│   │   ├── IExtensibilityManager.cs
│   │   ├── IModuleChildPage.cs
│   │   ├── IModulePage.cs
│   │   ├── INavigationService.cs
│   │   ├── IPreferencesService.cs
│   │   ├── IPropertyEditingService.cs
│   │   ├── IPropertyEditingUser.cs
│   │   ├── IProviderConfigurationService.cs
│   │   ├── ManagementChannel.cs
│   │   ├── ManagementScopePath.cs
│   │   ├── MessageTaskItem.cs
│   │   ├── MessageTaskItemType.cs
│   │   ├── MethodTaskItemUsages.cs
│   │   ├── Module.cs
│   │   ├── ModuleHomepageAttribute.cs
│   │   ├── ModuleListPageFilter.cs
│   │   ├── ModuleListPageGrouping.cs
│   │   ├── ModuleListPageSearchField.cs
│   │   ├── ModuleListPageSearchOptions.cs
│   │   ├── ModuleListPageViewModes.cs
│   │   ├── ModulePageIdentifierAttribute.cs
│   │   ├── ModulePageInfo.cs
│   │   ├── ModuleServiceProxy.cs
│   │   ├── NavigationEventArgs.cs
│   │   ├── NavigationEventHandler.cs
│   │   ├── NavigationItem.cs
│   │   ├── PreferencesStore.cs
│   │   ├── PropertyGridObject.cs
│   │   ├── ProviderConfigurationSettings.cs
│   │   ├── TaskItem.cs
│   │   ├── TaskList.cs
│   │   ├── TaskListCollection.cs
│   │   └── Win32/
│   │       ├── BaseForm.cs
│   │       ├── BaseTaskForm.cs
│   │       ├── DialogForm.cs
│   │       ├── IManagementUIService.cs
│   │       ├── ListPageListView.cs
│   │       ├── ManagementGroupBox.cs
│   │       ├── ManagementPanel.cs
│   │       ├── ManagementTabPage.cs
│   │       ├── ManagementUIColorTable.cs
│   │       ├── MethodTaskItem.cs
│   │       ├── ModuleDialogPage.cs
│   │       ├── ModuleDialogPage.resx
│   │       ├── ModuleListPage.cs
│   │       ├── ModulePage.cs
│   │       ├── ModulePropertiesPage.cs
│   │       ├── ModulePropertiesPage.resx
│   │       ├── SortableListView.cs
│   │       ├── TaskForm.cs
│   │       ├── TextTaskItem.cs
│   │       ├── WaitCursor.cs
│   │       ├── WizardForm.cs
│   │       ├── WizardForm.resx
│   │       ├── WizardPage.cs
│   │       └── WizardPage.resx
│   ├── Features/
│   │   ├── Administrators/
│   │   │   └── AdministratorsModuleProvider.cs
│   │   ├── Delegation/
│   │   │   └── DelegationModuleProvider.cs
│   │   └── Services/
│   │       └── ServiceModuleProvider.cs
│   ├── Host/
│   │   ├── ConnectionManager.cs
│   │   ├── IManagementHost.cs
│   │   └── Shell/
│   │       ├── ShellApplication.cs
│   │       └── ShellComponents.cs
│   ├── JexusManager.snk
│   ├── Microsoft.Web.Management.csproj
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── Server/
│   │   ├── AdministrationModule.cs
│   │   ├── AdministrationModuleCollection.cs
│   │   ├── AdministrationModuleProvider.cs
│   │   ├── ApplicationManagementUnit.cs
│   │   ├── BindingInfo.cs
│   │   ├── ConfigurationAuthenticationModuleService.cs
│   │   ├── ConfigurationModuleProvider.cs
│   │   ├── ConfigurationPathType.cs
│   │   ├── DelegationState.cs
│   │   ├── IAuthenticationModuleService.cs
│   │   ├── IGlobalConfigurationProvider.cs
│   │   ├── IManagementContext.cs
│   │   ├── ISiteStatusProvider.cs
│   │   ├── InvalidPasswordReason.cs
│   │   ├── ManagementAdministrationConfiguration.cs
│   │   ├── ManagementAuthentication.cs
│   │   ├── ManagementAuthenticationProvider.cs
│   │   ├── ManagementAuthorization.cs
│   │   ├── ManagementAuthorizationInfo.cs
│   │   ├── ManagementAuthorizationInfoCollection.cs
│   │   ├── ManagementAuthorizationProvider.cs
│   │   ├── ManagementConfiguration.cs
│   │   ├── ManagementConfigurationPath.cs
│   │   ├── ManagementContentNavigator.cs
│   │   ├── ManagementFrameworkVersion.cs
│   │   ├── ManagementScope.cs
│   │   ├── ManagementUnit.cs
│   │   ├── ManagementUserInfo.cs
│   │   ├── ManagementUserInfoCollection.cs
│   │   ├── ModuleDefinition.cs
│   │   ├── ModuleInfo.cs
│   │   ├── ModuleProvider.cs
│   │   ├── ModuleService.cs
│   │   ├── ModuleServiceMethodAttribute.cs
│   │   ├── PropertyBag.cs
│   │   ├── ServerManagementUnit.cs
│   │   ├── SimpleDelegatedModuleProvider.cs
│   │   ├── SiteInfo.cs
│   │   ├── SiteManagementUnit.cs
│   │   ├── TypeInformationGenerator.cs
│   │   ├── WebManagementEventLog.cs
│   │   ├── WebManagementServiceException.cs
│   │   └── WebManagementServiceHandler.cs
│   ├── Utility/
│   │   └── ServiceUtility.cs
│   └── app.config
├── Readme.md
├── Setup/
│   ├── CloseApplication.wxi
│   ├── Components64.wxi
│   ├── Components86.wxi
│   ├── ComponentsARM64.wxi
│   ├── ConfigFile.xml
│   ├── JexusManager.sln
│   ├── JexusManager.wixproj
│   ├── License.rtf
│   ├── OS.wxi
│   ├── Paths64.wxi
│   ├── Paths86.wxi
│   ├── PathsARM64.wxi
│   ├── Product.wxs
│   ├── Product_en-us.wxl
│   └── Variables.wxi
├── Tests/
│   ├── Exceptions/
│   │   ├── ServerTestCases.cs
│   │   └── SiteTestCases.cs
│   ├── GlobalSuppressions.cs
│   ├── JexusManager.snk
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── ServerManagerTestFixture.cs
│   ├── TestCases.cs
│   ├── TestHelper.cs
│   ├── Tests.csproj
│   ├── Website1/
│   │   ├── authorization.config
│   │   ├── directorybrowse.config
│   │   ├── expected.config
│   │   ├── expected1.config
│   │   ├── expected3.config
│   │   ├── index.html
│   │   └── original.config
│   ├── XmlAssert.cs
│   ├── administration.config
│   ├── app.config
│   ├── default.runsettings
│   ├── expected.config
│   ├── expected3.config
│   ├── original2.config
│   ├── original2_missing_closing.config
│   ├── schema/
│   │   ├── ASPNET_schema.xml
│   │   ├── FX_schema.xml
│   │   ├── IIS_schema.xml
│   │   ├── WebDAV_schema.xml
│   │   ├── dbmanager_schema.xml
│   │   ├── httpplatform_schema.xml
│   │   ├── rewrite_schema.xml
│   │   └── rscaext.xml
│   ├── siteconf/
│   │   ├── default
│   │   ├── default_app
│   │   └── default_app_app
│   └── xunit.runner.json
├── Tests.IIS/
│   ├── Helper.cs
│   ├── JexusManager.snk
│   ├── NativeMethods.json
│   ├── NativeMethods.txt
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── Tests.IIS.csproj
│   ├── default.runsettings
│   └── redirection.config
├── Tests.JexusManager/
│   ├── Authentication/
│   │   ├── AnonymousAuthenticationFeatureServerTestFixture.cs
│   │   ├── AnonymousAuthenticationFeatureSiteTestFixture.cs
│   │   ├── BasicAuthenticationFeatureServerTestFixture.cs
│   │   ├── BasicAuthenticationFeatureSiteTestFixture.cs
│   │   ├── ClientCertificateAuthenticationFeatureServerTestFixture.cs
│   │   ├── ClientCertificateAuthenticationFeatureSiteTestFixture.cs
│   │   ├── DigestAuthenticationFeatureServerTestFixture.cs
│   │   ├── DigestAuthenticationFeatureSiteTestFixture.cs
│   │   ├── FormsAuthenticationFeatureServerTestFixture.cs
│   │   ├── FormsAuthenticationFeatureSiteTestFixture.cs
│   │   ├── WindowsAuthenticationFeatureServerTestFixture.cs
│   │   └── WindowsAuthenticationFeatureSiteTestFixture.cs
│   ├── Authorization/
│   │   ├── AuthorizationFeatureServerTestFixture.cs
│   │   └── AuthorizationFeatureSiteTestFixture.cs
│   ├── Caching/
│   │   ├── CachingFeatureServerTestFixture.cs
│   │   └── CachingFeatureSiteTestFixture.cs
│   ├── DefaultDocument/
│   │   ├── DefaultDocumentFeatureServerTestFixture.cs
│   │   └── DefaultDocumentFeatureSiteTestFixture.cs
│   ├── DirectoryBrowse/
│   │   ├── DirectoryBrowseFeatureServerTestFixture.cs
│   │   └── DirectoryBrowseFeatureSiteTestFixture.cs
│   ├── Handlers/
│   │   ├── HandlersFeatureServerTestFixture.cs
│   │   └── HandlersFeatureSiteTestFixture.cs
│   ├── HttpErrors/
│   │   ├── HttpErrorsFeatureServerTestFixture.cs
│   │   └── HttpErrorsFeatureSiteTestFixture.cs
│   ├── IpSecurity/
│   │   ├── IpSecurityFeatureServerTestFixture.cs
│   │   └── IpSecurityFeatureSiteTestFixture.cs
│   ├── IsapiCgiRestriction/
│   │   ├── IsapiCgiRestrictionFeatureServerTestFixture.cs
│   │   └── IsapiCgiRestrictionFeatureSiteTestFixture.cs
│   ├── IsapiFilters/
│   │   ├── IsapiFiltersFeatureServerTestFixture.cs
│   │   └── IsapiFiltersFeatureSiteTestFixture.cs
│   ├── JexusManager.snk
│   ├── Main/
│   │   └── SiteTestFixture.cs
│   ├── MimeMap/
│   │   ├── MimeMapFeatureServerTestFixture.cs
│   │   └── MimeMapFeatureSiteTestFixture.cs
│   ├── Modules/
│   │   ├── ModulesFeatureServerTestFixture.cs
│   │   └── ModulesFeatureSiteTestFixture.cs
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── RequestFiltering/
│   │   ├── FileExtensions/
│   │   │   ├── FileExtensionsFeatureServerTestFixture.cs
│   │   │   └── FileExtensionsFeatureSiteTestFixture.cs
│   │   ├── FilteringRules/
│   │   │   ├── FilteringRulesFeatureServerTestFixture.cs
│   │   │   └── FilteringRulesFeatureSiteTestFixture.cs
│   │   ├── Headers/
│   │   │   ├── HeadersFeatureServerTestFixture.cs
│   │   │   └── HeadersFeatureSiteTestFixture.cs
│   │   ├── HiddenSegments/
│   │   │   ├── HiddenSegmentsFeatureServerTestFixture.cs
│   │   │   └── HiddenSegmentsFeatureSiteTestFixture.cs
│   │   ├── QueryStrings/
│   │   │   ├── QueryStringsFeatureServerTestFixture.cs
│   │   │   └── QueryStringsFeatureSiteTestFixture.cs
│   │   ├── Urls/
│   │   │   ├── UrlsFeatureServerTestFixture.cs
│   │   │   └── UrlsFeatureSiteTestFixture.cs
│   │   └── Verbs/
│   │       ├── VerbsFeatureServerTestFixture.cs
│   │       └── VerbsFeatureSiteTestFixture.cs
│   ├── ResponseHeaders/
│   │   ├── ResponseHeadersFeatureServerTestFixture.cs
│   │   └── ResponseHeadersFeatureSiteTestFixture.cs
│   ├── Rewrite/
│   │   └── TestFixture.cs
│   ├── StringUtilityTestFixture.cs
│   ├── Tests.JexusManager.csproj
│   ├── TraceFailedRequests/
│   │   ├── TraceFailedRequestsFeatureServerTestFixture.cs
│   │   └── TraceFailedRequestsFeatureSiteTestFixture.cs
│   ├── Website1/
│   │   └── original.config
│   ├── XmlAssert.cs
│   ├── app.config
│   ├── original.config
│   └── xunit.runner.json
├── build.installer.bat
├── dist.all.bat
├── dist.ci.bat
├── dist.deploy.bat
├── download.dotnet.releases.ps1
├── lib/
│   ├── CheckBoxComboBox/
│   │   ├── CheckBoxComboBox.Designer.cs
│   │   ├── CheckBoxComboBox.cs
│   │   ├── CheckBoxComboBox.csproj
│   │   ├── GripBounds.cs
│   │   ├── NativeMethods.cs
│   │   ├── Popup.Designer.cs
│   │   ├── Popup.cs
│   │   ├── PopupComboBox.Designer.cs
│   │   ├── PopupComboBox.cs
│   │   ├── PopupComboBox.resx
│   │   ├── Properties/
│   │   │   └── AssemblyInfo.cs
│   │   ├── Selection Wrappers/
│   │   │   ├── ListSelectionWrapper.cs
│   │   │   └── ObjectSelectionWrapper.cs
│   │   └── test.snk
│   └── SharedAssemblyInfo.cs
├── release.ps1
├── run.installar.bat
├── sha1.ps1
├── sign.installers.ps1
├── sign.ps1
└── sign.txt

================================================
FILE CONTENTS
================================================

================================================
FILE: .editorconfig
================================================
# editorconfig.org

# top-most EditorConfig file
root = true

# Default settings:
# A newline ending every file
# Use 4 spaces as indentation
[*]
insert_final_newline = true
indent_style = space
indent_size = 4

# Xml project files
[*.{csproj,vcxproj,vcxproj.filters,proj,nativeproj,locproj}]
indent_size = 2

# Xml files
[*.{xml,stylecop,resx,ruleset}]
indent_size = 2

# Xml config files
[*.{props,targets,config,nuspec}]
indent_size = 2

# Shell scripts
[*.sh]
end_of_line = lf
[*.{cmd, bat}]
end_of_line = crlf
[*.cs]

# IDE0067: Dispose objects before losing scope
dotnet_diagnostic.IDE0067.severity = error

# IDE0063: Use simple 'using' statement
csharp_prefer_simple_using_statement = true:error


================================================
FILE: .gitattributes
================================================
# Auto detect text files and perform LF normalization
* text=auto

# Custom for Visual Studio
*.cs     diff=csharp
*.sln    merge=union
*.csproj merge=union
*.vbproj merge=union
*.fsproj merge=union
*.dbproj merge=union

# Standard to msysgit
*.doc	 diff=astextplain
*.DOC	 diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot  diff=astextplain
*.DOT  diff=astextplain
*.pdf  diff=astextplain
*.PDF	 diff=astextplain
*.rtf	 diff=astextplain
*.RTF	 diff=astextplain

================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms

github: [lextm]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']


================================================
FILE: .github/workflows/dotnetcore.yml
================================================
name: .NET Desktop CI

on: [push, pull_request]

jobs:
  build:
    runs-on: windows-2022

    steps:
    - uses: actions/checkout@v2
      with:
        submodules: recursive

    - name: Set up .NET
      uses: actions/setup-dotnet@v1
      with:
        dotnet-version: '7.0' # Specify the .NET version

    - name: Run custom script
      run: .\dist.ci.bat

    # Add additional steps as needed


================================================
FILE: .gitignore
================================================
build/
*.suo
*.user
_ReSharper*
*.csproj.user
*.resharper.user
*.userprefs
*.suo
*.cache
*.trx
*.pidb
Thumbs.db
[Bb]in
[Dd]ebug
[Oo]bj
[Rr]elease
[Tt]est[Rr]esult*
_UpgradeReport_Files
*[Pp]ublish.xml
*.project
*.metadata
logs
*.generated.cs
T4MVC.cs
/SharpSnmpLib/sharpsnmplib.snk
/packages
/lib/sharpsnmplib.snk
/gendarme
/lib/Activelock3.6.NET/ActiveLock3_6NET.xml
/lib/Activelock3.6.NET/SharpSnmpLib.Optional.dll
/lib/NBug.dll

/SharpSnmpLib.Mib/Help

/NDependOut
.vs/
/.idea
/JexusManager.zip
/*.msi
/Setup/Files64.wxs
/Setup/Files86.wxs
/Setup/FilesARM64.wxs
Setup/Components.wxi
Setup/Paths.wxi


================================================
FILE: .gitmodules
================================================
[submodule "LanguageServer.Framework"]
	path = LanguageServer.Framework
	url = https://github.com/CppCXY/LanguageServer.Framework.git


================================================
FILE: .vscode/settings.json
================================================
{    
    "dotnet.defaultSolution": "JexusManager.slnx"
}

================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at support@lextudio.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]

[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/


================================================
FILE: CertificateInstaller/CertificateInstaller.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>CertificateInstaller</RootNamespace>
    <AssemblyName>CertificateInstaller</AssemblyName>
    <SignAssembly>true</SignAssembly>
    <AssemblyOriginatorKeyFile>..\JexusManager\JexusManager.snk</AssemblyOriginatorKeyFile>
    <TargetFramework>net9.0-windows10.0.17763.0</TargetFramework>
    <ApplicationManifest>app.manifest</ApplicationManifest>
  </PropertyGroup>

  <ItemGroup>
    <Compile Include="..\Microsoft.Web.Administration\NativeMethods.cs" Link="NativeMethods.cs" />
    <Compile Include="..\Microsoft.Web.Administration\SOCKADDR_IN.cs" Link="SOCKADDR_IN.cs" />
    <Compile Include="..\Microsoft.Web.Administration\SOCKADDR_STORAGE.cs" Link="SOCKADDR_STORAGE.cs" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.Windows.CsWin32" Version="0.3.183">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Mono.Options" Version="6.12.0.148" />
    <PackageReference Include="Serilog.Enrichers.Process" Version="3.0.0" />
    <PackageReference Include="Serilog.Settings.Configuration" Version="9.0.0" />
    <PackageReference Include="Serilog.Sinks.File" Version="7.0.0" />
    <PackageReference Include="System.Management" Version="9.0.5" />
  </ItemGroup>

  <ItemGroup>
    <Reference Include="System.Management" />
  </ItemGroup>

</Project>


================================================
FILE: CertificateInstaller/NativeMethods.json
================================================
{
    "$schema": "https://aka.ms/CsWin32.schema.json",
    "emitSingleFile": false
}


================================================
FILE: CertificateInstaller/NativeMethods.txt
================================================
SHObjectProperties
SHOW_WINDOW_CMD
ntohs
htons
SOCKADDR_IN
SOCKADDR_STORAGE
ADDRESS_FAMILY
CreatePersistentTcpPortReservation
DeletePersistentTcpPortReservation
WIN32_ERROR


================================================
FILE: CertificateInstaller/ProcessExtensions.cs
================================================
// Copyright (c) Lex Li. All rights reserved.
// 
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System.Diagnostics;
using System.Management;

namespace Microsoft.Web.Administration
{
    internal static class ProcessExtensions
    {
        public static string GetCommandLine(this Process process)
        {
            using (var searcher = new ManagementObjectSearcher("SELECT CommandLine FROM Win32_Process WHERE ProcessId = " + process.Id))
            {
                foreach (var @object in searcher.Get())
                {
                    return @object["CommandLine"] as string;
                }
            }

            return string.Empty;
        }
    }
}


================================================
FILE: CertificateInstaller/Program.cs
================================================
// Copyright (c) Lex Li. All rights reserved.
// 
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

using Microsoft.Web.Administration;
using Mono.Options;
using Serilog;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Net;
using System.Security.Cryptography.X509Certificates;

var folder = Environment.ExpandEnvironmentVariables(@"%APPDATA%\JexusManager");
if (!Directory.Exists(folder))
{
    Directory.CreateDirectory(folder);
}

Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Information()
    .Enrich.FromLogContext()
    .Enrich.WithProcessId()
    .Enrich.WithProcessName()
    .WriteTo.File(
        Path.Combine(folder, "log.txt"),
        rollingInterval: RollingInterval.Day,
        retainedFileCountLimit: 5,
        shared: true)
    .CreateLogger();

Log.Information($"Process {System.Runtime.InteropServices.RuntimeInformation.ProcessArchitecture} started.");

string p12File = null;
string p12Pwd = null;
string friendlyName = null;
string store = null;
string hash = null;
string address = null;
string port = null;
string id = null;
string host = null;
string url = null;
string descriptor = null;
string config = null;
string siteId = null;
string launcher = null;
string resultFile = null;
bool kill = false;
bool restart = false;
string verb = null;
string input = null;

OptionSet p =
    new OptionSet()
        .Add("verb:", "Verb", delegate (string v) { if (v != null) verb = v; })
        .Add("input:", "Appcmd input string", delegate (string v) { if (v != null) input = v; })
        .Add("f:", "File name", delegate (string v) { if (v != null) p12File = v; })
        .Add("p:", "Password", delegate (string v) { if (v != null) p12Pwd = v; })
        .Add("n:", "Friendly name", delegate (string v) { if (v != null) friendlyName = v; })
        .Add("s:", "Store name", delegate (string v) { if (v != null) store = v; })
        .Add("h:", "Certificate hash (not required when adding certificates)", delegate (string v) { if (v != null) hash = v; })
        .Add("a:", "IP address", delegate (string v) { if (v != null) address = v; })
        .Add("o:", "Port number", delegate (string v) { if (v != null) port = v; })
        .Add("i:", "Application ID", delegate (string v) { if (v != null) id = v; })
        .Add("x:", "SNI host name (not required when managing IP based bindings)", delegate (string v) { if (v != null) host = v; })
        .Add("u:", "Reserved URL", delegate (string v) { if (v != null) url = v; })
        .Add("d:", "Security descriptor", delegate (string v) { if (v != null) descriptor = v; })
        .Add("config:", "Config file path", delegate (string v)
        {
            if (v != null) config = v;
        })
        .Add("siteId:", "Site ID", delegate (string v)
        {
            if (v != null) siteId = v;
        })
        .Add("resultFile:", "Result File", delegate (string v)
        {
            if (v != null) resultFile = v;
        })
        .Add("launcher:", "IIS Express path", delegate (string v)
        {
            if (v != null)
                launcher = v;
        })
        .Add("k", "Kill Process", delegate (string v)
        {
            if (v != null) kill = true;
        })
        .Add("r", "Restart Site", delegate (string v)
        {
            if (v != null) restart = true;
        });

if (args.Length == 0)
{
    ShowHelp(p);
    Log.Information("No arguments.");
    return -1;
}

List<string> extra;
try
{
    extra = p.Parse(args);
}
catch (OptionException ex)
{
    Log.Fatal(ex, "Option exception.");
    return -2;
}

if (extra.Count > 0)
{
    ShowHelp(p);
    Log.Fatal("Unknown arguments.", extra);
    return -3;
}

try
{
    if (verb == "appcmd")
    {
        if (input == null || launcher == null)
        {
            ShowHelp(p);
            Log.Fatal("Calling appcmd without arguments.");
            return -4;
        }

        return RunProcess(launcher, resultFile, input);
    }

    Log.Information($"Arguments: {string.Join(' ', args)}");
    if (config != null)
    {
        return HandleSite(config, siteId, launcher, resultFile, kill, restart);
    }

    if (url != null)
    {
        return HandleReservedUrl(url, descriptor);
    }

    if (store == null)
    {
        return DeleteMapping(address, port, host);
    }

    using var personal = new X509Store(store, StoreLocation.LocalMachine);
    try
    {
        personal.Open(OpenFlags.ReadWrite);
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex);
        Log.Fatal(ex, "Certificate store open exception.");
        return -5;
    }

    if (hash == null)
    {
        return AddCertificate(p12File, p12Pwd, friendlyName, personal);
    }

    if (string.IsNullOrEmpty(hash))
    {
        if (address == null && host != null)
        {
            NativeMethods.DeleteSniBinding(new Tuple<string, int>(host, int.Parse(port)));
            return 0;
        }

        ShowHelp(p);
        Log.Fatal("Should never reach here");
        return -6;
    }

    var selectedItem = personal.Certificates.Find(X509FindType.FindByThumbprint, hash, false);
    if (selectedItem.Count > 0)
    {
        X509Certificate2 cert = selectedItem[0];
        if (address == null)
        {
            return RemoveCertificate(port, host, personal, cert);
        }
        else
        {
            return CreateMapping(store, address, port, id, host, cert);
        }
    }
}
catch (Exception ex)
{
    Console.WriteLine(ex);
    Log.Fatal(ex, "Unknown exception.");
    return -7;
}

Console.WriteLine("Not supported path");
Log.Fatal("Should never hit this");
return -8;

int AddCertificate(string p12File, string p12Pwd, string friendlyName, X509Store personal)
{
    var x509 = X509CertificateLoader.LoadPkcs12FromFile(
        p12File,
        p12Pwd,
        X509KeyStorageFlags.Exportable | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.MachineKeySet
    );
    x509.FriendlyName = friendlyName;
    personal.Add(x509);
    return 0;
}

int HandleSite(string config, string siteId, string launcher, string resultFile, bool kill, bool restart)
{
    if (resultFile != null)
    {
        return StartSite(config, siteId, launcher, resultFile, restart);
    }

    if (kill)
    {
        return KillSite(config, siteId);
    }

    return QuerySite(config, siteId);
}

int RunProcess(string launcher, string resultFile, string input)
{
    var process = new Process
    {
        StartInfo =
                            {
                                FileName = launcher,
                                Arguments = input,
                                CreateNoWindow = true,
                                WindowStyle = ProcessWindowStyle.Hidden,
                                RedirectStandardError = true,
                                RedirectStandardOutput = true,
                                UseShellExecute = false
                            }
    };
    process.Start();
    process.WaitForExit();
    var error = process.StandardError.ReadToEnd();
    var output = process.StandardOutput.ReadToEnd();
    if (process.ExitCode != 0)
    {
        File.AppendAllText(resultFile, error);
        File.AppendAllText(resultFile, output);
    }

    return process.ExitCode;
}

int StartSite(string config, string siteId, string launcher, string resultFile, bool restart)
{
    if (restart)
    {
        var toKill = $"/config:\"{config}\" /siteid:{siteId} /systray:false /trace:error";
        var items = Process.GetProcessesByName("iisexpress");
        var found = items.Where(item =>
        {
            var command = item.GetCommandLine();
            return command != null && command.TrimEnd().EndsWith(toKill, StringComparison.Ordinal);
        });
        foreach (var item in found)
        {
            item.Kill();
            item.WaitForExit();
        }
    }

    // start a site.
    var process = new Process
    {
        StartInfo =
                            {
                                FileName = launcher,
                                Arguments = $"/config:\"{config}\" /siteid:{siteId} /systray:false /trace:error",
                                CreateNoWindow = true,
                                WindowStyle = ProcessWindowStyle.Hidden,
                                RedirectStandardOutput = true,
                                UseShellExecute = false
                            }
    };
    process.Start();
    process.WaitForExit(5000);
    if (process.HasExited)
    {
        File.WriteAllText(resultFile, process.StandardOutput.ReadToEnd());
        return 0;
    }

    return process.Id;
}

int QuerySite(string config, string siteId)
{
    var toQuery = $"/config:\"{config}\" /siteid:{siteId} /systray:false /trace:error";
    var items = Process.GetProcessesByName("iisexpress");
    var found = items.FirstOrDefault(item =>
    {
        var command = item.GetCommandLine();
        return command != null && command.TrimEnd().EndsWith(toQuery, StringComparison.Ordinal);
    });
    Log.Debug($"Tried to find {toQuery} with result {found?.Id}");
    return found == null ? 0 : found.Id;
}

int KillSite(string config, string siteId)
{
    var toKill = $"/config:\"{config}\" /siteid:{siteId} /systray:false /trace:error";
    var items = Process.GetProcessesByName("iisexpress");
    var found = items.Where(item =>
    {
        var command = item.GetCommandLine();
        return command != null && command.TrimEnd().EndsWith(toKill, StringComparison.Ordinal);
    });
    foreach (var item in found)
    {
        item.Kill();
        item.WaitForExit();
    }

    return 0;
}

int DeleteMapping(string address, string port, string host)
{
    if (host == null)
    {
        NativeMethods.DeleteCertificateBinding(
            new IPEndPoint(IPAddress.Parse(address), int.Parse(port)));
    }
    else
    {
        NativeMethods.DeleteSniBinding(new Tuple<string, int>(host, int.Parse(port)));
    }

    return 0;
}

int HandleReservedUrl(string url, string descriptor)
{
    if (descriptor != null)
    {
        NativeMethods.DeleteHttpNamespaceAcl(url, descriptor);
    }
    else
    {
        NativeMethods.BindHttpNamespaceAcl(url, "D:(A;;GX;;;WD)");
    }

    return 0;
}

int CreateMapping(string store, string address, string port, string id, string host, X509Certificate2 selectedItem)
{
    if (host == null)
    {
        // register mapping
        var endpoint = new IPEndPoint(IPAddress.Parse(address), int.Parse(port));
        NativeMethods.BindCertificate(endpoint, selectedItem.GetCertHash(), store, Guid.Parse(id));
    }
    else
    {
        NativeMethods.BindSni(new Tuple<string, int>(host, int.Parse(port)), selectedItem.GetCertHash(), store, Guid.Parse(id));
    }

    return 0;
}

int RemoveCertificate(string port, string host, X509Store personal, X509Certificate2 cert)
{
    // remove IP based mapping
    var mappings = NativeMethods.QuerySslCertificateInfo();
    foreach (var mapping in mappings)
    {
        if (mapping.Hash.SequenceEqual(cert.GetCertHash()))
        {
            if (port != null && host == null)
            {
                NativeMethods.DeleteCertificateBinding(mapping.IpPort);
            }
        }
    }

    // remove SNI mapping.
    var mappings1 = NativeMethods.QuerySslSniInfo();
    foreach (var mapping in mappings1)
    {
        if (mapping.Hash.SequenceEqual(cert.GetCertHash()))
        {
            if (port != null && host != null)
            {
                NativeMethods.DeleteSniBinding(new Tuple<string, int>(mapping.Host, mapping.Port));
            }
        }
    }

    if (port == null)
    {
        // IMPORTANT: only delete the certificate if no port is binded.
        personal.Remove(cert);
    }

    personal.Close();
    return 0;
}

void ShowHelp(OptionSet optionSet)
{
    Console.WriteLine("Jexus Manager is available at https://www.jexusmanager.com");
    Console.WriteLine("CertificateInstaller.exe [Options]");
    Console.WriteLine("Options:");
    optionSet.WriteOptionDescriptions(Console.Out);
}


================================================
FILE: CertificateInstaller/Properties/AssemblyInfo.cs
================================================
// Copyright (c) Lex Li. All rights reserved.
// 
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following 
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyDescription("")]
[assembly: AssemblyCopyright("Copyright \u00A9 Lex Li 2015-2022")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible 
// to COM components.  If you need to access a type in this assembly from 
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("54bec09a-b32f-4a66-a871-749e0621d822")]

// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Build and Revision Numbers 
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]


================================================
FILE: CertificateInstaller/app.manifest
================================================
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <!-- UAC Manifest Options
             If you want to change the Windows User Account Control level replace the 
             requestedExecutionLevel node with one of the following.

        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

            Specifying requestedExecutionLevel element will disable file and registry virtualization. 
            Remove this element if your application requires this virtualization for backwards
            compatibility.
        -->
        <requestedExecutionLevel level="asInvoker" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>

  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>
      <!-- A list of the Windows versions that this application has been tested on and is
           is designed to work with. Uncomment the appropriate elements and Windows will 
           automatically selected the most compatible environment. -->

      <!-- Windows Vista -->
      <!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->

      <!-- Windows 7 -->
      <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->

      <!-- Windows 8 -->
      <!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->

      <!-- Windows 8.1 -->
      <!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->

      <!-- Windows 10 -->
      <!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->

    </application>
  </compatibility>

  <!-- Indicates that the application is DPI-aware and will not be automatically scaled by Windows at higher
       DPIs. Windows Presentation Foundation (WPF) applications are automatically DPI-aware and do not need 
       to opt in. Windows Forms applications targeting .NET Framework 4.6 that opt into this setting, should 
       also set the 'EnableWindowsFormsHighDpiAutoResizing' setting to 'true' in their app.config. -->
  <!--
  <application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings>
      <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
    </windowsSettings>
  </application>
  -->

  <!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
  <!--
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
          type="win32"
          name="Microsoft.Windows.Common-Controls"
          version="6.0.0.0"
          processorArchitecture="*"
          publicKeyToken="6595b64144ccf1df"
          language="*"
        />
    </dependentAssembly>
  </dependency>
  -->

</assembly>


================================================
FILE: IIS.LanguageServer/Handlers/CompletionHandler.cs
================================================
using System;
using System.Collections.Generic;
using IIS.LanguageServer.Schema;

namespace IIS.LanguageServer.Handlers;

public class CompletionHandler
{
    private readonly SchemaCache _schemaCache;

    public CompletionHandler(SchemaCache schemaCache)
    {
        _schemaCache = schemaCache;
    }

    public List<CompletionItem> GetCompletions(string elementPath, string currentAttributeName)
    {
        var items = new List<CompletionItem>();

        // Suggest child elements
        var childElements = _schemaCache.GetChildElementNames(elementPath);
        foreach (var child in childElements)
        {
            items.Add(new CompletionItem
            {
                Label = child,
                Kind = "Struct",
                Detail = "Element",
                InsertText = child
            });
        }

        // Suggest attribute names
        var attributes = _schemaCache.GetAttributeNames(elementPath);
        foreach (var attr in attributes)
        {
            items.Add(new CompletionItem
            {
                Label = attr,
                Kind = "Property",
                Detail = $"Type: {_schemaCache.GetAttributeType(elementPath, attr) ?? "string"}",
                InsertText = $"{attr}=\"\""
            });
        }

        return items;
    }
}

public class CompletionItem
{
    public string Label { get; set; } = string.Empty;
    public string Kind { get; set; } = string.Empty;
    public string Detail { get; set; } = string.Empty;
    public string InsertText { get; set; } = string.Empty;
}


================================================
FILE: IIS.LanguageServer/Handlers/DiagnosticsHandler.cs
================================================
using System;
using IIS.LanguageServer.Schema;

namespace IIS.LanguageServer.Handlers;

public class DiagnosticsHandler
{
    private readonly SchemaCache _schemaCache;

    public DiagnosticsHandler(SchemaCache schemaCache)
    {
        _schemaCache = schemaCache;
    }

    public void ValidateDocument(string documentText, string uri)
    {
        try
        {
            // TODO: Parse XML and validate against schema
            // This is a placeholder for future validation logic
        }
        catch (Exception ex)
        {
            Console.Error.WriteLine($"Error validating document {uri}: {ex.Message}");
        }
    }
}


================================================
FILE: IIS.LanguageServer/Handlers/HoverHandler.cs
================================================
using IIS.LanguageServer.Schema;

namespace IIS.LanguageServer.Handlers;

public class HoverHandler
{
    private readonly SchemaCache _schemaCache;

    public HoverHandler(SchemaCache schemaCache)
    {
        _schemaCache = schemaCache;
    }

    public string? GetHoverInfo(string elementPath, string? attributeName)
    {
        if (!string.IsNullOrEmpty(attributeName))
        {
            var attrType = _schemaCache.GetAttributeType(elementPath, attributeName);
            if (!string.IsNullOrEmpty(attrType))
            {
                return $"**{attributeName}** : `{attrType}`";
            }
        }

        if (!string.IsNullOrEmpty(elementPath))
        {
            return $"**Element:** `{elementPath}`";
        }

        return null;
    }
}


================================================
FILE: IIS.LanguageServer/Handlers/TextDocumentSyncHandler.cs
================================================
using System;
using System.Collections.Generic;
using IIS.LanguageServer.Schema;

namespace IIS.LanguageServer.Handlers;

public class TextDocumentSyncHandler
{
    private readonly Dictionary<string, string> _openDocuments = new();
    private readonly DiagnosticsHandler _diagnosticsHandler;

    public TextDocumentSyncHandler(SchemaCache schemaCache)
    {
        _diagnosticsHandler = new DiagnosticsHandler(schemaCache);
    }

    public void HandleDidOpen(string uri, string text)
    {
        _openDocuments[uri] = text;
        _diagnosticsHandler.ValidateDocument(text, uri);
    }

    public void HandleDidChange(string uri, string text)
    {
        _openDocuments[uri] = text;
        _diagnosticsHandler.ValidateDocument(text, uri);
    }

    public void HandleDidClose(string uri)
    {
        _openDocuments.Remove(uri);
    }

    public string? GetDocumentContent(string uri)
    {
        _openDocuments.TryGetValue(uri, out var content);
        return content;
    }
}


================================================
FILE: IIS.LanguageServer/IIS.LanguageServer.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net9.0-windows10.0.17763.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <SelfContained>true</SelfContained>
  </PropertyGroup>

  <ItemGroup>
    <ProjectReference Include="..\LanguageServer.Framework\LanguageServer.Framework\LanguageServer.Framework.csproj" />
    <ProjectReference Include="..\Microsoft.Web.Administration\Microsoft.Web.Administration.csproj" />
    <ProjectReference Include="..\Microsoft.Web.Configuration.AppHostFileProvider\Microsoft.Web.Configuration.AppHostFileProvider.csproj" />
  </ItemGroup>

</Project>


================================================
FILE: IIS.LanguageServer/Language/XmlPositionAnalyzer.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;

namespace IIS.LanguageServer.Language;

public record XmlContext(
    string ElementPath,
    string? CurrentElementName,
    string? CurrentAttributeName,
    string? CurrentAttributeValue,
    ContextType Type
);

public enum ContextType
{
    Unknown,
    ElementTag,
    AttributeName,
    AttributeValue,
    ElementContent
}

public class XmlPositionAnalyzer
{
    public static XmlContext GetContext(string documentText, int position)
    {
        if (position < 0 || position > documentText.Length)
        {
            return new XmlContext(string.Empty, null, null, null, ContextType.Unknown);
        }

        var upToPosition = documentText[..position];
        var elementPath = ExtractElementPath(upToPosition);
        var currentElementName = ExtractCurrentElementName(upToPosition);

        var attributeName = ExtractCurrentAttributeName(upToPosition);
        var attributeValue = ExtractCurrentAttributeValue(upToPosition);

        var contextType = DetermineContextType(upToPosition);

        return new XmlContext(elementPath, currentElementName, attributeName, attributeValue, contextType);
    }

    private static string ExtractElementPath(string text)
    {
        var tags = new List<string>();
        var pattern = @"<(/?)(\w+(?::\w+)?)";
        var matches = Regex.Matches(text, pattern);

        foreach (Match match in matches)
        {
            var isClosing = !string.IsNullOrEmpty(match.Groups[1].Value);
            var tagName = match.Groups[2].Value;

            if (isClosing)
            {
                if (tags.Count > 0 && tags[^1] == tagName)
                {
                    tags.RemoveAt(tags.Count - 1);
                }
            }
            else
            {
                tags.Add(tagName);
            }
        }

        return string.Join("/", tags);
    }

    private static string? ExtractCurrentElementName(string text)
    {
        var match = Regex.Match(text, @"<(\w+(?::\w+)?)(?:\s|>|/)");
        return match.Success ? match.Groups[1].Value : null;
    }

    private static string? ExtractCurrentAttributeName(string text)
    {
        var lastOpenTag = text.LastIndexOf('<');
        if (lastOpenTag == -1)
        {
            return null;
        }

        var tagContent = text[lastOpenTag..];

        // Check if we're inside an attribute
        if (tagContent.Contains('"') || tagContent.Contains('\''))
        {
            var match = Regex.Match(tagContent, @"(\w+)=""[^""]*$|(\w+)='[^']*$");
            if (match.Success)
            {
                return match.Groups[1].Value ?? match.Groups[2].Value;
            }
        }

        // Look for attribute name before cursor
        var attrMatch = Regex.Match(tagContent, @"(\w+)\s*=$");
        return attrMatch.Success ? attrMatch.Groups[1].Value : null;
    }

    private static string? ExtractCurrentAttributeValue(string text)
    {
        var lastOpenTag = text.LastIndexOf('<');
        if (lastOpenTag == -1)
        {
            return null;
        }

        var tagContent = text[lastOpenTag..];

        var match = Regex.Match(tagContent, @"""([^""]*)$|'([^']*)$");
        if (match.Success)
        {
            return match.Groups[1].Value ?? match.Groups[2].Value;
        }

        return null;
    }

    private static ContextType DetermineContextType(string text)
    {
        var lastOpenTag = text.LastIndexOf('<');
        if (lastOpenTag == -1)
        {
            return ContextType.ElementContent;
        }

        var lastClose = text.LastIndexOf('>');
        if (lastClose < lastOpenTag)
        {
            // We're inside a tag
            var tagContent = text[lastOpenTag..];

            if (tagContent.Contains('"') || tagContent.Contains('\''))
            {
                return ContextType.AttributeValue;
            }

            if (tagContent.Contains('='))
            {
                return ContextType.AttributeName;
            }

            return ContextType.AttributeName;
        }

        return ContextType.ElementContent;
    }
}


================================================
FILE: IIS.LanguageServer/Program.cs
================================================
using EmmyLua.LanguageServer.Framework.Server;
using IIS.LanguageServer.Handlers;
using IIS.LanguageServer.Schema;

try
{
    Console.Error.WriteLine("IIS Language Server initializing...");

    // Initialize schema cache
    var schemaCache = new SchemaCache();

    // Create handlers (for future use)
    var completionHandler = new CompletionHandler(schemaCache);
    var hoverHandler = new HoverHandler(schemaCache);
    var textSyncHandler = new TextDocumentSyncHandler(schemaCache);

    // Create language server
    var server = LanguageServer.From(Console.OpenStandardInput(), Console.OpenStandardOutput());

    // Register initialization callbacks
    server.OnInitialize((request, info) =>
    {
        info.Name = "IIS Configuration Language Server";
        info.Version = "1.0.0";
        return Task.CompletedTask;
    });

    server.OnInitialized(request =>
    {
        Console.Error.WriteLine("IIS Language Server initialized");
        return Task.CompletedTask;
    });

    Console.Error.WriteLine("IIS Language Server started");
    await server.Run();
}
catch (Exception ex)
{
    Console.Error.WriteLine($"LSP Server error: {ex}");
}


================================================
FILE: IIS.LanguageServer/Schema/SchemaCache.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;

namespace IIS.LanguageServer.Schema;

public class SchemaCache
{
    private readonly Dictionary<string, XElement> _schemas;

    public SchemaCache()
    {
        _schemas = SchemaLoader.LoadAllSchemas();
        Console.Error.WriteLine($"Loaded {_schemas.Count} schema definitions");
    }

    public XElement? GetSectionSchema(string sectionName)
    {
        _schemas.TryGetValue(sectionName, out var schema);
        return schema;
    }

    public List<string> GetAvailableSchemas()
    {
        return _schemas.Keys.ToList();
    }

    public List<string> GetChildElementNames(string elementPath)
    {
        var elements = new List<string>();
        var parts = elementPath.Split('/', StringSplitOptions.RemoveEmptyEntries);

        if (parts.Length == 0)
        {
            return elements;
        }

        var section = GetSectionSchema(parts[0]);
        if (section == null)
        {
            return elements;
        }

        var currentElement = section;
        for (int i = 1; i < parts.Length; i++)
        {
            var child = currentElement.Elements("element").FirstOrDefault(e => e.Attribute("name")?.Value == parts[i]);
            if (child == null)
            {
                return elements;
            }

            currentElement = child;
        }

        var childElements = currentElement.Elements("element")
            .Select(e => e.Attribute("name")?.Value)
            .Where(n => !string.IsNullOrEmpty(n))
            .Cast<string>()
            .ToList();

        return childElements;
    }

    public List<string> GetAttributeNames(string elementPath)
    {
        var attributes = new List<string>();
        var parts = elementPath.Split('/', StringSplitOptions.RemoveEmptyEntries);

        if (parts.Length == 0)
        {
            return attributes;
        }

        var section = GetSectionSchema(parts[0]);
        if (section == null)
        {
            return attributes;
        }

        var currentElement = section;
        for (int i = 1; i < parts.Length; i++)
        {
            var child = currentElement.Elements("element").FirstOrDefault(e => e.Attribute("name")?.Value == parts[i]);
            if (child == null)
            {
                return attributes;
            }

            currentElement = child;
        }

        var attrs = currentElement.Elements("attribute")
            .Select(a => a.Attribute("name")?.Value)
            .Where(n => !string.IsNullOrEmpty(n))
            .Cast<string>()
            .ToList();

        return attrs;
    }

    public string? GetAttributeType(string elementPath, string attributeName)
    {
        var parts = elementPath.Split('/', StringSplitOptions.RemoveEmptyEntries);
        if (parts.Length == 0)
        {
            return null;
        }

        var section = GetSectionSchema(parts[0]);
        if (section == null)
        {
            return null;
        }

        var currentElement = section;
        for (int i = 1; i < parts.Length; i++)
        {
            var child = currentElement.Elements("element").FirstOrDefault(e => e.Attribute("name")?.Value == parts[i]);
            if (child == null)
            {
                return null;
            }

            currentElement = child;
        }

        var attr = currentElement.Elements("attribute").FirstOrDefault(a => a.Attribute("name")?.Value == attributeName);
        return attr?.Attribute("type")?.Value;
    }
}


================================================
FILE: IIS.LanguageServer/Schema/SchemaLoader.cs
================================================
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Xml.Linq;

namespace IIS.LanguageServer.Schema;

public class SchemaLoader
{
    public static List<string> FindSchemaFiles()
    {
        var files = new List<string>();

        // Primary location: IIS Express
        var iisExpressPath = Path.Combine(
            Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles),
            "IIS Express",
            "config",
            "schema");

        if (Directory.Exists(iisExpressPath))
        {
            files.AddRange(Directory.GetFiles(iisExpressPath, "*_schema.xml"));
        }

        // Fallback 1: IIS Express x86
        var iisExpressX86Path = Path.Combine(
            Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86),
            "IIS Express",
            "config",
            "schema");

        if (Directory.Exists(iisExpressX86Path))
        {
            var x86Files = Directory.GetFiles(iisExpressX86Path, "*_schema.xml");
            files.AddRange(x86Files.Where(f => !files.Contains(f)));
        }

        // Fallback 2: Full IIS (System32)
        var iisPath = Path.Combine(
            Environment.GetFolderPath(Environment.SpecialFolder.System),
            "inetsrv",
            "config",
            "schema");

        if (Directory.Exists(iisPath))
        {
            var iisFiles = Directory.GetFiles(iisPath, "*_schema.xml");
            files.AddRange(iisFiles.Where(f => !files.Contains(f)));
        }

        return files;
    }

    public static Dictionary<string, XElement> LoadAllSchemas()
    {
        var schemas = new Dictionary<string, XElement>();
        var schemaFiles = FindSchemaFiles();

        foreach (var file in schemaFiles)
        {
            try
            {
                var doc = XDocument.Load(file);
                if (doc.Root != null)
                {
                    foreach (var node in doc.Root.Nodes())
                    {
                        if (node is XElement element && element.Name.LocalName == "sectionSchema")
                        {
                            var name = element.Attribute("name")?.Value;
                            if (!string.IsNullOrEmpty(name) && !schemas.ContainsKey(name))
                            {
                                schemas[name] = element;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine($"Failed to load schema file {file}: {ex.Message}");
            }
        }

        return schemas;
    }
}


================================================
FILE: JexusManager/BindingExtensions.cs
================================================
// Copyright (c) Lex Li. All rights reserved.
// 
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System.Globalization;
using System.Windows.Forms;

namespace Microsoft.Web.Administration
{
    public static class BindingExtensions
    {
        public static string ToShortString(this Binding binding)
        {
            if (binding.Protocol != "http" && binding.Protocol != "https")
            {
                return $"{binding.BindingInformation} ({binding.Protocol})";
            }

            var value = binding.BindingInformation;
            var last = value.LastIndexOf(':');
            string host = null;
            string address = null;
            string port = null;
            if (last > 0)
            {
                host = value.Substring(last + 1);
                var next = value.LastIndexOf(':', last - 1);
                port = value.Substring(next + 1, last - next - 1);
                if (next > -1)
                {
                    address = value.Substring(0, next);
                }
            }

            if (string.IsNullOrWhiteSpace(address))
            {
                address = "*";
            }

            return binding.EndPoint == null && string.IsNullOrWhiteSpace(port)
                ? $": ({binding.Protocol})"
                : string.IsNullOrEmpty(binding.Host)
                    ? $"{address}:{port} ({binding.Protocol})"
                    : $"{host} on {address}:{port} ({binding.Protocol})";
        }
#if !IIS
        public static ListViewItem ToListViewItem(this Binding binding)
        {
            string host = binding.Host.HostToDisplay();
            string port = binding.EndPoint?.Port.ToString(CultureInfo.InvariantCulture);
            string address = binding.EndPoint?.Address.AddressToDisplay();
            if (binding.EndPoint == null)
            {
                var value = binding.BindingInformation;
                var last = value.LastIndexOf(':');
                if (last > 0)
                {
                    host = value.Substring(last + 1);
                    var next = value.LastIndexOf(':', last - 1);
                    port = value.Substring(next + 1, last - next - 1);
                    if (next > -1)
                    {
                        address = value.Substring(0, next);
                    }
                }
            }

            return new ListViewItem(new[]
                {
                        binding.Protocol,
                        host,
                        port,
                        address,
                        binding.CanBrowse ? string.Empty : binding.BindingInformation
                })
            { Tag = binding };
        }
#endif
    }
}


================================================
FILE: JexusManager/Dialogs/CertificateErrorsDialog.Designer.cs
================================================
namespace JexusManager.Dialogs
{
    using System.ComponentModel;
    using System.Windows.Forms;

    partial class CertificateErrorsDialog
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.btnCancel = new System.Windows.Forms.Button();
            this.btnConnect = new System.Windows.Forms.Button();
            this.btnView = new System.Windows.Forms.Button();
            this.label1 = new System.Windows.Forms.Label();
            this.linkLabel1 = new System.Windows.Forms.LinkLabel();
            this.label2 = new System.Windows.Forms.Label();
            this.pictureBox1 = new System.Windows.Forms.PictureBox();
            ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
            this.SuspendLayout();
            // 
            // btnCancel
            // 
            this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
            this.btnCancel.Location = new System.Drawing.Point(252, 181);
            this.btnCancel.Name = "btnCancel";
            this.btnCancel.Size = new System.Drawing.Size(85, 23);
            this.btnCancel.TabIndex = 1;
            this.btnCancel.Text = "Cancel";
            this.btnCancel.UseVisualStyleBackColor = true;
            // 
            // btnConnect
            // 
            this.btnConnect.DialogResult = System.Windows.Forms.DialogResult.OK;
            this.btnConnect.Location = new System.Drawing.Point(161, 181);
            this.btnConnect.Name = "btnConnect";
            this.btnConnect.Size = new System.Drawing.Size(85, 23);
            this.btnConnect.TabIndex = 0;
            this.btnConnect.Text = "Connect";
            this.btnConnect.UseVisualStyleBackColor = true;
            // 
            // btnView
            // 
            this.btnView.Location = new System.Drawing.Point(12, 181);
            this.btnView.Name = "btnView";
            this.btnView.Size = new System.Drawing.Size(143, 23);
            this.btnView.TabIndex = 2;
            this.btnView.Text = "View Certificate";
            this.btnView.UseVisualStyleBackColor = true;
            // 
            // label1
            // 
            this.label1.AutoSize = true;
            this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
            this.label1.Location = new System.Drawing.Point(59, 19);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(278, 13);
            this.label1.TabIndex = 3;
            this.label1.Text = "This certificate was issued to a different server.";
            // 
            // linkLabel1
            // 
            this.linkLabel1.AutoSize = true;
            this.linkLabel1.Location = new System.Drawing.Point(59, 44);
            this.linkLabel1.Name = "linkLabel1";
            this.linkLabel1.Size = new System.Drawing.Size(136, 13);
            this.linkLabel1.TabIndex = 4;
            this.linkLabel1.TabStop = true;
            this.linkLabel1.Text = "What else might be wrong?";
            this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
            // 
            // label2
            // 
            this.label2.Location = new System.Drawing.Point(59, 70);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(278, 82);
            this.label2.TabIndex = 5;
            this.label2.Text = "Security certificate problems may indicate an attempt to fool you or steal data y" +
    "ou send to the server.\r\n\r\nIt is recommended that you not connect to this server." +
    "";
            // 
            // pictureBox1
            // 
            this.pictureBox1.Image = global::JexusManager.Main.Properties.Resources.warning_32;
            this.pictureBox1.Location = new System.Drawing.Point(12, 19);
            this.pictureBox1.Name = "pictureBox1";
            this.pictureBox1.Size = new System.Drawing.Size(32, 32);
            this.pictureBox1.TabIndex = 6;
            this.pictureBox1.TabStop = false;
            // 
            // CertificateErrorsDialog
            // 
            this.AcceptButton = this.btnConnect;
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.CancelButton = this.btnCancel;
            this.ClientSize = new System.Drawing.Size(349, 216);
            this.Controls.Add(this.pictureBox1);
            this.Controls.Add(this.label2);
            this.Controls.Add(this.linkLabel1);
            this.Controls.Add(this.label1);
            this.Controls.Add(this.btnView);
            this.Controls.Add(this.btnConnect);
            this.Controls.Add(this.btnCancel);
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
            this.HelpButton = true;
            this.MaximizeBox = false;
            this.MinimizeBox = false;
            this.Name = "CertificateErrorsDialog";
            this.ShowIcon = false;
            this.ShowInTaskbar = false;
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
            this.Text = "Server Certificate Alert";
            this.HelpButtonClicked += new System.ComponentModel.CancelEventHandler(this.CertificateErrorsDialog_HelpButtonClicked);
            ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        #endregion

        private Button btnCancel;
        private Button btnConnect;
        private Button btnView;
        private Label label1;
        private LinkLabel linkLabel1;
        private Label label2;
        private PictureBox pictureBox1;
    }
}


================================================
FILE: JexusManager/Dialogs/CertificateErrorsDialog.cs
================================================
// Copyright (c) Lex Li. All rights reserved.
// 
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

namespace JexusManager.Dialogs
{
    using System;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.IO;
    using System.Security.Cryptography.X509Certificates;
    using System.Windows.Forms;

    using Microsoft.Web.Administration;
    using System.Reactive.Disposables;
    using System.Reactive.Linq;

    public partial class CertificateErrorsDialog : Form
    {
        public CertificateErrorsDialog(X509Certificate certificate)
        {
            InitializeComponent();
            var container = new CompositeDisposable();
            FormClosed += (sender, args) => container.Dispose();

            container.Add(
                Observable.FromEventPattern<EventArgs>(btnView, "Click")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    DialogHelper.DisplayCertificate((X509Certificate2)certificate, Handle);
                }));
        }

        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            DialogHelper.ProcessStart("http://go.microsoft.com/fwlink/?LinkId=210463#CertificateNameMismatch");
        }

        private void CertificateErrorsDialog_HelpButtonClicked(object sender, CancelEventArgs e)
        {
            DialogHelper.ProcessStart("http://go.microsoft.com/fwlink/?LinkId=210463#CertificateVerificationHelp");
        }
    }
}


================================================
FILE: JexusManager/Dialogs/CertificateErrorsDialog.resx
================================================
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>

================================================
FILE: JexusManager/Dialogs/ConnectAsDialog.Designer.cs
================================================
namespace JexusManager.Dialogs
{
    using System.ComponentModel;
    using System.Windows.Forms;

    partial class ConnectAsDialog
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.label1 = new System.Windows.Forms.Label();
            this.btnOK = new System.Windows.Forms.Button();
            this.btnCancel = new System.Windows.Forms.Button();
            this.rbSpecific = new System.Windows.Forms.RadioButton();
            this.rbPassThrough = new System.Windows.Forms.RadioButton();
            this.txtName = new System.Windows.Forms.TextBox();
            this.btnSet = new System.Windows.Forms.Button();
            this.SuspendLayout();
            // 
            // label1
            // 
            this.label1.AutoSize = true;
            this.label1.Location = new System.Drawing.Point(5, 13);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(86, 13);
            this.label1.TabIndex = 0;
            this.label1.Text = "Path credentials:";
            // 
            // btnOK
            // 
            this.btnOK.Location = new System.Drawing.Point(215, 151);
            this.btnOK.Name = "btnOK";
            this.btnOK.Size = new System.Drawing.Size(90, 23);
            this.btnOK.TabIndex = 4;
            this.btnOK.Text = "OK";
            this.btnOK.UseVisualStyleBackColor = true;
            // 
            // btnCancel
            // 
            this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
            this.btnCancel.Location = new System.Drawing.Point(311, 151);
            this.btnCancel.Name = "btnCancel";
            this.btnCancel.Size = new System.Drawing.Size(95, 23);
            this.btnCancel.TabIndex = 5;
            this.btnCancel.Text = "Cancel";
            this.btnCancel.UseVisualStyleBackColor = true;
            // 
            // rbSpecific
            // 
            this.rbSpecific.AutoSize = true;
            this.rbSpecific.Location = new System.Drawing.Point(5, 40);
            this.rbSpecific.Name = "rbSpecific";
            this.rbSpecific.Size = new System.Drawing.Size(86, 17);
            this.rbSpecific.TabIndex = 6;
            this.rbSpecific.TabStop = true;
            this.rbSpecific.Text = "Special user:";
            this.rbSpecific.UseVisualStyleBackColor = true;
            // 
            // rbPassThrough
            // 
            this.rbPassThrough.AutoSize = true;
            this.rbPassThrough.Location = new System.Drawing.Point(5, 108);
            this.rbPassThrough.Name = "rbPassThrough";
            this.rbPassThrough.Size = new System.Drawing.Size(240, 17);
            this.rbPassThrough.TabIndex = 7;
            this.rbPassThrough.TabStop = true;
            this.rbPassThrough.Text = "Application user (pass-through authentication)";
            this.rbPassThrough.UseVisualStyleBackColor = true;
            // 
            // txtName
            // 
            this.txtName.Location = new System.Drawing.Point(21, 73);
            this.txtName.Name = "txtName";
            this.txtName.ReadOnly = true;
            this.txtName.Size = new System.Drawing.Size(284, 20);
            this.txtName.TabIndex = 8;
            // 
            // btnSet
            // 
            this.btnSet.Location = new System.Drawing.Point(311, 71);
            this.btnSet.Name = "btnSet";
            this.btnSet.Size = new System.Drawing.Size(95, 23);
            this.btnSet.TabIndex = 9;
            this.btnSet.Text = "Set...";
            this.btnSet.UseVisualStyleBackColor = true;
            // 
            // ConnectAsDialog
            // 
            this.AcceptButton = this.btnOK;
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.CancelButton = this.btnCancel;
            this.ClientSize = new System.Drawing.Size(418, 186);
            this.Controls.Add(this.btnSet);
            this.Controls.Add(this.txtName);
            this.Controls.Add(this.rbPassThrough);
            this.Controls.Add(this.rbSpecific);
            this.Controls.Add(this.btnCancel);
            this.Controls.Add(this.btnOK);
            this.Controls.Add(this.label1);
            this.Name = "ConnectAsDialog";
            this.Text = "Connect As";
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        #endregion

        private Label label1;
        private Button btnOK;
        private Button btnCancel;
        private RadioButton rbSpecific;
        private RadioButton rbPassThrough;
        private TextBox txtName;
        private Button btnSet;
    }
}


================================================
FILE: JexusManager/Dialogs/ConnectAsDialog.cs
================================================
// Copyright (c) Lex Li. All rights reserved.
// 
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

namespace JexusManager.Dialogs
{
    using System;
    using System.Windows.Forms;

    using System.Reactive.Disposables;
    using System.Reactive.Linq;
    using Microsoft.Web.Management.Client.Win32;

    public partial class ConnectAsDialog : DialogForm
    {
#if DESIGN
        public ConnectAsDialog()
        {
            InitializeComponent();
        }
#endif
        public ConnectAsDialog(IServiceProvider serviceProvider, ConnectAsItem item)
            : base(serviceProvider)
        {
            InitializeComponent();

            var container = new CompositeDisposable();
            FormClosed += (sender, args) => container.Dispose();

            container.Add(
                Observable.FromEventPattern<EventArgs>(txtName, "TextChanged")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    rbPassThrough.Checked = txtName.Text.Length == 0;
                    RefreshButton();
                }));

            container.Add(
                Observable.FromEventPattern<EventArgs>(btnSet, "Click")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    using (var dialog = new CredentialsDialog(ServiceProvider, item.UserName))
                    {
                        if (dialog.ShowDialog() != DialogResult.OK)
                        {
                            return;
                        }

                        txtName.Text = dialog.UserName;
                        item.UserName = dialog.UserName;
                        item.Password = dialog.Password;
                    }
                    RefreshButton();
                }));

            container.Add(
                Observable.FromEventPattern<EventArgs>(rbPassThrough, "CheckedChanged")
                .Merge(Observable.FromEventPattern<EventArgs>(rbSpecific, "CheckedChanged"))
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    txtName.Enabled = btnSet.Enabled = rbSpecific.Checked;
                    RefreshButton();
                }));

            container.Add(
                Observable.FromEventPattern<EventArgs>(this, "HelpButtonClicked")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    DialogHelper.ProcessStart("https://go.microsoft.com/fwlink/?LinkId=210531#Edit_Site");
                }));

            container.Add(
                Observable.FromEventPattern<EventArgs>(btnOK, "Click")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    DialogResult = DialogResult.OK;
                    if (rbPassThrough.Checked)
                    {
                        item.UserName = string.Empty;
                        item.Password = string.Empty;
                    }
                }));

            txtName.Text = "test";
            txtName.Text = item.UserName;
            var passThrough = string.IsNullOrEmpty(item.UserName);
            rbPassThrough.Checked = passThrough;
            rbSpecific.Checked = !passThrough;
        }

        private void RefreshButton()
        {
            btnOK.Enabled = rbPassThrough.Checked || !string.IsNullOrEmpty(txtName.Text);
        }
    }
}


================================================
FILE: JexusManager/Dialogs/ConnectAsDialog.resx
================================================
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>

================================================
FILE: JexusManager/Dialogs/ConnectAsItem.cs
================================================
using JexusManager.Features;
using Microsoft.Web.Administration;

namespace JexusManager.Dialogs
{
    public class ConnectAsItem : IItem<ConnectAsItem>
    {
        public string UserName { get; set; }
        public string Password { get; set; }
        public ConfigurationElement Element
        {
            get { return _virtualDirectory; }
            set { _virtualDirectory = (VirtualDirectory)value; }
        }

        public string Flag { get; set; }

        private VirtualDirectory _virtualDirectory;

        public ConnectAsItem(VirtualDirectory virtualDirectory)
        {
            UserName = virtualDirectory?.UserName ?? string.Empty;
            Password = virtualDirectory?.Password ?? string.Empty;
            _virtualDirectory = virtualDirectory;
        }

        public void Apply()
        {
            if (Element == null)
            {
                return;
            }

            _virtualDirectory.UserName = UserName;
            _virtualDirectory.Password = Password;
        }

        public bool Match(ConnectAsItem other)
        {
            return other != null && other.UserName == UserName && other.Password == Password;
        }

        public bool Equals(ConnectAsItem other)
        {
            return Match(other);
        }
    }
}


================================================
FILE: JexusManager/Dialogs/CredentialsDialog.Designer.cs
================================================
namespace JexusManager.Dialogs
{
    using System.ComponentModel;
    using System.Windows.Forms;

    partial class CredentialsDialog
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.btnCancel = new System.Windows.Forms.Button();
            this.btnOK = new System.Windows.Forms.Button();
            this.label1 = new System.Windows.Forms.Label();
            this.txtName = new System.Windows.Forms.TextBox();
            this.label2 = new System.Windows.Forms.Label();
            this.txtPassword = new System.Windows.Forms.TextBox();
            this.label3 = new System.Windows.Forms.Label();
            this.txtConfirm = new System.Windows.Forms.TextBox();
            this.SuspendLayout();
            // 
            // btnCancel
            // 
            this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
            this.btnCancel.Location = new System.Drawing.Point(207, 176);
            this.btnCancel.Name = "btnCancel";
            this.btnCancel.Size = new System.Drawing.Size(95, 23);
            this.btnCancel.TabIndex = 0;
            this.btnCancel.Text = "Cancel";
            this.btnCancel.UseVisualStyleBackColor = true;
            // 
            // btnOK
            // 
            this.btnOK.Location = new System.Drawing.Point(111, 176);
            this.btnOK.Name = "btnOK";
            this.btnOK.Size = new System.Drawing.Size(90, 23);
            this.btnOK.TabIndex = 1;
            this.btnOK.Text = "OK";
            this.btnOK.UseVisualStyleBackColor = true;
            // 
            // label1
            // 
            this.label1.AutoSize = true;
            this.label1.Location = new System.Drawing.Point(13, 13);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(61, 13);
            this.label1.TabIndex = 2;
            this.label1.Text = "User name:";
            // 
            // txtName
            // 
            this.txtName.Location = new System.Drawing.Point(16, 29);
            this.txtName.Name = "txtName";
            this.txtName.Size = new System.Drawing.Size(286, 20);
            this.txtName.TabIndex = 3;
            // 
            // label2
            // 
            this.label2.AutoSize = true;
            this.label2.Location = new System.Drawing.Point(13, 67);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(56, 13);
            this.label2.TabIndex = 4;
            this.label2.Text = "Password:";
            // 
            // txtPassword
            // 
            this.txtPassword.Location = new System.Drawing.Point(16, 83);
            this.txtPassword.Name = "txtPassword";
            this.txtPassword.PasswordChar = '*';
            this.txtPassword.Size = new System.Drawing.Size(286, 20);
            this.txtPassword.TabIndex = 5;
            // 
            // label3
            // 
            this.label3.AutoSize = true;
            this.label3.Location = new System.Drawing.Point(13, 122);
            this.label3.Name = "label3";
            this.label3.Size = new System.Drawing.Size(93, 13);
            this.label3.TabIndex = 6;
            this.label3.Text = "Confirm password:";
            // 
            // txtConfirm
            // 
            this.txtConfirm.Location = new System.Drawing.Point(16, 138);
            this.txtConfirm.Name = "txtConfirm";
            this.txtConfirm.PasswordChar = '*';
            this.txtConfirm.Size = new System.Drawing.Size(286, 20);
            this.txtConfirm.TabIndex = 7;
            // 
            // CredentialsDialog
            // 
            this.AcceptButton = this.btnOK;
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.CancelButton = this.btnCancel;
            this.ClientSize = new System.Drawing.Size(314, 211);
            this.Controls.Add(this.txtConfirm);
            this.Controls.Add(this.label3);
            this.Controls.Add(this.txtPassword);
            this.Controls.Add(this.label2);
            this.Controls.Add(this.txtName);
            this.Controls.Add(this.label1);
            this.Controls.Add(this.btnOK);
            this.Controls.Add(this.btnCancel);
            this.Name = "CredentialsDialog";
            this.Text = "Set Credentials";
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        #endregion

        private Button btnCancel;
        private Button btnOK;
        private Label label1;
        private TextBox txtName;
        private Label label2;
        private TextBox txtPassword;
        private Label label3;
        private TextBox txtConfirm;
    }
}


================================================
FILE: JexusManager/Dialogs/CredentialsDialog.cs
================================================
// Copyright (c) Lex Li. All rights reserved.
// 
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

namespace JexusManager.Dialogs
{
    using System;
    using System.ComponentModel;
    using System.Windows.Forms;

    using Microsoft.Web.Management.Client.Win32;
    using System.Reactive.Linq;
    using System.Reactive.Disposables;

    public partial class CredentialsDialog : DialogForm
    {
        public CredentialsDialog(IServiceProvider serviceProvider, string name)
            : base(serviceProvider)
        {
            InitializeComponent();
            btnOK.Enabled = false;
            txtName.Text = name;

            var container = new CompositeDisposable();
            FormClosed += (sender, args) => container.Dispose();

            container.Add(
                Observable.FromEventPattern<EventArgs>(txtName, "TextChanged")
                .Merge(Observable.FromEventPattern<EventArgs>(txtPassword, "TextChanged"))
                .Merge(Observable.FromEventPattern<EventArgs>(txtConfirm, "TextChanged"))
                .Sample(TimeSpan.FromSeconds(0.5))
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    btnOK.Enabled = !string.IsNullOrWhiteSpace(txtName.Text)
                    && !string.IsNullOrWhiteSpace(txtPassword.Text)
                    && txtConfirm.Text == txtPassword.Text;
                }));

            container.Add(
                Observable.FromEventPattern<EventArgs>(btnOK, "Click")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    UserName = txtName.Text;
                    Password = txtPassword.Text;
                    // TODO: verify user
                    // DialogResult = DialogResult.Cancel;
                    DialogResult = DialogResult.OK;
                }));

            container.Add(
                Observable.FromEventPattern<CancelEventArgs>(this, "HelpButtonClicked")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(EnvironmentVariableTarget =>
                {
                    DialogHelper.ProcessStart("https://go.microsoft.com/fwlink/?LinkId=210531#Edit_Site");
                }));
        }

        [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public string Password { get; set; }

        [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public string UserName { get; set; }
    }
}


================================================
FILE: JexusManager/Dialogs/CredentialsDialog.resx
================================================
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>

================================================
FILE: JexusManager/Dialogs/EditSiteDialog.Designer.cs
================================================
namespace JexusManager.Dialogs
{
    using System.ComponentModel;
    using System.Windows.Forms;

    partial class EditSiteDialog
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.btnCancel = new System.Windows.Forms.Button();
            this.btnOK = new System.Windows.Forms.Button();
            this.btnBrowse = new System.Windows.Forms.Button();
            this.btnTest = new System.Windows.Forms.Button();
            this.btnConnect = new System.Windows.Forms.Button();
            this.txtConnectAs = new System.Windows.Forms.Label();
            this.txtPhysicalPath = new System.Windows.Forms.TextBox();
            this.label6 = new System.Windows.Forms.Label();
            this.btnSelect = new System.Windows.Forms.Button();
            this.txtPool = new System.Windows.Forms.TextBox();
            this.label5 = new System.Windows.Forms.Label();
            this.txtAlias = new System.Windows.Forms.TextBox();
            this.label4 = new System.Windows.Forms.Label();
            this.label2 = new System.Windows.Forms.Label();
            this.SuspendLayout();
            // 
            // btnCancel
            // 
            this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
            this.btnCancel.Location = new System.Drawing.Point(407, 218);
            this.btnCancel.Name = "btnCancel";
            this.btnCancel.Size = new System.Drawing.Size(95, 23);
            this.btnCancel.TabIndex = 29;
            this.btnCancel.Text = "Cancel";
            this.btnCancel.UseVisualStyleBackColor = true;
            // 
            // btnOK
            // 
            this.btnOK.Enabled = false;
            this.btnOK.Location = new System.Drawing.Point(306, 218);
            this.btnOK.Name = "btnOK";
            this.btnOK.Size = new System.Drawing.Size(95, 23);
            this.btnOK.TabIndex = 28;
            this.btnOK.Text = "OK";
            this.btnOK.UseVisualStyleBackColor = true;
            // 
            // btnBrowse
            // 
            this.btnBrowse.Location = new System.Drawing.Point(345, 96);
            this.btnBrowse.Name = "btnBrowse";
            this.btnBrowse.Size = new System.Drawing.Size(33, 23);
            this.btnBrowse.TabIndex = 27;
            this.btnBrowse.Text = "...";
            this.btnBrowse.UseVisualStyleBackColor = true;
            this.btnBrowse.Visible = false;
            // 
            // btnTest
            // 
            this.btnTest.Enabled = false;
            this.btnTest.Location = new System.Drawing.Point(115, 153);
            this.btnTest.Name = "btnTest";
            this.btnTest.Size = new System.Drawing.Size(94, 23);
            this.btnTest.TabIndex = 26;
            this.btnTest.Text = "Test Settings...";
            this.btnTest.UseVisualStyleBackColor = true;
            // 
            // btnConnect
            // 
            this.btnConnect.Location = new System.Drawing.Point(15, 153);
            this.btnConnect.Name = "btnConnect";
            this.btnConnect.Size = new System.Drawing.Size(94, 23);
            this.btnConnect.TabIndex = 25;
            this.btnConnect.Text = "Connect as...";
            this.btnConnect.UseVisualStyleBackColor = true;
            // 
            // txtConnectAs
            // 
            this.txtConnectAs.AutoSize = true;
            this.txtConnectAs.Location = new System.Drawing.Point(12, 121);
            this.txtConnectAs.Name = "txtConnectAs";
            this.txtConnectAs.Size = new System.Drawing.Size(139, 13);
            this.txtConnectAs.TabIndex = 24;
            this.txtConnectAs.Text = "Pass-through authentication";
            // 
            // txtPhysicalPath
            // 
            this.txtPhysicalPath.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
            this.txtPhysicalPath.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.FileSystemDirectories;
            this.txtPhysicalPath.Location = new System.Drawing.Point(15, 98);
            this.txtPhysicalPath.Name = "txtPhysicalPath";
            this.txtPhysicalPath.Size = new System.Drawing.Size(324, 20);
            this.txtPhysicalPath.TabIndex = 23;
            // 
            // label6
            // 
            this.label6.AutoSize = true;
            this.label6.Location = new System.Drawing.Point(12, 82);
            this.label6.Name = "label6";
            this.label6.Size = new System.Drawing.Size(73, 13);
            this.label6.TabIndex = 22;
            this.label6.Text = "Physical path:";
            // 
            // btnSelect
            // 
            this.btnSelect.Enabled = false;
            this.btnSelect.Location = new System.Drawing.Point(396, 27);
            this.btnSelect.Name = "btnSelect";
            this.btnSelect.Size = new System.Drawing.Size(95, 23);
            this.btnSelect.TabIndex = 21;
            this.btnSelect.Text = "Select...";
            this.btnSelect.UseVisualStyleBackColor = true;
            // 
            // txtPool
            // 
            this.txtPool.Location = new System.Drawing.Point(206, 29);
            this.txtPool.Name = "txtPool";
            this.txtPool.ReadOnly = true;
            this.txtPool.Size = new System.Drawing.Size(185, 20);
            this.txtPool.TabIndex = 20;
            this.txtPool.Text = "DefaultAppPool";
            // 
            // label5
            // 
            this.label5.AutoSize = true;
            this.label5.Location = new System.Drawing.Point(12, 52);
            this.label5.Name = "label5";
            this.label5.Size = new System.Drawing.Size(82, 13);
            this.label5.TabIndex = 19;
            this.label5.Text = "Examples: sales";
            // 
            // txtAlias
            // 
            this.txtAlias.Location = new System.Drawing.Point(15, 29);
            this.txtAlias.Name = "txtAlias";
            this.txtAlias.ReadOnly = true;
            this.txtAlias.Size = new System.Drawing.Size(185, 20);
            this.txtAlias.TabIndex = 18;
            // 
            // label4
            // 
            this.label4.AutoSize = true;
            this.label4.Location = new System.Drawing.Point(203, 9);
            this.label4.Name = "label4";
            this.label4.Size = new System.Drawing.Size(86, 13);
            this.label4.TabIndex = 17;
            this.label4.Text = "Application Pool:";
            // 
            // label2
            // 
            this.label2.AutoSize = true;
            this.label2.Location = new System.Drawing.Point(12, 9);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(57, 13);
            this.label2.TabIndex = 16;
            this.label2.Text = "Site name:";
            // 
            // EditSiteDialog
            // 
            this.AcceptButton = this.btnOK;
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.CancelButton = this.btnCancel;
            this.ClientSize = new System.Drawing.Size(514, 251);
            this.Controls.Add(this.btnCancel);
            this.Controls.Add(this.btnOK);
            this.Controls.Add(this.btnBrowse);
            this.Controls.Add(this.btnTest);
            this.Controls.Add(this.btnConnect);
            this.Controls.Add(this.txtConnectAs);
            this.Controls.Add(this.txtPhysicalPath);
            this.Controls.Add(this.label6);
            this.Controls.Add(this.btnSelect);
            this.Controls.Add(this.txtPool);
            this.Controls.Add(this.label5);
            this.Controls.Add(this.txtAlias);
            this.Controls.Add(this.label4);
            this.Controls.Add(this.label2);
            this.Name = "EditSiteDialog";
            this.Text = "Edit Site";
            this.HelpButtonClicked += new System.ComponentModel.CancelEventHandler(this.EditSiteDialog_HelpButtonClicked);
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        #endregion

        private Button btnCancel;
        private Button btnOK;
        private Button btnBrowse;
        private Button btnTest;
        private Button btnConnect;
        private Label txtConnectAs;
        private TextBox txtPhysicalPath;
        private Label label6;
        private Button btnSelect;
        private TextBox txtPool;
        private Label label5;
        private TextBox txtAlias;
        private Label label4;
        private Label label2;
    }
}

================================================
FILE: JexusManager/Dialogs/EditSiteDialog.cs
================================================
// Copyright (c) Lex Li. All rights reserved.
// 
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

namespace JexusManager.Dialogs
{
    using System;
    using System.ComponentModel;
    using System.Windows.Forms;

    using Microsoft.Web.Administration;
    using Microsoft.Web.Management.Client.Win32;

    using Application = Microsoft.Web.Administration.Application;
    using System.Reactive.Disposables;
    using System.Reactive.Linq;

    public partial class EditSiteDialog : DialogForm
    {
        private readonly Application _application;

        public EditSiteDialog(IServiceProvider serviceProvider, Application application)
            : base(serviceProvider)
        {
            InitializeComponent();
            _application = application;
            txtPool.Text = application.ApplicationPoolName;
            txtAlias.Text = application.Site.Name;
            txtPhysicalPath.Text = application.PhysicalPath;
            btnBrowse.Visible = application.Server.IsLocalhost;
            btnSelect.Enabled = application.Server.Mode != WorkingMode.Jexus;
            RefreshButton();

            var container = new CompositeDisposable();
            FormClosed += (sender, args) => container.Dispose();

            container.Add(
                Observable.FromEventPattern<EventArgs>(btnOK, "Click")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    if (!_application.Server.Verify(txtPhysicalPath.Text, _application.GetActualExecutable()))
                    {
                        MessageBox.Show("The specified directory does not exist on the server.", Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        return;
                    }

                    _application.PhysicalPath = txtPhysicalPath.Text;
                    _application.ApplicationPoolName = txtPool.Text;
                    _application.Server.CommitChanges();
                    DialogResult = DialogResult.OK;
                }));

            container.Add(
                Observable.FromEventPattern<EventArgs>(txtPhysicalPath, "TextChanged")
                .Merge(Observable.FromEventPattern<EventArgs>(txtPool, "TextChanged"))
                .Sample(TimeSpan.FromSeconds(0.5))
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    RefreshButton();
                }));

            container.Add(
                Observable.FromEventPattern<EventArgs>(btnBrowse, "Click")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    DialogHelper.ShowBrowseDialog(txtPhysicalPath, _application.GetActualExecutable());
                }));

            container.Add(
                Observable.FromEventPattern<EventArgs>(btnSelect, "Click")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    using var dialog = new SelectPoolDialog(txtPool.Text, _application.Server);
                    if (dialog.ShowDialog() != DialogResult.OK)
                    {
                        return;
                    }

                    txtPool.Text = dialog.Selected.Name;
                }));

            container.Add(
                Observable.FromEventPattern<EventArgs>(btnConnect, "Click")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    var item = new ConnectAsItem(_application.VirtualDirectories[0]);
                    using (var dialog = new ConnectAsDialog(ServiceProvider, item))
                    {
                        if (dialog.ShowDialog() != DialogResult.OK)
                        {
                            return;
                        }
                    }

                    item.Apply();
                    txtConnectAs.Text = string.IsNullOrEmpty(application.VirtualDirectories[0].UserName)
                        ? "Pass-through authentication"
                        : $"connect as '{application.VirtualDirectories[0].UserName}'";
                    RefreshButton();
                }));

            txtConnectAs.Text = string.IsNullOrEmpty(application.VirtualDirectories[0].UserName)
                ? "Pass-through authentication"
                : $"connect as '{application.VirtualDirectories[0].UserName}'";
        }

        private void RefreshButton()
        {
            btnOK.Enabled = !string.IsNullOrWhiteSpace(txtPhysicalPath.Text);
        }

        private void EditSiteDialog_HelpButtonClicked(object sender, CancelEventArgs e)
        {
            DialogHelper.ProcessStart("http://go.microsoft.com/fwlink/?LinkId=210531#Edit_Site");
        }
    }
}


================================================
FILE: JexusManager/Dialogs/EditSiteDialog.resx
================================================
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>

================================================
FILE: JexusManager/Dialogs/ExceptionDialog.Designer.cs
================================================
namespace JexusManager.Dialogs
{
    using System.ComponentModel;

    partial class ExceptionDialog
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.btnReport = new System.Windows.Forms.Button();
            this.btnCopy = new System.Windows.Forms.Button();
            this.txtInfo = new System.Windows.Forms.TextBox();
            this.txtStep = new System.Windows.Forms.Label();
            this.SuspendLayout();
            // 
            // btnReport
            // 
            this.btnReport.Location = new System.Drawing.Point(265, 253);
            this.btnReport.Name = "btnReport";
            this.btnReport.Size = new System.Drawing.Size(100, 23);
            this.btnReport.TabIndex = 7;
            this.btnReport.Text = "Report to GitHub";
            this.btnReport.UseVisualStyleBackColor = true;
            this.btnReport.Click += new System.EventHandler(this.btnReport_Click);
            // 
            // btnCopy
            // 
            this.btnCopy.Location = new System.Drawing.Point(159, 253);
            this.btnCopy.Name = "btnCopy";
            this.btnCopy.Size = new System.Drawing.Size(100, 23);
            this.btnCopy.TabIndex = 6;
            this.btnCopy.Text = "Copy to Clipboard";
            this.btnCopy.UseVisualStyleBackColor = true;
            this.btnCopy.Click += new System.EventHandler(this.btnCopy_Click);
            // 
            // txtInfo
            // 
            this.txtInfo.Location = new System.Drawing.Point(12, 49);
            this.txtInfo.Multiline = true;
            this.txtInfo.Name = "txtInfo";
            this.txtInfo.ScrollBars = System.Windows.Forms.ScrollBars.Both;
            this.txtInfo.Size = new System.Drawing.Size(353, 198);
            this.txtInfo.TabIndex = 5;
            // 
            // txtStep
            // 
            this.txtStep.Location = new System.Drawing.Point(12, 12);
            this.txtStep.Name = "txtStep";
            this.txtStep.Size = new System.Drawing.Size(353, 46);
            this.txtStep.TabIndex = 4;
            this.txtStep.Text = "An unhandled exception is detected. Please copy the information to clipboard and " +
    "then report to GitHub.";
            // 
            // ExceptionDialog
            // 
            this.AcceptButton = this.btnReport;
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(377, 288);
            this.Controls.Add(this.btnReport);
            this.Controls.Add(this.btnCopy);
            this.Controls.Add(this.txtInfo);
            this.Controls.Add(this.txtStep);
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
            this.MaximizeBox = false;
            this.MinimizeBox = false;
            this.Name = "ExceptionDialog";
            this.ShowIcon = false;
            this.ShowInTaskbar = false;
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
            this.Text = "Unhandled Exception";
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        #endregion

        private System.Windows.Forms.Button btnReport;
        private System.Windows.Forms.Button btnCopy;
        private System.Windows.Forms.TextBox txtInfo;
        private System.Windows.Forms.Label txtStep;
    }
}


================================================
FILE: JexusManager/Dialogs/ExceptionDialog.cs
================================================
// Copyright (c) Lex Li. All rights reserved.
// 
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

namespace JexusManager.Dialogs
{
    using System;
    using System.Windows.Forms;

    public partial class ExceptionDialog : Form
    {
        private ExceptionDialog()
        {
            InitializeComponent();
        }

        public static void Report(string userName, string exception)
        {
            using var dialog = new ExceptionDialog();
            dialog.txtInfo.Text = $"{userName}{Environment.NewLine}{Environment.NewLine}{exception}";
            dialog.ShowDialog();
        }

        private void btnReport_Click(object sender, EventArgs e)
        {
            DialogHelper.ProcessStart("https://github.com/jexuswebserver/JexusManager/issues/new");
        }

        private void btnCopy_Click(object sender, EventArgs e)
        {
            Clipboard.SetText(txtInfo.Text);
            MessageBox.Show("Copied");
        }
    }
}


================================================
FILE: JexusManager/Dialogs/ExceptionDialog.resx
================================================
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>

================================================
FILE: JexusManager/Dialogs/NewApplicationDialog.Designer.cs
================================================
namespace JexusManager.Dialogs
{
    using System.ComponentModel;
    using System.Windows.Forms;

    sealed partial class NewApplicationDialog
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.groupBox1 = new System.Windows.Forms.GroupBox();
            this.txtPath = new System.Windows.Forms.Label();
            this.label3 = new System.Windows.Forms.Label();
            this.txtSite = new System.Windows.Forms.Label();
            this.label1 = new System.Windows.Forms.Label();
            this.label2 = new System.Windows.Forms.Label();
            this.label4 = new System.Windows.Forms.Label();
            this.txtAlias = new System.Windows.Forms.TextBox();
            this.label5 = new System.Windows.Forms.Label();
            this.txtPool = new System.Windows.Forms.TextBox();
            this.btnSelect = new System.Windows.Forms.Button();
            this.label6 = new System.Windows.Forms.Label();
            this.txtPhysicalPath = new System.Windows.Forms.TextBox();
            this.txtConnectAs = new System.Windows.Forms.Label();
            this.btnConnect = new System.Windows.Forms.Button();
            this.btnTest = new System.Windows.Forms.Button();
            this.cbPreload = new System.Windows.Forms.CheckBox();
            this.btnBrowse = new System.Windows.Forms.Button();
            this.btnOK = new System.Windows.Forms.Button();
            this.btnCancel = new System.Windows.Forms.Button();
            this.groupBox1.SuspendLayout();
            this.SuspendLayout();
            // 
            // groupBox1
            // 
            this.groupBox1.Controls.Add(this.txtPath);
            this.groupBox1.Controls.Add(this.label3);
            this.groupBox1.Controls.Add(this.txtSite);
            this.groupBox1.Controls.Add(this.label1);
            this.groupBox1.Location = new System.Drawing.Point(12, 12);
            this.groupBox1.Name = "groupBox1";
            this.groupBox1.Size = new System.Drawing.Size(489, 78);
            this.groupBox1.TabIndex = 0;
            this.groupBox1.TabStop = false;
            // 
            // txtPath
            // 
            this.txtPath.AutoSize = true;
            this.txtPath.Location = new System.Drawing.Point(96, 49);
            this.txtPath.Name = "txtPath";
            this.txtPath.Size = new System.Drawing.Size(0, 13);
            this.txtPath.TabIndex = 3;
            // 
            // label3
            // 
            this.label3.AutoSize = true;
            this.label3.Location = new System.Drawing.Point(20, 49);
            this.label3.Name = "label3";
            this.label3.Size = new System.Drawing.Size(32, 13);
            this.label3.TabIndex = 2;
            this.label3.Text = "Path:";
            // 
            // txtSite
            // 
            this.txtSite.AutoSize = true;
            this.txtSite.Location = new System.Drawing.Point(96, 20);
            this.txtSite.Name = "txtSite";
            this.txtSite.Size = new System.Drawing.Size(0, 13);
            this.txtSite.TabIndex = 1;
            // 
            // label1
            // 
            this.label1.AutoSize = true;
            this.label1.Location = new System.Drawing.Point(20, 20);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(57, 13);
            this.label1.TabIndex = 0;
            this.label1.Text = "Site name:";
            // 
            // label2
            // 
            this.label2.AutoSize = true;
            this.label2.Location = new System.Drawing.Point(12, 107);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(32, 13);
            this.label2.TabIndex = 1;
            this.label2.Text = "Alias:";
            // 
            // label4
            // 
            this.label4.AutoSize = true;
            this.label4.Location = new System.Drawing.Point(203, 107);
            this.label4.Name = "label4";
            this.label4.Size = new System.Drawing.Size(86, 13);
            this.label4.TabIndex = 2;
            this.label4.Text = "Application Pool:";
            // 
            // txtAlias
            // 
            this.txtAlias.Location = new System.Drawing.Point(15, 127);
            this.txtAlias.Name = "txtAlias";
            this.txtAlias.Size = new System.Drawing.Size(185, 20);
            this.txtAlias.TabIndex = 3;
            // 
            // label5
            // 
            this.label5.AutoSize = true;
            this.label5.Location = new System.Drawing.Point(12, 150);
            this.label5.Name = "label5";
            this.label5.Size = new System.Drawing.Size(82, 13);
            this.label5.TabIndex = 4;
            this.label5.Text = "Examples: sales";
            // 
            // txtPool
            // 
            this.txtPool.Location = new System.Drawing.Point(206, 127);
            this.txtPool.Name = "txtPool";
            this.txtPool.ReadOnly = true;
            this.txtPool.Size = new System.Drawing.Size(185, 20);
            this.txtPool.TabIndex = 5;
            this.txtPool.Text = "DefaultAppPool";
            // 
            // btnSelect
            // 
            this.btnSelect.Enabled = false;
            this.btnSelect.Location = new System.Drawing.Point(396, 125);
            this.btnSelect.Name = "btnSelect";
            this.btnSelect.Size = new System.Drawing.Size(95, 23);
            this.btnSelect.TabIndex = 6;
            this.btnSelect.Text = "Select...";
            this.btnSelect.UseVisualStyleBackColor = true;
            // 
            // label6
            // 
            this.label6.AutoSize = true;
            this.label6.Location = new System.Drawing.Point(12, 180);
            this.label6.Name = "label6";
            this.label6.Size = new System.Drawing.Size(73, 13);
            this.label6.TabIndex = 7;
            this.label6.Text = "Physical path:";
            // 
            // txtPhysicalPath
            // 
            this.txtPhysicalPath.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
            this.txtPhysicalPath.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.FileSystemDirectories;
            this.txtPhysicalPath.Location = new System.Drawing.Point(15, 196);
            this.txtPhysicalPath.Name = "txtPhysicalPath";
            this.txtPhysicalPath.Size = new System.Drawing.Size(324, 20);
            this.txtPhysicalPath.TabIndex = 8;
            // 
            // txtConnectAs
            // 
            this.txtConnectAs.AutoSize = true;
            this.txtConnectAs.Location = new System.Drawing.Point(12, 235);
            this.txtConnectAs.Name = "txtConnectAs";
            this.txtConnectAs.Size = new System.Drawing.Size(139, 13);
            this.txtConnectAs.TabIndex = 9;
            this.txtConnectAs.Text = "Pass-through authentication";
            // 
            // btnConnect
            // 
            this.btnConnect.Location = new System.Drawing.Point(15, 251);
            this.btnConnect.Name = "btnConnect";
            this.btnConnect.Size = new System.Drawing.Size(94, 23);
            this.btnConnect.TabIndex = 10;
            this.btnConnect.Text = "Connect as...";
            this.btnConnect.UseVisualStyleBackColor = true;
            // 
            // btnTest
            // 
            this.btnTest.Enabled = false;
            this.btnTest.Location = new System.Drawing.Point(115, 251);
            this.btnTest.Name = "btnTest";
            this.btnTest.Size = new System.Drawing.Size(94, 23);
            this.btnTest.TabIndex = 11;
            this.btnTest.Text = "Test Settings...";
            this.btnTest.UseVisualStyleBackColor = true;
            // 
            // cbPreload
            // 
            this.cbPreload.AutoSize = true;
            this.cbPreload.Enabled = false;
            this.cbPreload.Location = new System.Drawing.Point(15, 280);
            this.cbPreload.Name = "cbPreload";
            this.cbPreload.Size = new System.Drawing.Size(98, 17);
            this.cbPreload.TabIndex = 12;
            this.cbPreload.Text = "Enable Preload";
            this.cbPreload.UseVisualStyleBackColor = true;
            // 
            // btnBrowse
            // 
            this.btnBrowse.Location = new System.Drawing.Point(345, 194);
            this.btnBrowse.Name = "btnBrowse";
            this.btnBrowse.Size = new System.Drawing.Size(33, 23);
            this.btnBrowse.TabIndex = 13;
            this.btnBrowse.Text = "...";
            this.btnBrowse.UseVisualStyleBackColor = true;
            this.btnBrowse.Visible = false;
            // 
            // btnOK
            // 
            this.btnOK.Enabled = false;
            this.btnOK.Location = new System.Drawing.Point(306, 316);
            this.btnOK.Name = "btnOK";
            this.btnOK.Size = new System.Drawing.Size(95, 23);
            this.btnOK.TabIndex = 14;
            this.btnOK.Text = "OK";
            this.btnOK.UseVisualStyleBackColor = true;
            // 
            // btnCancel
            // 
            this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
            this.btnCancel.Location = new System.Drawing.Point(407, 316);
            this.btnCancel.Name = "btnCancel";
            this.btnCancel.Size = new System.Drawing.Size(95, 23);
            this.btnCancel.TabIndex = 15;
            this.btnCancel.Text = "Cancel";
            this.btnCancel.UseVisualStyleBackColor = true;
            // 
            // NewApplicationDialog
            // 
            this.AcceptButton = this.btnOK;
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.CancelButton = this.btnCancel;
            this.ClientSize = new System.Drawing.Size(514, 351);
            this.Controls.Add(this.btnCancel);
            this.Controls.Add(this.btnOK);
            this.Controls.Add(this.btnBrowse);
            this.Controls.Add(this.cbPreload);
            this.Controls.Add(this.btnTest);
            this.Controls.Add(this.btnConnect);
            this.Controls.Add(this.txtConnectAs);
            this.Controls.Add(this.txtPhysicalPath);
            this.Controls.Add(this.label6);
            this.Controls.Add(this.btnSelect);
            this.Controls.Add(this.txtPool);
            this.Controls.Add(this.label5);
            this.Controls.Add(this.txtAlias);
            this.Controls.Add(this.label4);
            this.Controls.Add(this.label2);
            this.Controls.Add(this.groupBox1);
            this.Name = "NewApplicationDialog";
            this.Text = "Add Application";
            this.HelpButtonClicked += new System.ComponentModel.CancelEventHandler(this.NewApplicationDialog_HelpButtonClicked);
            this.groupBox1.ResumeLayout(false);
            this.groupBox1.PerformLayout();
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        #endregion

        private GroupBox groupBox1;
        private Label txtPath;
        private Label label3;
        private Label txtSite;
        private Label label1;
        private Label label2;
        private Label label4;
        private TextBox txtAlias;
        private Label label5;
        private TextBox txtPool;
        private Button btnSelect;
        private Label label6;
        private TextBox txtPhysicalPath;
        private Label txtConnectAs;
        private Button btnConnect;
        private Button btnTest;
        private CheckBox cbPreload;
        private Button btnBrowse;
        private Button btnOK;
        private Button btnCancel;
    }
}

================================================
FILE: JexusManager/Dialogs/NewApplicationDialog.cs
================================================
// Copyright (c) Lex Li. All rights reserved.
// 
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

namespace JexusManager.Dialogs
{
    using System;
    using System.ComponentModel;
    using System.Globalization;
    using System.Windows.Forms;

    using Microsoft.Web.Administration;
    using Microsoft.Web.Management.Client.Win32;

    using Application = Microsoft.Web.Administration.Application;
    using System.Reactive.Disposables;
    using System.Reactive.Linq;

    public sealed partial class NewApplicationDialog : DialogForm
    {
        private readonly Site _site;
        private readonly string _parentPath;

        public NewApplicationDialog(IServiceProvider serviceProvider, Site site, string parentPath, string pool, Application existing)
            : base(serviceProvider)
        {
            InitializeComponent();
            txtSite.Text = site.Name;
            txtPath.Text = parentPath;
            btnBrowse.Visible = site.Server.IsLocalhost;
            btnSelect.Enabled = site.Server.Mode != WorkingMode.Jexus;
            _site = site;
            _parentPath = parentPath;
            Application = existing;
            Text = Application == null ? "Add Application" : "Edit Application";
            txtAlias.ReadOnly = Application != null;
            if (Application == null)
            {
                // TODO: test if IIS does this
                txtPool.Text = pool;
            }
            else
            {
                txtAlias.Text = Application.Name ?? Application.Path.PathToName();
                txtPool.Text = Application.ApplicationPoolName;
                foreach (VirtualDirectory directory in Application.VirtualDirectories)
                {
                    if (directory.Path == "/")
                    {
                        txtPhysicalPath.Text = directory.PhysicalPath;
                    }
                }

                RefreshButton();
            }

            var item = new ConnectAsItem(Application?.VirtualDirectories[0]);

            var container = new CompositeDisposable();
            FormClosed += (sender, args) => container.Dispose();

            container.Add(
                Observable.FromEventPattern<EventArgs>(btnBrowse, "Click")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    DialogHelper.ShowBrowseDialog(txtPhysicalPath, null);
                }));

            container.Add(
                Observable.FromEventPattern<EventArgs>(txtAlias, "TextChanged")
                .Merge(Observable.FromEventPattern<EventArgs>(txtPhysicalPath, "TextChanged"))
                .Sample(TimeSpan.FromSeconds(0.5))
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    RefreshButton();
                }));

            container.Add(
                Observable.FromEventPattern<EventArgs>(btnOK, "Click")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    foreach (var ch in ApplicationCollection.InvalidApplicationPathCharacters())
                    {
                        if (txtAlias.Text.Contains(ch.ToString(CultureInfo.InvariantCulture)))
                        {
                            MessageBox.Show("The application path cannot contain the following characters: \\, ?, ;, :, @, &, =, +, $, ,, |, \", <, >, *.", Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            return;
                        }
                    }

                    foreach (var ch in SiteCollection.InvalidSiteNameCharactersJexus())
                    {
                        if (txtAlias.Text.Contains(ch.ToString(CultureInfo.InvariantCulture)))
                        {
                            MessageBox.Show("The site name cannot contain the following characters: ' '.", Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            return;
                        }
                    }

                    if (!_site.Server.Verify(txtPhysicalPath.Text, site.Applications[0].GetActualExecutable()))
                    {
                        MessageBox.Show("The specified directory does not exist on the server.", Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        return;
                    }

                    if (Application == null)
                    {
                        string path = string.Format("{0}/{1}", _parentPath.TrimEnd('/'), txtAlias.Text);
                        foreach (VirtualDirectory virtualDirectory in _site.Applications[0].VirtualDirectories)
                        {
                            if (string.Equals(virtualDirectory.Path, path, StringComparison.OrdinalIgnoreCase))
                            {
                                ShowMessage("This virtual directory already exists.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                                return;
                            }
                        }

                        foreach (Application application in _site.Applications)
                        {
                            if (string.Equals(path, application.Path))
                            {
                                ShowMessage("An application with this virtual path already exists.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                                return;
                            }
                        }

                        Application = _site.Applications.Add(path, txtPhysicalPath.Text);
                        Application.Name = txtAlias.Text;
                        Application.ApplicationPoolName = txtPool.Text;

                        item.Element = Application.VirtualDirectories[0];
                        item.Apply();
                    }
                    else
                    {
                        foreach (VirtualDirectory directory in Application.VirtualDirectories)
                        {
                            if (directory.Path == Application.Path)
                            {
                                directory.PhysicalPath = txtPhysicalPath.Text;
                            }
                        }
                    }

                    DialogResult = DialogResult.OK;
                }));

            container.Add(
                Observable.FromEventPattern<EventArgs>(btnSelect, "Click")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    using var dialog = new SelectPoolDialog(txtPool.Text, _site.Server);
                    if (dialog.ShowDialog() != DialogResult.OK)
                    {
                        return;
                    }

                    txtPool.Text = dialog.Selected.Name;
                    if (Application != null)
                    {
                        Application.ApplicationPoolName = dialog.Selected.Name;
                    }
                }));

            container.Add(
                Observable.FromEventPattern<EventArgs>(btnConnect, "Click")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    using (var dialog = new ConnectAsDialog(ServiceProvider, item))
                    {
                        if (dialog.ShowDialog() != DialogResult.OK)
                        {
                            return;
                        }
                    }

                    item.Apply();
                    txtConnectAs.Text = string.IsNullOrEmpty(item.UserName)
                        ? "Pass-through authentication"
                        : $"connect as '{item.UserName}'";
                    RefreshButton();
                }));

            txtConnectAs.Text = string.IsNullOrEmpty(item.UserName)
                ? "Pass-through authentication"
                : $"connect as '{item.UserName}'";
        }

        private void RefreshButton()
        {
            btnOK.Enabled = !string.IsNullOrWhiteSpace(txtAlias.Text) && !string.IsNullOrWhiteSpace(txtPhysicalPath.Text);
        }

        [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public Application Application { get; private set; }

        private void NewApplicationDialog_HelpButtonClicked(object sender, CancelEventArgs e)
        {
            DialogHelper.ProcessStart("http://go.microsoft.com/fwlink/?LinkId=210458");
        }
    }
}


================================================
FILE: JexusManager/Dialogs/NewApplicationDialog.resx
================================================
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>

================================================
FILE: JexusManager/Dialogs/NewSiteDialog.Designer.cs
================================================
namespace JexusManager.Dialogs
{
    using System.ComponentModel;
    using System.Windows.Forms;

    partial class NewSiteDialog
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.label1 = new System.Windows.Forms.Label();
            this.txtName = new System.Windows.Forms.TextBox();
            this.label2 = new System.Windows.Forms.Label();
            this.txtPool = new System.Windows.Forms.TextBox();
            this.btnChoose = new System.Windows.Forms.Button();
            this.groupBox1 = new System.Windows.Forms.GroupBox();
            this.btnTest = new System.Windows.Forms.Button();
            this.btnConnect = new System.Windows.Forms.Button();
            this.txtConnectAs = new System.Windows.Forms.Label();
            this.btnBrowse = new System.Windows.Forms.Button();
            this.txtPath = new System.Windows.Forms.TextBox();
            this.label3 = new System.Windows.Forms.Label();
            this.groupBox2 = new System.Windows.Forms.GroupBox();
            this.txtCertificates = new System.Windows.Forms.Label();
            this.btnView = new System.Windows.Forms.Button();
            this.btnSelect = new System.Windows.Forms.Button();
            this.cbCertificates = new System.Windows.Forms.ComboBox();
            this.cbSniRequired = new System.Windows.Forms.CheckBox();
            this.label5 = new System.Windows.Forms.Label();
            this.txtHost = new System.Windows.Forms.TextBox();
            this.label6 = new System.Windows.Forms.Label();
            this.txtPort = new System.Windows.Forms.TextBox();
            this.cbAddress = new System.Windows.Forms.ComboBox();
            this.cbType = new System.Windows.Forms.ComboBox();
            this.label7 = new System.Windows.Forms.Label();
            this.label8 = new System.Windows.Forms.Label();
            this.label9 = new System.Windows.Forms.Label();
            this.btnCancel = new System.Windows.Forms.Button();
            this.btnOK = new System.Windows.Forms.Button();
            this.cbStart = new System.Windows.Forms.CheckBox();
            this.groupBox1.SuspendLayout();
            this.groupBox2.SuspendLayout();
            this.SuspendLayout();
            // 
            // label1
            // 
            this.label1.AutoSize = true;
            this.label1.Location = new System.Drawing.Point(22, 24);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(57, 13);
            this.label1.TabIndex = 0;
            this.label1.Text = "Site name:";
            // 
            // txtName
            // 
            this.txtName.Location = new System.Drawing.Point(25, 40);
            this.txtName.Name = "txtName";
            this.txtName.Size = new System.Drawing.Size(210, 20);
            this.txtName.TabIndex = 1;
            // 
            // label2
            // 
            this.label2.AutoSize = true;
            this.label2.Location = new System.Drawing.Point(250, 24);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(85, 13);
            this.label2.TabIndex = 2;
            this.label2.Text = "Application pool:";
            // 
            // txtPool
            // 
            this.txtPool.Location = new System.Drawing.Point(253, 40);
            this.txtPool.Name = "txtPool";
            this.txtPool.ReadOnly = true;
            this.txtPool.Size = new System.Drawing.Size(185, 20);
            this.txtPool.TabIndex = 3;
            this.txtPool.Text = "DefaultAppPool";
            // 
            // btnChoose
            // 
            this.btnChoose.Enabled = false;
            this.btnChoose.Location = new System.Drawing.Point(444, 38);
            this.btnChoose.Name = "btnChoose";
            this.btnChoose.Size = new System.Drawing.Size(95, 23);
            this.btnChoose.TabIndex = 4;
            this.btnChoose.Text = "Select...";
            this.btnChoose.UseVisualStyleBackColor = true;
            // 
            // groupBox1
            // 
            this.groupBox1.Controls.Add(this.btnTest);
            this.groupBox1.Controls.Add(this.btnConnect);
            this.groupBox1.Controls.Add(this.txtConnectAs);
            this.groupBox1.Controls.Add(this.btnBrowse);
            this.groupBox1.Controls.Add(this.txtPath);
            this.groupBox1.Controls.Add(this.label3);
            this.groupBox1.Location = new System.Drawing.Point(25, 74);
            this.groupBox1.Name = "groupBox1";
            this.groupBox1.Size = new System.Drawing.Size(514, 134);
            this.groupBox1.TabIndex = 5;
            this.groupBox1.TabStop = false;
            this.groupBox1.Text = "Content Directory";
            // 
            // btnTest
            // 
            this.btnTest.Enabled = false;
            this.btnTest.Location = new System.Drawing.Point(115, 98);
            this.btnTest.Name = "btnTest";
            this.btnTest.Size = new System.Drawing.Size(90, 23);
            this.btnTest.TabIndex = 5;
            this.btnTest.Text = "Test Settings...";
            this.btnTest.UseVisualStyleBackColor = true;
            // 
            // btnConnect
            // 
            this.btnConnect.Location = new System.Drawing.Point(24, 98);
            this.btnConnect.Name = "btnConnect";
            this.btnConnect.Size = new System.Drawing.Size(85, 23);
            this.btnConnect.TabIndex = 4;
            this.btnConnect.Text = "Connect as...";
            this.btnConnect.UseVisualStyleBackColor = true;
            // 
            // txtConnectAs
            // 
            this.txtConnectAs.AutoSize = true;
            this.txtConnectAs.Location = new System.Drawing.Point(21, 69);
            this.txtConnectAs.Name = "txtConnectAs";
            this.txtConnectAs.Size = new System.Drawing.Size(139, 13);
            this.txtConnectAs.TabIndex = 3;
            this.txtConnectAs.Text = "Pass-through authentication";
            // 
            // btnBrowse
            // 
            this.btnBrowse.Location = new System.Drawing.Point(346, 44);
            this.btnBrowse.Name = "btnBrowse";
            this.btnBrowse.Size = new System.Drawing.Size(38, 23);
            this.btnBrowse.TabIndex = 2;
            this.btnBrowse.Text = "...";
            this.btnBrowse.UseVisualStyleBackColor = true;
            this.btnBrowse.Visible = false;
            // 
            // txtPath
            // 
            this.txtPath.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
            this.txtPath.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.FileSystemDirectories;
            this.txtPath.Location = new System.Drawing.Point(24, 46);
            this.txtPath.Name = "txtPath";
            this.txtPath.Size = new System.Drawing.Size(316, 20);
            this.txtPath.TabIndex = 1;
            // 
            // label3
            // 
            this.label3.AutoSize = true;
            this.label3.Location = new System.Drawing.Point(21, 30);
            this.label3.Name = "label3";
            this.label3.Size = new System.Drawing.Size(73, 13);
            this.label3.TabIndex = 0;
            this.label3.Text = "Physical path:";
            // 
            // groupBox2
            // 
            this.groupBox2.Controls.Add(this.txtCertificates);
            this.groupBox2.Controls.Add(this.btnView);
            this.groupBox2.Controls.Add(this.btnSelect);
            this.groupBox2.Controls.Add(this.cbCertificates);
            this.groupBox2.Controls.Add(this.cbSniRequired);
            this.groupBox2.Controls.Add(this.label5);
            this.groupBox2.Controls.Add(this.txtHost);
            this.groupBox2.Controls.Add(this.label6);
            this.groupBox2.Controls.Add(this.txtPort);
            this.groupBox2.Controls.Add(this.cbAddress);
            this.groupBox2.Controls.Add(this.cbType);
            this.groupBox2.Controls.Add(this.label7);
            this.groupBox2.Controls.Add(this.label8);
            this.groupBox2.Controls.Add(this.label9);
            this.groupBox2.Location = new System.Drawing.Point(25, 214);
            this.groupBox2.Name = "groupBox2";
            this.groupBox2.Size = new System.Drawing.Size(514, 254);
            this.groupBox2.TabIndex = 6;
            this.groupBox2.TabStop = false;
            this.groupBox2.Text = "Binding";
            // 
            // txtCertificates
            // 
            this.txtCertificates.AutoSize = true;
            this.txtCertificates.Location = new System.Drawing.Point(18, 189);
            this.txtCertificates.Name = "txtCertificates";
            this.txtCertificates.Size = new System.Drawing.Size(79, 13);
            this.txtCertificates.TabIndex = 29;
            this.txtCertificates.Text = "SSL certificate:";
            this.txtCertificates.Visible = false;
            // 
            // btnView
            // 
            this.btnView.Location = new System.Drawing.Point(421, 203);
            this.btnView.Name = "btnView";
            this.btnView.Size = new System.Drawing.Size(85, 23);
            this.btnView.TabIndex = 28;
            this.btnView.Text = "View...";
            this.btnView.UseVisualStyleBackColor = true;
            // 
            // btnSelect
            // 
            this.btnSelect.Enabled = false;
            this.btnSelect.Location = new System.Drawing.Point(330, 203);
            this.btnSelect.Name = "btnSelect";
            this.btnSelect.Size = new System.Drawing.Size(85, 23);
            this.btnSelect.TabIndex = 27;
            this.btnSelect.Text = "Select...";
            this.btnSelect.UseVisualStyleBackColor = true;
            // 
            // cbCertificates
            // 
            this.cbCertificates.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.cbCertificates.FormattingEnabled = true;
            this.cbCertificates.Location = new System.Drawing.Point(21, 205);
            this.cbCertificates.Name = "cbCertificates";
            this.cbCertificates.Size = new System.Drawing.Size(303, 21);
            this.cbCertificates.TabIndex = 26;
            // 
            // cbSniRequired
            // 
            this.cbSniRequired.AutoSize = true;
            this.cbSniRequired.Location = new System.Drawing.Point(24, 136);
            this.cbSniRequired.Name = "cbSniRequired";
            this.cbSniRequired.Size = new System.Drawing.Size(177, 17);
            this.cbSniRequired.TabIndex = 25;
            this.cbSniRequired.Text = "Require Server Name Indication";
            this.cbSniRequired.UseVisualStyleBackColor = true;
            // 
            // label5
            // 
            this.label5.AutoSize = true;
            this.label5.Location = new System.Drawing.Point(21, 109);
            this.label5.Name = "label5";
            this.label5.Size = new System.Drawing.Size(266, 13);
            this.label5.TabIndex = 24;
            this.label5.Text = "Example: www.contoso.com or marketing.contoso.com";
            // 
            // txtHost
            // 
            this.txtHost.Location = new System.Drawing.Point(21, 86);
            this.txtHost.Name = "txtHost";
            this.txtHost.Size = new System.Drawing.Size(303, 20);
            this.txtHost.TabIndex = 23;
            // 
            // label6
            // 
            this.label6.AutoSize = true;
            this.label6.Location = new System.Drawing.Point(21, 70);
            this.label6.Name = "label6";
            this.label6.Size = new System.Drawing.Size(61, 13);
            this.label6.TabIndex = 22;
            this.label6.Text = "Host name:";
            // 
            // txtPort
            // 
            this.txtPort.Location = new System.Drawing.Point(358, 33);
            this.txtPort.Name = "txtPort";
            this.txtPort.Size = new System.Drawing.Size(48, 20);
            this.txtPort.TabIndex = 21;
            this.txtPort.Text = "80";
            // 
            // cbAddress
            // 
            this.cbAddress.FormattingEnabled = true;
            this.cbAddress.Location = new System.Drawing.Point(142, 33);
            this.cbAddress.Name = "cbAddress";
            this.cbAddress.Size = new System.Drawing.Size(210, 21);
            this.cbAddress.TabIndex = 20;
            this.cbAddress.Text = "All Unassigned";
            // 
            // cbType
            // 
            this.cbType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.cbType.FormattingEnabled = true;
            this.cbType.Items.AddRange(new object[] {
            "http",
            "https"});
            this.cbType.Location = new System.Drawing.Point(21, 33);
            this.cbType.Name = "cbType";
            this.cbType.Size = new System.Drawing.Size(115, 21);
            this.cbType.TabIndex = 19;
            // 
            // label7
            // 
            this.label7.AutoSize = true;
            this.label7.Location = new System.Drawing.Point(355, 16);
            this.label7.Name = "label7";
            this.label7.Size = new System.Drawing.Size(29, 13);
            this.label7.TabIndex = 18;
            this.label7.Text = "Port:";
            // 
            // label8
            // 
            this.label8.AutoSize = true;
            this.label8.Location = new System.Drawing.Point(139, 16);
            this.label8.Name = "label8";
            this.label8.Size = new System.Drawing.Size(60, 13);
            this.label8.TabIndex = 17;
            this.label8.Text = "IP address:";
            // 
            // label9
            // 
            this.label9.AutoSize = true;
            this.label9.Location = new System.Drawing.Point(21, 16);
            this.label9.Name = "label9";
            this.label9.Size = new System.Drawing.Size(34, 13);
            this.label9.TabIndex = 16;
            this.label9.Text = "Type:";
            // 
            // btnCancel
            // 
            this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
            this.btnCancel.Location = new System.Drawing.Point(477, 501);
            this.btnCancel.Name = "btnCancel";
            this.btnCancel.Size = new System.Drawing.Size(95, 23);
            this.btnCancel.TabIndex = 7;
            this.btnCancel.Text = "Cancel";
            this.btnCancel.UseVisualStyleBackColor = true;
            // 
            // btnOK
            // 
            this.btnOK.Location = new System.Drawing.Point(376, 501);
            this.btnOK.Name = "btnOK";
            this.btnOK.Size = new System.Drawing.Size(95, 23);
            this.btnOK.TabIndex = 8;
            this.btnOK.Text = "OK";
            this.btnOK.UseVisualStyleBackColor = true;
            // 
            // cbStart
            // 
            this.cbStart.AutoSize = true;
            this.cbStart.Checked = true;
            this.cbStart.CheckState = System.Windows.Forms.CheckState.Checked;
            this.cbStart.Location = new System.Drawing.Point(25, 474);
            this.cbStart.Name = "cbStart";
            this.cbStart.Size = new System.Drawing.Size(147, 17);
            this.cbStart.TabIndex = 9;
            this.cbStart.Text = "Start Website immediately";
            this.cbStart.UseVisualStyleBackColor = true;
            // 
            // NewSiteDialog
            // 
            this.AcceptButton = this.btnOK;
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.CancelButton = this.btnCancel;
            this.ClientSize = new System.Drawing.Size(584, 536);
            this.Controls.Add(this.cbStart);
            this.Controls.Add(this.btnOK);
            this.Controls.Add(this.btnCancel);
            this.Controls.Add(this.groupBox2);
            this.Controls.Add(this.groupBox1);
            this.Controls.Add(this.btnChoose);
            this.Controls.Add(this.txtPool);
            this.Controls.Add(this.label2);
            this.Controls.Add(this.txtName);
            this.Controls.Add(this.label1);
            this.Name = "NewSiteDialog";
            this.Text = "Add Website";
            this.HelpButtonClicked += new System.ComponentModel.CancelEventHandler(this.NewSiteDialogHelpButtonClicked);
            this.Load += new System.EventHandler(this.NewSiteDialogLoad);
            this.groupBox1.ResumeLayout(false);
            this.groupBox1.PerformLayout();
            this.groupBox2.ResumeLayout(false);
            this.groupBox2.PerformLayout();
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        #endregion

        private Label label1;
        private TextBox txtName;
        private Label label2;
        private TextBox txtPool;
        private Button btnChoose;
        private GroupBox groupBox1;
        private Button btnTest;
        private Button btnConnect;
        private Label txtConnectAs;
        private Button btnBrowse;
        private TextBox txtPath;
        private Label label3;
        private GroupBox groupBox2;
        private Button btnView;
        private Button btnSelect;
        private ComboBox cbCertificates;
        private CheckBox cbSniRequired;
        private Label label5;
        private TextBox txtHost;
        private Label label6;
        private TextBox txtPort;
        private ComboBox cbAddress;
        private ComboBox cbType;
        private Label label7;
        private Label label8;
        private Label label9;
        private Button btnCancel;
        private Button btnOK;
        private CheckBox cbStart;
        private Label txtCertificates;
    }
}


================================================
FILE: JexusManager/Dialogs/NewSiteDialog.cs
================================================
// Copyright (c) Lex Li. All rights reserved.
// 
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System;
using System.ComponentModel;
using System.Net;
using System.Windows.Forms;

using JexusManager.Services;

using Microsoft.Web.Administration;
using Microsoft.Web.Management.Client.Win32;

using Application = Microsoft.Web.Administration.Application;
using Binding = Microsoft.Web.Administration.Binding;
using System.Reactive.Disposables;
using System.Reactive.Linq;
using JexusManager.Features.HttpApi;
using Microsoft.Web.Management.Client;
using System.Linq;

namespace JexusManager.Dialogs
{
    public partial class NewSiteDialog : DialogForm
    {
        public NewSiteDialog(IServiceProvider serviceProvider, SiteCollection collection)
            : base(serviceProvider)
        {
            InitializeComponent();
            cbType.SelectedIndex = 0;
            if (collection == null)
            {
                throw new InvalidOperationException("null collection");
            }

            if (collection.Parent == null)
            {
                throw new InvalidOperationException("null server for site collection");
            }

            btnBrowse.Visible = collection.Parent.IsLocalhost;
            txtPool.Text = collection.Parent.ApplicationDefaults.ApplicationPoolName;
            btnChoose.Enabled = collection.Parent.Mode != WorkingMode.Jexus;
            txtHost.Text = collection.Parent.Mode == WorkingMode.IisExpress ? "localhost" : string.Empty;
            DialogHelper.LoadAddresses(cbAddress);
            if (!collection.Parent.SupportsSni)
            {
                cbSniRequired.Enabled = false;
            }

            var item = new ConnectAsItem(NewSite?.Applications[0].VirtualDirectories[0]);

            var container = new CompositeDisposable();
            FormClosed += (sender, args) => container.Dispose();

            container.Add(
                Observable.FromEventPattern<EventArgs>(cbType, "SelectedIndexChanged")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    txtPort.Text = cbType.Text == "http" ? "80" : "443";
                    txtCertificates.Visible = cbType.SelectedIndex == 1;
                    cbSniRequired.Visible = cbType.SelectedIndex == 1;
                    cbCertificates.Visible = cbType.SelectedIndex == 1;
                    btnSelect.Visible = cbType.SelectedIndex == 1;
                    btnView.Visible = cbType.SelectedIndex == 1;
                }));

            container.Add(
                Observable.FromEventPattern<EventArgs>(btnConnect, "Click")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    using (var dialog = new ConnectAsDialog(ServiceProvider, item))
                    {
                        if (dialog.ShowDialog() != DialogResult.OK)
                        {
                            return;
                        }
                    }

                    item.Apply();
                    txtConnectAs.Text = string.IsNullOrEmpty(item.UserName)
                        ? "Pass-through authentication"
                        : $"connect as '{item.UserName}'";
                }));

            container.Add(
                Observable.FromEventPattern<EventArgs>(btnBrowse, "Click")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    DialogHelper.ShowBrowseDialog(txtPath, null);
                }));

            container.Add(
                Observable.FromEventPattern<EventArgs>(btnOK, "Click")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    foreach (var ch in SiteCollection.InvalidSiteNameCharacters())
                    {
                        if (txtName.Text.Contains(ch))
                        {
                            ShowMessage("The site name cannot contain the following characters: '\\, /, ?, ;, :, @, &, =, +, $, ,, |, \", <, >'.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                            return;
                        }
                    }

                    foreach (var ch in SiteCollection.InvalidSiteNameCharactersJexus())
                    {
                        if (txtName.Text.Contains(ch) || txtName.Text.StartsWith("~"))
                        {
                            ShowMessage("The site name cannot contain the following characters: '~,  '.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                            return;
                        }
                    }

                    if (!collection.Parent.Verify(txtPath.Text, null))
                    {
                        ShowMessage("The specified directory does not exist on the server.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                        return;
                    }

                    if (!IPEndPointIsValid(out IPAddress address, out int port))
                    {
                        return;
                    }

                    var invalid = "\"/\\[]:|<>+=;,?*$%#@{}^`".ToCharArray();
                    foreach (var ch in invalid)
                    {
                        if (txtHost.Text.Contains(ch))
                        {
                            ShowMessage("The specified host name is incorrect. The host name must use a valid host name format and cannot contain the following characters: \"/\\[]:|<>+=;,?*$%#@{}^`. Example: www.contoso.com.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                            return;
                        }
                    }

                    if (collection.Parent.Mode == WorkingMode.IisExpress)
                    {
                        if (txtHost.Text != "localhost")
                        {
                            ShowMessage(
                                "The specific host name is not recommended for IIS Express. The host name should be localhost.",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Warning,
                                MessageBoxDefaultButton.Button1);
                        }
                    }

                    long largestId = 0;
                    foreach (Site site in collection)
                    {
                        if (site.Id > largestId)
                        {
                            largestId = site.Id;
                        }
                    }

                    largestId++;

                    NewSite = new Site(collection) { Name = txtName.Text, Id = largestId };
                    var host = txtHost.Text.DisplayToHost();
                    var info = cbType.Text == "https" ? (CertificateInfo)cbCertificates.SelectedItem : null;
                    var binding = new Binding(
                        cbType.Text,
                        string.Format("{0}:{1}:{2}", address.AddressToDisplay(), port, host.HostToDisplay()),
                        info?.Certificate.GetCertHash() ?? new byte[0],
                        info?.Store,
                        cbSniRequired.Checked ? SslFlags.Sni : SslFlags.None,
                        NewSite.Bindings);
                    if (collection.FindDuplicate(binding, null, null) != false)
                    {
                        var result = ShowMessage(string.Format("The binding '{0}' is assigned to another site. If you assign the same binding to this site, you will only be able to start one of the sites. Are you sure that you want to add this duplicate binding?", binding), MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
                        if (result != DialogResult.Yes)
                        {
                            collection.Remove(NewSite);
                            return;
                        }
                    }

                    if (collection.Parent.Mode == WorkingMode.IisExpress || collection.Parent.Mode == WorkingMode.Iis)
                    {
                        var (state, message) = binding.FixCertificateMapping(info?.Certificate);
                        if (state != CertificateMappingState.RegistrationSucceeded)
                        {
                            if (state == CertificateMappingState.HostNameNotMatched)
                            {
                                var result = ShowMessage($"{message}. Do you still want to use this certificate?", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
                                if (result == DialogResult.Yes)
                                {
                                    // IMPORTANT: force using the certificate.
                                    (state, message) = binding.FixCertificateMapping(info?.Certificate, true);
                                }
                            }

                            if (state != CertificateMappingState.RegistrationSucceeded)
                            {
                                collection.Remove(NewSite);
                                ShowMessage(string.Format("The binding '{0}' is invalid: {1}", binding, message), MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                                return;
                            }
                        }
                    }

                    var app = NewSite.Applications.Add(Application.RootPath, txtPath.Text);
                    app.Name = string.Empty;
                    app.ApplicationPoolName = txtPool.Text;
                    NewSite.Bindings.Add(binding);

                    item.Element = NewSite.Applications[0].VirtualDirectories[0];
                    item.Apply();

                    if (collection.Parent.Mode == WorkingMode.IisExpress)
                    {
                        if (binding.Host != "localhost")
                        {
                            ShowMessage(
                                "The specific host name is not recommended for IIS Express. The host name should be localhost.",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Warning,
                                MessageBoxDefaultButton.Button1);

                            var reservation = binding.ToUrlPrefix();
                            var feature = new ReservedUrlsFeature((Module)serviceProvider);
                            feature.Load();
                            if (feature.Items.All(item => item.UrlPrefix != reservation))
                            {
                                var message = BindingUtility.AddReservedUrl(reservation);
                                if (!string.IsNullOrEmpty(message))
                                {
                                    ShowMessage($"Reserved URL {reservation} cannot be added. {message}", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                                    return;
                                }
                            }
                        }
                    }

                    DialogResult = DialogResult.OK;
                }));

            var certificatesSelected = Observable.FromEventPattern<EventArgs>(cbCertificates, "SelectedIndexChanged");
            container.Add(
                certificatesSelected
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    btnView.Enabled = cbCertificates.SelectedIndex > 0;
                }));

            container.Add(
                Observable.FromEventPattern<EventArgs>(txtName, "TextChanged")
                .Merge(Observable.FromEventPattern<EventArgs>(txtPath, "TextChanged"))
                .Merge(Observable.FromEventPattern<EventArgs>(txtPort, "TextChanged"))
                .Merge(Observable.FromEventPattern<EventArgs>(cbAddress, "TextChanged"))
                .Merge(certificatesSelected)
                .Sample(TimeSpan.FromSeconds(0.5))
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    if (Helper.IsRunningOnMono())
                    {
                        return;
                    }

                    var toElevate = IPEndPointIsValid(out IPAddress address, out int port, false) ? BindingUtility.Verify(cbType.Text, cbAddress.Text, txtPort.Text, cbCertificates.SelectedItem as CertificateInfo) : false;
                    btnOK.Enabled = toElevate != null && !string.IsNullOrWhiteSpace(txtName.Text)
                                    && !string.IsNullOrWhiteSpace(txtPath.Text);
                    if (!toElevate.HasValue || !toElevate.Value)
                    {
                        NativeMethods.RemoveShieldFromButton(btnOK);
                    }
                    else
                    {
                        NativeMethods.TryAddShieldToButton(btnOK);
                    }
                }));

            container.Add(
                Observable.FromEventPattern<EventArgs>(btnView, "Click")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    var info = (CertificateInfo)cbCertificates.SelectedItem;
                    DialogHelper.DisplayCertificate(info.Certificate, this.Handle);
                }));

            container.Add(
                Observable.FromEventPattern<EventArgs>(btnChoose, "Click")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
                {
                    using var dialog = new SelectPoolDialog(txtPool.Text, collection.Parent);
                    if (dialog.ShowDialog() != DialogResult.OK)
                    {
                        return;
                    }

                    txtPool.Text = dialog.Selected.Name;
                }));
        }

        private bool IPEndPointIsValid(out IPAddress address, out int port, bool showDialog = true)
        {
            try
            {
                address = cbAddress.Text.ComboToAddress();
            }
            catch (Exception)
            {
                if (showDialog)
                {
                    ShowMessage("The specified IP address is invalid. Specify a valid IP address.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                }

                address = null;
                port = 0;
                return false;
            }

            return Binding.PortIsValid(txtPort.Text, out port, Text, showDialog);
        }

        [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public Site NewSite { get; set; }

        private void NewSiteDialogHelpButtonClicked(object sender, CancelEventArgs e)
        {
            DialogHelper.ProcessStart("http://go.microsoft.com/fwlink/?LinkId=210531#Add_Site");
        }

        private void NewSiteDialogLoad(object sender, EventArgs e)
        {
            var service = (IConfigurationService)GetService(typeof(IConfigurationService));
            DialogHelper.LoadCertificates(cbCertificates, null, null, service);
        }
    }
}


================================================
FILE: JexusManager/Dialogs/NewSiteDialog.resx
================================================
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>

================================================
FILE: JexusManager/Dialogs/NewVirtualDirectoryDialog.Designer.cs
================================================
namespace JexusManager.Dialogs
{
    using System.ComponentModel;
    using System.Windows.Forms;

    sealed partial class NewVirtualDirectoryDialog
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.groupBox1 = new System.Windows.Forms.GroupBox();
            this.txtPath = new System.Windows.Forms.Label();
            this.label3 = new System.Windows.Forms.Label();
            this.txtSite = new System.Windows.Forms.Label();
            this.label1 = new System.Windows.Forms.Label();
            this.label2 = new System.Windows.Forms.Label();
            this.txtAlias = new System.Windows.Forms.TextBox();
            this.label5 = new System.Windows.Forms.Label();
            this.label6 = new System.Windows.Forms.Label();
            this.txtPhysicalPath = new System.Windows.Forms.TextBox();
            this.txtConnectAs = new System.Windows.Forms.Label();
            this.btnConnect = new System.Windows.Forms.Button();
            this.btnTest = new System.Windows.Forms.Button();
            this.btnBrowse = new System.Windows.Forms.Button();
            this.btnOK = new System.Windows.Forms.Button();
            this.btnCancel = new System.Windows.Forms.Button();
            this.groupBox1.SuspendLayout();
            this.SuspendLayout();
            // 
            // groupBox1
            // 
            this.groupBox1.Controls.Add(this.txtPath);
            this.groupBox1.Controls.Add(this.label3);
            this.groupBox1.Controls.Add(this.txtSite);
            this.groupBox1.Controls.Add(this.label1);
            this.groupBox1.Location = new System.Drawing.Point(12, 12);
            this.groupBox1.Name = "groupBox1";
            this.groupBox1.Size = new System.Drawing.Size(489, 78);
            this.groupBox1.TabIndex = 0;
            this.groupBox1.TabStop = false;
            // 
            // txtPath
            // 
            this.txtPath.AutoSize = true;
            this.txtPath.Location = new System.Drawing.Point(96, 49);
            this.txtPath.Name = "txtPath";
            this.txtPath.Size = new System.Drawing.Size(0, 13);
            this.txtPath.TabIndex = 3;
            // 
            // label3
            // 
            this.label3.AutoSize = true;
            this.label3.Location = new System.Drawing.Point(20, 49);
            this.label3.Name = "label3";
            this.label3.Size = new System.Drawing.Size(32, 13);
            this.label3.TabIndex = 2;
            this.label3.Text = "Path:";
            // 
            // txtSite
            // 
            this.txtSite.AutoSize = true;
            this.txtSite.Location = new System.Drawing.Point(96, 20);
            this.txtSite.Name = "txtSite";
            this.txtSite.Size = new System.Drawing.Size(0, 13);
            this.txtSite.TabIndex = 1;
            // 
            // label1
            // 
            this.label1.AutoSize = true;
            this.label1.Location = new System.Drawing.Point(20, 20);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(57, 13);
            this.label1.TabIndex = 0;
            this.label1.Text = "Site name:";
            // 
            // label2
            // 
            this.label2.AutoSize = true;
            this.label2.Location = new System.Drawing.Point(12, 107);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(32, 13);
            this.label2.TabIndex = 1;
            this.label2.Text = "Alias:";
            // 
            // txtAlias
            // 
            this.txtAlias.Location = new System.Drawing.Point(15, 127);
            this.txtAlias.Name = "txtAlias";
            this.txtAlias.Size = new System.Drawing.Size(185, 20);
            this.txtAlias.TabIndex = 3;
            // 
            // label5
            // 
            this.label5.AutoSize = true;
            this.label5.Location = new System.Drawing.Point(12, 150);
            this.label5.Name = "label5";
            this.label5.Size = new System.Drawing.Size(82, 13);
            this.label5.TabIndex = 4;
            this.label5.Text = "Examples: sales";
            // 
            // label6
            // 
            this.label6.AutoSize = true;
            this.label6.Location = new System.Drawing.Point(12, 180);
            this.label6.Name = "label6";
            this.label6.Size = new System.Drawing.Size(73, 13);
            this.label6.TabIndex = 7;
            this.label6.Text = "Physical path:";
            // 
            // txtPhysicalPath
            // 
            this.txtPhysicalPath.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
            this.txtPhysicalPath.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.FileSystemDirectories;
            this.txtPhysicalPath.Location = new System.Drawing.Point(15, 196);
            this.txtPhysicalPath.Name = "txtPhysicalPath";
            this.txtPhysicalPath.Size = new System.Drawing.Size(324, 20);
            this.txtPhysicalPath.TabIndex = 8;
            // 
            // txtConnectAs
            // 
            this.txtConnectAs.AutoSize = true;
            this.txtConnectAs.Location = new System.Drawing.Point(12, 235);
            this.txtConnectAs.Name = "txtConnectAs";
            this.txtConnectAs.Size = new System.Drawing.Size(139, 13);
            this.txtConnectAs.TabIndex = 9;
            this.txtConnectAs.Text = "Pass-through authentication";
            // 
            // btnConnect
            // 
            this.btnConnect.Location = new System.Drawing.Point(15, 251);
            this.btnConnect.Name = "btnConnect";
            this.btnConnect.Size = new System.Drawing.Size(94, 23);
            this.btnConnect.TabIn
Download .txt
gitextract_arbnly2o/

├── .editorconfig
├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   └── workflows/
│       └── dotnetcore.yml
├── .gitignore
├── .gitmodules
├── .vscode/
│   └── settings.json
├── CODE_OF_CONDUCT.md
├── CertificateInstaller/
│   ├── CertificateInstaller.csproj
│   ├── NativeMethods.json
│   ├── NativeMethods.txt
│   ├── ProcessExtensions.cs
│   ├── Program.cs
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   └── app.manifest
├── IIS.LanguageServer/
│   ├── Handlers/
│   │   ├── CompletionHandler.cs
│   │   ├── DiagnosticsHandler.cs
│   │   ├── HoverHandler.cs
│   │   └── TextDocumentSyncHandler.cs
│   ├── IIS.LanguageServer.csproj
│   ├── Language/
│   │   └── XmlPositionAnalyzer.cs
│   ├── Program.cs
│   └── Schema/
│       ├── SchemaCache.cs
│       └── SchemaLoader.cs
├── JexusManager/
│   ├── BindingExtensions.cs
│   ├── Dialogs/
│   │   ├── CertificateErrorsDialog.Designer.cs
│   │   ├── CertificateErrorsDialog.cs
│   │   ├── CertificateErrorsDialog.resx
│   │   ├── ConnectAsDialog.Designer.cs
│   │   ├── ConnectAsDialog.cs
│   │   ├── ConnectAsDialog.resx
│   │   ├── ConnectAsItem.cs
│   │   ├── CredentialsDialog.Designer.cs
│   │   ├── CredentialsDialog.cs
│   │   ├── CredentialsDialog.resx
│   │   ├── EditSiteDialog.Designer.cs
│   │   ├── EditSiteDialog.cs
│   │   ├── EditSiteDialog.resx
│   │   ├── ExceptionDialog.Designer.cs
│   │   ├── ExceptionDialog.cs
│   │   ├── ExceptionDialog.resx
│   │   ├── NewApplicationDialog.Designer.cs
│   │   ├── NewApplicationDialog.cs
│   │   ├── NewApplicationDialog.resx
│   │   ├── NewSiteDialog.Designer.cs
│   │   ├── NewSiteDialog.cs
│   │   ├── NewSiteDialog.resx
│   │   ├── NewVirtualDirectoryDialog.Designer.cs
│   │   ├── NewVirtualDirectoryDialog.cs
│   │   ├── NewVirtualDirectoryDialog.resx
│   │   ├── SelectPoolDialog.Designer.cs
│   │   ├── SelectPoolDialog.cs
│   │   └── SelectPoolDialog.resx
│   ├── Features/
│   │   └── Main/
│   │       ├── ApplicationFeature.cs
│   │       ├── ApplicationPage.Designer.cs
│   │       ├── ApplicationPage.cs
│   │       ├── ApplicationPage.resx
│   │       ├── ApplicationPoolAdvancedSettings.cs
│   │       ├── ApplicationPoolAdvancedSettingsDialog.Designer.cs
│   │       ├── ApplicationPoolAdvancedSettingsDialog.cs
│   │       ├── ApplicationPoolAdvancedSettingsDialog.resx
│   │       ├── ApplicationPoolBasicSettingsDialog.Designer.cs
│   │       ├── ApplicationPoolBasicSettingsDialog.cs
│   │       ├── ApplicationPoolBasicSettingsDialog.resx
│   │       ├── ApplicationPoolDefaultsSettings.cs
│   │       ├── ApplicationPoolDefaultsSettingsDialog.Designer.cs
│   │       ├── ApplicationPoolDefaultsSettingsDialog.cs
│   │       ├── ApplicationPoolDefaultsSettingsDialog.resx
│   │       ├── ApplicationPoolsFeature.cs
│   │       ├── ApplicationPoolsPage.Designer.cs
│   │       ├── ApplicationPoolsPage.cs
│   │       ├── ApplicationPoolsPage.resx
│   │       ├── ApplicationPoolsSettingsSavedEventHandler.cs
│   │       ├── ApplicationsFeature.cs
│   │       ├── ApplicationsPage.Designer.cs
│   │       ├── ApplicationsPage.cs
│   │       ├── ApplicationsPage.resx
│   │       ├── BindingDiagDialog.Designer.cs
│   │       ├── BindingDiagDialog.cs
│   │       ├── BindingDiagDialog.resx
│   │       ├── BindingDialog.Designer.cs
│   │       ├── BindingDialog.cs
│   │       ├── BindingDialog.resx
│   │       ├── BindingsDialog.Designer.cs
│   │       ├── BindingsDialog.cs
│   │       ├── BindingsDialog.resx
│   │       ├── CLRVersion.cs
│   │       ├── CredentialsDialog.Designer.cs
│   │       ├── CredentialsDialog.cs
│   │       ├── CredentialsDialog.resx
│   │       ├── HomePage.Designer.cs
│   │       ├── HomePage.cs
│   │       ├── HomePage.resx
│   │       ├── IdentityDialog.Designer.cs
│   │       ├── IdentityDialog.cs
│   │       ├── IdentityDialog.resx
│   │       ├── IdentityEditor.cs
│   │       ├── KestrelDiagDialog.Designer.cs
│   │       ├── KestrelDiagDialog.cs
│   │       ├── KestrelDiagDialog.resx
│   │       ├── MainModule.cs
│   │       ├── ModulePageInfoListViewItem.cs
│   │       ├── PhpDiagDialog.Designer.cs
│   │       ├── PhpDiagDialog.cs
│   │       ├── PhpDiagDialog.resx
│   │       ├── PhysicalDirectoryFeature.cs
│   │       ├── PhysicalDirectoryPage.Designer.cs
│   │       ├── PhysicalDirectoryPage.cs
│   │       ├── PhysicalDirectoryPage.resx
│   │       ├── ScheduleCollectionEditor.cs
│   │       ├── ServerFeature.cs
│   │       ├── ServerPage.Designer.cs
│   │       ├── ServerPage.cs
│   │       ├── ServerPage.resx
│   │       ├── ServerSettingsSavedEventHandler.cs
│   │       ├── SiteFeature.cs
│   │       ├── SitePage.Designer.cs
│   │       ├── SitePage.cs
│   │       ├── SitePage.resx
│   │       ├── SitesFeature.cs
│   │       ├── SitesPage.Designer.cs
│   │       ├── SitesPage.cs
│   │       ├── SitesPage.resx
│   │       ├── SslDiagDialog.Designer.cs
│   │       ├── SslDiagDialog.cs
│   │       ├── SslDiagDialog.resx
│   │       ├── VirtualDirectoriesFeature.cs
│   │       ├── VirtualDirectoriesPage.Designer.cs
│   │       ├── VirtualDirectoriesPage.cs
│   │       ├── VirtualDirectoriesPage.resx
│   │       ├── VirtualDirectoryFeature.cs
│   │       ├── VirtualDirectoryPage.Designer.cs
│   │       ├── VirtualDirectoryPage.cs
│   │       ├── VirtualDirectoryPage.resx
│   │       ├── VsDiagDialog.Designer.cs
│   │       ├── VsDiagDialog.cs
│   │       └── VsDiagDialog.resx
│   ├── JexusManager.csproj
│   ├── JexusManager.snk
│   ├── LoggingService.cs
│   ├── MainForm.Designer.cs
│   ├── MainForm.cs
│   ├── MainForm.resx
│   ├── Program.cs
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   ├── Resources.resx
│   │   ├── Settings.Designer.cs
│   │   └── Settings.settings
│   ├── Resources/
│   │   ├── 1.0-release.json
│   │   ├── 1.1-release.json
│   │   ├── 10.0-release.json
│   │   ├── 2.0-release.json
│   │   ├── 2.1-release.json
│   │   ├── 2.2-release.json
│   │   ├── 3.0-release.json
│   │   ├── 3.1-release.json
│   │   ├── 5.0-release.json
│   │   ├── 6.0-release.json
│   │   ├── 7.0-release.json
│   │   ├── 8.0-release.json
│   │   ├── 9.0-release.json
│   │   └── releases-index.json
│   ├── Services/
│   │   └── NavigationService.cs
│   ├── StringFormatter.cs
│   ├── ThirdPartyNotices.txt
│   ├── Tree/
│   │   ├── ApplicationPoolsTreeNode.cs
│   │   ├── ApplicationTreeNode.cs
│   │   ├── Hierarchy/
│   │   │   └── ManagerHierarchyInfo.cs
│   │   ├── ManagerTreeNode.cs
│   │   ├── PhysicalDirectoryTreeNode.cs
│   │   ├── PlaceholderTreeNode.cs
│   │   ├── ServerTreeNode.cs
│   │   ├── SiteTreeNode.cs
│   │   ├── SitesTreeNode.cs
│   │   └── VirtualDirectoryTreeNode.cs
│   ├── UpdateHelper.cs
│   ├── Wizards/
│   │   └── ConnectionWizard/
│   │       ├── BrowsePage.Designer.cs
│   │       ├── BrowsePage.cs
│   │       ├── BrowsePage.resx
│   │       ├── ConnectionWizard.Designer.cs
│   │       ├── ConnectionWizard.cs
│   │       ├── ConnectionWizard.resx
│   │       ├── ConnectionWizardData.cs
│   │       ├── CredentialsPage.Designer.cs
│   │       ├── CredentialsPage.cs
│   │       ├── CredentialsPage.resx
│   │       ├── FinishPage.Designer.cs
│   │       ├── FinishPage.cs
│   │       ├── FinishPage.resx
│   │       ├── ServerPage.Designer.cs
│   │       ├── ServerPage.cs
│   │       ├── ServerPage.resx
│   │       ├── SolutionTypePage.Designer.cs
│   │       ├── SolutionTypePage.cs
│   │       ├── SolutionTypePage.resx
│   │       ├── TypePage.Designer.cs
│   │       ├── TypePage.cs
│   │       └── TypePage.resx
│   └── app.manifest
├── JexusManager.BreadCrumb.Demo/
│   ├── JexusManager.BreadCrumb.Demo.csproj
│   ├── MainForm.cs
│   └── Program.cs
├── JexusManager.Breadcrumb/
│   ├── BreadcrumbControl.cs
│   ├── BreadcrumbItem.cs
│   ├── BreadcrumbItemClickedEventArgs.cs
│   ├── BreadcrumbItemEventArgs.cs
│   ├── JexusManager.Breadcrumb.csproj
│   └── ToolStripBreadcrumbItem.cs
├── JexusManager.Features.Access/
│   ├── AccessFeature.cs
│   ├── AccessModule.cs
│   ├── AccessModuleProvider.cs
│   ├── AccessPage.Designer.cs
│   ├── AccessPage.cs
│   ├── AccessPage.resx
│   ├── AccessSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.Access.csproj
│   ├── JexusManager.snk
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.Asp/
│   ├── AspFeature.cs
│   ├── AspItem.cs
│   ├── AspModule.cs
│   ├── AspModuleProvider.cs
│   ├── AspPage.Designer.cs
│   ├── AspPage.cs
│   ├── AspPage.resx
│   ├── AspSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.Asp.csproj
│   ├── JexusManager.snk
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.Authentication/
│   ├── AnonymousAuthenticationFeature.cs
│   ├── AnonymousEditDialog.Designer.cs
│   ├── AnonymousEditDialog.cs
│   ├── AnonymousEditDialog.resx
│   ├── AnonymousItem.cs
│   ├── AuthenticationModule.cs
│   ├── AuthenticationModuleProvider.cs
│   ├── AuthenticationPage.Designer.cs
│   ├── AuthenticationPage.cs
│   ├── AuthenticationPage.resx
│   ├── BasicAuthenticationFeature.cs
│   ├── BasicEditDialog.Designer.cs
│   ├── BasicEditDialog.cs
│   ├── BasicEditDialog.resx
│   ├── BasicItem.cs
│   ├── ClientCertificateAuthenticationFeature.cs
│   ├── CredentialsDialog.Designer.cs
│   ├── CredentialsDialog.cs
│   ├── CredentialsDialog.resx
│   ├── DigestAuthenticationFeature.cs
│   ├── DigestEditDialog.Designer.cs
│   ├── DigestEditDialog.cs
│   ├── DigestEditDialog.resx
│   ├── DigestItem.cs
│   ├── FormsAuthenticationFeature.cs
│   ├── FormsEditDialog.Designer.cs
│   ├── FormsEditDialog.cs
│   ├── FormsEditDialog.resx
│   ├── FormsItem.cs
│   ├── ImpersonationEditDialog.Designer.cs
│   ├── ImpersonationEditDialog.cs
│   ├── ImpersonationEditDialog.resx
│   ├── ImpersonationFeature.cs
│   ├── ImpersonationItem.cs
│   ├── JexusManager.Features.Authentication.csproj
│   ├── JexusManager.snk
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── ProviderItem.cs
│   ├── ProvidersDialog.Designer.cs
│   ├── ProvidersDialog.cs
│   ├── ProvidersDialog.resx
│   ├── WindowsAdvancedDialog.Designer.cs
│   ├── WindowsAdvancedDialog.cs
│   ├── WindowsAdvancedDialog.resx
│   ├── WindowsAuthenticationFeature.cs
│   ├── WindowsItem.cs
│   └── app.config
├── JexusManager.Features.Authorization/
│   ├── AuthorizationFeature.cs
│   ├── AuthorizationModule.cs
│   ├── AuthorizationModuleProvider.cs
│   ├── AuthorizationPage.Designer.cs
│   ├── AuthorizationPage.cs
│   ├── AuthorizationPage.resx
│   ├── AuthorizationRule.cs
│   ├── AuthorizationSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.Authorization.csproj
│   ├── JexusManager.snk
│   ├── NewRuleDialog.Designer.cs
│   ├── NewRuleDialog.cs
│   ├── NewRuleDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.Caching/
│   ├── CachingAdvancedDialog.Designer.cs
│   ├── CachingAdvancedDialog.cs
│   ├── CachingAdvancedDialog.resx
│   ├── CachingFeature.cs
│   ├── CachingItem.cs
│   ├── CachingModule.cs
│   ├── CachingModuleProvider.cs
│   ├── CachingPage.Designer.cs
│   ├── CachingPage.cs
│   ├── CachingPage.resx
│   ├── CachingSettingsDialog.Designer.cs
│   ├── CachingSettingsDialog.cs
│   ├── CachingSettingsDialog.resx
│   ├── CachingSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.Caching.csproj
│   ├── JexusManager.snk
│   ├── NewCachingDialog.Designer.cs
│   ├── NewCachingDialog.cs
│   ├── NewCachingDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.Certificates/
│   ├── CertificatesFeature.cs
│   ├── CertificatesItem.cs
│   ├── CertificatesModule.cs
│   ├── CertificatesModuleProvider.cs
│   ├── CertificatesPage.Designer.cs
│   ├── CertificatesPage.cs
│   ├── CertificatesPage.resx
│   ├── CertificatesSettingsSavedEventHandler.cs
│   ├── CompleteRequestDialog.Designer.cs
│   ├── CompleteRequestDialog.cs
│   ├── CompleteRequestDialog.resx
│   ├── ExportCertificateDialog.Designer.cs
│   ├── ExportCertificateDialog.cs
│   ├── ExportCertificateDialog.resx
│   ├── ImportCertificateDialog.Designer.cs
│   ├── ImportCertificateDialog.cs
│   ├── ImportCertificateDialog.resx
│   ├── JexusManager.Features.Certificates.csproj
│   ├── JexusManager.snk
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── SelfCertificateDialog.Designer.cs
│   ├── SelfCertificateDialog.cs
│   ├── SelfCertificateDialog.resx
│   ├── Wizards/
│   │   ├── CertificateRenewWizard/
│   │   │   ├── CertificateRenewWizard.Designer.cs
│   │   │   ├── CertificateRenewWizard.cs
│   │   │   ├── CertificateRenewWizard.resx
│   │   │   ├── CertificateRenewWizardData.cs
│   │   │   ├── FinishPage.Designer.cs
│   │   │   ├── FinishPage.cs
│   │   │   ├── FinishPage.resx
│   │   │   ├── OptionsPage.Designer.cs
│   │   │   ├── OptionsPage.cs
│   │   │   └── OptionsPage.resx
│   │   └── CertificateRequestWizard/
│   │       ├── CertificateRequestWizard.Designer.cs
│   │       ├── CertificateRequestWizard.cs
│   │       ├── CertificateRequestWizard.resx
│   │       ├── CertificateRequestWizardData.cs
│   │       ├── FinishPage.Designer.cs
│   │       ├── FinishPage.cs
│   │       ├── FinishPage.resx
│   │       ├── KeysPage.Designer.cs
│   │       ├── KeysPage.cs
│   │       ├── KeysPage.resx
│   │       ├── PropertiesPage.Designer.cs
│   │       ├── PropertiesPage.cs
│   │       └── PropertiesPage.resx
│   └── app.config
├── JexusManager.Features.Cgi/
│   ├── CgiFeature.cs
│   ├── CgiItem.cs
│   ├── CgiModule.cs
│   ├── CgiModuleProvider.cs
│   ├── CgiPage.Designer.cs
│   ├── CgiPage.cs
│   ├── CgiPage.resx
│   ├── CgiSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.Cgi.csproj
│   ├── JexusManager.snk
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.Compression/
│   ├── CompressionFeature.cs
│   ├── CompressionModule.cs
│   ├── CompressionModuleProvider.cs
│   ├── CompressionPage.Designer.cs
│   ├── CompressionPage.cs
│   ├── CompressionPage.resx
│   ├── CompressionSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.Compression.csproj
│   ├── JexusManager.snk
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.DefaultDocument/
│   ├── DefaultDocumentFeature.cs
│   ├── DefaultDocumentModule.cs
│   ├── DefaultDocumentModuleProvider.cs
│   ├── DefaultDocumentPage.Designer.cs
│   ├── DefaultDocumentPage.cs
│   ├── DefaultDocumentPage.resx
│   ├── DefaultDocumentSettingsSavedEventHandler.cs
│   ├── DocumentItem.cs
│   ├── JexusManager.Features.DefaultDocument.csproj
│   ├── JexusManager.snk
│   ├── NewDefaultDocumentDialog.Designer.cs
│   ├── NewDefaultDocumentDialog.cs
│   ├── NewDefaultDocumentDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.DirectoryBrowse/
│   ├── DirectoryBrowseFeature.cs
│   ├── DirectoryBrowseModule.cs
│   ├── DirectoryBrowseModuleProvider.cs
│   ├── DirectoryBrowsePage.Designer.cs
│   ├── DirectoryBrowsePage.cs
│   ├── DirectoryBrowsePage.resx
│   ├── DirectoryBrowseSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.DirectoryBrowse.csproj
│   ├── JexusManager.snk
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.FastCgi/
│   ├── EnvironmentVariables.cs
│   ├── EnvironmentVariablesCollection.cs
│   ├── EnvironmentVariablesCollectionEditor.cs
│   ├── ErrorMode.cs
│   ├── FastCgiFeature.cs
│   ├── FastCgiItem.cs
│   ├── FastCgiModule.cs
│   ├── FastCgiModuleProvider.cs
│   ├── FastCgiPage.Designer.cs
│   ├── FastCgiPage.cs
│   ├── FastCgiPage.resx
│   ├── FastCgiSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.FastCgi.csproj
│   ├── JexusManager.snk
│   ├── NewApplicationDialog.Designer.cs
│   ├── NewApplicationDialog.cs
│   ├── NewApplicationDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── Protocol.cs
│   └── app.config
├── JexusManager.Features.Handlers/
│   ├── HandlersFeature.cs
│   ├── HandlersItem.cs
│   ├── HandlersModule.cs
│   ├── HandlersModuleProvider.cs
│   ├── HandlersPage.Designer.cs
│   ├── HandlersPage.cs
│   ├── HandlersPage.resx
│   ├── HandlersSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.Handlers.csproj
│   ├── JexusManager.snk
│   ├── NewHandlerDialog.Designer.cs
│   ├── NewHandlerDialog.cs
│   ├── NewHandlerDialog.resx
│   ├── NewMappingDialog.Designer.cs
│   ├── NewMappingDialog.cs
│   ├── NewMappingDialog.resx
│   ├── NewScriptMapDialog.Designer.cs
│   ├── NewScriptMapDialog.cs
│   ├── NewScriptMapDialog.resx
│   ├── NewWildcardDialog.Designer.cs
│   ├── NewWildcardDialog.cs
│   ├── NewWildcardDialog.resx
│   ├── PermissionsDialog.Designer.cs
│   ├── PermissionsDialog.cs
│   ├── PermissionsDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── RestrictionsDialog.Designer.cs
│   ├── RestrictionsDialog.cs
│   ├── RestrictionsDialog.resx
│   └── app.config
├── JexusManager.Features.HttpApi/
│   ├── HttpApiFeature.cs
│   ├── HttpApiModule.cs
│   ├── HttpApiModuleProvider.cs
│   ├── HttpApiPage.Designer.cs
│   ├── HttpApiPage.cs
│   ├── HttpApiPage.resx
│   ├── HttpApiSettingsSavedEventHandler.cs
│   ├── IHttpApiFeature.cs
│   ├── IpMappingFeature.cs
│   ├── IpMappingItem.cs
│   ├── JexusManager.Features.HttpApi.csproj
│   ├── JexusManager.snk
│   ├── NewReservedUrlDialog.Designer.cs
│   ├── NewReservedUrlDialog.cs
│   ├── NewReservedUrlDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── ReservedUrlsFeature.cs
│   ├── ReservedUrlsItem.cs
│   ├── SniMappingFeature.cs
│   ├── SniMappingItem.cs
│   └── app.config
├── JexusManager.Features.HttpErrors/
│   ├── EditDialog.Designer.cs
│   ├── EditDialog.cs
│   ├── EditDialog.resx
│   ├── HttpErrorsFeature.cs
│   ├── HttpErrorsItem.cs
│   ├── HttpErrorsModule.cs
│   ├── HttpErrorsModuleProvider.cs
│   ├── HttpErrorsPage.Designer.cs
│   ├── HttpErrorsPage.cs
│   ├── HttpErrorsPage.resx
│   ├── HttpErrorsSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.HttpErrors.csproj
│   ├── JexusManager.snk
│   ├── LocalErrorDialog.Designer.cs
│   ├── LocalErrorDialog.cs
│   ├── LocalErrorDialog.resx
│   ├── NewErrorDialog.Designer.cs
│   ├── NewErrorDialog.cs
│   ├── NewErrorDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.HttpRedirect/
│   ├── HttpRedirectFeature.cs
│   ├── HttpRedirectModule.cs
│   ├── HttpRedirectModuleProvider.cs
│   ├── HttpRedirectPage.Designer.cs
│   ├── HttpRedirectPage.cs
│   ├── HttpRedirectPage.resx
│   ├── HttpRedirectSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.HttpRedirect.csproj
│   ├── JexusManager.snk
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.IpSecurity/
│   ├── DynamicDialog.Designer.cs
│   ├── DynamicDialog.cs
│   ├── DynamicDialog.resx
│   ├── IpSecurityFeature.cs
│   ├── IpSecurityItem.cs
│   ├── IpSecurityModule.cs
│   ├── IpSecurityModuleProvider.cs
│   ├── IpSecurityPage.Designer.cs
│   ├── IpSecurityPage.cs
│   ├── IpSecurityPage.resx
│   ├── IpSecuritySettingsSavedEventHandler.cs
│   ├── JexusManager.Features.IpSecurity.csproj
│   ├── JexusManager.snk
│   ├── NewRestrictionDialog.Designer.cs
│   ├── NewRestrictionDialog.cs
│   ├── NewRestrictionDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── SetRestrictionsDialog.Designer.cs
│   ├── SetRestrictionsDialog.cs
│   ├── SetRestrictionsDialog.resx
│   └── app.config
├── JexusManager.Features.IsapiCgiRestriction/
│   ├── IsapiCgiRestrictionFeature.cs
│   ├── IsapiCgiRestrictionItem.cs
│   ├── IsapiCgiRestrictionModule.cs
│   ├── IsapiCgiRestrictionModuleProvider.cs
│   ├── IsapiCgiRestrictionPage.Designer.cs
│   ├── IsapiCgiRestrictionPage.cs
│   ├── IsapiCgiRestrictionPage.resx
│   ├── IsapiCgiRestrictionSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.IsapiCgiRestriction.csproj
│   ├── JexusManager.snk
│   ├── NewRestrictionDialog.Designer.cs
│   ├── NewRestrictionDialog.cs
│   ├── NewRestrictionDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── SettingsDialog.Designer.cs
│   ├── SettingsDialog.cs
│   ├── SettingsDialog.resx
│   └── app.config
├── JexusManager.Features.IsapiFilters/
│   ├── IsapiFiltersFeature.cs
│   ├── IsapiFiltersItem.cs
│   ├── IsapiFiltersModule.cs
│   ├── IsapiFiltersModuleProvider.cs
│   ├── IsapiFiltersPage.Designer.cs
│   ├── IsapiFiltersPage.cs
│   ├── IsapiFiltersPage.resx
│   ├── IsapiFiltersSettingsSavedEventHandler.cs
│   ├── JexusManager.Features.IsapiFilters.csproj
│   ├── JexusManager.snk
│   ├── NewFilterDialog.Designer.cs
│   ├── NewFilterDialog.cs
│   ├── NewFilterDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.Jexus/
│   ├── JexusFeature.cs
│   ├── JexusManager.Features.Jexus.csproj
│   ├── JexusManager.snk
│   ├── JexusModule.cs
│   ├── JexusModuleProvider.cs
│   ├── JexusPage.Designer.cs
│   ├── JexusPage.cs
│   ├── JexusPage.resx
│   ├── JexusSettingsSavedEventHandler.cs
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.Logging/
│   ├── AddFieldDialog.Designer.cs
│   ├── AddFieldDialog.cs
│   ├── AddFieldDialog.resx
│   ├── Fields.cs
│   ├── FieldsDialog.Designer.cs
│   ├── FieldsDialog.cs
│   ├── FieldsDialog.resx
│   ├── JexusManager.Features.Logging.csproj
│   ├── JexusManager.snk
│   ├── LoggingFeature.cs
│   ├── LoggingModule.cs
│   ├── LoggingModuleProvider.cs
│   ├── LoggingPage.Designer.cs
│   ├── LoggingPage.cs
│   ├── LoggingPage.resx
│   ├── LoggingSettingsSavedEventHandler.cs
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.MimeMap/
│   ├── JexusManager.Features.MimeMap.csproj
│   ├── JexusManager.snk
│   ├── MimeMapFeature.cs
│   ├── MimeMapItem.cs
│   ├── MimeMapModule.cs
│   ├── MimeMapModuleProvider.cs
│   ├── MimeMapPage.Designer.cs
│   ├── MimeMapPage.cs
│   ├── MimeMapPage.resx
│   ├── MimeMapSettingsSavedEventHandler.cs
│   ├── NewMapItemDialog.cs
│   ├── NewMapItemDialog.designer.cs
│   ├── NewMapItemDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.Modules/
│   ├── GlobalModule.cs
│   ├── JexusManager.Features.Modules.csproj
│   ├── JexusManager.snk
│   ├── ModulesFeature.cs
│   ├── ModulesItem.cs
│   ├── ModulesModule.cs
│   ├── ModulesModuleProvider.cs
│   ├── ModulesPage.Designer.cs
│   ├── ModulesPage.cs
│   ├── ModulesPage.resx
│   ├── ModulesSettingsSavedEventHandler.cs
│   ├── NativeModulesDialog.Designer.cs
│   ├── NativeModulesDialog.cs
│   ├── NativeModulesDialog.resx
│   ├── NewModuleDialog.Designer.cs
│   ├── NewModuleDialog.cs
│   ├── NewModuleDialog.resx
│   ├── NewNativeDialog.Designer.cs
│   ├── NewNativeDialog.cs
│   ├── NewNativeDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   └── app.config
├── JexusManager.Features.RequestFiltering/
│   ├── AppliesToItem.cs
│   ├── DenyStringsItem.cs
│   ├── FileExtensionsFeature.cs
│   ├── FileExtensionsItem.cs
│   ├── FilteringRulesFeature.cs
│   ├── FilteringRulesItem.cs
│   ├── HeadersFeature.cs
│   ├── HeadersItem.cs
│   ├── HiddenSegmentsFeature.cs
│   ├── HiddenSegmentsItem.cs
│   ├── IRequestFilteringFeature.cs
│   ├── JexusManager.Features.RequestFiltering.csproj
│   ├── JexusManager.snk
│   ├── NewExtensionDialog.Designer.cs
│   ├── NewExtensionDialog.cs
│   ├── NewExtensionDialog.resx
│   ├── NewHeaderDialog.Designer.cs
│   ├── NewHeaderDialog.cs
│   ├── NewHeaderDialog.resx
│   ├── NewHiddenSegmentDialog.Designer.cs
│   ├── NewHiddenSegmentDialog.cs
│   ├── NewHiddenSegmentDialog.resx
│   ├── NewQueryDialog.Designer.cs
│   ├── NewQueryDialog.cs
│   ├── NewQueryDialog.resx
│   ├── NewRuleDialog.Designer.cs
│   ├── NewRuleDialog.cs
│   ├── NewRuleDialog.resx
│   ├── NewUrlDialog.Designer.cs
│   ├── NewUrlDialog.cs
│   ├── NewUrlDialog.resx
│   ├── NewVerbDialog.Designer.cs
│   ├── NewVerbDialog.cs
│   ├── NewVerbDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── QueryStringsFeature.cs
│   ├── QueryStringsItem.cs
│   ├── RequestFilteringFeature.cs
│   ├── RequestFilteringModule.cs
│   ├── RequestFilteringModuleProvider.cs
│   ├── RequestFilteringPage.Designer.cs
│   ├── RequestFilteringPage.cs
│   ├── RequestFilteringPage.resx
│   ├── RequestFilteringSettingsSavedEventHandler.cs
│   ├── ScanHeadersItem.cs
│   ├── SegmentSettingsDialog.Designer.cs
│   ├── SegmentSettingsDialog.cs
│   ├── SegmentSettingsDialog.resx
│   ├── UrlsFeature.cs
│   ├── UrlsItem.cs
│   ├── VerbsFeature.cs
│   ├── VerbsItem.cs
│   └── app.config
├── JexusManager.Features.ResponseHeaders/
│   ├── JexusManager.Features.ResponseHeaders.csproj
│   ├── JexusManager.snk
│   ├── NewHeaderDialog.Designer.cs
│   ├── NewHeaderDialog.cs
│   ├── NewHeaderDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── ResponseHeadersFeature.cs
│   ├── ResponseHeadersItem.cs
│   ├── ResponseHeadersModule.cs
│   ├── ResponseHeadersModuleProvider.cs
│   ├── ResponseHeadersPage.Designer.cs
│   ├── ResponseHeadersPage.cs
│   ├── ResponseHeadersPage.resx
│   ├── ResponseHeadersSettingsSavedEventHandler.cs
│   ├── SetCommonHeadersDialog.Designer.cs
│   ├── SetCommonHeadersDialog.cs
│   ├── SetCommonHeadersDialog.resx
│   └── app.config
├── JexusManager.Features.Rewrite/
│   ├── AddProviderDialog.Designer.cs
│   ├── AddProviderDialog.cs
│   ├── AddProviderSettingDialog.Designer.cs
│   ├── AddProviderSettingDialog.cs
│   ├── ConditionItem.cs
│   ├── ConditionListViewItem.cs
│   ├── Inbound/
│   │   ├── AddAllowedVariableDialog.Designer.cs
│   │   ├── AddAllowedVariableDialog.cs
│   │   ├── AddAllowedVariableDialog.resx
│   │   ├── AddConditionDialog.Designer.cs
│   │   ├── AddConditionDialog.cs
│   │   ├── AddConditionDialog.resx
│   │   ├── AddMapDialog.Designer.cs
│   │   ├── AddMapDialog.cs
│   │   ├── AddMapDialog.resx
│   │   ├── AddMapsDialog.Designer.cs
│   │   ├── AddMapsDialog.cs
│   │   ├── AddMapsDialog.resx
│   │   ├── AddServerVariableDialog.Designer.cs
│   │   ├── AddServerVariableDialog.cs
│   │   ├── AddServerVariableDialog.resx
│   │   ├── AllowedVariableItem.cs
│   │   ├── AllowedVariablesFeature.cs
│   │   ├── InboundFeature.cs
│   │   ├── InboundRule.cs
│   │   ├── InboundRulePage.Designer.cs
│   │   ├── InboundRulePage.cs
│   │   ├── InboundRulePage.resx
│   │   ├── MapItem.cs
│   │   ├── MapPage.Designer.cs
│   │   ├── MapPage.cs
│   │   ├── MapPage.resx
│   │   ├── MapRule.cs
│   │   ├── MapSettingsDialog.Designer.cs
│   │   ├── MapSettingsDialog.cs
│   │   ├── MapSettingsDialog.resx
│   │   ├── MapSettingsUpdatedEventHandler.cs
│   │   ├── MapsFeature.cs
│   │   ├── MapsPage.Designer.cs
│   │   ├── MapsPage.cs
│   │   ├── MapsPage.resx
│   │   ├── ServerVariableItem.cs
│   │   ├── ServerVariablesPage.Designer.cs
│   │   ├── ServerVariablesPage.cs
│   │   └── ServerVariablesPage.resx
│   ├── JexusManager.Features.Rewrite.csproj
│   ├── JexusManager.snk
│   ├── NewRewriteRuleDialog.Designer.cs
│   ├── NewRewriteRuleDialog.cs
│   ├── NewRewriteRuleDialog.resx
│   ├── NewRuleBlockingDialog.Designer.cs
│   ├── NewRuleBlockingDialog.cs
│   ├── NewRuleBlockingDialog.resx
│   ├── NewRuleWithRewriteMapsDialog.Designer.cs
│   ├── NewRuleWithRewriteMapsDialog.cs
│   ├── NewRuleWithRewriteMapsDialog.resx
│   ├── Outbound/
│   │   ├── AddCustomTagDialog.Designer.cs
│   │   ├── AddCustomTagDialog.cs
│   │   ├── AddCustomTagDialog.resx
│   │   ├── AddCustomTagsDialog.Designer.cs
│   │   ├── AddCustomTagsDialog.cs
│   │   ├── AddCustomTagsDialog.resx
│   │   ├── AddPreconditionDialog.Designer.cs
│   │   ├── AddPreconditionDialog.cs
│   │   ├── AddPreconditionDialog.resx
│   │   ├── CustomTagItem.cs
│   │   ├── CustomTagsFeature.cs
│   │   ├── CustomTagsItem.cs
│   │   ├── CustomTagsPage.Designer.cs
│   │   ├── CustomTagsPage.cs
│   │   ├── CustomTagsPage.resx
│   │   ├── OutboundFeature.cs
│   │   ├── OutboundRule.cs
│   │   ├── OutboundRulePage.Designer.cs
│   │   ├── OutboundRulePage.cs
│   │   ├── OutboundRulePage.resx
│   │   ├── PreConditionItem.cs
│   │   ├── PreConditionsFeature.cs
│   │   ├── PreConditionsPage.Designer.cs
│   │   ├── PreConditionsPage.cs
│   │   └── PreConditionsPage.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── ProviderItem.cs
│   ├── ProvidersFeature.cs
│   ├── ProvidersPage.Designer.cs
│   ├── ProvidersPage.cs
│   ├── RegexTestDialog.Designer.cs
│   ├── RegexTestDialog.cs
│   ├── RegexTestDialog.resx
│   ├── Resources/
│   │   └── ProvidersPage.resx
│   ├── RewriteFeature.cs
│   ├── RewriteModule.cs
│   ├── RewriteModuleProvider.cs
│   ├── RewritePage.Designer.cs
│   ├── RewritePage.cs
│   ├── RewritePage.resx
│   ├── RewriteSettingsSavedEventHandler.cs
│   ├── RuleSettingsUpdatedEventHandler.cs
│   ├── SettingItem.cs
│   ├── SettingsFeature.cs
│   ├── SettingsPage.Designer.cs
│   ├── SettingsPage.cs
│   ├── SettingsPage.resx
│   └── app.config
├── JexusManager.Features.TraceFailedRequests/
│   ├── JexusManager.Features.TraceFailedRequests.csproj
│   ├── JexusManager.snk
│   ├── NewTraceDialog.Designer.cs
│   ├── NewTraceDialog.cs
│   ├── NewTraceDialog.resx
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── SettingsDialog.Designer.cs
│   ├── SettingsDialog.cs
│   ├── SettingsDialog.resx
│   ├── TraceFailedRequestsFeature.cs
│   ├── TraceFailedRequestsItem.cs
│   ├── TraceFailedRequestsModule.cs
│   ├── TraceFailedRequestsModuleProvider.cs
│   ├── TraceFailedRequestsPage.Designer.cs
│   ├── TraceFailedRequestsPage.cs
│   ├── TraceFailedRequestsPage.resx
│   ├── TraceFailedRequestsSettingsSavedEventHandler.cs
│   ├── Wizards/
│   │   └── AddTraceWizard/
│   │       ├── AddTraceWizard.Designer.cs
│   │       ├── AddTraceWizard.cs
│   │       ├── AddTraceWizard.resx
│   │       ├── AddTraceWizardData.cs
│   │       ├── ConditionsPage.Designer.cs
│   │       ├── ConditionsPage.cs
│   │       ├── ConditionsPage.resx
│   │       ├── ContentPage.Designer.cs
│   │       ├── ContentPage.cs
│   │       ├── ContentPage.resx
│   │       ├── Provider.cs
│   │       ├── ProvidersPage.Designer.cs
│   │       ├── ProvidersPage.cs
│   │       └── ProvidersPage.resx
│   └── app.config
├── JexusManager.Notifications/
│   ├── JexusManager.Notifications.csproj
│   ├── NotificationControl.cs
│   └── NotificationManager.cs
├── JexusManager.Notifications.Demo/
│   ├── JexusManager.Notifications.Demo.csproj
│   ├── JexusManager.Notifications.Demo.slnx
│   ├── MainForm.Designer.cs
│   ├── MainForm.cs
│   └── Program.cs
├── JexusManager.Shared/
│   ├── ApplicationExtensions.cs
│   ├── BindingUtility.cs
│   ├── CertificateInfo.cs
│   ├── ColumnClickHook.cs
│   ├── ConfigurationElementExtensions.cs
│   ├── ConfigurationSectionExtensions.cs
│   ├── DefaultWizardForm.cs
│   ├── DefaultWizardPage.cs
│   ├── DescriptionConverter.cs
│   ├── DialogHelper.cs
│   ├── Features/
│   │   ├── DefaultTaskList.cs
│   │   ├── FeatureBase.cs
│   │   ├── IDuoItem.cs
│   │   ├── IFeatureListViewItem.cs
│   │   ├── IItem.cs
│   │   ├── ScopeExtensions.cs
│   │   ├── ShowHelpTaskList.cs
│   │   ├── TaskItemExtensions.cs
│   │   └── TimeSpanExtensions.cs
│   ├── IMainForm.cs
│   ├── JexusManager.Shared.csproj
│   ├── JexusManager.snk
│   ├── NativeMethods.cs
│   ├── PhysicalDirectory.cs
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── ServerManagerExtensions.cs
│   ├── Services/
│   │   ├── ConfigurationService.cs
│   │   ├── ControlPanel.cs
│   │   ├── IConfigurationService.cs
│   │   └── ManagementUIService.cs
│   ├── StringCompareExtensions.cs
│   ├── StringUtility.cs
│   └── app.config
├── JexusManager.slnx
├── LICENSE.md
├── Microsoft.Web.Administration/
│   ├── Application.cs
│   ├── ApplicationCollection.cs
│   ├── ApplicationDefaults.cs
│   ├── ApplicationDomain.cs
│   ├── ApplicationDomainCollection.cs
│   ├── ApplicationPathValidator.cs
│   ├── ApplicationPool.cs
│   ├── ApplicationPoolCollection.cs
│   ├── ApplicationPoolCpu.cs
│   ├── ApplicationPoolDefaults.cs
│   ├── ApplicationPoolFailure.cs
│   ├── ApplicationPoolNameValidator.cs
│   ├── ApplicationPoolPeriodicRestart.cs
│   ├── ApplicationPoolProcessModel.cs
│   ├── ApplicationPoolRecycling.cs
│   ├── AspNetCoreHelper.cs
│   ├── AsyncHelper.cs
│   ├── AuthenticationLogonMethod.cs
│   ├── Binding.cs
│   ├── BindingCollection.cs
│   ├── CertificateInstallerLocator.cs
│   ├── CommonHelper.cs
│   ├── Configuration.cs
│   ├── ConfigurationAllowDefinition.cs
│   ├── ConfigurationAttribute.cs
│   ├── ConfigurationAttributeCollection.cs
│   ├── ConfigurationAttributeSchema.cs
│   ├── ConfigurationAttributeSchemaCollection.cs
│   ├── ConfigurationAttributeSchemaExtensions.cs
│   ├── ConfigurationChildElementCollection.cs
│   ├── ConfigurationCollectionSchema.cs
│   ├── ConfigurationElement.cs
│   ├── ConfigurationElementCollection.cs
│   ├── ConfigurationElementCollectionBase.cs
│   ├── ConfigurationElementSchema.cs
│   ├── ConfigurationElementSchemaCollection.cs
│   ├── ConfigurationEnumValue.cs
│   ├── ConfigurationEnumValueCollection.cs
│   ├── ConfigurationLockCollection.cs
│   ├── ConfigurationMethod.cs
│   ├── ConfigurationMethodCollection.cs
│   ├── ConfigurationMethodInstance.cs
│   ├── ConfigurationMethodSchema.cs
│   ├── ConfigurationSection.cs
│   ├── ConfigurationValidatorBase.cs
│   ├── Constants.cs
│   ├── CustomLogField.cs
│   ├── CustomLogFieldCollection.cs
│   ├── CustomLogFieldSourceType.cs
│   ├── DefaultValidator.cs
│   ├── FileContext.cs
│   ├── Helper.cs
│   ├── IFeatureDetection.cs
│   ├── IItem.cs
│   ├── IdleTimeoutAction.cs
│   ├── IisExpressServerManager.cs
│   ├── IisServerManager.cs
│   ├── IntegerRangeValidator.cs
│   ├── Jexus.snk
│   ├── JexusHelper.cs
│   ├── JexusManagerOptions.cs
│   ├── JexusServerManager.cs
│   ├── LoadBalancerCapabilities.cs
│   ├── Location.cs
│   ├── LogExtFileFlags.cs
│   ├── LogFormat.cs
│   ├── LogTargetW3C.cs
│   ├── LoggingRolloverPeriod.cs
│   ├── ManagedPipelineMode.cs
│   ├── Microsoft.Web.Administration.csproj
│   ├── NativeMethods.cs
│   ├── NativeMethods.json
│   ├── NativeMethods.txt
│   ├── NonEmptyStringValidator.cs
│   ├── ObjectState.cs
│   ├── OverrideMode.cs
│   ├── PipelineState.cs
│   ├── ProcessModelIdentityType.cs
│   ├── ProcessModelLogEventOnProcessModel.cs
│   ├── ProcessorAction.cs
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── ProtectedConfiguration.cs
│   ├── ProtectedConfigurationProvider.cs
│   ├── ProtectedConfigurationProviderCollection.cs
│   ├── ProtectedConfigurationSection.cs
│   ├── ProtectedProviderSettings.cs
│   ├── ProviderSettings.cs
│   ├── ProviderSettingsCollection.cs
│   ├── PublicNativeMethods.cs
│   ├── RecyclingLogEventOnRecycle.cs
│   ├── Request.cs
│   ├── RequestCollection.cs
│   ├── RequireTrimmedStringValidator.cs
│   ├── Resources/
│   │   ├── FX_schema.xml
│   │   ├── IIS_schema.xml
│   │   ├── original.config
│   │   └── rewrite_schema.xml
│   ├── SOCKADDR_IN.cs
│   ├── SOCKADDR_STORAGE.cs
│   ├── Schedule.cs
│   ├── ScheduleCollection.cs
│   ├── SectionDefinition.cs
│   ├── SectionDefinitionCollection.cs
│   ├── SectionGroup.cs
│   ├── SectionGroupCollection.cs
│   ├── SectionSchema.cs
│   ├── ServerManager.cs
│   ├── ServerManagerException.cs
│   ├── Site.cs
│   ├── SiteCollection.cs
│   ├── SiteDefaultProcessor.cs
│   ├── SiteDefaults.cs
│   ├── SiteLimits.cs
│   ├── SiteLogFile.cs
│   ├── SiteNameValidator.cs
│   ├── SiteTraceFailedRequestsLogging.cs
│   ├── SslFlags.cs
│   ├── StartMode.cs
│   ├── StringExtensions.cs
│   ├── TimeSpanRangeValidator.cs
│   ├── ValidatorRegistry.cs
│   ├── VirtualDirectory.cs
│   ├── VirtualDirectoryCollection.cs
│   ├── VirtualDirectoryDefaults.cs
│   ├── VirtualDirectoryPathValidator.cs
│   ├── WebConfigurationManager.cs
│   ├── WebConfigurationMap.cs
│   ├── WorkerProcess.cs
│   ├── WorkerProcessCollection.cs
│   ├── WorkerProcessState.cs
│   ├── WorkingMode.cs
│   ├── app.config
│   └── schemas/
│       └── rscaext.xml
├── Microsoft.Web.Configuration.AppHostFileProvider/
│   ├── AesEncryptionProvider.cs
│   ├── AppHostFileProvider.cs
│   ├── CngEncryptionProvider.cs
│   ├── EncodingHelper.cs
│   ├── IAppHostProvider.cs
│   ├── IAppHostProviderChangeHandler.cs
│   ├── IAppHostSite.cs
│   ├── IApplication.cs
│   ├── IApplicationPool.cs
│   ├── ICpu.cs
│   ├── ICustomField.cs
│   ├── ICustomFields.cs
│   ├── IEncryptionProvider.cs
│   ├── IEnumApplicationPool.cs
│   ├── IEnumApplications.cs
│   ├── IEnumBindings.cs
│   ├── IEnumCustomFields.cs
│   ├── IEnumEnvironmentVariables.cs
│   ├── IEnumListenerAdapter.cs
│   ├── IEnumLocation.cs
│   ├── IEnumSchedule.cs
│   ├── IEnumSite.cs
│   ├── IEnumVirtualDirectory.cs
│   ├── IEnvironmentVariable.cs
│   ├── IFailure.cs
│   ├── IListenerAdapter.cs
│   ├── ILocation.cs
│   ├── ILogSettings.cs
│   ├── IPeriodicRestart.cs
│   ├── IProcessModel.cs
│   ├── IRecycling.cs
│   ├── ISchedule.cs
│   ├── ISiteBinding.cs
│   ├── ISiteLimits.cs
│   ├── ISiteLogFile.cs
│   ├── ISiteTraceRequestsLogging.cs
│   ├── IVirtualDirectory.cs
│   ├── IWebLimits.cs
│   ├── JexusManager.snk
│   ├── LoadOptions.cs
│   ├── LoggingService.cs
│   ├── Microsoft.Web.Configuration.AppHostFileProvider.csproj
│   ├── NativeMethods.cs
│   ├── NativeMethods.json
│   ├── NativeMethods.txt
│   └── Properties/
│       └── AssemblyInfo.cs
├── Microsoft.Web.Management/
│   ├── Client/
│   │   ├── AssemblyDownloadInfo.cs
│   │   ├── Connection.cs
│   │   ├── ConnectionActiveState.cs
│   │   ├── ConnectionCredential.cs
│   │   ├── ConnectionEventArgs.cs
│   │   ├── ConnectionEventHandler.cs
│   │   ├── ConnectionInfo.cs
│   │   ├── ConnectionInfoCollection.cs
│   │   ├── ControlPanelCategorization.cs
│   │   ├── ControlPanelCategoryInfo.cs
│   │   ├── CredentialInfo.cs
│   │   ├── CredentialInfoEventArgs.cs
│   │   ├── Extensions/
│   │   │   ├── AuthenticationFeature.cs
│   │   │   ├── AuthenticationSettingsSavedEventHandler.cs
│   │   │   ├── AuthenticationType.cs
│   │   │   ├── HomepageExtension.cs
│   │   │   ├── IHomepageTaskListProvider.cs
│   │   │   ├── ProtocolProvider.cs
│   │   │   ├── ProviderFeature.cs
│   │   │   ├── SiteAction.cs
│   │   │   └── SiteUpdatedEventArgs.cs
│   │   ├── GroupTaskItem.cs
│   │   ├── HierarchyCollectionEventArgs.cs
│   │   ├── HierarchyCollectionEventHandler.cs
│   │   ├── HierarchyInfo.cs
│   │   ├── HierarchyInfoEventArgs.cs
│   │   ├── HierarchyInfoEventHandler.cs
│   │   ├── HierarchyInfoSyncSelectionEventArgs.cs
│   │   ├── HierarchyPriority.cs
│   │   ├── HierarchyProvider.cs
│   │   ├── HierarchyRenameEventArgs.cs
│   │   ├── HierarchyService.cs
│   │   ├── HierarchyVisibility.cs
│   │   ├── ICertificateVerificationBuilder.cs
│   │   ├── IConnectionBuilder.cs
│   │   ├── IConnectionManager.cs
│   │   ├── IControlPanel.cs
│   │   ├── ICredentialBuilder.cs
│   │   ├── IExtensibilityManager.cs
│   │   ├── IModuleChildPage.cs
│   │   ├── IModulePage.cs
│   │   ├── INavigationService.cs
│   │   ├── IPreferencesService.cs
│   │   ├── IPropertyEditingService.cs
│   │   ├── IPropertyEditingUser.cs
│   │   ├── IProviderConfigurationService.cs
│   │   ├── ManagementChannel.cs
│   │   ├── ManagementScopePath.cs
│   │   ├── MessageTaskItem.cs
│   │   ├── MessageTaskItemType.cs
│   │   ├── MethodTaskItemUsages.cs
│   │   ├── Module.cs
│   │   ├── ModuleHomepageAttribute.cs
│   │   ├── ModuleListPageFilter.cs
│   │   ├── ModuleListPageGrouping.cs
│   │   ├── ModuleListPageSearchField.cs
│   │   ├── ModuleListPageSearchOptions.cs
│   │   ├── ModuleListPageViewModes.cs
│   │   ├── ModulePageIdentifierAttribute.cs
│   │   ├── ModulePageInfo.cs
│   │   ├── ModuleServiceProxy.cs
│   │   ├── NavigationEventArgs.cs
│   │   ├── NavigationEventHandler.cs
│   │   ├── NavigationItem.cs
│   │   ├── PreferencesStore.cs
│   │   ├── PropertyGridObject.cs
│   │   ├── ProviderConfigurationSettings.cs
│   │   ├── TaskItem.cs
│   │   ├── TaskList.cs
│   │   ├── TaskListCollection.cs
│   │   └── Win32/
│   │       ├── BaseForm.cs
│   │       ├── BaseTaskForm.cs
│   │       ├── DialogForm.cs
│   │       ├── IManagementUIService.cs
│   │       ├── ListPageListView.cs
│   │       ├── ManagementGroupBox.cs
│   │       ├── ManagementPanel.cs
│   │       ├── ManagementTabPage.cs
│   │       ├── ManagementUIColorTable.cs
│   │       ├── MethodTaskItem.cs
│   │       ├── ModuleDialogPage.cs
│   │       ├── ModuleDialogPage.resx
│   │       ├── ModuleListPage.cs
│   │       ├── ModulePage.cs
│   │       ├── ModulePropertiesPage.cs
│   │       ├── ModulePropertiesPage.resx
│   │       ├── SortableListView.cs
│   │       ├── TaskForm.cs
│   │       ├── TextTaskItem.cs
│   │       ├── WaitCursor.cs
│   │       ├── WizardForm.cs
│   │       ├── WizardForm.resx
│   │       ├── WizardPage.cs
│   │       └── WizardPage.resx
│   ├── Features/
│   │   ├── Administrators/
│   │   │   └── AdministratorsModuleProvider.cs
│   │   ├── Delegation/
│   │   │   └── DelegationModuleProvider.cs
│   │   └── Services/
│   │       └── ServiceModuleProvider.cs
│   ├── Host/
│   │   ├── ConnectionManager.cs
│   │   ├── IManagementHost.cs
│   │   └── Shell/
│   │       ├── ShellApplication.cs
│   │       └── ShellComponents.cs
│   ├── JexusManager.snk
│   ├── Microsoft.Web.Management.csproj
│   ├── Properties/
│   │   ├── AssemblyInfo.cs
│   │   ├── Resources.Designer.cs
│   │   └── Resources.resx
│   ├── Server/
│   │   ├── AdministrationModule.cs
│   │   ├── AdministrationModuleCollection.cs
│   │   ├── AdministrationModuleProvider.cs
│   │   ├── ApplicationManagementUnit.cs
│   │   ├── BindingInfo.cs
│   │   ├── ConfigurationAuthenticationModuleService.cs
│   │   ├── ConfigurationModuleProvider.cs
│   │   ├── ConfigurationPathType.cs
│   │   ├── DelegationState.cs
│   │   ├── IAuthenticationModuleService.cs
│   │   ├── IGlobalConfigurationProvider.cs
│   │   ├── IManagementContext.cs
│   │   ├── ISiteStatusProvider.cs
│   │   ├── InvalidPasswordReason.cs
│   │   ├── ManagementAdministrationConfiguration.cs
│   │   ├── ManagementAuthentication.cs
│   │   ├── ManagementAuthenticationProvider.cs
│   │   ├── ManagementAuthorization.cs
│   │   ├── ManagementAuthorizationInfo.cs
│   │   ├── ManagementAuthorizationInfoCollection.cs
│   │   ├── ManagementAuthorizationProvider.cs
│   │   ├── ManagementConfiguration.cs
│   │   ├── ManagementConfigurationPath.cs
│   │   ├── ManagementContentNavigator.cs
│   │   ├── ManagementFrameworkVersion.cs
│   │   ├── ManagementScope.cs
│   │   ├── ManagementUnit.cs
│   │   ├── ManagementUserInfo.cs
│   │   ├── ManagementUserInfoCollection.cs
│   │   ├── ModuleDefinition.cs
│   │   ├── ModuleInfo.cs
│   │   ├── ModuleProvider.cs
│   │   ├── ModuleService.cs
│   │   ├── ModuleServiceMethodAttribute.cs
│   │   ├── PropertyBag.cs
│   │   ├── ServerManagementUnit.cs
│   │   ├── SimpleDelegatedModuleProvider.cs
│   │   ├── SiteInfo.cs
│   │   ├── SiteManagementUnit.cs
│   │   ├── TypeInformationGenerator.cs
│   │   ├── WebManagementEventLog.cs
│   │   ├── WebManagementServiceException.cs
│   │   └── WebManagementServiceHandler.cs
│   ├── Utility/
│   │   └── ServiceUtility.cs
│   └── app.config
├── Readme.md
├── Setup/
│   ├── CloseApplication.wxi
│   ├── Components64.wxi
│   ├── Components86.wxi
│   ├── ComponentsARM64.wxi
│   ├── ConfigFile.xml
│   ├── JexusManager.sln
│   ├── JexusManager.wixproj
│   ├── License.rtf
│   ├── OS.wxi
│   ├── Paths64.wxi
│   ├── Paths86.wxi
│   ├── PathsARM64.wxi
│   ├── Product.wxs
│   ├── Product_en-us.wxl
│   └── Variables.wxi
├── Tests/
│   ├── Exceptions/
│   │   ├── ServerTestCases.cs
│   │   └── SiteTestCases.cs
│   ├── GlobalSuppressions.cs
│   ├── JexusManager.snk
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── ServerManagerTestFixture.cs
│   ├── TestCases.cs
│   ├── TestHelper.cs
│   ├── Tests.csproj
│   ├── Website1/
│   │   ├── authorization.config
│   │   ├── directorybrowse.config
│   │   ├── expected.config
│   │   ├── expected1.config
│   │   ├── expected3.config
│   │   ├── index.html
│   │   └── original.config
│   ├── XmlAssert.cs
│   ├── administration.config
│   ├── app.config
│   ├── default.runsettings
│   ├── expected.config
│   ├── expected3.config
│   ├── original2.config
│   ├── original2_missing_closing.config
│   ├── schema/
│   │   ├── ASPNET_schema.xml
│   │   ├── FX_schema.xml
│   │   ├── IIS_schema.xml
│   │   ├── WebDAV_schema.xml
│   │   ├── dbmanager_schema.xml
│   │   ├── httpplatform_schema.xml
│   │   ├── rewrite_schema.xml
│   │   └── rscaext.xml
│   ├── siteconf/
│   │   ├── default
│   │   ├── default_app
│   │   └── default_app_app
│   └── xunit.runner.json
├── Tests.IIS/
│   ├── Helper.cs
│   ├── JexusManager.snk
│   ├── NativeMethods.json
│   ├── NativeMethods.txt
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── Tests.IIS.csproj
│   ├── default.runsettings
│   └── redirection.config
├── Tests.JexusManager/
│   ├── Authentication/
│   │   ├── AnonymousAuthenticationFeatureServerTestFixture.cs
│   │   ├── AnonymousAuthenticationFeatureSiteTestFixture.cs
│   │   ├── BasicAuthenticationFeatureServerTestFixture.cs
│   │   ├── BasicAuthenticationFeatureSiteTestFixture.cs
│   │   ├── ClientCertificateAuthenticationFeatureServerTestFixture.cs
│   │   ├── ClientCertificateAuthenticationFeatureSiteTestFixture.cs
│   │   ├── DigestAuthenticationFeatureServerTestFixture.cs
│   │   ├── DigestAuthenticationFeatureSiteTestFixture.cs
│   │   ├── FormsAuthenticationFeatureServerTestFixture.cs
│   │   ├── FormsAuthenticationFeatureSiteTestFixture.cs
│   │   ├── WindowsAuthenticationFeatureServerTestFixture.cs
│   │   └── WindowsAuthenticationFeatureSiteTestFixture.cs
│   ├── Authorization/
│   │   ├── AuthorizationFeatureServerTestFixture.cs
│   │   └── AuthorizationFeatureSiteTestFixture.cs
│   ├── Caching/
│   │   ├── CachingFeatureServerTestFixture.cs
│   │   └── CachingFeatureSiteTestFixture.cs
│   ├── DefaultDocument/
│   │   ├── DefaultDocumentFeatureServerTestFixture.cs
│   │   └── DefaultDocumentFeatureSiteTestFixture.cs
│   ├── DirectoryBrowse/
│   │   ├── DirectoryBrowseFeatureServerTestFixture.cs
│   │   └── DirectoryBrowseFeatureSiteTestFixture.cs
│   ├── Handlers/
│   │   ├── HandlersFeatureServerTestFixture.cs
│   │   └── HandlersFeatureSiteTestFixture.cs
│   ├── HttpErrors/
│   │   ├── HttpErrorsFeatureServerTestFixture.cs
│   │   └── HttpErrorsFeatureSiteTestFixture.cs
│   ├── IpSecurity/
│   │   ├── IpSecurityFeatureServerTestFixture.cs
│   │   └── IpSecurityFeatureSiteTestFixture.cs
│   ├── IsapiCgiRestriction/
│   │   ├── IsapiCgiRestrictionFeatureServerTestFixture.cs
│   │   └── IsapiCgiRestrictionFeatureSiteTestFixture.cs
│   ├── IsapiFilters/
│   │   ├── IsapiFiltersFeatureServerTestFixture.cs
│   │   └── IsapiFiltersFeatureSiteTestFixture.cs
│   ├── JexusManager.snk
│   ├── Main/
│   │   └── SiteTestFixture.cs
│   ├── MimeMap/
│   │   ├── MimeMapFeatureServerTestFixture.cs
│   │   └── MimeMapFeatureSiteTestFixture.cs
│   ├── Modules/
│   │   ├── ModulesFeatureServerTestFixture.cs
│   │   └── ModulesFeatureSiteTestFixture.cs
│   ├── Properties/
│   │   └── AssemblyInfo.cs
│   ├── RequestFiltering/
│   │   ├── FileExtensions/
│   │   │   ├── FileExtensionsFeatureServerTestFixture.cs
│   │   │   └── FileExtensionsFeatureSiteTestFixture.cs
│   │   ├── FilteringRules/
│   │   │   ├── FilteringRulesFeatureServerTestFixture.cs
│   │   │   └── FilteringRulesFeatureSiteTestFixture.cs
│   │   ├── Headers/
│   │   │   ├── HeadersFeatureServerTestFixture.cs
│   │   │   └── HeadersFeatureSiteTestFixture.cs
│   │   ├── HiddenSegments/
│   │   │   ├── HiddenSegmentsFeatureServerTestFixture.cs
│   │   │   └── HiddenSegmentsFeatureSiteTestFixture.cs
│   │   ├── QueryStrings/
│   │   │   ├── QueryStringsFeatureServerTestFixture.cs
│   │   │   └── QueryStringsFeatureSiteTestFixture.cs
│   │   ├── Urls/
│   │   │   ├── UrlsFeatureServerTestFixture.cs
│   │   │   └── UrlsFeatureSiteTestFixture.cs
│   │   └── Verbs/
│   │       ├── VerbsFeatureServerTestFixture.cs
│   │       └── VerbsFeatureSiteTestFixture.cs
│   ├── ResponseHeaders/
│   │   ├── ResponseHeadersFeatureServerTestFixture.cs
│   │   └── ResponseHeadersFeatureSiteTestFixture.cs
│   ├── Rewrite/
│   │   └── TestFixture.cs
│   ├── StringUtilityTestFixture.cs
│   ├── Tests.JexusManager.csproj
│   ├── TraceFailedRequests/
│   │   ├── TraceFailedRequestsFeatureServerTestFixture.cs
│   │   └── TraceFailedRequestsFeatureSiteTestFixture.cs
│   ├── Website1/
│   │   └── original.config
│   ├── XmlAssert.cs
│   ├── app.config
│   ├── original.config
│   └── xunit.runner.json
├── build.installer.bat
├── dist.all.bat
├── dist.ci.bat
├── dist.deploy.bat
├── download.dotnet.releases.ps1
├── lib/
│   ├── CheckBoxComboBox/
│   │   ├── CheckBoxComboBox.Designer.cs
│   │   ├── CheckBoxComboBox.cs
│   │   ├── CheckBoxComboBox.csproj
│   │   ├── GripBounds.cs
│   │   ├── NativeMethods.cs
│   │   ├── Popup.Designer.cs
│   │   ├── Popup.cs
│   │   ├── PopupComboBox.Designer.cs
│   │   ├── PopupComboBox.cs
│   │   ├── PopupComboBox.resx
│   │   ├── Properties/
│   │   │   └── AssemblyInfo.cs
│   │   ├── Selection Wrappers/
│   │   │   ├── ListSelectionWrapper.cs
│   │   │   └── ObjectSelectionWrapper.cs
│   │   └── test.snk
│   └── SharedAssemblyInfo.cs
├── release.ps1
├── run.installar.bat
├── sha1.ps1
├── sign.installers.ps1
├── sign.ps1
└── sign.txt
Download .txt
Showing preview only (556K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (6018 symbols across 954 files)

FILE: CertificateInstaller/ProcessExtensions.cs
  class ProcessExtensions (line 10) | internal static class ProcessExtensions
    method GetCommandLine (line 12) | public static string GetCommandLine(this Process process)

FILE: IIS.LanguageServer/Handlers/CompletionHandler.cs
  class CompletionHandler (line 7) | public class CompletionHandler
    method CompletionHandler (line 11) | public CompletionHandler(SchemaCache schemaCache)
    method GetCompletions (line 16) | public List<CompletionItem> GetCompletions(string elementPath, string ...
  class CompletionItem (line 50) | public class CompletionItem

FILE: IIS.LanguageServer/Handlers/DiagnosticsHandler.cs
  class DiagnosticsHandler (line 6) | public class DiagnosticsHandler
    method DiagnosticsHandler (line 10) | public DiagnosticsHandler(SchemaCache schemaCache)
    method ValidateDocument (line 15) | public void ValidateDocument(string documentText, string uri)

FILE: IIS.LanguageServer/Handlers/HoverHandler.cs
  class HoverHandler (line 5) | public class HoverHandler
    method HoverHandler (line 9) | public HoverHandler(SchemaCache schemaCache)
    method GetHoverInfo (line 14) | public string? GetHoverInfo(string elementPath, string? attributeName)

FILE: IIS.LanguageServer/Handlers/TextDocumentSyncHandler.cs
  class TextDocumentSyncHandler (line 7) | public class TextDocumentSyncHandler
    method TextDocumentSyncHandler (line 12) | public TextDocumentSyncHandler(SchemaCache schemaCache)
    method HandleDidOpen (line 17) | public void HandleDidOpen(string uri, string text)
    method HandleDidChange (line 23) | public void HandleDidChange(string uri, string text)
    method HandleDidClose (line 29) | public void HandleDidClose(string uri)
    method GetDocumentContent (line 34) | public string? GetDocumentContent(string uri)

FILE: IIS.LanguageServer/Language/XmlPositionAnalyzer.cs
  type XmlContext (line 8) | public record XmlContext(
  type ContextType (line 16) | public enum ContextType
  class XmlPositionAnalyzer (line 25) | public class XmlPositionAnalyzer
    method GetContext (line 27) | public static XmlContext GetContext(string documentText, int position)
    method ExtractElementPath (line 46) | private static string ExtractElementPath(string text)
    method ExtractCurrentElementName (line 73) | private static string? ExtractCurrentElementName(string text)
    method ExtractCurrentAttributeName (line 79) | private static string? ExtractCurrentAttributeName(string text)
    method ExtractCurrentAttributeValue (line 104) | private static string? ExtractCurrentAttributeValue(string text)
    method DetermineContextType (line 123) | private static ContextType DetermineContextType(string text)

FILE: IIS.LanguageServer/Schema/SchemaCache.cs
  class SchemaCache (line 8) | public class SchemaCache
    method SchemaCache (line 12) | public SchemaCache()
    method GetSectionSchema (line 18) | public XElement? GetSectionSchema(string sectionName)
    method GetAvailableSchemas (line 24) | public List<string> GetAvailableSchemas()
    method GetChildElementNames (line 29) | public List<string> GetChildElementNames(string elementPath)
    method GetAttributeNames (line 66) | public List<string> GetAttributeNames(string elementPath)
    method GetAttributeType (line 103) | public string? GetAttributeType(string elementPath, string attributeName)

FILE: IIS.LanguageServer/Schema/SchemaLoader.cs
  class SchemaLoader (line 9) | public class SchemaLoader
    method FindSchemaFiles (line 11) | public static List<string> FindSchemaFiles()
    method LoadAllSchemas (line 56) | public static Dictionary<string, XElement> LoadAllSchemas()

FILE: JexusManager.BreadCrumb.Demo/MainForm.cs
  class MainForm (line 8) | public partial class MainForm : Form
    method MainForm (line 13) | public MainForm()
    method InitializeNavigation (line 145) | private void InitializeNavigation()
    method ToolStripBreadcrumb_ItemClicked (line 159) | private void ToolStripBreadcrumb_ItemClicked(object sender, Breadcrumb...
    method Breadcrumb_ItemClicked (line 179) | private void Breadcrumb_ItemClicked(object sender, BreadcrumbItemClick...
    method NavigateButton_Click (line 191) | private void NavigateButton_Click(object sender, EventArgs e)
    method ResetButton_Click (line 224) | private void ResetButton_Click(object sender, EventArgs e)
    method UpdateContentPanel (line 229) | private void UpdateContentPanel(string content)
    method GetFullPath (line 268) | private string GetFullPath()
    method AddToNavigationHistory (line 285) | private void AddToNavigationHistory(string action)

FILE: JexusManager.BreadCrumb.Demo/Program.cs
  class Program (line 6) | internal static class Program
    method Main (line 11) | [STAThread]

FILE: JexusManager.Breadcrumb/BreadcrumbControl.cs
  class BreadcrumbControl (line 13) | [ToolboxItem(true)]
    method BreadcrumbControl (line 230) | public BreadcrumbControl()
    method Clear (line 251) | public void Clear()
    method AddItem (line 265) | public BreadcrumbItem AddItem(string text, object tag = null)
    method AddItem (line 280) | public BreadcrumbItem AddItem(string text, object tag = null, Image ic...
    method RemoveLastItem (line 291) | public void RemoveLastItem()
    method Dispose (line 307) | protected override void Dispose(bool disposing)
    method OnPaint (line 317) | protected override void OnPaint(PaintEventArgs e)
    method DrawBorder (line 526) | private void DrawBorder(Graphics g)
    method DrawScrollButtons (line 556) | private void DrawScrollButtons(Graphics g)
    method MeasureTotalItemsWidth (line 657) | private int MeasureTotalItemsWidth(Graphics g)
    method RoundedRectangle (line 687) | private GraphicsPath RoundedRectangle(Rectangle bounds, int radius)
    method OnMouseMove (line 713) | protected override void OnMouseMove(MouseEventArgs e)
    method OnMouseDown (line 766) | protected override void OnMouseDown(MouseEventArgs e)
    method OnMouseUp (line 788) | protected override void OnMouseUp(MouseEventArgs e)
    method OnMouseLeave (line 830) | protected override void OnMouseLeave(EventArgs e)
    method ScrollRight (line 851) | public void ScrollRight()
    method ScrollLeft (line 872) | public void ScrollLeft()
    method EnsureVisible (line 893) | public void EnsureVisible(int index)
    method GetFullPath (line 941) | public string GetFullPath()
    method EnterTextMode (line 964) | public void EnterTextMode()
    method ExitTextMode (line 1000) | public void ExitTextMode(bool applyChanges)
    method TryNavigateToPath (line 1025) | public bool TryNavigateToPath(string path)
    method PathTextBox_KeyDown (line 1079) | private void PathTextBox_KeyDown(object sender, KeyEventArgs e)
    method PathTextBox_LostFocus (line 1095) | private void PathTextBox_LostFocus(object sender, EventArgs e)
    method ShowDropdownMenu (line 1106) | private void ShowDropdownMenu(int itemIndex, Rectangle dropdownButtonB...
    method ContextMenu_Opening (line 1126) | private void ContextMenu_Opening(object sender, CancelEventArgs e)
    method ContextMenu_Closed (line 1178) | private void ContextMenu_Closed(object sender, ToolStripDropDownClosed...
    method DropdownMenuItem_Click (line 1186) | private void DropdownMenuItem_Click(object sender, EventArgs e)

FILE: JexusManager.Breadcrumb/BreadcrumbItem.cs
  class BreadcrumbItem (line 9) | public class BreadcrumbItem
    method BreadcrumbItem (line 45) | public BreadcrumbItem(string text, object? tag = null, Image? icon = n...
    method ToString (line 55) | public override string ToString()

FILE: JexusManager.Breadcrumb/BreadcrumbItemClickedEventArgs.cs
  class BreadcrumbItemClickedEventArgs (line 8) | public class BreadcrumbItemClickedEventArgs : EventArgs
    method BreadcrumbItemClickedEventArgs (line 25) | public BreadcrumbItemClickedEventArgs(BreadcrumbItem item, int index)

FILE: JexusManager.Breadcrumb/BreadcrumbItemEventArgs.cs
  class BreadcrumbItemEventArgs (line 8) | public class BreadcrumbItemEventArgs : EventArgs
    method BreadcrumbItemEventArgs (line 25) | public BreadcrumbItemEventArgs(BreadcrumbItem item, int index)

FILE: JexusManager.Breadcrumb/ToolStripBreadcrumbItem.cs
  class ToolStripBreadcrumbItem (line 10) | [ToolboxItem(true)]
    method ToolStripBreadcrumbItem (line 19) | public ToolStripBreadcrumbItem() : base(CreateControlInstance())
    method CreateControlInstance (line 31) | private static Control CreateControlInstance()
    method OnSubscribeControlEvents (line 72) | protected override void OnSubscribeControlEvents(Control control)
    method OnUnsubscribeControlEvents (line 86) | protected override void OnUnsubscribeControlEvents(Control control)
    method BreadcrumbControl_ItemClicked (line 98) | private void BreadcrumbControl_ItemClicked(object sender, BreadcrumbIt...
    method Clear (line 111) | public void Clear()
    method AddItem (line 122) | public BreadcrumbItem AddItem(string text, object tag = null)
    method RemoveLastItem (line 130) | public void RemoveLastItem()

FILE: JexusManager.Features.Access/AccessFeature.cs
  class AccessFeature (line 17) | internal class AccessFeature
    method AccessFeature (line 19) | public AccessFeature(Module module, ServerManager server, Application ...
    method DisplayErrorMessage (line 31) | protected void DisplayErrorMessage(Exception ex, ResourceManager resou...
    method GetService (line 37) | protected object GetService(Type type)
    method Load (line 42) | public void Load()
    method OnAccessSettingsSaved (line 53) | protected void OnAccessSettingsSaved()
    method ShowHelp (line 58) | public virtual bool ShowHelp()
    method CancelChanges (line 80) | public void CancelChanges()
    method ApplyChanges (line 85) | public bool ApplyChanges()

FILE: JexusManager.Features.Access/AccessModule.cs
  class AccessModule (line 12) | internal class AccessModule : Module
    method Initialize (line 14) | protected override void Initialize(IServiceProvider serviceProvider, M...

FILE: JexusManager.Features.Access/AccessModuleProvider.cs
  class AccessModuleProvider (line 11) | public class AccessModuleProvider : ModuleProvider
    method GetModuleDefinition (line 18) | public override ModuleDefinition GetModuleDefinition(IManagementContex...
    method SupportsScope (line 23) | public override bool SupportsScope(ManagementScope scope)

FILE: JexusManager.Features.Access/AccessPage.Designer.cs
  class AccessPage (line 6) | partial class AccessPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Access/AccessPage.cs
  class AccessPage (line 21) | internal partial class AccessPage : ModuleDialogPage
    class PageTaskList (line 23) | private sealed class PageTaskList : ShowHelpTaskList
      method PageTaskList (line 27) | public PageTaskList(AccessPage owner)
      method ShowHelp (line 32) | [Obfuscation(Exclude = true)]
    method AccessPage (line 44) | public AccessPage()
    method Initialize (line 49) | protected override void Initialize(object navigationData)
    method ShowHelp (line 60) | protected override bool ShowHelp()
    method SplitContainer1SplitterMoved (line 65) | private void SplitContainer1SplitterMoved(object sender, SplitterEvent...
    method ApplyChanges (line 73) | protected override bool ApplyChanges()
    method CancelChanges (line 101) | protected override void CancelChanges()
    method InformChanges (line 119) | private void InformChanges()
    method ClearChanges (line 130) | private void ClearChanges()
    method OnRefresh (line 150) | protected override void OnRefresh()
    method CbSslCheckedChanged (line 195) | private void CbSslCheckedChanged(object sender, EventArgs e)

FILE: JexusManager.Features.Access/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: JexusManager.Features.Asp/AspFeature.cs
  class AspFeature (line 18) | internal class AspFeature
    class FeatureTaskList (line 20) | private sealed class FeatureTaskList : TaskList
      method FeatureTaskList (line 24) | public FeatureTaskList(AspFeature owner)
      method GetTaskItems (line 29) | public override ICollection GetTaskItems()
    method AspFeature (line 35) | public AspFeature(Module module)
    method DisplayErrorMessage (line 47) | protected void DisplayErrorMessage(Exception ex, ResourceManager resou...
    method GetService (line 53) | protected object GetService(Type type)
    method GetTaskList (line 58) | public TaskList GetTaskList()
    method Load (line 63) | public void Load()
    method OnAspSettingsSaved (line 73) | protected void OnAspSettingsSaved()
    method ShowHelp (line 78) | public virtual bool ShowHelp()
    method CancelChanges (line 108) | public void CancelChanges()
    method ApplyChanges (line 113) | public bool ApplyChanges()

FILE: JexusManager.Features.Asp/AspItem.cs
  class AspItem (line 12) | internal class AspItem
    method AspItem (line 17) | public AspItem(ConfigurationElement element)
    method Apply (line 77) | public void Apply()
  class SessionProperties (line 241) | [TypeConverter(typeof(ExpandableObjectConverter))]
    method ToString (line 268) | public override string ToString()
  class ComPlusProperties (line 274) | [TypeConverter(typeof(ExpandableObjectConverter))]
    method ToString (line 319) | public override string ToString()
  class CachingProperties (line 325) | [TypeConverter(typeof(ExpandableObjectConverter))]
    method ToString (line 358) | public override string ToString()
  class DebuggingProperties (line 364) | [TypeConverter(typeof(ExpandableObjectConverter))]
    method ToString (line 421) | public override string ToString()
  class LimitsProperties (line 427) | [TypeConverter(typeof(ExpandableObjectConverter))]
    method ToString (line 472) | public override string ToString()

FILE: JexusManager.Features.Asp/AspModule.cs
  class AspModule (line 13) | internal class AspModule : Module
    method Initialize (line 15) | protected override void Initialize(IServiceProvider serviceProvider, M...

FILE: JexusManager.Features.Asp/AspModuleProvider.cs
  class AspModuleProvider (line 11) | public class AspModuleProvider : ModuleProvider
    method GetModuleDefinition (line 18) | public override ModuleDefinition GetModuleDefinition(IManagementContex...
    method SupportsScope (line 23) | public override bool SupportsScope(ManagementScope scope)

FILE: JexusManager.Features.Asp/AspPage.Designer.cs
  class AspPage (line 6) | partial class AspPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Asp/AspPage.cs
  class AspPage (line 16) | internal partial class AspPage : ModulePropertiesPage
    class PageTaskList (line 18) | private sealed class PageTaskList : ShowHelpTaskList
      method PageTaskList (line 22) | public PageTaskList(AspPage owner)
      method ShowHelp (line 27) | [Obfuscation(Exclude = true)]
    method AspPage (line 39) | public AspPage()
    method Initialize (line 44) | protected override void Initialize(object navigationData)
    method ShowHelp (line 55) | protected override bool ShowHelp()
    method SplitContainer1SplitterMoved (line 60) | private void SplitContainer1SplitterMoved(object sender, SplitterEvent...
    method ApplyChanges (line 68) | protected override bool ApplyChanges()
    method CancelChanges (line 87) | protected override void CancelChanges()
    method InformChanges (line 105) | private void InformChanges()
    method ClearChanges (line 116) | private void ClearChanges()
    method OnRefresh (line 137) | protected override void OnRefresh()
    method PgAspPropertyValueChanged (line 148) | private void PgAspPropertyValueChanged(object s, PropertyValueChangedE...
    method GetProperties (line 153) | protected override PropertyBag GetProperties()
    method UpdateProperties (line 158) | protected override PropertyBag UpdateProperties(out bool updateSuccess...
    method ProcessProperties (line 164) | protected override void ProcessProperties(PropertyBag properties)

FILE: JexusManager.Features.Asp/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: JexusManager.Features.Authentication/AnonymousAuthenticationFeature.cs
  class AnonymousAuthenticationFeature (line 21) | internal class AnonymousAuthenticationFeature : AuthenticationFeature
    class FeatureTaskList (line 23) | private sealed class FeatureTaskList : TaskList
      method FeatureTaskList (line 27) | public FeatureTaskList(AnonymousAuthenticationFeature owner)
      method GetTaskItems (line 32) | public override ICollection GetTaskItems()
      method Enable (line 49) | [Obfuscation(Exclude = true)]
      method Disable (line 55) | [Obfuscation(Exclude = true)]
      method Edit (line 61) | [Obfuscation(Exclude = true)]
    method AnonymousAuthenticationFeature (line 70) | public AnonymousAuthenticationFeature(Module module) : base(module)
    method GetTaskList (line 74) | public override TaskList GetTaskList()
    method Load (line 79) | public override void Load()
    method Enable (line 87) | public void Enable()
    method Disable (line 96) | public void Disable()
    method Edit (line 105) | private void Edit()
    method ShowHelp (line 126) | public override bool ShowHelp()

FILE: JexusManager.Features.Authentication/AnonymousEditDialog.Designer.cs
  class AnonymousEditDialog (line 6) | partial class AnonymousEditDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Authentication/AnonymousEditDialog.cs
  class AnonymousEditDialog (line 16) | public partial class AnonymousEditDialog : DialogForm
    method AnonymousEditDialog (line 18) | public AnonymousEditDialog(IServiceProvider serviceProvider, Anonymous...
    method SetButton (line 101) | private void SetButton()

FILE: JexusManager.Features.Authentication/AnonymousItem.cs
  class AnonymousItem (line 9) | public class AnonymousItem
    method AnonymousItem (line 13) | public AnonymousItem(ConfigurationElement element)
    method Apply (line 23) | public void Apply()

FILE: JexusManager.Features.Authentication/AuthenticationModule.cs
  class AuthenticationModule (line 12) | internal class AuthenticationModule : Module
    method Initialize (line 14) | protected override void Initialize(IServiceProvider serviceProvider, M...

FILE: JexusManager.Features.Authentication/AuthenticationModuleProvider.cs
  class AuthenticationModuleProvider (line 11) | public class AuthenticationModuleProvider : ModuleProvider
    method GetModuleDefinition (line 18) | public override ModuleDefinition GetModuleDefinition(IManagementContex...
    method SupportsScope (line 23) | public override bool SupportsScope(ManagementScope scope)

FILE: JexusManager.Features.Authentication/AuthenticationPage.Designer.cs
  class AuthenticationPage (line 6) | partial class AuthenticationPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Authentication/AuthenticationPage.cs
  class AuthenticationPage (line 20) | internal sealed partial class AuthenticationPage : ModuleListPage
    class PageTaskList (line 22) | private sealed class PageTaskList : ShowHelpTaskList
      method PageTaskList (line 26) | public PageTaskList(AuthenticationPage owner)
      method ShowHelp (line 31) | [Obfuscation(Exclude = true)]
    class AuthenticationListViewItem (line 38) | private sealed class AuthenticationListViewItem : ListViewItem
      method AuthenticationListViewItem (line 43) | public AuthenticationListViewItem(AuthenticationFeature feature, Aut...
      method AuthenticationSettingsUpdated (line 54) | private void AuthenticationSettingsUpdated()
      method GetString (line 60) | private string GetString(AuthenticationType authenticationType)
    method AuthenticationPage (line 81) | public AuthenticationPage()
    method Initialize (line 86) | protected override void Initialize(object navigationData)
    method InitializeListPage (line 145) | protected override void InitializeListPage()
    method ListView1SelectedIndexChanged (line 159) | private void ListView1SelectedIndexChanged(object sender, EventArgs e)
    method ShowHelp (line 164) | protected override bool ShowHelp()
    method splitContainer1_SplitterMoved (line 175) | private void splitContainer1_SplitterMoved(object sender, SplitterEven...
    method CbGroup_SelectedIndexChanged (line 183) | private void CbGroup_SelectedIndexChanged(object sender, EventArgs e)

FILE: JexusManager.Features.Authentication/BasicAuthenticationFeature.cs
  class BasicAuthenticationFeature (line 21) | internal class BasicAuthenticationFeature : AuthenticationFeature
    class FeatureTaskList (line 25) | private sealed class FeatureTaskList : TaskList
      method FeatureTaskList (line 29) | public FeatureTaskList(BasicAuthenticationFeature owner)
      method GetTaskItems (line 34) | public override ICollection GetTaskItems()
      method Enable (line 51) | [Obfuscation(Exclude = true)]
      method Disable (line 57) | [Obfuscation(Exclude = true)]
      method Edit (line 63) | [Obfuscation(Exclude = true)]
    method BasicAuthenticationFeature (line 70) | public BasicAuthenticationFeature(Module module) : base(module)
    method GetTaskList (line 74) | public override TaskList GetTaskList()
    method Load (line 79) | public override void Load()
    method Enable (line 87) | public void Enable()
    method Disable (line 96) | public void Disable()
    method Edit (line 105) | private void Edit()
    method ShowHelp (line 126) | public override bool ShowHelp()

FILE: JexusManager.Features.Authentication/BasicEditDialog.Designer.cs
  class BasicEditDialog (line 6) | partial class BasicEditDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Authentication/BasicEditDialog.cs
  class BasicEditDialog (line 16) | public partial class BasicEditDialog : DialogForm
    method BasicEditDialog (line 18) | public BasicEditDialog(IServiceProvider serviceProvider, BasicItem exi...

FILE: JexusManager.Features.Authentication/BasicItem.cs
  class BasicItem (line 9) | public class BasicItem
    method BasicItem (line 13) | public BasicItem(ConfigurationElement element)
    method Apply (line 23) | public void Apply()

FILE: JexusManager.Features.Authentication/ClientCertificateAuthenticationFeature.cs
  class ClientCertificateAuthenticationFeature (line 20) | internal class ClientCertificateAuthenticationFeature : AuthenticationFe...
    class FeatureTaskList (line 22) | private sealed class FeatureTaskList : TaskList
      method FeatureTaskList (line 26) | public FeatureTaskList(ClientCertificateAuthenticationFeature owner)
      method GetTaskItems (line 31) | public override ICollection GetTaskItems()
      method Enable (line 47) | [Obfuscation(Exclude = true)]
      method Disable (line 53) | [Obfuscation(Exclude = true)]
    method ClientCertificateAuthenticationFeature (line 62) | public ClientCertificateAuthenticationFeature(Module module) : base(mo...
    method GetTaskList (line 66) | public override TaskList GetTaskList()
    method Load (line 71) | public override void Load()
    method Enable (line 79) | public void Enable()
    method Disable (line 88) | public void Disable()
    method ShowHelp (line 102) | public override bool ShowHelp()

FILE: JexusManager.Features.Authentication/CredentialsDialog.Designer.cs
  class CredentialsDialog (line 6) | partial class CredentialsDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Authentication/CredentialsDialog.cs
  class CredentialsDialog (line 16) | public partial class CredentialsDialog : DialogForm
    method CredentialsDialog (line 18) | public CredentialsDialog(IServiceProvider serviceProvider, string name...

FILE: JexusManager.Features.Authentication/DigestAuthenticationFeature.cs
  class DigestAuthenticationFeature (line 21) | internal class DigestAuthenticationFeature : AuthenticationFeature
    class FeatureTaskList (line 25) | private sealed class FeatureTaskList : TaskList
      method FeatureTaskList (line 29) | public FeatureTaskList(DigestAuthenticationFeature owner)
      method GetTaskItems (line 34) | public override ICollection GetTaskItems()
      method Enable (line 51) | [Obfuscation(Exclude = true)]
      method Disable (line 57) | [Obfuscation(Exclude = true)]
      method Edit (line 63) | [Obfuscation(Exclude = true)]
    method DigestAuthenticationFeature (line 70) | public DigestAuthenticationFeature(Module module) : base(module)
    method GetTaskList (line 74) | public override TaskList GetTaskList()
    method Load (line 79) | public override void Load()
    method Enable (line 87) | public void Enable()
    method Disable (line 96) | public void Disable()
    method Edit (line 105) | private void Edit()
    method ShowHelp (line 126) | public override bool ShowHelp()

FILE: JexusManager.Features.Authentication/DigestEditDialog.Designer.cs
  class DigestEditDialog (line 6) | partial class DigestEditDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Authentication/DigestEditDialog.cs
  class DigestEditDialog (line 16) | public partial class DigestEditDialog : DialogForm
    method DigestEditDialog (line 18) | public DigestEditDialog(IServiceProvider serviceProvider, DigestItem i...

FILE: JexusManager.Features.Authentication/DigestItem.cs
  class DigestItem (line 9) | public class DigestItem
    method DigestItem (line 13) | public DigestItem(ConfigurationElement element)
    method Apply (line 21) | public void Apply()

FILE: JexusManager.Features.Authentication/FormsAuthenticationFeature.cs
  class FormsAuthenticationFeature (line 21) | internal class FormsAuthenticationFeature : AuthenticationFeature
    class FeatureTaskList (line 23) | private sealed class FeatureTaskList : TaskList
      method FeatureTaskList (line 27) | public FeatureTaskList(FormsAuthenticationFeature owner)
      method GetTaskItems (line 32) | public override ICollection GetTaskItems()
      method Enable (line 56) | [Obfuscation(Exclude = true)]
      method Disable (line 62) | [Obfuscation(Exclude = true)]
      method Edit (line 68) | [Obfuscation(Exclude = true)]
    method FormsAuthenticationFeature (line 77) | public FormsAuthenticationFeature(Module module)
    method GetTaskList (line 82) | public override TaskList GetTaskList()
    method Load (line 87) | public override void Load()
    method Enable (line 96) | public void Enable()
    method Disable (line 105) | public void Disable()
    method Edit (line 114) | private void Edit()
    method ShowHelp (line 134) | public override bool ShowHelp()

FILE: JexusManager.Features.Authentication/FormsEditDialog.Designer.cs
  class FormsEditDialog (line 5) | partial class FormsEditDialog
    method Dispose (line 16) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 31) | private void InitializeComponent()

FILE: JexusManager.Features.Authentication/FormsEditDialog.cs
  class FormsEditDialog (line 16) | public partial class FormsEditDialog : DialogForm
    method FormsEditDialog (line 18) | public FormsEditDialog(IServiceProvider serviceProvider, FormsItem exi...

FILE: JexusManager.Features.Authentication/FormsItem.cs
  class FormsItem (line 12) | public class FormsItem
    method FormsItem (line 16) | public FormsItem(ConfigurationElement element)
    method Apply (line 42) | public void Apply()

FILE: JexusManager.Features.Authentication/ImpersonationEditDialog.Designer.cs
  class ImpersonationEditDialog (line 6) | partial class ImpersonationEditDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Authentication/ImpersonationEditDialog.cs
  class ImpersonationEditDialog (line 16) | public partial class ImpersonationEditDialog : DialogForm
    method ImpersonationEditDialog (line 18) | public ImpersonationEditDialog(IServiceProvider serviceProvider, Imper...
    method SetButton (line 104) | private void SetButton()

FILE: JexusManager.Features.Authentication/ImpersonationFeature.cs
  class ImpersonationFeature (line 21) | internal class ImpersonationFeature : AuthenticationFeature
    class FeatureTaskList (line 23) | private sealed class FeatureTaskList : TaskList
      method FeatureTaskList (line 27) | public FeatureTaskList(ImpersonationFeature owner)
      method GetTaskItems (line 32) | public override ICollection GetTaskItems()
      method Enable (line 49) | [Obfuscation(Exclude = true)]
      method Disable (line 55) | [Obfuscation(Exclude = true)]
      method Edit (line 61) | [Obfuscation(Exclude = true)]
    method ImpersonationFeature (line 70) | public ImpersonationFeature(Module module) : base(module)
    method GetTaskList (line 74) | public override TaskList GetTaskList()
    method Load (line 79) | public override void Load()
    method Enable (line 87) | private void Enable()
    method Disable (line 96) | private void Disable()
    method Edit (line 105) | private void Edit()
    method ShowHelp (line 123) | public override bool ShowHelp()

FILE: JexusManager.Features.Authentication/ImpersonationItem.cs
  class ImpersonationItem (line 9) | public class ImpersonationItem
    method ImpersonationItem (line 13) | public ImpersonationItem(ConfigurationElement element)
    method Apply (line 23) | public void Apply()

FILE: JexusManager.Features.Authentication/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: JexusManager.Features.Authentication/ProviderItem.cs
  class ProviderItem (line 9) | public class ProviderItem
    method ProviderItem (line 13) | public ProviderItem(ConfigurationElement element)
    method Apply (line 26) | public void Apply()

FILE: JexusManager.Features.Authentication/ProvidersDialog.Designer.cs
  class ProvidersDialog (line 6) | partial class ProvidersDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Authentication/ProvidersDialog.cs
  class ProvidersDialog (line 16) | public partial class ProvidersDialog : DialogForm
    method ProvidersDialog (line 20) | public ProvidersDialog(IServiceProvider serviceProvider, WindowsItem i...

FILE: JexusManager.Features.Authentication/WindowsAdvancedDialog.Designer.cs
  class WindowsAdvancedDialog (line 6) | partial class WindowsAdvancedDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Authentication/WindowsAdvancedDialog.cs
  class WindowsAdvancedDialog (line 15) | public partial class WindowsAdvancedDialog : DialogForm
    method WindowsAdvancedDialog (line 17) | public WindowsAdvancedDialog(IServiceProvider serviceProvider, Windows...

FILE: JexusManager.Features.Authentication/WindowsAuthenticationFeature.cs
  class WindowsAuthenticationFeature (line 20) | internal class WindowsAuthenticationFeature : AuthenticationFeature
    class FeatureTaskList (line 24) | private sealed class FeatureTaskList : TaskList
      method FeatureTaskList (line 28) | public FeatureTaskList(WindowsAuthenticationFeature owner)
      method GetTaskItems (line 33) | public override ICollection GetTaskItems()
      method Enable (line 52) | [Obfuscation(Exclude = true)]
      method Disable (line 58) | [Obfuscation(Exclude = true)]
      method Edit (line 64) | [Obfuscation(Exclude = true)]
      method Providers (line 70) | [Obfuscation(Exclude = true)]
    method WindowsAuthenticationFeature (line 77) | public WindowsAuthenticationFeature(Module module) : base(module)
    method GetTaskList (line 81) | public override TaskList GetTaskList()
    method Load (line 86) | public override void Load()
    method Enable (line 94) | public void Enable()
    method Disable (line 103) | public void Disable()
    method Edit (line 112) | private void Edit()
    method Providers (line 128) | private void Providers()
    method ShowHelp (line 149) | public override bool ShowHelp()

FILE: JexusManager.Features.Authentication/WindowsItem.cs
  class WindowsItem (line 12) | public class WindowsItem
    method WindowsItem (line 16) | public WindowsItem(ConfigurationElement element)
    method Apply (line 36) | public void Apply()

FILE: JexusManager.Features.Authorization/AuthorizationFeature.cs
  class AuthorizationFeature (line 33) | internal class AuthorizationFeature : FeatureBase<AuthorizationRule>
    class FeatureTaskList (line 35) | private sealed class FeatureTaskList : DefaultTaskList
      method FeatureTaskList (line 39) | public FeatureTaskList(AuthorizationFeature owner)
      method GetTaskItems (line 44) | public override ICollection GetTaskItems()
      method AddAllow (line 59) | [Obfuscation(Exclude = true)]
      method AddDeny (line 65) | [Obfuscation(Exclude = true)]
      method Remove (line 71) | [Obfuscation(Exclude = true)]
      method Set (line 77) | [Obfuscation(Exclude = true)]
    method AuthorizationFeature (line 84) | public AuthorizationFeature(Module module)
    method GetTaskList (line 95) | public TaskList GetTaskList()
    method GetCollection (line 100) | protected override ConfigurationElementCollection GetCollection(IConfi...
    method Load (line 106) | public void Load()
    method AddAllow (line 111) | public void AddAllow()
    method AddDeny (line 122) | public void AddDeny()
    method Remove (line 133) | public void Remove()
    method Edit (line 147) | public void Edit()
    method OnSettingsSaved (line 158) | protected override void OnSettingsSaved()
    method ShowHelp (line 163) | public virtual bool ShowHelp()

FILE: JexusManager.Features.Authorization/AuthorizationModule.cs
  class AuthorizationModule (line 12) | internal class AuthorizationModule : Module
    method Initialize (line 14) | protected override void Initialize(IServiceProvider serviceProvider, M...

FILE: JexusManager.Features.Authorization/AuthorizationModuleProvider.cs
  class AuthorizationModuleProvider (line 11) | public class AuthorizationModuleProvider : ModuleProvider
    method GetModuleDefinition (line 18) | public override ModuleDefinition GetModuleDefinition(IManagementContex...
    method SupportsScope (line 23) | public override bool SupportsScope(ManagementScope scope)

FILE: JexusManager.Features.Authorization/AuthorizationPage.Designer.cs
  class AuthorizationPage (line 6) | partial class AuthorizationPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Authorization/AuthorizationPage.cs
  class AuthorizationPage (line 18) | internal partial class AuthorizationPage : ModuleListPage
    class PageTaskList (line 20) | private sealed class PageTaskList : ShowHelpTaskList
      method PageTaskList (line 24) | public PageTaskList(AuthorizationPage owner)
      method ShowHelp (line 29) | [Obfuscation(Exclude = true)]
    class AuthorizationListViewItem (line 36) | private sealed class AuthorizationListViewItem : ListViewItem, IFeatur...
      method AuthorizationListViewItem (line 42) | public AuthorizationListViewItem(AuthorizationRule item, Authorizati...
    method AuthorizationPage (line 57) | public AuthorizationPage()
    method Initialize (line 70) | protected override void Initialize(object navigationData)
    method InitializeListPage (line 81) | protected override void InitializeListPage()
    method Refresh (line 106) | protected override void Refresh()
    method ListView1_KeyDown (line 112) | private void ListView1_KeyDown(object sender, KeyEventArgs e)
    method ListView1_MouseDoubleClick (line 120) | private void ListView1_MouseDoubleClick(object sender, MouseEventArgs e)
    method ListView1_SelectedIndexChanged (line 125) | private void ListView1_SelectedIndexChanged(object sender, EventArgs e)
    method ShowHelp (line 131) | protected override bool ShowHelp()

FILE: JexusManager.Features.Authorization/AuthorizationRule.cs
  class AuthorizationRule (line 9) | internal class AuthorizationRule : IItem<AuthorizationRule>
    method AuthorizationRule (line 11) | public AuthorizationRule(ConfigurationElement element)
    method Equals (line 47) | public bool Equals(AuthorizationRule other)
    method Apply (line 53) | public void Apply()
    method Match (line 61) | public bool Match(AuthorizationRule other)

FILE: JexusManager.Features.Authorization/NewRuleDialog.Designer.cs
  class NewRuleDialog (line 6) | sealed partial class NewRuleDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Authorization/NewRuleDialog.cs
  class NewRuleDialog (line 16) | internal sealed partial class NewRuleDialog : DialogForm
    method NewRuleDialog (line 18) | public NewRuleDialog(IServiceProvider serviceProvider, AuthorizationRu...

FILE: JexusManager.Features.Authorization/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: JexusManager.Features.Caching/CachingAdvancedDialog.Designer.cs
  class CachingAdvancedDialog (line 6) | internal partial class CachingAdvancedDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Caching/CachingAdvancedDialog.cs
  class CachingAdvancedDialog (line 15) | internal partial class CachingAdvancedDialog : DialogForm
    method CachingAdvancedDialog (line 17) | public CachingAdvancedDialog(IServiceProvider serviceProvider, Caching...

FILE: JexusManager.Features.Caching/CachingFeature.cs
  class CachingFeature (line 33) | internal class CachingFeature : FeatureBase<CachingItem>
    class FeatureTaskList (line 35) | private sealed class FeatureTaskList : DefaultTaskList
      method FeatureTaskList (line 39) | public FeatureTaskList(CachingFeature owner)
      method GetTaskItems (line 44) | public override ICollection GetTaskItems()
      method Add (line 60) | [Obfuscation(Exclude = true)]
      method Remove (line 66) | [Obfuscation(Exclude = true)]
      method Edit (line 72) | [Obfuscation(Exclude = true)]
      method Set (line 78) | [Obfuscation(Exclude = true)]
    method CachingFeature (line 85) | public CachingFeature(Module module)
    method GetTaskList (line 96) | public TaskList GetTaskList()
    method Load (line 101) | public void Load()
    method Add (line 106) | public void Add()
    method Set (line 117) | public void Set()
    method Remove (line 133) | public void Remove()
    method Edit (line 147) | public void Edit()
    method DoubleClick (line 152) | protected override void DoubleClick(CachingItem item)
    method InitializeGrouping (line 163) | public override void InitializeGrouping(ToolStripComboBox cbGroup)
    method GetGroupKey (line 168) | public override string GetGroupKey(ListViewItem item, string selectedG...
    method GetCollection (line 179) | protected override ConfigurationElementCollection GetCollection(IConfi...
    method OnSettingsSaved (line 185) | protected override void OnSettingsSaved()
    method ShowHelp (line 190) | public virtual bool ShowHelp()

FILE: JexusManager.Features.Caching/CachingItem.cs
  class CachingItem (line 11) | internal class CachingItem : IItem<CachingItem>
    method CachingItem (line 13) | public CachingItem(ConfigurationElement element)
    method Equals (line 47) | public bool Equals(CachingItem other)
    method Apply (line 53) | public void Apply()
    method Match (line 63) | public bool Match(CachingItem other)

FILE: JexusManager.Features.Caching/CachingModule.cs
  class CachingModule (line 12) | internal class CachingModule : Module
    method Initialize (line 14) | protected override void Initialize(IServiceProvider serviceProvider, M...

FILE: JexusManager.Features.Caching/CachingModuleProvider.cs
  class CachingModuleProvider (line 11) | public class CachingModuleProvider : ModuleProvider
    method GetModuleDefinition (line 18) | public override ModuleDefinition GetModuleDefinition(IManagementContex...
    method SupportsScope (line 23) | public override bool SupportsScope(ManagementScope scope)

FILE: JexusManager.Features.Caching/CachingPage.Designer.cs
  class CachingPage (line 6) | partial class CachingPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Caching/CachingPage.cs
  class CachingPage (line 18) | internal partial class CachingPage : ModuleListPage
    class PageTaskList (line 20) | private sealed class PageTaskList : ShowHelpTaskList
      method PageTaskList (line 24) | public PageTaskList(CachingPage owner)
      method ShowHelp (line 29) | [Obfuscation(Exclude = true)]
    class CachingListViewItem (line 36) | private sealed class CachingListViewItem : ListViewItem, IFeatureListV...
      method CachingListViewItem (line 42) | public CachingListViewItem(CachingItem item, CachingPage page)
      method ToString (line 52) | private static string ToString(long policy)
    method CachingPage (line 73) | public CachingPage()
    method Initialize (line 78) | protected override void Initialize(object navigationData)
    method InitializeListPage (line 89) | protected override void InitializeListPage()
    method Refresh (line 115) | protected override void Refresh()
    method ListView1KeyDown (line 121) | private void ListView1KeyDown(object sender, KeyEventArgs e)
    method ListView1MouseDoubleClick (line 129) | private void ListView1MouseDoubleClick(object sender, MouseEventArgs e)
    method ListView1SelectedIndexChanged (line 134) | private void ListView1SelectedIndexChanged(object sender, EventArgs e)
    method CbGroupSelectedIndexChanged (line 140) | private void CbGroupSelectedIndexChanged(object sender, EventArgs e)
    method ShowHelp (line 148) | protected override bool ShowHelp()

FILE: JexusManager.Features.Caching/CachingSettingsDialog.Designer.cs
  class CachingSettingsDialog (line 6) | internal partial class CachingSettingsDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Caching/CachingSettingsDialog.cs
  class CachingSettingsDialog (line 16) | internal partial class CachingSettingsDialog : DialogForm
    method CachingSettingsDialog (line 18) | public CachingSettingsDialog(IServiceProvider serviceProvider, Configu...

FILE: JexusManager.Features.Caching/NewCachingDialog.Designer.cs
  class NewCachingDialog (line 6) | sealed partial class NewCachingDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Caching/NewCachingDialog.cs
  class NewCachingDialog (line 17) | internal sealed partial class NewCachingDialog : DialogForm
    method NewCachingDialog (line 19) | public NewCachingDialog(IServiceProvider serviceProvider, CachingItem ...

FILE: JexusManager.Features.Caching/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: JexusManager.Features.Certificates/CertificatesFeature.cs
  class CertificatesFeature (line 34) | public class CertificatesFeature : FeatureBase<CertificatesItem>
    class FeatureTaskList (line 38) | private sealed class FeatureTaskList : DefaultTaskList
      method FeatureTaskList (line 42) | public FeatureTaskList(CertificatesFeature owner)
      method GetTaskItems (line 50) | public override ICollection GetTaskItems()
      method Import (line 143) | [Obfuscation(Exclude = true)]
      method View (line 149) | [Obfuscation(Exclude = true)]
      method Export (line 155) | [Obfuscation(Exclude = true)]
      method Renew (line 161) | [Obfuscation(Exclude = true)]
      method Remove (line 167) | [Obfuscation(Exclude = true)]
      method CreateRequest (line 173) | [Obfuscation(Exclude = true)]
      method Complete (line 179) | [Obfuscation(Exclude = true)]
      method CreateDomain (line 185) | [Obfuscation(Exclude = true)]
      method CreateSelf (line 191) | [Obfuscation(Exclude = true)]
      method Enable (line 197) | [Obfuscation(Exclude = true)]
      method Disable (line 203) | [Obfuscation(Exclude = true)]
      method Trust (line 209) | [Obfuscation(Exclude = true)]
    method CertificatesFeature (line 216) | public CertificatesFeature(Microsoft.Web.Management.Client.Module module)
    method GetTaskList (line 227) | public TaskList GetTaskList()
    method Load (line 232) | public void Load()
    method Import (line 284) | public void Import()
    method Remove (line 298) | public void Remove()
    method DeleteCertificate (line 312) | private void DeleteCertificate()
    method OnCertificatesSettingsSaved (line 355) | protected void OnCertificatesSettingsSaved()
    method ShowHelp (line 360) | public virtual bool ShowHelp()
    method Disable (line 366) | private void Disable()
    method Enable (line 370) | private void Enable()
    method CreateSelf (line 374) | private void CreateSelf()
    method CreateDomain (line 388) | private void CreateDomain()
    method Complete (line 392) | private void Complete()
    method CreateRequest (line 406) | private void CreateRequest()
    method Export (line 412) | private void Export()
    method Renew (line 418) | private void Renew()
    method View (line 424) | internal void View()
    method DoubleClick (line 429) | protected override void DoubleClick(CertificatesItem item)
    method InitializeGrouping (line 434) | public override void InitializeGrouping(ToolStripComboBox cbGroup)
    method GetGroupKey (line 439) | public override string GetGroupKey(ListViewItem item, string selectedG...
    method Trust (line 454) | private void Trust()
    method GetCollection (line 483) | protected override ConfigurationElementCollection GetCollection(IConfi...
    method OnSettingsSaved (line 488) | protected override void OnSettingsSaved()

FILE: JexusManager.Features.Certificates/CertificatesItem.cs
  class CertificatesItem (line 10) | public class CertificatesItem : IItem<CertificatesItem>
    method CertificatesItem (line 12) | public CertificatesItem(X509Certificate2 certificate, string store, Ce...
    method Apply (line 25) | public void Apply()
    method Equals (line 29) | public bool Equals(CertificatesItem other)
    method Equals (line 34) | public bool Equals(X509Certificate2 other)
    method Match (line 39) | public bool Match(CertificatesItem other)

FILE: JexusManager.Features.Certificates/CertificatesModule.cs
  class CertificatesModule (line 13) | internal class CertificatesModule : Module
    method Initialize (line 15) | protected override void Initialize(IServiceProvider serviceProvider, M...

FILE: JexusManager.Features.Certificates/CertificatesModuleProvider.cs
  class CertificatesModuleProvider (line 11) | public class CertificatesModuleProvider : ModuleProvider
    method GetModuleDefinition (line 18) | public override ModuleDefinition GetModuleDefinition(IManagementContex...
    method SupportsScope (line 23) | public override bool SupportsScope(ManagementScope scope)

FILE: JexusManager.Features.Certificates/CertificatesPage.Designer.cs
  class CertificatesPage (line 6) | partial class CertificatesPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Certificates/CertificatesPage.cs
  class CertificatesPage (line 19) | public partial class CertificatesPage : ModuleListPage
    class PageTaskList (line 21) | private sealed class PageTaskList : ShowHelpTaskList
      method PageTaskList (line 25) | public PageTaskList(CertificatesPage owner)
      method ShowHelp (line 30) | [Obfuscation(Exclude = true)]
    class CertificatesListViewItem (line 37) | private sealed class CertificatesListViewItem : ListViewItem, IFeature...
      method CertificatesListViewItem (line 42) | public CertificatesListViewItem(CertificatesItem item, CertificatesP...
    method CertificatesPage (line 58) | public CertificatesPage()
    method Initialize (line 65) | protected override void Initialize(object navigationData)
    method InitializeListPage (line 76) | protected override void InitializeListPage()
    method Refresh (line 102) | protected override void Refresh()
    method ListView1_KeyDown (line 108) | private void ListView1_KeyDown(object sender, KeyEventArgs e)
    method ListView1_MouseDoubleClick (line 116) | private void ListView1_MouseDoubleClick(object sender, MouseEventArgs e)
    method listView1_SelectedIndexChanged (line 121) | private void listView1_SelectedIndexChanged(object sender, EventArgs e)
    method CbGroup_SelectedIndexChanged (line 127) | private void CbGroup_SelectedIndexChanged(object sender, EventArgs e)
    method ShowHelp (line 132) | protected override bool ShowHelp()
    method splitContainer1_SplitterMoved (line 138) | private void splitContainer1_SplitterMoved(object sender, SplitterEven...

FILE: JexusManager.Features.Certificates/CompleteRequestDialog.Designer.cs
  class CompleteRequestDialog (line 6) | partial class CompleteRequestDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Certificates/CompleteRequestDialog.cs
  class CompleteRequestDialog (line 25) | public partial class CompleteRequestDialog : DialogForm
    method CompleteRequestDialog (line 29) | public CompleteRequestDialog(IServiceProvider serviceProvider, Certifi...
    method Install (line 135) | private void Install(string p12File, string p12pwd)

FILE: JexusManager.Features.Certificates/ExportCertificateDialog.Designer.cs
  class ExportCertificateDialog (line 6) | partial class ExportCertificateDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Certificates/ExportCertificateDialog.cs
  class ExportCertificateDialog (line 17) | internal partial class ExportCertificateDialog : DialogForm
    method ExportCertificateDialog (line 19) | public ExportCertificateDialog(X509Certificate certificate2, IServiceP...

FILE: JexusManager.Features.Certificates/ImportCertificateDialog.Designer.cs
  class ImportCertificateDialog (line 6) | partial class ImportCertificateDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Certificates/ImportCertificateDialog.cs
  class ImportCertificateDialog (line 31) | internal partial class ImportCertificateDialog : DialogForm
    method ImportCertificateDialog (line 35) | public ImportCertificateDialog(IServiceProvider serviceProvider, Certi...
    method Install (line 136) | private void Install(string fileName, string password)

FILE: JexusManager.Features.Certificates/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: JexusManager.Features.Certificates/SelfCertificateDialog.Designer.cs
  class SelfCertificateDialog (line 6) | partial class SelfCertificateDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Certificates/SelfCertificateDialog.cs
  class SelfCertificateDialog (line 34) | internal partial class SelfCertificateDialog : DialogForm
    method SelfCertificateDialog (line 38) | public SelfCertificateDialog(IServiceProvider serviceProvider, Certifi...

FILE: JexusManager.Features.Certificates/Wizards/CertificateRenewWizard/CertificateRenewWizard.Designer.cs
  class CertificateRenewWizard (line 5) | partial class CertificateRenewWizard
    method Dispose (line 16) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 31) | private void InitializeComponent()

FILE: JexusManager.Features.Certificates/Wizards/CertificateRenewWizard/CertificateRenewWizard.cs
  class CertificateRenewWizard (line 23) | internal partial class CertificateRenewWizard : DefaultWizardForm
    method CertificateRenewWizard (line 29) | public CertificateRenewWizard(X509Certificate2 existing, IServiceProvi...
    method CompleteWizard (line 43) | protected override void CompleteWizard()
    method GetWizardPages (line 171) | protected override WizardPage[] GetWizardPages()
    method ShowHelp (line 180) | protected override void ShowHelp()

FILE: JexusManager.Features.Certificates/Wizards/CertificateRenewWizard/CertificateRenewWizardData.cs
  class CertificateRenewWizardData (line 7) | internal class CertificateRenewWizardData

FILE: JexusManager.Features.Certificates/Wizards/CertificateRenewWizard/FinishPage.Designer.cs
  class FinishPage (line 6) | partial class FinishPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Certificates/Wizards/CertificateRenewWizard/FinishPage.cs
  class FinishPage (line 9) | public partial class FinishPage : DefaultWizardPage
    method FinishPage (line 13) | public FinishPage()
    method txtPath_TextChanged (line 20) | private void txtPath_TextChanged(object sender, EventArgs e)
    method Activate (line 31) | protected override void Activate()
    method btnBrowse_Click (line 41) | private void btnBrowse_Click(object sender, EventArgs e)
    method FileStyle_Changed (line 46) | private void FileStyle_Changed(object sender, EventArgs e)

FILE: JexusManager.Features.Certificates/Wizards/CertificateRenewWizard/OptionsPage.Designer.cs
  class OptionsPage (line 6) | partial class OptionsPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Certificates/Wizards/CertificateRenewWizard/OptionsPage.cs
  class OptionsPage (line 9) | public partial class OptionsPage : DefaultWizardPage
    method OptionsPage (line 11) | public OptionsPage()
    method Option_Click (line 17) | private void Option_Click(object sender, EventArgs e)

FILE: JexusManager.Features.Certificates/Wizards/CertificateRequestWizard/CertificateRequestWizard.Designer.cs
  class CertificateRequestWizard (line 5) | partial class CertificateRequestWizard
    method Dispose (line 16) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 31) | private void InitializeComponent()

FILE: JexusManager.Features.Certificates/Wizards/CertificateRequestWizard/CertificateRequestWizard.cs
  class CertificateRequestWizard (line 25) | internal partial class CertificateRequestWizard : DefaultWizardForm
    method CertificateRequestWizard (line 30) | public CertificateRequestWizard(IServiceProvider serviceProvider, Cert...
    method CompleteWizard (line 43) | protected override void CompleteWizard()
    method GetWizardPages (line 181) | protected override WizardPage[] GetWizardPages()
    method ShowHelp (line 196) | protected override void ShowHelp()

FILE: JexusManager.Features.Certificates/Wizards/CertificateRequestWizard/CertificateRequestWizardData.cs
  class CertificateRequestWizardData (line 7) | internal class CertificateRequestWizardData

FILE: JexusManager.Features.Certificates/Wizards/CertificateRequestWizard/FinishPage.Designer.cs
  class FinishPage (line 6) | partial class FinishPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Certificates/Wizards/CertificateRequestWizard/FinishPage.cs
  class FinishPage (line 10) | public partial class FinishPage : DefaultWizardPage
    method FinishPage (line 14) | public FinishPage()
    method txtPath_TextChanged (line 21) | private void txtPath_TextChanged(object sender, EventArgs e)
    method Activate (line 32) | protected override void Activate()
    method btnBrowse_Click (line 42) | private void btnBrowse_Click(object sender, EventArgs e)
    method FileStyle_Changed (line 47) | private void FileStyle_Changed(object sender, EventArgs e)

FILE: JexusManager.Features.Certificates/Wizards/CertificateRequestWizard/KeysPage.Designer.cs
  class KeysPage (line 6) | partial class KeysPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Certificates/Wizards/CertificateRequestWizard/KeysPage.cs
  class KeysPage (line 9) | public partial class KeysPage : DefaultWizardPage
    method KeysPage (line 11) | public KeysPage()
    method Activate (line 17) | protected override void Activate()
    method CbProviderSelectedIndexChanged (line 24) | private void CbProviderSelectedIndexChanged(object sender, EventArgs e)
    method CbLengthSelectedIndexChanged (line 46) | private void CbLengthSelectedIndexChanged(object sender, EventArgs e)

FILE: JexusManager.Features.Certificates/Wizards/CertificateRequestWizard/PropertiesPage.Designer.cs
  class PropertiesPage (line 6) | partial class PropertiesPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Certificates/Wizards/CertificateRequestWizard/PropertiesPage.cs
  class PropertiesPage (line 15) | public partial class PropertiesPage : DefaultWizardPage
    method PropertiesPage (line 17) | public PropertiesPage()
    method txtCommonName_TextChanged (line 37) | private void txtCommonName_TextChanged(object sender, EventArgs e)
    method Activate (line 44) | protected override void Activate()
    method txtOrganization_TextChanged (line 51) | private void txtOrganization_TextChanged(object sender, EventArgs e)
    method txtUnit_TextChanged (line 58) | private void txtUnit_TextChanged(object sender, EventArgs e)
    method txtCity_TextChanged (line 65) | private void txtCity_TextChanged(object sender, EventArgs e)
    method txtState_TextChanged (line 72) | private void txtState_TextChanged(object sender, EventArgs e)
    method cbCountry_TextChanged (line 79) | private void cbCountry_TextChanged(object sender, EventArgs e)
    method PropertiesPage_Load (line 86) | private void PropertiesPage_Load(object sender, EventArgs e)

FILE: JexusManager.Features.Cgi/CgiFeature.cs
  class CgiFeature (line 18) | internal class CgiFeature
    class FeatureTaskList (line 20) | private sealed class FeatureTaskList : TaskList
      method FeatureTaskList (line 24) | public FeatureTaskList(CgiFeature owner)
      method GetTaskItems (line 29) | public override ICollection GetTaskItems()
    method CgiFeature (line 35) | public CgiFeature(Module module)
    method DisplayErrorMessage (line 47) | protected void DisplayErrorMessage(Exception ex, ResourceManager resou...
    method GetService (line 53) | protected object GetService(Type type)
    method GetTaskList (line 58) | public TaskList GetTaskList()
    method Load (line 63) | public void Load()
    method OnCgiSettingsSaved (line 73) | protected void OnCgiSettingsSaved()
    method ShowHelp (line 78) | public virtual bool ShowHelp()
    method CancelChanges (line 108) | public void CancelChanges()
    method ApplyChanges (line 113) | public bool ApplyChanges()

FILE: JexusManager.Features.Cgi/CgiItem.cs
  class CgiItem (line 12) | internal class CgiItem
    method CgiItem (line 17) | public CgiItem(ConfigurationElement element)
    method Apply (line 25) | public void Apply()

FILE: JexusManager.Features.Cgi/CgiModule.cs
  class CgiModule (line 13) | internal class CgiModule : Module
    method Initialize (line 15) | protected override void Initialize(IServiceProvider serviceProvider, M...

FILE: JexusManager.Features.Cgi/CgiModuleProvider.cs
  class CgiModuleProvider (line 11) | public class CgiModuleProvider : ModuleProvider
    method GetModuleDefinition (line 18) | public override ModuleDefinition GetModuleDefinition(IManagementContex...
    method SupportsScope (line 23) | public override bool SupportsScope(ManagementScope scope)

FILE: JexusManager.Features.Cgi/CgiPage.Designer.cs
  class CgiPage (line 6) | partial class CgiPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Cgi/CgiPage.cs
  class CgiPage (line 18) | internal partial class CgiPage : ModulePropertiesPage
    class PageTaskList (line 20) | private sealed class PageTaskList : ShowHelpTaskList
      method PageTaskList (line 24) | public PageTaskList(CgiPage owner)
      method ShowHelp (line 29) | [Obfuscation(Exclude = true)]
    method CgiPage (line 41) | public CgiPage()
    method Initialize (line 46) | protected override void Initialize(object navigationData)
    method ShowHelp (line 57) | protected override bool ShowHelp()
    method SplitContainer1SplitterMoved (line 62) | private void SplitContainer1SplitterMoved(object sender, SplitterEvent...
    method ApplyChanges (line 70) | protected override bool ApplyChanges()
    method CancelChanges (line 81) | protected override void CancelChanges()
    method InformChanges (line 99) | private void InformChanges()
    method ClearChanges (line 110) | private void ClearChanges()
    method OnRefresh (line 131) | protected override void OnRefresh()
    method PgCgiPropertyValueChanged (line 142) | private void PgCgiPropertyValueChanged(object s, PropertyValueChangedE...
    method GetProperties (line 147) | protected override PropertyBag GetProperties()
    method UpdateProperties (line 152) | protected override PropertyBag UpdateProperties(out bool updateSuccess...
    method ProcessProperties (line 158) | protected override void ProcessProperties(PropertyBag properties)

FILE: JexusManager.Features.Cgi/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: JexusManager.Features.Compression/CompressionFeature.cs
  class CompressionFeature (line 18) | internal class CompressionFeature
    method CompressionFeature (line 20) | public CompressionFeature(Module module)
    method DisplayErrorMessage (line 30) | protected void DisplayErrorMessage(Exception ex, ResourceManager resou...
    method GetService (line 36) | protected object GetService(Type type)
    method Load (line 41) | public void Load()
    method OnCompressionSettingsSaved (line 62) | protected void OnCompressionSettingsSaved()
    method ShowHelp (line 67) | public virtual bool ShowHelp()
    method CancelChanges (line 108) | public void CancelChanges()
    method ApplyChanges (line 113) | public bool ApplyChanges()

FILE: JexusManager.Features.Compression/CompressionModule.cs
  class CompressionModule (line 13) | internal class CompressionModule : Module
    method Initialize (line 15) | protected override void Initialize(IServiceProvider serviceProvider, M...

FILE: JexusManager.Features.Compression/CompressionModuleProvider.cs
  class CompressionModuleProvider (line 11) | public class CompressionModuleProvider : ModuleProvider
    method GetModuleDefinition (line 18) | public override ModuleDefinition GetModuleDefinition(IManagementContex...
    method SupportsScope (line 23) | public override bool SupportsScope(ManagementScope scope)

FILE: JexusManager.Features.Compression/CompressionPage.Designer.cs
  class CompressionPage (line 6) | partial class CompressionPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Compression/CompressionPage.cs
  class CompressionPage (line 17) | internal partial class CompressionPage : ModuleDialogPage
    class PageTaskList (line 19) | private sealed class PageTaskList : ShowHelpTaskList
      method PageTaskList (line 23) | public PageTaskList(CompressionPage owner)
      method ShowHelp (line 28) | [Obfuscation(Exclude = true)]
    method CompressionPage (line 40) | public CompressionPage()
    method Initialize (line 45) | protected override void Initialize(object navigationData)
    method ShowHelp (line 56) | protected override bool ShowHelp()
    method splitContainer1_SplitterMoved (line 61) | private void splitContainer1_SplitterMoved(object sender, SplitterEven...
    method cbStatic_CheckedChanged (line 69) | private void cbStatic_CheckedChanged(object sender, EventArgs e)
    method cbDynamic_CheckedChanged (line 75) | private void cbDynamic_CheckedChanged(object sender, EventArgs e)
    method btnBrowse_Click (line 81) | private void btnBrowse_Click(object sender, EventArgs e)
    method cbFileSize_CheckedChanged (line 88) | private void cbFileSize_CheckedChanged(object sender, EventArgs e)
    method cbDiskspaceLimit_CheckedChanged (line 94) | private void cbDiskspaceLimit_CheckedChanged(object sender, EventArgs e)
    method txtFileSize_TextChanged (line 100) | private void txtFileSize_TextChanged(object sender, EventArgs e)
    method txtPath_TextChanged (line 106) | private void txtPath_TextChanged(object sender, EventArgs e)
    method txtDiskspaceLimit_TextChanged (line 112) | private void txtDiskspaceLimit_TextChanged(object sender, EventArgs e)
    method ApplyChanges (line 118) | protected override bool ApplyChanges()
    method CancelChanges (line 129) | protected override void CancelChanges()
    method InformChanges (line 152) | private void InformChanges()
    method ClearChanges (line 163) | private void ClearChanges()
    method OnRefresh (line 183) | protected override void OnRefresh()

FILE: JexusManager.Features.Compression/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: JexusManager.Features.DefaultDocument/DefaultDocumentFeature.cs
  class DefaultDocumentFeature (line 33) | internal class DefaultDocumentFeature : FeatureBase<DocumentItem>
    class FeatureTaskList (line 35) | private sealed class FeatureTaskList : DefaultTaskList
      method FeatureTaskList (line 39) | public FeatureTaskList(DefaultDocumentFeature owner)
      method GetTaskItems (line 44) | public override ICollection GetTaskItems()
      method Add (line 75) | [Obfuscation(Exclude = true)]
      method Remove (line 81) | [Obfuscation(Exclude = true)]
      method MoveUp (line 87) | [Obfuscation(Exclude = true)]
      method MoveDown (line 93) | [Obfuscation(Exclude = true)]
      method Enable (line 99) | [Obfuscation(Exclude = true)]
      method Disable (line 105) | [Obfuscation(Exclude = true)]
      method Revert (line 111) | [Obfuscation(Exclude = true)]
    method DefaultDocumentFeature (line 118) | public DefaultDocumentFeature(Module module)
    method GetTaskList (line 129) | public TaskList GetTaskList()
    method Load (line 134) | public void Load()
    method Add (line 145) | public void Add()
    method Remove (line 157) | public void Remove()
    method MoveUp (line 173) | public void MoveUp()
    method MoveDown (line 192) | public void MoveDown()
    method Enable (line 211) | public void Enable()
    method Disable (line 220) | public void Disable()
    method Revert (line 229) | public void Revert()
    method GetCollection (line 250) | protected override ConfigurationElementCollection GetCollection(IConfi...
    method OnSettingsSaved (line 256) | protected override void OnSettingsSaved()
    method SetEnabled (line 261) | public void SetEnabled(bool enabled)
    method ShowHelp (line 267) | public virtual bool ShowHelp()

FILE: JexusManager.Features.DefaultDocument/DefaultDocumentModule.cs
  class DefaultDocumentModule (line 13) | public class DefaultDocumentModule : Module
    method Initialize (line 15) | protected override void Initialize(IServiceProvider serviceProvider, M...

FILE: JexusManager.Features.DefaultDocument/DefaultDocumentModuleProvider.cs
  class DefaultDocumentModuleProvider (line 11) | public class DefaultDocumentModuleProvider : ModuleProvider
    method GetModuleDefinition (line 18) | public override ModuleDefinition GetModuleDefinition(IManagementContex...
    method SupportsScope (line 23) | public override bool SupportsScope(ManagementScope scope)

FILE: JexusManager.Features.DefaultDocument/DefaultDocumentPage.Designer.cs
  class DefaultDocumentPage (line 6) | partial class DefaultDocumentPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.DefaultDocument/DefaultDocumentPage.cs
  class DefaultDocumentPage (line 18) | internal sealed partial class DefaultDocumentPage : ModuleListPage
    class PageTaskList (line 20) | private sealed class PageTaskList : ShowHelpTaskList
      method PageTaskList (line 24) | public PageTaskList(DefaultDocumentPage owner)
      method ShowHelp (line 29) | [Obfuscation(Exclude = true)]
    class DefaultDocumentListViewItem (line 36) | private sealed class DefaultDocumentListViewItem : ListViewItem, IFeat...
      method DefaultDocumentListViewItem (line 41) | public DefaultDocumentListViewItem(DocumentItem item, DefaultDocumen...
    method DefaultDocumentPage (line 53) | public DefaultDocumentPage()
    method Initialize (line 58) | protected override void Initialize(object navigationData)
    method InitializeListPage (line 69) | protected override void InitializeListPage()
    method Refresh (line 93) | protected override void Refresh()
    method ListView1_KeyDown (line 99) | private void ListView1_KeyDown(object sender, KeyEventArgs e)
    method ListView1_MouseDoubleClick (line 107) | private void ListView1_MouseDoubleClick(object sender, MouseEventArgs e)
    method ListView1_SelectedIndexChanged (line 112) | private void ListView1_SelectedIndexChanged(object sender, EventArgs e)
    method ShowHelp (line 119) | protected override bool ShowHelp()
    method splitContainer1_SplitterMoved (line 124) | private void splitContainer1_SplitterMoved(object sender, SplitterEven...

FILE: JexusManager.Features.DefaultDocument/DocumentItem.cs
  class DocumentItem (line 9) | public class DocumentItem : IItem<DocumentItem>
    method DocumentItem (line 15) | public DocumentItem(ConfigurationElement element)
    method Equals (line 27) | public bool Equals(DocumentItem other)
    method Apply (line 32) | public void Apply()
    method Match (line 37) | public bool Match(DocumentItem other)

FILE: JexusManager.Features.DefaultDocument/NewDefaultDocumentDialog.Designer.cs
  class NewDefaultDocumentDialog (line 6) | partial class NewDefaultDocumentDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.DefaultDocument/NewDefaultDocumentDialog.cs
  class NewDefaultDocumentDialog (line 16) | internal partial class NewDefaultDocumentDialog : DialogForm
    method NewDefaultDocumentDialog (line 18) | public NewDefaultDocumentDialog(IServiceProvider serviceProvider, Defa...

FILE: JexusManager.Features.DefaultDocument/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: JexusManager.Features.DirectoryBrowse/DirectoryBrowseFeature.cs
  class DirectoryBrowseFeature (line 21) | internal class DirectoryBrowseFeature
    class FeatureTaskList (line 23) | private sealed class FeatureTaskList : TaskList
      method FeatureTaskList (line 27) | public FeatureTaskList(DirectoryBrowseFeature owner)
      method GetTaskItems (line 32) | public override ICollection GetTaskItems()
      method Enable (line 48) | [Obfuscation(Exclude = true)]
      method Disable (line 54) | [Obfuscation(Exclude = true)]
    method DirectoryBrowseFeature (line 61) | public DirectoryBrowseFeature(Module module)
    method DisplayErrorMessage (line 73) | protected void DisplayErrorMessage(Exception ex, ResourceManager resou...
    method GetService (line 79) | protected object GetService(Type type)
    method GetTaskList (line 84) | public TaskList GetTaskList()
    method Load (line 89) | public void Load()
    method Enable (line 103) | private void Enable()
    method Disable (line 111) | private void Disable()
    method SetEnabled (line 119) | public void SetEnabled(bool enabled)
    method OnDirectoryBrowseSettingsSaved (line 125) | protected void OnDirectoryBrowseSettingsSaved()
    method ShowHelp (line 130) | public virtual bool ShowHelp()
    method CancelChanges (line 158) | public void CancelChanges()
    method ApplyChanges (line 163) | public bool ApplyChanges()

FILE: JexusManager.Features.DirectoryBrowse/DirectoryBrowseModule.cs
  class DirectoryBrowseModule (line 13) | internal class DirectoryBrowseModule : Module
    method Initialize (line 15) | protected override void Initialize(IServiceProvider serviceProvider, M...

FILE: JexusManager.Features.DirectoryBrowse/DirectoryBrowseModuleProvider.cs
  class DirectoryBrowseModuleProvider (line 11) | public class DirectoryBrowseModuleProvider : ModuleProvider
    method GetModuleDefinition (line 18) | public override ModuleDefinition GetModuleDefinition(IManagementContex...
    method SupportsScope (line 23) | public override bool SupportsScope(ManagementScope scope)

FILE: JexusManager.Features.DirectoryBrowse/DirectoryBrowsePage.Designer.cs
  class DirectoryBrowsePage (line 6) | partial class DirectoryBrowsePage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.DirectoryBrowse/DirectoryBrowsePage.cs
  class DirectoryBrowsePage (line 17) | internal partial class DirectoryBrowsePage : ModuleDialogPage
    class PageTaskList (line 19) | private sealed class PageTaskList : ShowHelpTaskList
      method PageTaskList (line 23) | public PageTaskList(DirectoryBrowsePage owner)
      method ShowHelp (line 28) | [Obfuscation(Exclude = true)]
    method DirectoryBrowsePage (line 40) | public DirectoryBrowsePage()
    method Initialize (line 45) | protected override void Initialize(object navigationData)
    method ShowHelp (line 56) | protected override bool ShowHelp()
    method SplitContainer1SplitterMoved (line 61) | private void SplitContainer1SplitterMoved(object sender, SplitterEvent...
    method ApplyChanges (line 69) | protected override bool ApplyChanges()
    method CancelChanges (line 85) | protected override void CancelChanges()
    method InformChanges (line 103) | private void InformChanges()
    method ClearChanges (line 114) | private void ClearChanges()
    method OnRefresh (line 135) | protected override void OnRefresh()
    method CbDateCheckedChanged (line 151) | private void CbDateCheckedChanged(object sender, EventArgs e)
    method CbSslCheckedChanged (line 157) | private void CbSslCheckedChanged(object sender, EventArgs e)

FILE: JexusManager.Features.DirectoryBrowse/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: JexusManager.Features.FastCgi/EnvironmentVariables.cs
  class EnvironmentVariables (line 9) | internal class EnvironmentVariables

FILE: JexusManager.Features.FastCgi/EnvironmentVariablesCollection.cs
  class EnvironmentVariablesCollection (line 9) | internal class EnvironmentVariablesCollection : CollectionBase
    method Add (line 19) | public void Add(EnvironmentVariables variable)
    method Remove (line 24) | public void Remove(EnvironmentVariables variable)

FILE: JexusManager.Features.FastCgi/EnvironmentVariablesCollectionEditor.cs
  class EnvironmentVariablesCollectionEditor (line 10) | internal class EnvironmentVariablesCollectionEditor : CollectionEditor
    method EnvironmentVariablesCollectionEditor (line 12) | public EnvironmentVariablesCollectionEditor(Type type)
    method GetDisplayText (line 17) | protected override string GetDisplayText(object value)

FILE: JexusManager.Features.FastCgi/ErrorMode.cs
  type ErrorMode (line 9) | internal enum ErrorMode : long

FILE: JexusManager.Features.FastCgi/FastCgiFeature.cs
  class FastCgiFeature (line 31) | internal class FastCgiFeature : FeatureBase<FastCgiItem>
    class FeatureTaskList (line 33) | private sealed class FeatureTaskList : DefaultTaskList
      method FeatureTaskList (line 37) | public FeatureTaskList(FastCgiFeature owner)
      method GetTaskItems (line 42) | public override ICollection GetTaskItems()
      method AddAllow (line 56) | [Obfuscation(Exclude = true)]
      method Remove (line 62) | [Obfuscation(Exclude = true)]
      method Set (line 68) | [Obfuscation(Exclude = true)]
    method FastCgiFeature (line 75) | public FastCgiFeature(Module module)
    method GetTaskList (line 86) | public TaskList GetTaskList()
    method GetCollection (line 91) | protected override ConfigurationElementCollection GetCollection(IConfi...
    method Load (line 98) | public void Load()
    method AddAllow (line 103) | public void AddAllow()
    method Remove (line 114) | public void Remove()
    method Edit (line 128) | public void Edit()
    method DoubleClick (line 133) | protected override void DoubleClick(FastCgiItem item)
    method OnSettingsSaved (line 145) | protected override void OnSettingsSaved()
    method ShowHelp (line 150) | public virtual bool ShowHelp()

FILE: JexusManager.Features.FastCgi/FastCgiItem.cs
  class FastCgiItem (line 11) | internal class FastCgiItem : IItem<FastCgiItem>
    method FastCgiItem (line 13) | public FastCgiItem(ConfigurationElement element)
    method Reset (line 35) | public void Reset()
    method Equals (line 72) | public bool Equals(FastCgiItem other)
    method Apply (line 78) | public void Apply()
    method Match (line 107) | public bool Match(FastCgiItem other)
  class AdvancedSettings (line 198) | [TypeConverter(typeof(ExpandableObjectConverter))]
    method ToString (line 212) | public override string ToString()

FILE: JexusManager.Features.FastCgi/FastCgiModule.cs
  class FastCgiModule (line 13) | internal class FastCgiModule : Module
    method Initialize (line 15) | protected override void Initialize(IServiceProvider serviceProvider, M...

FILE: JexusManager.Features.FastCgi/FastCgiModuleProvider.cs
  class FastCgiModuleProvider (line 11) | public class FastCgiModuleProvider : ModuleProvider
    method GetModuleDefinition (line 18) | public override ModuleDefinition GetModuleDefinition(IManagementContex...
    method SupportsScope (line 23) | public override bool SupportsScope(ManagementScope scope)

FILE: JexusManager.Features.FastCgi/FastCgiPage.Designer.cs
  class FastCgiPage (line 6) | partial class FastCgiPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.FastCgi/FastCgiPage.cs
  class FastCgiPage (line 16) | internal partial class FastCgiPage : ModuleListPage
    class PageTaskList (line 18) | private sealed class PageTaskList : ShowHelpTaskList
      method PageTaskList (line 22) | public PageTaskList(FastCgiPage owner)
      method ShowHelp (line 27) | [Obfuscation(Exclude = true)]
    class FastCgiListViewItem (line 34) | private sealed class FastCgiListViewItem : ListViewItem, IFeatureListV...
      method FastCgiListViewItem (line 40) | public FastCgiListViewItem(FastCgiItem item, FastCgiPage page)
    method FastCgiPage (line 54) | public FastCgiPage()
    method Initialize (line 59) | protected override void Initialize(object navigationData)
    method InitializeListPage (line 70) | protected override void InitializeListPage()
    method Refresh (line 95) | protected override void Refresh()
    method ListView1KeyDown (line 101) | private void ListView1KeyDown(object sender, KeyEventArgs e)
    method ListView1MouseDoubleClick (line 109) | private void ListView1MouseDoubleClick(object sender, MouseEventArgs e)
    method ListView1SelectedIndexChanged (line 114) | private void ListView1SelectedIndexChanged(object sender, EventArgs e)
    method ShowHelp (line 120) | protected override bool ShowHelp()

FILE: JexusManager.Features.FastCgi/NewApplicationDialog.Designer.cs
  class NewApplicationDialog (line 6) | sealed partial class NewApplicationDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.FastCgi/NewApplicationDialog.cs
  class NewApplicationDialog (line 16) | internal sealed partial class NewApplicationDialog : DialogForm
    method NewApplicationDialog (line 18) | public NewApplicationDialog(IServiceProvider serviceProvider, FastCgiI...

FILE: JexusManager.Features.FastCgi/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: JexusManager.Features.FastCgi/Protocol.cs
  type Protocol (line 9) | internal enum Protocol : long

FILE: JexusManager.Features.Handlers/HandlersFeature.cs
  class HandlersFeature (line 36) | internal class HandlersFeature : FeatureBase<HandlersItem>
    class FeatureTaskList (line 38) | private sealed class FeatureTaskList : DefaultTaskList
      method FeatureTaskList (line 42) | public FeatureTaskList(HandlersFeature owner)
      method GetTaskItems (line 47) | public override ICollection GetTaskItems()
      method AddManaged (line 84) | [Obfuscation(Exclude = true)]
      method AddScript (line 90) | [Obfuscation(Exclude = true)]
      method AddWildcard (line 96) | [Obfuscation(Exclude = true)]
      method Add (line 102) | [Obfuscation(Exclude = true)]
      method Remove (line 108) | [Obfuscation(Exclude = true)]
      method Edit (line 114) | [Obfuscation(Exclude = true)]
      method Set (line 120) | [Obfuscation(Exclude = true)]
      method Rename (line 126) | [Obfuscation(Exclude = true)]
      method MoveUp (line 132) | [Obfuscation(Exclude = true)]
      method MoveDown (line 138) | [Obfuscation(Exclude = true)]
      method InOrder (line 144) | [Obfuscation(Exclude = true)]
      method Unorder (line 150) | [Obfuscation(Exclude = true)]
      method Revert (line 156) | [Obfuscation(Exclude = true)]
    method HandlersFeature (line 163) | public HandlersFeature(Module module)
    method GetTaskList (line 174) | public TaskList GetTaskList()
    method Load (line 179) | public void Load()
    method Add (line 194) | public void Add()
    method AddManaged (line 205) | public void AddManaged()
    method AddScript (line 216) | public void AddScript()
    method AddWildcard (line 227) | public void AddWildcard()
    method Set (line 238) | public void Set()
    method Remove (line 253) | public void Remove()
    method Edit (line 267) | public void Edit()
    method DoubleClick (line 272) | protected override void DoubleClick(HandlersItem item)
    method InitializeGrouping (line 310) | public override void InitializeGrouping(ToolStripComboBox cbGroup)
    method GetGroupKey (line 315) | public override string GetGroupKey(ListViewItem item, string selectedG...
    method Rename (line 330) | public void Rename()
    method MoveUp (line 335) | public void MoveUp()
    method MoveDown (line 354) | public void MoveDown()
    method GetCollection (line 373) | protected override ConfigurationElementCollection GetCollection(IConfi...
    method InOrder (line 380) | public void InOrder()
    method Unorder (line 386) | public void Unorder()
    method Revert (line 392) | public void Revert()
    method OnSettingsSaved (line 413) | protected override void OnSettingsSaved()
    method ShowHelp (line 418) | public virtual bool ShowHelp()

FILE: JexusManager.Features.Handlers/HandlersItem.cs
  class HandlersItem (line 12) | internal class HandlersItem : IItem<HandlersItem>
    method HandlersItem (line 14) | public HandlersItem(ConfigurationElement element)
    method GetState (line 68) | public string GetState(long accessPolicy)
    method Equals (line 126) | public bool Equals(HandlersItem other)
    method Apply (line 132) | public void Apply()
    method Match (line 147) | public bool Match(HandlersItem other)

FILE: JexusManager.Features.Handlers/HandlersModule.cs
  class HandlersModule (line 13) | internal class HandlersModule : Module
    method Initialize (line 15) | protected override void Initialize(IServiceProvider serviceProvider, M...

FILE: JexusManager.Features.Handlers/HandlersModuleProvider.cs
  class HandlersModuleProvider (line 11) | public class HandlersModuleProvider : ModuleProvider
    method GetModuleDefinition (line 18) | public override ModuleDefinition GetModuleDefinition(IManagementContex...
    method SupportsScope (line 23) | public override bool SupportsScope(ManagementScope scope)

FILE: JexusManager.Features.Handlers/HandlersPage.Designer.cs
  class HandlersPage (line 6) | partial class HandlersPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Handlers/HandlersPage.cs
  class HandlersPage (line 18) | internal partial class HandlersPage : ModuleListPage
    class PageTaskList (line 20) | private sealed class PageTaskList : ShowHelpTaskList
      method PageTaskList (line 24) | public PageTaskList(HandlersPage owner)
      method ShowHelp (line 29) | [Obfuscation(Exclude = true)]
    class HandlersListViewItem (line 36) | private sealed class HandlersListViewItem : ListViewItem, IFeatureList...
      method HandlersListViewItem (line 42) | public HandlersListViewItem(HandlersItem item, HandlersPage page)
    method HandlersPage (line 58) | public HandlersPage()
    method Initialize (line 63) | protected override void Initialize(object navigationData)
    method InitializeListPage (line 91) | protected override void InitializeListPage()
    method Refresh (line 118) | protected override void Refresh()
    method ListView1KeyDown (line 124) | private void ListView1KeyDown(object sender, KeyEventArgs e)
    method ListView1MouseDoubleClick (line 132) | private void ListView1MouseDoubleClick(object sender, MouseEventArgs e)
    method ListView1SelectedIndexChanged (line 137) | private void ListView1SelectedIndexChanged(object sender, EventArgs e)
    method CbGroupSelectedIndexChanged (line 143) | private void CbGroupSelectedIndexChanged(object sender, EventArgs e)
    method ShowHelp (line 148) | protected override bool ShowHelp()

FILE: JexusManager.Features.Handlers/NewHandlerDialog.Designer.cs
  class NewHandlerDialog (line 6) | sealed partial class NewHandlerDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Handlers/NewHandlerDialog.cs
  class NewHandlerDialog (line 17) | internal sealed partial class NewHandlerDialog : DialogForm
    method NewHandlerDialog (line 21) | public NewHandlerDialog(IServiceProvider serviceProvider, HandlersItem...
    method NewRestrictionDialogHelpButtonClicked (line 89) | private void NewRestrictionDialogHelpButtonClicked(object sender, Canc...

FILE: JexusManager.Features.Handlers/NewMappingDialog.Designer.cs
  class NewMappingDialog (line 6) | sealed partial class NewMappingDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Handlers/NewMappingDialog.cs
  class NewMappingDialog (line 21) | internal sealed partial class NewMappingDialog : DialogForm
    method NewMappingDialog (line 25) | public NewMappingDialog(IServiceProvider serviceProvider, HandlersItem...
    method NewRestrictionDialogHelpButtonClicked (line 201) | private void NewRestrictionDialogHelpButtonClicked(object sender, Canc...

FILE: JexusManager.Features.Handlers/NewScriptMapDialog.Designer.cs
  class NewScriptMapDialog (line 6) | sealed partial class NewScriptMapDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Handlers/NewScriptMapDialog.cs
  class NewScriptMapDialog (line 17) | internal sealed partial class NewScriptMapDialog : DialogForm
    method NewScriptMapDialog (line 21) | public NewScriptMapDialog(IServiceProvider serviceProvider, HandlersIt...
    method NewRestrictionDialogHelpButtonClicked (line 101) | private void NewRestrictionDialogHelpButtonClicked(object sender, Canc...

FILE: JexusManager.Features.Handlers/NewWildcardDialog.Designer.cs
  class NewWildcardDialog (line 6) | sealed partial class NewWildcardDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Handlers/NewWildcardDialog.cs
  class NewWildcardDialog (line 17) | internal sealed partial class NewWildcardDialog : DialogForm
    method NewWildcardDialog (line 21) | public NewWildcardDialog(IServiceProvider serviceProvider, HandlersIte...
    method NewRestrictionDialogHelpButtonClicked (line 89) | private void NewRestrictionDialogHelpButtonClicked(object sender, Canc...

FILE: JexusManager.Features.Handlers/PermissionsDialog.Designer.cs
  class PermissionsDialog (line 6) | internal partial class PermissionsDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Handlers/PermissionsDialog.cs
  class PermissionsDialog (line 15) | internal partial class PermissionsDialog : DialogForm
    method PermissionsDialog (line 17) | public PermissionsDialog(IServiceProvider serviceProvider, HandlersFea...

FILE: JexusManager.Features.Handlers/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: JexusManager.Features.Handlers/RestrictionsDialog.Designer.cs
  class RestrictionsDialog (line 6) | internal partial class RestrictionsDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Handlers/RestrictionsDialog.cs
  class RestrictionsDialog (line 16) | internal partial class RestrictionsDialog : DialogForm
    method RestrictionsDialog (line 18) | public RestrictionsDialog(IServiceProvider serviceProvider, HandlersIt...
    method RestrictionsDialogHelpButtonClicked (line 117) | private void RestrictionsDialogHelpButtonClicked(object sender, Cancel...

FILE: JexusManager.Features.HttpApi/HttpApiFeature.cs
  class HttpApiFeature (line 11) | public abstract class HttpApiFeature<T> : FeatureBase<T>, IHttpApiFeature
    method HttpApiFeature (line 14) | protected HttpApiFeature(Module module)
    method GetTaskList (line 24) | public abstract TaskList GetTaskList();
    method Load (line 26) | public abstract void Load();
    method OnSettingsSaved (line 28) | protected override void OnSettingsSaved()
    method ShowHelp (line 33) | public abstract bool ShowHelp();

FILE: JexusManager.Features.HttpApi/HttpApiModule.cs
  class HttpApiModule (line 13) | internal class HttpApiModule : Module
    method Initialize (line 15) | protected override void Initialize(IServiceProvider serviceProvider, M...

FILE: JexusManager.Features.HttpApi/HttpApiModuleProvider.cs
  class HttpApiModuleProvider (line 12) | public class HttpApiModuleProvider : ModuleProvider
    method GetModuleDefinition (line 19) | public override ModuleDefinition GetModuleDefinition(IManagementContex...
    method SupportsScope (line 24) | public override bool SupportsScope(ManagementScope scope)

FILE: JexusManager.Features.HttpApi/HttpApiPage.Designer.cs
  class HttpApiPage (line 6) | partial class HttpApiPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.HttpApi/HttpApiPage.cs
  class HttpApiPage (line 19) | internal partial class HttpApiPage : ModuleListPage
    class PageTaskList (line 21) | private sealed class PageTaskList : ShowHelpTaskList
      method PageTaskList (line 25) | public PageTaskList(HttpApiPage owner)
      method ShowHelp (line 30) | [Obfuscation(Exclude = true)]
    class SniMappingListViewItem (line 37) | private sealed class SniMappingListViewItem : ListViewItem, IFeatureLi...
      method SniMappingListViewItem (line 42) | public SniMappingListViewItem(SniMappingItem item, HttpApiPage page)
    class IpMappingListViewItem (line 75) | private sealed class IpMappingListViewItem : ListViewItem, IFeatureLis...
      method IpMappingListViewItem (line 80) | public IpMappingListViewItem(IpMappingItem item, HttpApiPage page)
    class ReservedUrlListViewItem (line 113) | private sealed class ReservedUrlListViewItem : ListViewItem, IFeatureL...
      method ReservedUrlListViewItem (line 118) | public ReservedUrlListViewItem(ReservedUrlsItem item, HttpApiPage page)
    method HttpApiPage (line 129) | public HttpApiPage()
    method Initialize (line 134) | protected override void Initialize(object navigationData)
    method RefreshSni (line 161) | private void RefreshSni()
    method RefreshIp (line 190) | private void RefreshIp()
    method RefreshUrl (line 219) | private void RefreshUrl()
    method InitializeListPage (line 248) | protected override void InitializeListPage()
    method Refresh (line 252) | protected override void Refresh()
    method LvSniKeyDown (line 260) | private void LvSniKeyDown(object sender, KeyEventArgs e)
    method LvSniMouseDoubleClick (line 269) | private void LvSniMouseDoubleClick(object sender, MouseEventArgs e)
    method LvSniSelectedIndexChanged (line 275) | private void LvSniSelectedIndexChanged(object sender, EventArgs e)
    method LvIPKeyDown (line 282) | private void LvIPKeyDown(object sender, KeyEventArgs e)
    method LvIPMouseDoubleClick (line 291) | private void LvIPMouseDoubleClick(object sender, MouseEventArgs e)
    method LvIPSelectedIndexChanged (line 297) | private void LvIPSelectedIndexChanged(object sender, EventArgs e)
    method LvURLKeyDown (line 304) | private void LvURLKeyDown(object sender, KeyEventArgs e)
    method LvURLMouseDoubleClick (line 313) | private void LvURLMouseDoubleClick(object sender, MouseEventArgs e)
    method LvURLSelectedIndexChanged (line 319) | private void LvURLSelectedIndexChanged(object sender, EventArgs e)
    method ShowHelp (line 326) | protected override bool ShowHelp()
    method TabControl1SelectedIndexChanged (line 333) | private void TabControl1SelectedIndexChanged(object sender, EventArgs e)
    method splitContainer1_SplitterMoved (line 340) | private void splitContainer1_SplitterMoved(object sender, SplitterEven...

FILE: JexusManager.Features.HttpApi/IHttpApiFeature.cs
  type IHttpApiFeature (line 9) | internal interface IHttpApiFeature
    method GetTaskList (line 11) | TaskList GetTaskList();
    method ShowHelp (line 13) | bool ShowHelp();

FILE: JexusManager.Features.HttpApi/IpMappingFeature.cs
  class IpMappingFeature (line 24) | internal class IpMappingFeature : HttpApiFeature<IpMappingItem>
    class FeatureTaskList (line 28) | private sealed class FeatureTaskList : DefaultTaskList
      method FeatureTaskList (line 32) | public FeatureTaskList(IpMappingFeature owner)
      method GetTaskItems (line 37) | public override ICollection GetTaskItems()
      method Remove (line 50) | [Obfuscation(Exclude = true)]
      method View (line 56) | [Obfuscation(Exclude = true)]
    method IpMappingFeature (line 63) | public IpMappingFeature(Microsoft.Web.Management.Client.Module module)
    method GetTaskList (line 70) | public override TaskList GetTaskList()
    method Load (line 75) | public override void Load()
    method Remove (line 87) | public void Remove()
    method DeleteMapping (line 101) | private void DeleteMapping()
    method View (line 139) | private void View()
    method OnHttpApiSettingsSaved (line 169) | protected void OnHttpApiSettingsSaved()
    method ShowHelp (line 174) | public override bool ShowHelp()
    method GetCollection (line 182) | protected override ConfigurationElementCollection GetCollection(IConfi...

FILE: JexusManager.Features.HttpApi/IpMappingItem.cs
  class IpMappingItem (line 9) | internal class IpMappingItem : IItem<IpMappingItem>
    method IpMappingItem (line 11) | public IpMappingItem(string address, string port, string appId, string...
    method Apply (line 31) | public void Apply()
    method Equals (line 34) | public bool Equals(IpMappingItem other)
    method Match (line 39) | public bool Match(IpMappingItem other)

FILE: JexusManager.Features.HttpApi/NewReservedUrlDialog.Designer.cs
  class NewReservedUrlDialog (line 6) | sealed partial class NewReservedUrlDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.HttpApi/NewReservedUrlDialog.cs
  class NewReservedUrlDialog (line 17) | internal sealed partial class NewReservedUrlDialog : DialogForm
    method NewReservedUrlDialog (line 19) | public NewReservedUrlDialog(IServiceProvider serviceProvider, Reserved...

FILE: JexusManager.Features.HttpApi/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: JexusManager.Features.HttpApi/ReservedUrlsFeature.cs
  class ReservedUrlsFeature (line 21) | public class ReservedUrlsFeature : HttpApiFeature<ReservedUrlsItem>
    class FeatureTaskList (line 25) | private sealed class FeatureTaskList : DefaultTaskList
      method FeatureTaskList (line 29) | public FeatureTaskList(ReservedUrlsFeature owner)
      method GetTaskItems (line 37) | public override ICollection GetTaskItems()
      method Remove (line 50) | [Obfuscation(Exclude = true)]
      method CreateSelf (line 56) | [Obfuscation(Exclude = true)]
    method ReservedUrlsFeature (line 64) | public ReservedUrlsFeature(Microsoft.Web.Management.Client.Module module)
    method GetTaskList (line 71) | public override TaskList GetTaskList()
    method Load (line 76) | public override void Load()
    method Remove (line 88) | public void Remove()
    method DeleteReservedUrl (line 102) | private void DeleteReservedUrl()
    method OnHttpApiSettingsSaved (line 139) | protected void OnHttpApiSettingsSaved()
    method ShowHelp (line 144) | public override bool ShowHelp()
    method Create (line 150) | private void Create()
    method GetCollection (line 171) | protected override ConfigurationElementCollection GetCollection(IConfi...

FILE: JexusManager.Features.HttpApi/ReservedUrlsItem.cs
  class ReservedUrlsItem (line 9) | public class ReservedUrlsItem : IItem<ReservedUrlsItem>
    method ReservedUrlsItem (line 14) | public ReservedUrlsItem(string urlPrefix, string securityDescriptor, R...
    method Apply (line 26) | public void Apply()
    method Equals (line 29) | public bool Equals(ReservedUrlsItem other)
    method Match (line 34) | public bool Match(ReservedUrlsItem other)

FILE: JexusManager.Features.HttpApi/SniMappingFeature.cs
  class SniMappingFeature (line 41) | internal class SniMappingFeature : HttpApiFeature<SniMappingItem>
    class FeatureTaskList (line 45) | private sealed class FeatureTaskList : DefaultTaskList
      method FeatureTaskList (line 49) | public FeatureTaskList(SniMappingFeature owner)
      method GetTaskItems (line 57) | public override ICollection GetTaskItems()
      method Remove (line 70) | [Obfuscation(Exclude = true)]
      method View (line 76) | [Obfuscation(Exclude = true)]
    method SniMappingFeature (line 83) | public SniMappingFeature(Module module)
    method GetTaskList (line 90) | public override TaskList GetTaskList()
    method Load (line 95) | public override void Load()
    method Remove (line 107) | public void Remove()
    method DeleteMapping (line 121) | private void DeleteMapping()
    method View (line 159) | private void View()
    method OnHttpApiSettingsSaved (line 187) | protected void OnHttpApiSettingsSaved()
    method ShowHelp (line 192) | public override bool ShowHelp()
    method GetCollection (line 198) | protected override ConfigurationElementCollection GetCollection(IConfi...

FILE: JexusManager.Features.HttpApi/SniMappingItem.cs
  class SniMappingItem (line 9) | internal class SniMappingItem : IItem<SniMappingItem>
    method SniMappingItem (line 11) | public SniMappingItem(string host, string port, string appId, string h...
    method Apply (line 31) | public void Apply()
    method Equals (line 34) | public bool Equals(SniMappingItem other)
    method Match (line 39) | public bool Match(SniMappingItem other)

FILE: JexusManager.Features.HttpErrors/EditDialog.Designer.cs
  class EditDialog (line 6) | partial class EditDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.HttpErrors/EditDialog.cs
  class EditDialog (line 14) | internal partial class EditDialog : DialogForm
    method EditDialog (line 16) | public EditDialog(IServiceProvider serviceProvider, ConfigurationEleme...

FILE: JexusManager.Features.HttpErrors/HttpErrorsFeature.cs
  class HttpErrorsFeature (line 33) | internal class HttpErrorsFeature : FeatureBase<HttpErrorsItem>
    class FeatureTaskList (line 35) | private sealed class FeatureTaskList : DefaultTaskList
      method FeatureTaskList (line 39) | public FeatureTaskList(HttpErrorsFeature owner)
      method GetTaskItems (line 44) | public override ICollection GetTaskItems()
      method Add (line 65) | [Obfuscation(Exclude = true)]
      method Remove (line 71) | [Obfuscation(Exclude = true)]
      method Edit (line 77) | [Obfuscation(Exclude = true)]
      method Set (line 83) | [Obfuscation(Exclude = true)]
    method HttpErrorsFeature (line 90) | public HttpErrorsFeature(Module module)
    method GetTaskList (line 101) | public TaskList GetTaskList()
    method Load (line 106) | public void Load()
    method Add (line 111) | public void Add()
    method Remove (line 122) | public void Remove()
    method Edit (line 136) | public void Edit()
    method DoubleClick (line 141) | protected override void DoubleClick(HttpErrorsItem item)
    method InitializeGrouping (line 152) | public override void InitializeGrouping(ToolStripComboBox cbGroup)
    method GetGroupKey (line 157) | public override string GetGroupKey(ListViewItem item, string selectedG...
    method Set (line 170) | public void Set()
    method GetCollection (line 185) | protected override ConfigurationElementCollection GetCollection(IConfi...
    method OnSettingsSaved (line 191) | protected override void OnSettingsSaved()
    method ShowHelp (line 196) | public virtual bool ShowHelp()

FILE: JexusManager.Features.HttpErrors/HttpErrorsItem.cs
  class HttpErrorsItem (line 9) | internal class HttpErrorsItem : IItem<HttpErrorsItem>
    method HttpErrorsItem (line 11) | public HttpErrorsItem(ConfigurationElement element)
    method Equals (line 49) | public bool Equals(HttpErrorsItem other)
    method Match (line 54) | public bool Match(HttpErrorsItem other)
    method Apply (line 59) | public void Apply()

FILE: JexusManager.Features.HttpErrors/HttpErrorsModule.cs
  class HttpErrorsModule (line 14) | internal class HttpErrorsModule : Module
    method Initialize (line 16) | protected override void Initialize(IServiceProvider serviceProvider, M...

FILE: JexusManager.Features.HttpErrors/HttpErrorsModuleProvider.cs
  class HttpErrorsModuleProvider (line 11) | public class HttpErrorsModuleProvider : ModuleProvider
    method GetModuleDefinition (line 18) | public override ModuleDefinition GetModuleDefinition(IManagementContex...
    method SupportsScope (line 23) | public override bool SupportsScope(ManagementScope scope)

FILE: JexusManager.Features.HttpErrors/HttpErrorsPage.Designer.cs
  class HttpErrorsPage (line 6) | partial class HttpErrorsPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.HttpErrors/HttpErrorsPage.cs
  class HttpErrorsPage (line 18) | internal partial class HttpErrorsPage : ModuleListPage
    class PageTaskList (line 20) | private sealed class PageTaskList : ShowHelpTaskList
      method PageTaskList (line 24) | public PageTaskList(HttpErrorsPage owner)
      method ShowHelp (line 29) | [Obfuscation(Exclude = true)]
    class CustomErrorsListViewItem (line 36) | private sealed class CustomErrorsListViewItem : ListViewItem, IFeature...
      method CustomErrorsListViewItem (line 41) | public CustomErrorsListViewItem(HttpErrorsItem item, HttpErrorsPage ...
    method HttpErrorsPage (line 55) | public HttpErrorsPage()
    method Initialize (line 60) | protected override void Initialize(object navigationData)
    method InitializeListPage (line 71) | protected override void InitializeListPage()
    method Refresh (line 96) | protected override void Refresh()
    method ListView1_KeyDown (line 102) | private void ListView1_KeyDown(object sender, KeyEventArgs e)
    method ListView1_MouseDoubleClick (line 110) | private void ListView1_MouseDoubleClick(object sender, EventArgs e)
    method listView1_SelectedIndexChanged (line 115) | private void listView1_SelectedIndexChanged(object sender, EventArgs e)
    method CbGroup_SelectedIndexChanged (line 121) | private void CbGroup_SelectedIndexChanged(object sender, EventArgs e)
    method ShowHelp (line 126) | protected override bool ShowHelp()
    method splitContainer1_SplitterMoved (line 132) | private void splitContainer1_SplitterMoved(object sender, SplitterEven...

FILE: JexusManager.Features.HttpErrors/LocalErrorDialog.Designer.cs
  class LocalErrorDialog (line 6) | partial class LocalErrorDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.HttpErrors/LocalErrorDialog.cs
  class LocalErrorDialog (line 15) | internal partial class LocalErrorDialog : DialogForm
    method LocalErrorDialog (line 17) | public LocalErrorDialog(IServiceProvider serviceProvider, HttpErrorsIt...

FILE: JexusManager.Features.HttpErrors/NewErrorDialog.Designer.cs
  class NewErrorDialog (line 6) | sealed partial class NewErrorDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.HttpErrors/NewErrorDialog.cs
  class NewErrorDialog (line 15) | internal sealed partial class NewErrorDialog : DialogForm
    method NewErrorDialog (line 17) | public NewErrorDialog(IServiceProvider serviceProvider, HttpErrorsItem...
    method UpdateUI (line 193) | private void UpdateUI(HttpErrorsItem item)

FILE: JexusManager.Features.HttpErrors/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: JexusManager.Features.HttpRedirect/HttpRedirectFeature.cs
  class HttpRedirectFeature (line 18) | internal class HttpRedirectFeature
    method HttpRedirectFeature (line 20) | public HttpRedirectFeature(Module module, ServerManager server, Applic...
    method DisplayErrorMessage (line 32) | protected void DisplayErrorMessage(Exception ex, ResourceManager resou...
    method GetService (line 38) | protected object GetService(Type type)
    method Load (line 43) | public void Load()
    method OnHttpRedirectSettingsSaved (line 66) | protected void OnHttpRedirectSettingsSaved()
    method ShowHelp (line 71) | public virtual bool ShowHelp()
    method CancelChanges (line 106) | public void CancelChanges()
    method ApplyChanges (line 111) | public bool ApplyChanges()

FILE: JexusManager.Features.HttpRedirect/HttpRedirectModule.cs
  class HttpRedirectModule (line 14) | internal class HttpRedirectModule : Module
    method Initialize (line 16) | protected override void Initialize(IServiceProvider serviceProvider, M...

FILE: JexusManager.Features.HttpRedirect/HttpRedirectModuleProvider.cs
  class HttpRedirectModuleProvider (line 11) | public class HttpRedirectModuleProvider : ModuleProvider
    method GetModuleDefinition (line 18) | public override ModuleDefinition GetModuleDefinition(IManagementContex...
    method SupportsScope (line 23) | public override bool SupportsScope(ManagementScope scope)

FILE: JexusManager.Features.HttpRedirect/HttpRedirectPage.Designer.cs
  class HttpRedirectPage (line 6) | partial class HttpRedirectPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.HttpRedirect/HttpRedirectPage.cs
  class HttpRedirectPage (line 19) | internal partial class HttpRedirectPage : ModuleDialogPage
    class PageTaskList (line 21) | private sealed class PageTaskList : ShowHelpTaskList
      method PageTaskList (line 25) | public PageTaskList(HttpRedirectPage owner)
      method ShowHelp (line 30) | [Obfuscation(Exclude = true)]
    class CodeItem (line 37) | private class CodeItem
      method CodeItem (line 42) | public CodeItem(long code, string description)
      method ToString (line 48) | public override string ToString()
    method HttpRedirectPage (line 59) | public HttpRedirectPage()
    method Initialize (line 64) | protected override void Initialize(object navigationData)
    method ShowHelp (line 76) | protected override bool ShowHelp()
    method SplitContainer1SplitterMoved (line 81) | private void SplitContainer1SplitterMoved(object sender, SplitterEvent...
    method ApplyChanges (line 89) | protected override bool ApplyChanges()
    method CancelChanges (line 105) | protected override void CancelChanges()
    method InformChanges (line 123) | private void InformChanges()
    method ClearChanges (line 134) | private void ClearChanges()
    method OnRefresh (line 154) | protected override void OnRefresh()
    method CbSslCheckedChanged (line 194) | private void CbSslCheckedChanged(object sender, EventArgs e)
    method CbExactCheckedChanged (line 200) | private void CbExactCheckedChanged(object sender, EventArgs e)
    method CbCodeSelectedIndexChanged (line 205) | private void CbCodeSelectedIndexChanged(object sender, EventArgs e)
    method TxtLinkTextChanged (line 210) | private void TxtLinkTextChanged(object sender, EventArgs e)

FILE: JexusManager.Features.HttpRedirect/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: JexusManager.Features.IpSecurity/DynamicDialog.Designer.cs
  class DynamicDialog (line 6) | partial class DynamicDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.IpSecurity/DynamicDialog.cs
  class DynamicDialog (line 16) | internal partial class DynamicDialog : DialogForm
    method DynamicDialog (line 18) | public DynamicDialog(IServiceProvider serviceProvider, ConfigurationSe...

FILE: JexusManager.Features.IpSecurity/IpSecurityFeature.cs
  class IpSecurityFeature (line 34) | internal class IpSecurityFeature : FeatureBase<IpSecurityItem>
    class FeatureTaskList (line 36) | private sealed class FeatureTaskList : DefaultTaskList
      method FeatureTaskList (line 40) | public FeatureTaskList(IpSecurityFeature owner)
      method GetTaskItems (line 45) | public override ICollection GetTaskItems()
      method AddAllow (line 73) | [Obfuscation(Exclude = true)]
      method AddDeny (line 79) | [Obfuscation(Exclude = true)]
      method Remove (line 85) | [Obfuscation(Exclude = true)]
      method Set (line 91) | [Obfuscation(Exclude = true)]
      method Revert (line 97) | [Obfuscation(Exclude = true)]
      method View (line 103) | [Obfuscation(Exclude = true)]
      method Dynamic (line 108) | [Obfuscation(Exclude = true)]
    method IpSecurityFeature (line 115) | public IpSecurityFeature(Module module)
    method GetTaskList (line 126) | public TaskList GetTaskList()
    method Load (line 131) | public void Load()
    method AddAllow (line 138) | public void AddAllow()
    method AddDeny (line 149) | public void AddDeny()
    method Remove (line 160) | public void Remove()
    method Revert (line 174) | public void Revert()
    method Set (line 195) | public void Set()
    method View (line 210) | public void View()
    method Dynamic (line 214) | public void Dynamic()
    method InitializeGrouping (line 229) | public override void InitializeGrouping(ToolStripComboBox cbGroup)
    method GetGroupKey (line 234) | public override string GetGroupKey(ListViewItem item, string selectedG...
    method GetCollection (line 247) | protected override ConfigurationElementCollection GetCollection(IConfi...
    method OnSettingsSaved (line 253) | protected override void OnSettingsSaved()
    method ShowHelp (line 258) | public virtual bool ShowHelp()

FILE: JexusManager.Features.IpSecurity/IpSecurityItem.cs
  class IpSecurityItem (line 9) | internal class IpSecurityItem : IItem<IpSecurityItem>
    method IpSecurityItem (line 11) | public IpSecurityItem(ConfigurationElement element)
    method Apply (line 32) | public void Apply()
    method Equals (line 39) | public bool Equals(IpSecurityItem other)
    method Match (line 44) | public bool Match(IpSecurityItem other)

FILE: JexusManager.Features.IpSecurity/IpSecurityModule.cs
  class IpSecurityModule (line 14) | internal class IpSecurityModule : Module
    method Initialize (line 16) | protected override void Initialize(IServiceProvider serviceProvider, M...

FILE: JexusManager.Features.IpSecurity/IpSecurityModuleProvider.cs
  class IpSecurityModuleProvider (line 11) | public class IpSecurityModuleProvider : ModuleProvider
    method GetModuleDefinition (line 18) | public override ModuleDefinition GetModuleDefinition(IManagementContex...
    method SupportsScope (line 23) | public override bool SupportsScope(ManagementScope scope)

FILE: JexusManager.Features.IpSecurity/IpSecurityPage.Designer.cs
  class IpSecurityPage (line 6) | partial class IpSecurityPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.IpSecurity/IpSecurityPage.cs
  class IpSecurityPage (line 18) | internal partial class IpSecurityPage : ModuleListPage
    class PageTaskList (line 20) | private sealed class PageTaskList : ShowHelpTaskList
      method PageTaskList (line 24) | public PageTaskList(IpSecurityPage owner)
      method ShowHelp (line 29) | [Obfuscation(Exclude = true)]
    class IpSecurityListViewItem (line 36) | private sealed class IpSecurityListViewItem : ListViewItem, IFeatureLi...
      method IpSecurityListViewItem (line 41) | public IpSecurityListViewItem(IpSecurityItem item, IpSecurityPage page)
    method IpSecurityPage (line 54) | public IpSecurityPage()
    method Initialize (line 59) | protected override void Initialize(object navigationData)
    method InitializeListPage (line 70) | protected override void InitializeListPage()
    method Refresh (line 96) | protected override void Refresh()
    method ListView1_KeyDown (line 102) | private void ListView1_KeyDown(object sender, KeyEventArgs e)
    method ListView1_MouseDoubleClick (line 110) | private void ListView1_MouseDoubleClick(object sender, EventArgs e)
    method listView1_SelectedIndexChanged (line 115) | private void listView1_SelectedIndexChanged(object sender, EventArgs e)
    method CbGroup_SelectedIndexChanged (line 121) | private void CbGroup_SelectedIndexChanged(object sender, EventArgs e)
    method ShowHelp (line 126) | protected override bool ShowHelp()

FILE: JexusManager.Features.IpSecurity/NewRestrictionDialog.Designer.cs
  class NewRestrictionDialog (line 6) | sealed partial class NewRestrictionDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.IpSecurity/NewRestrictionDialog.cs
  class NewRestrictionDialog (line 18) | internal sealed partial class NewRestrictionDialog : DialogForm
    method NewRestrictionDialog (line 20) | public NewRestrictionDialog(IServiceProvider serviceProvider, bool all...

FILE: JexusManager.Features.IpSecurity/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: JexusManager.Features.IpSecurity/SetRestrictionsDialog.Designer.cs
  class SetRestrictionsDialog (line 6) | partial class SetRestrictionsDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.IpSecurity/SetRestrictionsDialog.cs
  class SetRestrictionsDialog (line 16) | internal partial class SetRestrictionsDialog : DialogForm
    method SetRestrictionsDialog (line 18) | public SetRestrictionsDialog(IServiceProvider serviceProvider, Configu...

FILE: JexusManager.Features.IsapiCgiRestriction/IsapiCgiRestrictionFeature.cs
  class IsapiCgiRestrictionFeature (line 33) | internal class IsapiCgiRestrictionFeature : FeatureBase<IsapiCgiRestrict...
    class FeatureTaskList (line 35) | private sealed class FeatureTaskList : DefaultTaskList
      method FeatureTaskList (line 39) | public FeatureTaskList(IsapiCgiRestrictionFeature owner)
      method GetTaskItems (line 44) | public override ICollection GetTaskItems()
      method Add (line 70) | [Obfuscation(Exclude = true)]
      method Remove (line 76) | [Obfuscation(Exclude = true)]
      method Edit (line 82) | [Obfuscation(Exclude = true)]
      method Set (line 88) | [Obfuscation(Exclude = true)]
      method Deny (line 94) | [Obfuscation(Exclude = true)]
      method Allow (line 100) | [Obfuscation(Exclude = true)]
    method IsapiCgiRestrictionFeature (line 107) | public IsapiCgiRestrictionFeature(Module module)
    method GetTaskList (line 118) | public TaskList GetTaskList()
    method Load (line 123) | public void Load()
    method GetCollection (line 128) | protected override ConfigurationElementCollection GetCollection(IConfi...
    method Add (line 134) | public void Add()
    method Deny (line 145) | public void Deny()
    method Allow (line 150) | public void Allow()
    method SetAllowed (line 155) | private void SetAllowed(bool allowed)
    method Set (line 164) | public void Set()
    method Remove (line 180) | public void Remove()
    method Edit (line 194) | public void Edit()
    method DoubleClick (line 199) | protected override void DoubleClick(IsapiCgiRestrictionItem item)
    method InitializeGrouping (line 210) | public override void InitializeGrouping(ToolStripComboBox cbGroup)
    method GetGroupKey (line 215) | public override string GetGroupKey(ListViewItem item, string selectedG...
    method OnSettingsSaved (line 226) | protected override void OnSettingsSaved()
    method ShowHelp (line 231) | public virtual bool ShowHelp()

FILE: JexusManager.Features.IsapiCgiRestriction/IsapiCgiRestrictionItem.cs
  class IsapiCgiRestrictionItem (line 9) | internal class IsapiCgiRestrictionItem : IItem<IsapiCgiRestrictionItem>
    method IsapiCgiRestrictionItem (line 11) | public IsapiCgiRestrictionItem(ConfigurationElement element)
    method Equals (line 35) | public bool Equals(IsapiCgiRestrictionItem other)
    method Apply (line 41) | public void Apply()
    method Match (line 48) | public bool Match(IsapiCgiRestrictionItem other)

FILE: JexusManager.Features.IsapiCgiRestriction/IsapiCgiRestrictionModule.cs
  class IsapiCgiRestrictionModule (line 14) | internal class IsapiCgiRestrictionModule : Module
    method Initialize (line 16) | protected override void Initialize(IServiceProvider serviceProvider, M...

FILE: JexusManager.Features.IsapiCgiRestriction/IsapiCgiRestrictionModuleProvider.cs
  class IsapiCgiRestrictionModuleProvider (line 11) | public class IsapiCgiRestrictionModuleProvider : ModuleProvider
    method GetModuleDefinition (line 18) | public override ModuleDefinition GetModuleDefinition(IManagementContex...
    method SupportsScope (line 23) | public override bool SupportsScope(ManagementScope scope)

FILE: JexusManager.Features.IsapiCgiRestriction/IsapiCgiRestrictionPage.Designer.cs
  class IsapiCgiRestrictionPage (line 6) | partial class IsapiCgiRestrictionPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.IsapiCgiRestriction/IsapiCgiRestrictionPage.cs
  class IsapiCgiRestrictionPage (line 18) | internal partial class IsapiCgiRestrictionPage : ModuleListPage
    class PageTaskList (line 20) | private sealed class PageTaskList : ShowHelpTaskList
      method PageTaskList (line 24) | public PageTaskList(IsapiCgiRestrictionPage owner)
      method ShowHelp (line 29) | [Obfuscation(Exclude = true)]
    class IsapiCgiRestrictionListViewItem (line 36) | private sealed class IsapiCgiRestrictionListViewItem : ListViewItem, I...
      method IsapiCgiRestrictionListViewItem (line 42) | public IsapiCgiRestrictionListViewItem(IsapiCgiRestrictionItem item,...
    method IsapiCgiRestrictionPage (line 55) | public IsapiCgiRestrictionPage()
    method Initialize (line 60) | protected override void Initialize(object navigationData)
    method InitializeListPage (line 71) | protected override void InitializeListPage()
    method Refresh (line 97) | protected override void Refresh()
    method ListView1KeyDown (line 103) | private void ListView1KeyDown(object sender, KeyEventArgs e)
    method ListView1MouseDoubleClick (line 111) | private void ListView1MouseDoubleClick(object sender, MouseEventArgs e)
    method ListView1SelectedIndexChanged (line 116) | private void ListView1SelectedIndexChanged(object sender, EventArgs e)
    method CbGroupSelectedIndexChanged (line 122) | private void CbGroupSelectedIndexChanged(object sender, EventArgs e)
    method ShowHelp (line 127) | protected override bool ShowHelp()

FILE: JexusManager.Features.IsapiCgiRestriction/NewRestrictionDialog.Designer.cs
  class NewRestrictionDialog (line 6) | sealed partial class NewRestrictionDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.IsapiCgiRestriction/NewRestrictionDialog.cs
  class NewRestrictionDialog (line 16) | internal sealed partial class NewRestrictionDialog : DialogForm
    method NewRestrictionDialog (line 18) | public NewRestrictionDialog(IServiceProvider serviceProvider, IsapiCgi...

FILE: JexusManager.Features.IsapiCgiRestriction/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: JexusManager.Features.IsapiCgiRestriction/SettingsDialog.Designer.cs
  class SettingsDialog (line 6) | internal partial class SettingsDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.IsapiCgiRestriction/SettingsDialog.cs
  class SettingsDialog (line 16) | internal partial class SettingsDialog : DialogForm
    method SettingsDialog (line 18) | public SettingsDialog(IServiceProvider serviceProvider, ConfigurationE...

FILE: JexusManager.Features.IsapiFilters/IsapiFiltersFeature.cs
  class IsapiFiltersFeature (line 33) | internal class IsapiFiltersFeature : FeatureBase<IsapiFiltersItem>
    class FeatureTaskList (line 35) | private sealed class FeatureTaskList : DefaultTaskList
      method FeatureTaskList (line 39) | public FeatureTaskList(IsapiFiltersFeature owner)
      method GetTaskItems (line 44) | public override ICollection GetTaskItems()
      method Add (line 77) | [Obfuscation(Exclude = true)]
      method Remove (line 83) | [Obfuscation(Exclude = true)]
      method Edit (line 89) | [Obfuscation(Exclude = true)]
      method Rename (line 95) | [Obfuscation(Exclude = true)]
      method MoveUp (line 101) | [Obfuscation(Exclude = true)]
      method MoveDown (line 107) | [Obfuscation(Exclude = true)]
      method InOrder (line 113) | [Obfuscation(Exclude = true)]
      method Unorder (line 119) | [Obfuscation(Exclude = true)]
      method Revert (line 125) | [Obfuscation(Exclude = true)]
    method IsapiFiltersFeature (line 132) | public IsapiFiltersFeature(Module module)
    method GetTaskList (line 143) | public TaskList GetTaskList()
    method Load (line 148) | public void Load()
    method GetCollection (line 156) | protected override ConfigurationElementCollection GetCollection(IConfi...
    method Add (line 162) | public void Add()
    method Remove (line 173) | public void Remove()
    method Edit (line 187) | public void Edit()
    method DoubleClick (line 192) | protected override void DoubleClick(IsapiFiltersItem item)
    method InitializeGrouping (line 203) | public override void InitializeGrouping(ToolStripComboBox cbGroup)
    method GetGroupKey (line 208) | public override string GetGroupKey(ListViewItem item, string selectedG...
    method Rename (line 219) | public void Rename()
    method MoveUp (line 224) | public void MoveUp()
    method MoveDown (line 243) | public void MoveDown()
    method InOrder (line 262) | public void InOrder()
    method Unorder (line 268) | public void Unorder()
    method Revert (line 274) | public void Revert()
    method OnSettingsSaved (line 295) | protected override void OnSettingsSaved()
    method ShowHelp (line 300) | public virtual bool ShowHelp()

FILE: JexusManager.Features.IsapiFilters/IsapiFiltersItem.cs
  class IsapiFiltersItem (line 12) | internal class IsapiFiltersItem : IItem<IsapiFiltersItem>
    method IsapiFiltersItem (line 14) | public IsapiFiltersItem(ConfigurationElement element)
    method Equals (line 44) | public bool Equals(IsapiFiltersItem other)
    method Apply (line 50) | public void Apply()
    method Match (line 58) | public bool Match(IsapiFiltersItem other)

FILE: JexusManager.Features.IsapiFilters/IsapiFiltersModule.cs
  class IsapiFiltersModule (line 14) | internal class IsapiFiltersModule : Module
    method Initialize (line 16) | protected override void Initialize(IServiceProvider serviceProvider, M...

FILE: JexusManager.Features.IsapiFilters/IsapiFiltersModuleProvider.cs
  class IsapiFiltersModuleProvider (line 11) | public class IsapiFiltersModuleProvider : ModuleProvider
    method GetModuleDefinition (line 18) | public override ModuleDefinition GetModuleDefinition(IManagementContex...
    method SupportsScope (line 23) | public override bool SupportsScope(ManagementScope scope)

FILE: JexusManager.Features.IsapiFilters/IsapiFiltersPage.Designer.cs
  class IsapiFiltersPage (line 6) | partial class IsapiFiltersPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.IsapiFilters/IsapiFiltersPage.cs
  class IsapiFiltersPage (line 16) | internal partial class IsapiFiltersPage : ModuleListPage
    class PageTaskList (line 18) | private sealed class PageTaskList : ShowHelpTaskList
      method PageTaskList (line 22) | public PageTaskList(IsapiFiltersPage owner)
      method ShowHelp (line 27) | [Obfuscation(Exclude = true)]
    class IsapiFiltersListViewItem (line 34) | private sealed class IsapiFiltersListViewItem : ListViewItem, IFeature...
      method IsapiFiltersListViewItem (line 40) | public IsapiFiltersListViewItem(IsapiFiltersItem item, IsapiFiltersP...
    method IsapiFiltersPage (line 53) | public IsapiFiltersPage()
    method Initialize (line 58) | protected override void Initialize(object navigationData)
    method InitializeListPage (line 86) | protected override void InitializeListPage()
    method Refresh (line 113) | protected override void Refresh()
    method ListView1KeyDown (line 119) | private void ListView1KeyDown(object sender, KeyEventArgs e)
    method ListView1MouseDoubleClick (line 127) | private void ListView1MouseDoubleClick(object sender, MouseEventArgs e)
    method ListView1SelectedIndexChanged (line 132) | private void ListView1SelectedIndexChanged(object sender, EventArgs e)
    method CbGroupSelectedIndexChanged (line 138) | private void CbGroupSelectedIndexChanged(object sender, EventArgs e)
    method ShowHelp (line 143) | protected override bool ShowHelp()

FILE: JexusManager.Features.IsapiFilters/NewFilterDialog.Designer.cs
  class NewFilterDialog (line 6) | sealed partial class NewFilterDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.IsapiFilters/NewFilterDialog.cs
  class NewFilterDialog (line 17) | internal sealed partial class NewFilterDialog : DialogForm
    method NewFilterDialog (line 19) | public NewFilterDialog(IServiceProvider serviceProvider, IsapiFiltersI...

FILE: JexusManager.Features.IsapiFilters/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: JexusManager.Features.Jexus/JexusFeature.cs
  class JexusFeature (line 20) | internal class JexusFeature
    method JexusFeature (line 22) | public JexusFeature(Module module)
    method DisplayErrorMessage (line 32) | protected void DisplayErrorMessage(Exception ex, ResourceManager resou...
    method GetService (line 38) | protected object GetService(Type type)
    method Load (line 43) | public void Load()
    method OnJexusSettingsSaved (line 69) | protected void OnJexusSettingsSaved()
    method ShowHelp (line 74) | public virtual bool ShowHelp()
    method CancelChanges (line 100) | public void CancelChanges()
    method ApplyChanges (line 105) | public bool ApplyChanges()

FILE: JexusManager.Features.Jexus/JexusModule.cs
  class JexusModule (line 14) | internal class JexusModule : Module
    method Initialize (line 16) | protected override void Initialize(IServiceProvider serviceProvider, M...

FILE: JexusManager.Features.Jexus/JexusModuleProvider.cs
  class JexusModuleProvider (line 11) | public class JexusModuleProvider : ModuleProvider
    method GetModuleDefinition (line 18) | public override ModuleDefinition GetModuleDefinition(IManagementContex...
    method SupportsScope (line 23) | public override bool SupportsScope(ManagementScope scope)

FILE: JexusManager.Features.Jexus/JexusPage.Designer.cs
  class JexusPage (line 6) | partial class JexusPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Jexus/JexusPage.cs
  class JexusPage (line 18) | internal partial class JexusPage : ModuleDialogPage
    class PageTaskList (line 20) | private sealed class PageTaskList : ShowHelpTaskList
      method PageTaskList (line 24) | public PageTaskList(JexusPage owner)
      method ShowHelp (line 29) | [Obfuscation(Exclude = true)]
    method JexusPage (line 41) | public JexusPage()
    method Initialize (line 46) | protected override void Initialize(object navigationData)
    method ShowHelp (line 58) | protected override bool ShowHelp()
    method SplitContainer1SplitterMoved (line 63) | private void SplitContainer1SplitterMoved(object sender, SplitterEvent...
    method txtSettings_TextChanged (line 71) | private void txtSettings_TextChanged(object sender, EventArgs e)
    method ApplyChanges (line 77) | protected override bool ApplyChanges()
    method CancelChanges (line 88) | protected override void CancelChanges()
    method InformChanges (line 106) | private void InformChanges()
    method ClearChanges (line 117) | private void ClearChanges()
    method OnRefresh (line 137) | protected override void OnRefresh()

FILE: JexusManager.Features.Jexus/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: JexusManager.Features.Logging/AddFieldDialog.Designer.cs
  class AddFieldDialog (line 6) | partial class AddFieldDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Logging/AddFieldDialog.cs
  class AddFieldDialog (line 16) | internal partial class AddFieldDialog : DialogForm
    method AddFieldDialog (line 21) | public AddFieldDialog(IServiceProvider serviceProvider, CustomLogField...
    method AddFieldDialog_HelpButtonClicked (line 134) | private void AddFieldDialog_HelpButtonClicked(object sender, CancelEve...

FILE: JexusManager.Features.Logging/Fields.cs
  class Fields (line 6) | class Fields
    method Fields (line 13) | public Fields(SiteLogFile file)

FILE: JexusManager.Features.Logging/FieldsDialog.Designer.cs
  class FieldsDialog (line 6) | partial class FieldsDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Logging/FieldsDialog.cs
  class FieldsDialog (line 17) | internal partial class FieldsDialog : DialogForm
    class StandardListViewItem (line 19) | private class StandardListViewItem : ListViewItem
      method StandardListViewItem (line 21) | public StandardListViewItem(LogExtFileFlags flag)
      method ToString (line 29) | private static string ToString(LogExtFileFlags flag)
    class CustomListViewItem (line 39) | private class CustomListViewItem : ListViewItem
      method CustomListViewItem (line 43) | public CustomListViewItem(CustomLogField custom)
      method ToString (line 51) | private static string ToString(CustomLogFieldSourceType type)
      method Update (line 66) | public void Update()
    method FieldsDialog (line 76) | public FieldsDialog(IServiceProvider serviceProvider, Fields logFile)
    method FieldsDialog_HelpButtonClicked (line 190) | private void FieldsDialog_HelpButtonClicked(object sender, CancelEvent...
    method FieldsDialog_Shown (line 195) | private void FieldsDialog_Shown(object sender, EventArgs e)

FILE: JexusManager.Features.Logging/LoggingFeature.cs
  class LoggingFeature (line 23) | internal class LoggingFeature
    class FeatureTaskList (line 25) | private sealed class FeatureTaskList : TaskList
      method FeatureTaskList (line 29) | public FeatureTaskList(LoggingFeature owner)
      method GetTaskItems (line 34) | public override ICollection GetTaskItems()
      method Enable (line 51) | [Obfuscation(Exclude = true)]
      method Disable (line 57) | [Obfuscation(Exclude = true)]
      method View (line 63) | [Obfuscation(Exclude = true)]
    method LoggingFeature (line 70) | public LoggingFeature(Module module)
    method DisplayErrorMessage (line 81) | protected void DisplayErrorMessage(Exception ex, ResourceManager resou...
    method GetService (line 87) | protected object GetService(Type type)
    method GetTaskList (line 92) | public TaskList GetTaskList()
    method Load (line 97) | public void Load()
    method Enable (line 174) | private void Enable()
    method Disable (line 182) | private void Disable()
    method View (line 190) | private void View()
    method SelectFields (line 205) | internal bool SelectFields()
    method OnLoggingSettingsSaved (line 216) | protected void OnLoggingSettingsSaved()
    method SetEnabled (line 221) | public void SetEnabled(bool enabled)
    method ShowHelp (line 227) | public virtual bool ShowHelp()
    method CancelChanges (line 247) | public void CancelChanges()
    method ApplyChanges (line 252) | public bool ApplyChanges()

FILE: JexusManager.Features.Logging/LoggingModule.cs
  class LoggingModule (line 14) | internal class LoggingModule : Module
    method Initialize (line 16) | protected override void Initialize(IServiceProvider serviceProvider, M...

FILE: JexusManager.Features.Logging/LoggingModuleProvider.cs
  class LoggingModuleProvider (line 11) | public class LoggingModuleProvider : ModuleProvider
    method GetModuleDefinition (line 18) | public override ModuleDefinition GetModuleDefinition(IManagementContex...
    method SupportsScope (line 23) | public override bool SupportsScope(ManagementScope scope)

FILE: JexusManager.Features.Logging/LoggingPage.Designer.cs
  class LoggingPage (line 6) | partial class LoggingPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Logging/LoggingPage.cs
  class LoggingPage (line 16) | internal partial class LoggingPage : ModuleDialogPage
    class PageTaskList (line 18) | private sealed class PageTaskList : ShowHelpTaskList
      method PageTaskList (line 22) | public PageTaskList(LoggingPage owner)
      method ShowHelp (line 27) | [Obfuscation(Exclude = true)]
    method LoggingPage (line 40) | public LoggingPage()
    method Initialize (line 45) | protected override void Initialize(object navigationData)
    method ShowHelp (line 56) | protected override bool ShowHelp()
    method splitContainer1_SplitterMoved (line 61) | private void splitContainer1_SplitterMoved(object sender, SplitterEven...
    method btnBrowse_Click (line 69) | private void btnBrowse_Click(object sender, EventArgs e)
    method cbFormat_SelectedIndexChanged (line 76) | private void cbFormat_SelectedIndexChanged(object sender, EventArgs e)
    method InformChanges (line 83) | private void InformChanges()
    method ClearChanges (line 94) | private void ClearChanges()
    method OnRefresh (line 100) | protected override void OnRefresh()
    method txtPath_TextChanged (line 176) | private void txtPath_TextChanged(object sender, EventArgs e)
    method cbEncoding_SelectedIndexChanged (line 192) | private void cbEncoding_SelectedIndexChanged(object sender, EventArgs e)
    method ApplyChanges (line 198) | protected override bool ApplyChanges()
    method CancelChanges (line 209) | protected override void CancelChanges()
    method btnSelect_Click (line 217) | private void btnSelect_Click(object sender, EventArgs e)
    method rbFile_CheckedChanged (line 225) | private void rbFile_CheckedChanged(object sender, EventArgs e)
    method rbSchedule_CheckedChanged (line 243) | private void rbSchedule_CheckedChanged(object sender, EventArgs e)
    method cbLocalTime_CheckedChanged (line 279) | private void cbLocalTime_CheckedChanged(object sender, EventArgs e)
    method cbSchedule_SelectedIndexChanged (line 285) | private void cbSchedule_SelectedIndexChanged(object sender, EventArgs e)
    method txtSize_TextChanged (line 306) | private void txtSize_TextChanged(object sender, EventArgs e)

FILE: JexusManager.Features.Logging/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: JexusManager.Features.MimeMap/MimeMapFeature.cs
  class MimeMapFeature (line 33) | internal class MimeMapFeature : FeatureBase<MimeMapItem>
    class FeatureTaskList (line 35) | private sealed class FeatureTaskList : DefaultTaskList
      method FeatureTaskList (line 39) | public FeatureTaskList(MimeMapFeature owner)
      method GetTaskItems (line 44) | public override ICollection GetTaskItems()
      method Add (line 58) | [Obfuscation(Exclude = true)]
      method Remove (line 64) | [Obfuscation(Exclude = true)]
      method Edit (line 70) | [Obfuscation(Exclude = true)]
    method MimeMapFeature (line 77) | public MimeMapFeature(Module module)
    method GetTaskList (line 88) | public TaskList GetTaskList()
    method Load (line 93) | public void Load()
    method GetCollection (line 101) | protected override ConfigurationElementCollection GetCollection(IConfi...
    method Add (line 107) | public void Add()
    method Remove (line 118) | public void Remove()
    method Edit (line 132) | public void Edit()
    method DoubleClick (line 137) | protected override void DoubleClick(MimeMapItem item)
    method InitializeGrouping (line 148) | public override void InitializeGrouping(ToolStripComboBox cbGroup)
    method GetGroupKey (line 153) | public override string GetGroupKey(ListViewItem item, string selectedG...
    method OnSettingsSaved (line 166) | protected override void OnSettingsSaved()
    method ShowHelp (line 171) | public virtual bool ShowHelp()

FILE: JexusManager.Features.MimeMap/MimeMapItem.cs
  class MimeMapItem (line 9) | internal class MimeMapItem : IItem<MimeMapItem>
    method MimeMapItem (line 11) | public MimeMapItem(ConfigurationElement element)
    method Equals (line 32) | public bool Equals(MimeMapItem other)
    method Apply (line 38) | public void Apply()
    method Match (line 44) | public bool Match(MimeMapItem other)

FILE: JexusManager.Features.MimeMap/MimeMapModule.cs
  class MimeMapModule (line 14) | internal class MimeMapModule : Module
    method Initialize (line 16) | protected override void Initialize(IServiceProvider serviceProvider, M...

FILE: JexusManager.Features.MimeMap/MimeMapModuleProvider.cs
  class MimeMapModuleProvider (line 11) | public class MimeMapModuleProvider : ModuleProvider
    method GetModuleDefinition (line 18) | public override ModuleDefinition GetModuleDefinition(IManagementContex...
    method SupportsScope (line 23) | public override bool SupportsScope(ManagementScope scope)

FILE: JexusManager.Features.MimeMap/MimeMapPage.Designer.cs
  class MimeMapPage (line 6) | partial class MimeMapPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.MimeMap/MimeMapPage.cs
  class MimeMapPage (line 18) | internal partial class MimeMapPage : ModuleListPage
    class PageTaskList (line 20) | private sealed class PageTaskList : ShowHelpTaskList
      method PageTaskList (line 24) | public PageTaskList(MimeMapPage owner)
      method ShowHelp (line 29) | [Obfuscation(Exclude = true)]
    class MimeMapListViewItem (line 36) | private sealed class MimeMapListViewItem : ListViewItem, IFeatureListV...
      method MimeMapListViewItem (line 42) | public MimeMapListViewItem(MimeMapItem item, MimeMapPage page)
    method MimeMapPage (line 55) | public MimeMapPage()
    method Initialize (line 60) | protected override void Initialize(object navigationData)
    method InitializeListPage (line 71) | protected override void InitializeListPage()
    method Refresh (line 97) | protected override void Refresh()
    method ListView1_KeyDown (line 103) | private void ListView1_KeyDown(object sender, KeyEventArgs e)
    method ListView1_MouseDoubleClick (line 111) | private void ListView1_MouseDoubleClick(object sender, EventArgs e)
    method listView1_SelectedIndexChanged (line 116) | private void listView1_SelectedIndexChanged(object sender, EventArgs e)
    method CbGroup_SelectedIndexChanged (line 122) | private void CbGroup_SelectedIndexChanged(object sender, EventArgs e)
    method ShowHelp (line 127) | protected override bool ShowHelp()

FILE: JexusManager.Features.MimeMap/NewMapItemDialog.cs
  class NewMapItemDialog (line 16) | internal sealed partial class NewMapItemDialog : DialogForm
    method NewMapItemDialog (line 18) | public NewMapItemDialog(IServiceProvider serviceProvider, MimeMapItem ...

FILE: JexusManager.Features.MimeMap/NewMapItemDialog.designer.cs
  class NewMapItemDialog (line 6) | sealed partial class NewMapItemDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.MimeMap/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: JexusManager.Features.Modules/GlobalModule.cs
  class GlobalModule (line 11) | internal class GlobalModule : IItem<GlobalModule>
    method GlobalModule (line 13) | public GlobalModule(ConfigurationElement element)
    method Equals (line 38) | public bool Equals(GlobalModule other)
    method Apply (line 45) | public void Apply()
    method Match (line 54) | public bool Match(GlobalModule other)

FILE: JexusManager.Features.Modules/ModulesFeature.cs
  class ModulesFeature (line 33) | internal class ModulesFeature : FeatureBase<ModulesItem>
    class FeatureTaskList (line 35) | private sealed class FeatureTaskList : DefaultTaskList
      method FeatureTaskList (line 39) | public FeatureTaskList(ModulesFeature owner)
      method GetTaskItems (line 44) | public override ICollection GetTaskItems()
      method AddManaged (line 77) | [Obfuscation(Exclude = true)]
      method Add (line 83) | [Obfuscation(Exclude = true)]
      method Remove (line 89) | [Obfuscation(Exclude = true)]
      method Edit (line 95) | [Obfuscation(Exclude = true)]
      method Rename (line 101) | [Obfuscation(Exclude = true)]
      method MoveUp (line 107) | [Obfuscation(Exclude = true)]
      method MoveDown (line 113) | [Obfuscation(Exclude = true)]
      method InOrder (line 119) | [Obfuscation(Exclude = true)]
      method Unorder (line 125) | [Obfuscation(Exclude = true)]
      method Revert (line 131) | [Obfuscation(Exclude = true)]
    method ModulesFeature (line 138) | public ModulesFeature(Module module)
    method GetTaskList (line 149) | public TaskList GetTaskList()
    method Load (line 154) | public void Load()
    method LoadItems (line 171) | public override void LoadItems()
    method GetCollection (line 186) | protected override ConfigurationElementCollection GetCollection(IConfi...
    method Add (line 195) | public void Add()
    method AddManaged (line 220) | public void AddManaged()
    method AddGlobal (line 231) | public void AddGlobal(GlobalModule item)
    method RemoveGlobal (line 241) | public void RemoveGlobal(GlobalModule item)
    method Remove (line 251) | public void Remove()
    method Edit (line 266) | public void Edit()
    method DoubleClick (line 271) | protected override void DoubleClick(ModulesItem item)
    method InitializeGrouping (line 282) | public override void InitializeGrouping(ToolStripComboBox cbGroup)
    method GetGroupKey (line 287) | public override string GetGroupKey(ListViewItem item, string selectedG...
    method Rename (line 300) | public void Rename()
    method MoveUp (line 304) | public void MoveUp()
    method MoveDown (line 323) | public void MoveDown()
    method InOrder (line 342) | public void InOrder()
    method Unorder (line 348) | public void Unorder()
    method Revert (line 354) | public void Revert()
    method OnSettingsSaved (line 375) | protected override void OnSettingsSaved()
    method ShowHelp (line 380) | public virtual bool ShowHelp()

FILE: JexusManager.Features.Modules/ModulesItem.cs
  class ModulesItem (line 12) | internal class ModulesItem : IItem<ModulesItem>
    method ModulesItem (line 14) | public ModulesItem(ConfigurationElement element)
    method Load (line 37) | public ModulesItem Load(ModulesFeature feature)
    method Equals (line 113) | public bool Equals(ModulesItem other)
    method Apply (line 119) | public void Apply()
    method Match (line 131) | public bool Match(ModulesItem other)
    method Unload (line 137) | public void Unload()

FILE: JexusManager.Features.Modules/ModulesModule.cs
  class ModulesModule (line 13) | internal class ModulesModule : Module
    method Initialize (line 15) | protected override void Initialize(IServiceProvider serviceProvider, M...

FILE: JexusManager.Features.Modules/ModulesModuleProvider.cs
  class ModulesModuleProvider (line 11) | public class ModulesModuleProvider : ModuleProvider
    method GetModuleDefinition (line 18) | public override ModuleDefinition GetModuleDefinition(IManagementContex...
    method SupportsScope (line 23) | public override bool SupportsScope(ManagementScope scope)

FILE: JexusManager.Features.Modules/ModulesPage.Designer.cs
  class ModulesPage (line 6) | partial class ModulesPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Modules/ModulesPage.cs
  class ModulesPage (line 18) | internal partial class ModulesPage : ModuleListPage
    class PageTaskList (line 20) | private sealed class PageTaskList : ShowHelpTaskList
      method PageTaskList (line 24) | public PageTaskList(ModulesPage owner)
      method ShowHelp (line 29) | [Obfuscation(Exclude = true)]
    class ModulesListViewItem (line 36) | private sealed class ModulesListViewItem : ListViewItem, IFeatureListV...
      method ModulesListViewItem (line 42) | public ModulesListViewItem(ModulesItem item, ModulesPage page)
    method ModulesPage (line 56) | public ModulesPage()
    method Initialize (line 61) | protected override void Initialize(object navigationData)
    method InitializeListPage (line 72) | protected override void InitializeListPage()
    method Refresh (line 99) | protected override void Refresh()
    method ListView1KeyDown (line 105) | private void ListView1KeyDown(object sender, KeyEventArgs e)
    method ListView1MouseDoubleClick (line 113) | private void ListView1MouseDoubleClick(object sender, MouseEventArgs e)
    method ListView1SelectedIndexChanged (line 118) | private void ListView1SelectedIndexChanged(object sender, EventArgs e)
    method CbGroup_SelectedIndexChanged (line 124) | private void CbGroup_SelectedIndexChanged(object sender, EventArgs e)
    method ShowHelp (line 129) | protected override bool ShowHelp()

FILE: JexusManager.Features.Modules/NativeModulesDialog.Designer.cs
  class NativeModulesDialog (line 6) | internal partial class NativeModulesDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Modules/NativeModulesDialog.cs
  class NativeModulesDialog (line 18) | internal partial class NativeModulesDialog : DialogForm
    method NativeModulesDialog (line 20) | public NativeModulesDialog(IServiceProvider serviceProvider, ModulesFe...

FILE: JexusManager.Features.Modules/NewModuleDialog.Designer.cs
  class NewModuleDialog (line 6) | sealed partial class NewModuleDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Modules/NewModuleDialog.cs
  class NewModuleDialog (line 17) | internal sealed partial class NewModuleDialog : DialogForm
    method NewModuleDialog (line 19) | public NewModuleDialog(IServiceProvider serviceProvider, ModulesItem e...

FILE: JexusManager.Features.Modules/NewNativeDialog.Designer.cs
  class NewNativeDialog (line 3) | internal sealed partial class NewNativeDialog
    method Dispose (line 14) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 29) | private void InitializeComponent()

FILE: JexusManager.Features.Modules/NewNativeDialog.cs
  class NewNativeDialog (line 15) | internal sealed partial class NewNativeDialog : DialogForm
    method NewNativeDialog (line 17) | public NewNativeDialog(IServiceProvider serviceProvider, GlobalModule ...

FILE: JexusManager.Features.Modules/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: JexusManager.Features.RequestFiltering/AppliesToItem.cs
  class AppliesToItem (line 9) | internal class AppliesToItem
    method AppliesToItem (line 13) | public AppliesToItem(ConfigurationElement child)
    method Apply (line 26) | public void Apply()
    method AppendTo (line 31) | public void AppendTo(ConfigurationElementCollection appliesToCollection)

FILE: JexusManager.Features.RequestFiltering/DenyStringsItem.cs
  class DenyStringsItem (line 9) | internal class DenyStringsItem
    method DenyStringsItem (line 13) | public DenyStringsItem(ConfigurationElement child)
    method Apply (line 26) | public void Apply()
    method AppendTo (line 31) | public void AppendTo(ConfigurationElementCollection denyStringsCollect...

FILE: JexusManager.Features.RequestFiltering/FileExtensionsFeature.cs
  class FileExtensionsFeature (line 19) | internal class FileExtensionsFeature : RequestFilteringFeature<FileExten...
    class FeatureTaskList (line 21) | private sealed class FeatureTaskList : DefaultTaskList
      method FeatureTaskList (line 25) | public FeatureTaskList(FileExtensionsFeature owner)
      method GetTaskItems (line 30) | public override ICollection GetTaskItems()
      method AddExtension (line 46) | [Obfuscation(Exclude = true)]
      method AddDenyExtension (line 52) | [Obfuscation(Exclude = true)]
      method Remove (line 58) | [Obfuscation(Exclude = true)]
    method FileExtensionsFeature (line 65) | public FileExtensionsFeature(Module module)
    method GetTaskList (line 72) | public override TaskList GetTaskList()
    method Add (line 77) | public void Add()
    method AddDeny (line 82) | public void AddDeny()
    method CreateExtension (line 87) | private void CreateExtension(bool allowed)
    method Remove (line 98) | public void Remove()
    method Load (line 115) | public override void Load()
    method GetCollection (line 120) | protected override ConfigurationElementCollection GetCollection(IConfi...
    method ShowHelp (line 126) | public override bool ShowHelp()

FILE: JexusManager.Features.RequestFiltering/FileExtensionsItem.cs
  class FileExtensionsItem (line 9) | internal class FileExtensionsItem : IItem<FileExtensionsItem>
    method Match (line 13) | public bool Match(FileExtensionsItem other)
    method FileExtensionsItem (line 18) | public FileExtensionsItem(ConfigurationElement element)
    method Apply (line 37) | public void Apply()
    method Equals (line 43) | public bool Equals(FileExtensionsItem other)

FILE: JexusManager.Features.RequestFiltering/FilteringRulesFeature.cs
  class FilteringRulesFeature (line 21) | internal class FilteringRulesFeature : RequestFilteringFeature<Filtering...
    class FeatureTaskList (line 23) | private sealed class FeatureTaskList : DefaultTaskList
      method FeatureTaskList (line 27) | public FeatureTaskList(FilteringRulesFeature owner)
      method GetTaskItems (line 32) | public override ICollection GetTaskItems()
      method AddRule (line 47) | [Obfuscation(Exclude = true)]
      method EditRule (line 53) | [Obfuscation(Exclude = true)]
      method Remove (line 59) | [Obfuscation(Exclude = true)]
    method FilteringRulesFeature (line 66) | public FilteringRulesFeature(Module module)
    method GetTaskList (line 73) | public override TaskList GetTaskList()
    method Add (line 78) | public void Add()
    method Edit (line 89) | public void Edit()
    method DoubleClick (line 94) | protected override void DoubleClick(FilteringRulesItem item)
    method Remove (line 105) | public void Remove()
    method Load (line 119) | public override void Load()
    method GetCollection (line 124) | protected override ConfigurationElementCollection GetCollection(IConfi...
    method ShowHelp (line 131) | public override bool ShowHelp()

FILE: JexusManager.Features.RequestFiltering/FilteringRulesItem.cs
  class FilteringRulesItem (line 13) | internal class FilteringRulesItem : IItem<FilteringRulesItem>
    method Match (line 17) | public bool Match(FilteringRulesItem other)
    method FilteringRulesItem (line 66) | public FilteringRulesItem(ConfigurationElement element)
    method Apply (line 97) | public void Apply()
    method Equals (line 127) | public bool Equals(FilteringRulesItem other)

FILE: JexusManager.Features.RequestFiltering/HeadersFeature.cs
  class HeadersFeature (line 21) | internal class HeadersFeature : RequestFilteringFeature<HeadersItem>
    class FeatureTaskList (line 23) | private sealed class FeatureTaskList : DefaultTaskList
      method FeatureTaskList (line 27) | public FeatureTaskList(HeadersFeature owner)
      method GetTaskItems (line 32) | public override ICollection GetTaskItems()
      method AddHeader (line 48) | [Obfuscation(Exclude = true)]
      method Remove (line 54) | [Obfuscation(Exclude = true)]
    method HeadersFeature (line 61) | public HeadersFeature(Module module)
    method GetTaskList (line 68) | public override TaskList GetTaskList()
    method Add (line 72) | public void Add()
    method Remove (line 83) | public void Remove()
    method Load (line 97) | public override void Load()
    method GetCollection (line 102) | protected override ConfigurationElementCollection GetCollection(IConfi...
    method ShowHelp (line 112) | public override bool ShowHelp()

FILE: JexusManager.Features.RequestFiltering/HeadersItem.cs
  class HeadersItem (line 9) | internal class HeadersItem : IItem<HeadersItem>
    method Match (line 13) | public bool Match(HeadersItem other)
    method HeadersItem (line 18) | public HeadersItem(ConfigurationElement element)
    method Apply (line 34) | public void Apply()
    method Equals (line 42) | public bool Equals(HeadersItem other)

FILE: JexusManager.Features.RequestFiltering/HiddenSegmentsFeature.cs
  class HiddenSegmentsFeature (line 21) | internal class HiddenSegmentsFeature : RequestFilteringFeature<HiddenSeg...
    class FeatureTaskList (line 23) | private sealed class FeatureTaskList : DefaultTaskList
      method FeatureTaskList (line 27) | public FeatureTaskList(HiddenSegmentsFeature owner)
      method GetTaskItems (line 32) | public override ICollection GetTaskItems()
      method AddSegment (line 46) | [Obfuscation(Exclude = true)]
      method Remove (line 52) | [Obfuscation(Exclude = true)]
    method HiddenSegmentsFeature (line 59) | public HiddenSegmentsFeature(Module module)
    method GetTaskList (line 66) | public override TaskList GetTaskList()
    method Add (line 71) | public void Add()
    method Remove (line 82) | public void Remove()
    method Load (line 96) | public override void Load()
    method GetCollection (line 101) | protected override ConfigurationElementCollection GetCollection(IConfi...
    method ShowHelp (line 108) | public override bool ShowHelp()

FILE: JexusManager.Features.RequestFiltering/HiddenSegmentsItem.cs
  class HiddenSegmentsItem (line 9) | internal class HiddenSegmentsItem : IItem<HiddenSegmentsItem>
    method HiddenSegmentsItem (line 11) | public HiddenSegmentsItem(ConfigurationElement element)
    method Equals (line 27) | public bool Equals(HiddenSegmentsItem other)
    method Match (line 32) | public bool Match(HiddenSegmentsItem other)
    method Apply (line 37) | public void Apply()

FILE: JexusManager.Features.RequestFiltering/IRequestFilteringFeature.cs
  type IRequestFilteringFeature (line 9) | internal interface IRequestFilteringFeature
    method GetTaskList (line 11) | TaskList GetTaskList();
    method ShowHelp (line 13) | bool ShowHelp();

FILE: JexusManager.Features.RequestFiltering/NewExtensionDialog.Designer.cs
  class NewExtensionDialog (line 6) | internal sealed partial class NewExtensionDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.RequestFiltering/NewExtensionDialog.cs
  class NewExtensionDialog (line 17) | internal sealed partial class NewExtensionDialog : DialogForm
    method NewExtensionDialog (line 19) | public NewExtensionDialog(IServiceProvider serviceProvider, FileExtens...
    method NewHiddenSegmentDialogHelpButtonClicked (line 62) | private void NewHiddenSegmentDialogHelpButtonClicked(object sender, Ca...

FILE: JexusManager.Features.RequestFiltering/NewHeaderDialog.Designer.cs
  class NewHeaderDialog (line 6) | internal sealed partial class NewHeaderDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.RequestFiltering/NewHeaderDialog.cs
  class NewHeaderDialog (line 16) | internal sealed partial class NewHeaderDialog : DialogForm
    method NewHeaderDialog (line 18) | public NewHeaderDialog(IServiceProvider serviceProvider)
    method NewHiddenSegmentDialogHelpButtonClicked (line 50) | private void NewHiddenSegmentDialogHelpButtonClicked(object sender, Ca...

FILE: JexusManager.Features.RequestFiltering/NewHiddenSegmentDialog.Designer.cs
  class NewHiddenSegmentDialog (line 6) | internal partial class NewHiddenSegmentDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.RequestFiltering/NewHiddenSegmentDialog.cs
  class NewHiddenSegmentDialog (line 16) | internal partial class NewHiddenSegmentDialog : DialogForm
    method NewHiddenSegmentDialog (line 18) | public NewHiddenSegmentDialog(IServiceProvider serviceProvider)
    method NewHiddenSegmentDialogHelpButtonClicked (line 49) | private void NewHiddenSegmentDialogHelpButtonClicked(object sender, Ca...

FILE: JexusManager.Features.RequestFiltering/NewQueryDialog.Designer.cs
  class NewQueryDialog (line 6) | internal sealed partial class NewQueryDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.RequestFiltering/NewQueryDialog.cs
  class NewQueryDialog (line 16) | internal sealed partial class NewQueryDialog : DialogForm
    method NewQueryDialog (line 18) | public NewQueryDialog(IServiceProvider serviceProvider, bool allowed)
    method NewHiddenSegmentDialogHelpButtonClicked (line 49) | private void NewHiddenSegmentDialogHelpButtonClicked(object sender, Ca...

FILE: JexusManager.Features.RequestFiltering/NewRuleDialog.Designer.cs
  class NewRuleDialog (line 6) | internal sealed partial class NewRuleDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.RequestFiltering/NewRuleDialog.cs
  class NewRuleDialog (line 16) | internal sealed partial class NewRuleDialog : DialogForm
    method NewRuleDialog (line 18) | public NewRuleDialog(IServiceProvider serviceProvider, FilteringRulesI...
    method NewHiddenSegmentDialogHelpButtonClicked (line 103) | private void NewHiddenSegmentDialogHelpButtonClicked(object sender, Ca...

FILE: JexusManager.Features.RequestFiltering/NewUrlDialog.Designer.cs
  class NewUrlDialog (line 6) | internal sealed partial class NewUrlDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.RequestFiltering/NewUrlDialog.cs
  class NewUrlDialog (line 16) | internal sealed partial class NewUrlDialog : DialogForm
    method NewUrlDialog (line 18) | public NewUrlDialog(IServiceProvider serviceProvider, bool allowed)
    method NewHiddenSegmentDialogHelpButtonClicked (line 50) | private void NewHiddenSegmentDialogHelpButtonClicked(object sender, Ca...

FILE: JexusManager.Features.RequestFiltering/NewVerbDialog.Designer.cs
  class NewVerbDialog (line 6) | internal sealed partial class NewVerbDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.RequestFiltering/NewVerbDialog.cs
  class NewVerbDialog (line 16) | internal sealed partial class NewVerbDialog : DialogForm
    method NewVerbDialog (line 18) | public NewVerbDialog(IServiceProvider serviceProvider, bool allowed)
    method NewHiddenSegmentDialogHelpButtonClicked (line 49) | private void NewHiddenSegmentDialogHelpButtonClicked(object sender, Ca...

FILE: JexusManager.Features.RequestFiltering/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: JexusManager.Features.RequestFiltering/QueryStringsFeature.cs
  class QueryStringsFeature (line 21) | internal class QueryStringsFeature : RequestFilteringFeature<QueryString...
    class FeatureTaskList (line 23) | private sealed class FeatureTaskList : DefaultTaskList
      method FeatureTaskList (line 27) | public FeatureTaskList(QueryStringsFeature owner)
      method GetTaskItems (line 32) | public override ICollection GetTaskItems()
      method AddQuery (line 46) | [Obfuscation(Exclude = true)]
      method AddDenyQuery (line 52) | [Obfuscation(Exclude = true)]
      method Remove (line 58) | [Obfuscation(Exclude = true)]
    method QueryStringsFeature (line 65) | public QueryStringsFeature(Module module)
    method GetTaskList (line 72) | public override TaskList GetTaskList()
    method Add (line 77) | public void Add()
    method AddDeny (line 88) | public void AddDeny()
    method Remove (line 99) | public void Remove()
    method GetCollection (line 113) | protected override ConfigurationElementCollection GetCollection(IConfi...
    method GetSecondaryCollection (line 120) | protected override ConfigurationElementCollection GetSecondaryCollecti...
    method Load (line 127) | public override void Load()
    method ShowHelp (line 132) | public override bool ShowHelp()

FILE: JexusManager.Features.RequestFiltering/QueryStringsItem.cs
  class QueryStringsItem (line 9) | internal class QueryStringsItem : IDuoItem<QueryStringsItem>
    method Match (line 15) | public bool Match(QueryStringsItem other)
    method QueryStringsItem (line 20) | public QueryStringsItem(ConfigurationElement element, bool allowed)
    method Apply (line 41) | public void Apply()
    method Equals (line 55) | public bool Equals(QueryStringsItem other)

FILE: JexusManager.Features.RequestFiltering/RequestFilteringFeature.cs
  class RequestFilteringFeature (line 22) | internal abstract class RequestFilteringFeature<T> : FeatureBase<T>, IRe...
    method RequestFilteringFeature (line 25) | protected RequestFilteringFeature(Module module)
    method GetTaskList (line 35) | public abstract TaskList GetTaskList();
    method Load (line 37) | public abstract void Load();
    method OnSettingsSaved (line 39) | protected override void OnSettingsSaved()
    method ShowHelp (line 44) | public abstract bool ShowHelp();

FILE: JexusManager.Features.RequestFiltering/RequestFilteringModule.cs
  class RequestFilteringModule (line 14) | internal class RequestFilteringModule : Module
    method Initialize (line 16) | protected override void Initialize(IServiceProvider serviceProvider, M...

FILE: JexusManager.Features.RequestFiltering/RequestFilteringModuleProvider.cs
  class RequestFilteringModuleProvider (line 11) | public class RequestFilteringModuleProvider : ModuleProvider
    method GetModuleDefinition (line 18) | public override ModuleDefinition GetModuleDefinition(IManagementContex...
    method SupportsScope (line 23) | public override bool SupportsScope(ManagementScope scope)

FILE: JexusManager.Features.RequestFiltering/RequestFilteringPage.Designer.cs
  class RequestFilteringPage (line 7) | partial class RequestFilteringPage
    method Dispose (line 18) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 33) | private void InitializeComponent()

FILE: JexusManager.Features.RequestFiltering/RequestFilteringPage.cs
  class RequestFilteringPage (line 18) | internal partial class RequestFilteringPage : ModuleListPage
    class PageTaskList (line 20) | private sealed class PageTaskList : DefaultTaskList
      method PageTaskList (line 24) | public PageTaskList(RequestFilteringPage owner)
      method GetTaskItems (line 29) | public override ICollection GetTaskItems()
      method Set (line 38) | [Obfuscation(Exclude = true)]
      method ShowHelp (line 44) | [Obfuscation(Exclude = true)]
    class ExtensionListViewItem (line 51) | private sealed class ExtensionListViewItem : ListViewItem, IFeatureLis...
      method ExtensionListViewItem (line 56) | public ExtensionListViewItem(FileExtensionsItem item, RequestFilteri...
    class RuleListViewItem (line 65) | private sealed class RuleListViewItem : ListViewItem, IFeatureListView...
      method RuleListViewItem (line 70) | public RuleListViewItem(FilteringRulesItem item, RequestFilteringPag...
    class SegmentListViewItem (line 81) | private sealed class SegmentListViewItem : ListViewItem, IFeatureListV...
      method SegmentListViewItem (line 86) | public SegmentListViewItem(HiddenSegmentsItem item, RequestFiltering...
    class UrlListViewItem (line 94) | private sealed class UrlListViewItem : ListViewItem, IFeatureListViewI...
      method UrlListViewItem (line 99) | public UrlListViewItem(UrlsItem item, RequestFilteringPage page)
    class VerbListViewItem (line 108) | private sealed class VerbListViewItem : ListViewItem, IFeatureListView...
      method VerbListViewItem (line 113) | public VerbListViewItem(VerbsItem item, RequestFilteringPage page)
    class HeaderListViewItem (line 122) | private sealed class HeaderListViewItem : ListViewItem, IFeatureListVi...
      method HeaderListViewItem (line 127) | public HeaderListViewItem(HeadersItem item, RequestFilteringPage page)
    class QueryListViewItem (line 136) | private sealed class QueryListViewItem : ListViewItem, IFeatureListVie...
      method QueryListViewItem (line 141) | public QueryListViewItem(QueryStringsItem item, RequestFilteringPage...
    method RequestFilteringPage (line 152) | public RequestFilteringPage()
    method Initialize (line 171) | protected override void Initialize(object navigationData)
    method InitializeListPage (line 221) | protected override void InitializeListPage()
    method RefreshExtensions (line 225) | private void RefreshExtensions()
    method RefreshRules (line 254) | private void RefreshRules()
    method RefreshSegments (line 283) | private void RefreshSegments()
    method RefreshUrls (line 312) | private void RefreshUrls()
    method RefreshVerbs (line 341) | private void RefreshVerbs()
    method RefreshHeaders (line 370) | private void RefreshHeaders()
    method RefreshQueries (line 399) | private void RefreshQueries()
    method Refresh (line 428) | protected override void Refresh()
    method LvExtensions_KeyDown (line 440) | private void LvExtensions_KeyDown(object sender, KeyEventArgs e)
    method LvExtensions_MouseDoubleClick (line 449) | private void LvExtensions_MouseDoubleClick(object sender, MouseEventAr...
    method LvExtensionsSelectedIndexChanged (line 455) | private void LvExtensionsSelectedIndexChanged(object sender, EventArgs e)
    method LvRules_KeyDown (line 462) | private void LvRules_KeyDown(object sender, KeyEventArgs e)
    method LvRules_MouseDoubleClick (line 471) | private void LvRules_MouseDoubleClick(Object sender, MouseEventArgs e)
    method LvRulesSelectedIndexChanged (line 477) | private void LvRulesSelectedIndexChanged(object sender, EventArgs e)
    method LvSegments_KeyDown (line 484) | private void LvSegments_KeyDown(object sender, KeyEventArgs e)
    method LvSegments_MouseDoubleClick (line 493) | private void LvSegments_MouseDoubleClick(object sender, MouseEventArgs e)
    method LvSegmentsSelectedIndexChanged (line 499) | private void LvSegmentsSelectedIndexChanged(object sender, EventArgs e)
    method LvUrls_KeyDown (line 506) | private void LvUrls_KeyDown(object sender, KeyEventArgs e)
    method LvUrls_MouseDoubleClick (line 515) | private void LvUrls_MouseDoubleClick(object sender, MouseEventArgs e)
    method LvUrlsSelectedIndexChanged (line 521) | private void LvUrlsSelectedIndexChanged(object sender, EventArgs e)
    method LvVerbs_KeyDown (line 528) | private void LvVerbs_KeyDown(object sender, KeyEventArgs e)
    method LvVerbs_MouseDoubleClick (line 537) | private void LvVerbs_MouseDoubleClick(object sender, MouseEventArgs e)
    method LvVerbsSelectedIndexChanged (line 543) | private void LvVerbsSelectedIndexChanged(object sender, EventArgs e)
    method LvHeaders_KeyDown (line 550) | private void LvHeaders_KeyDown(object sender, KeyEventArgs e)
    method LvHeaders_MouseDoubleClick (line 559) | private void LvHeaders_MouseDoubleClick(object sender, MouseEventArgs e)
    method LvHeadersSelectedIndexChanged (line 565) | private void LvHeadersSelectedIndexChanged(object sender, EventArgs e)
    method LvQueries_KeyDown (line 572) | private void LvQueries_KeyDown(object sender, KeyEventArgs e)
    method LvQueries_MouseDoubleClick (line 581) | private void LvQueries_MouseDoubleClick(object sender, MouseEventArgs e)
    method LvQueriesSelectedIndexChanged (line 587) | private void LvQueriesSelectedIndexChanged(object sender, EventArgs e)
    method ShowHelp (line 594) | protected override bool ShowHelp()
    method SplitContainer1SplitterMoved (line 615) | private void SplitContainer1SplitterMoved(object sender, SplitterEvent...
    method TabControl1SelectedIndexChanged (line 623) | private void TabControl1SelectedIndexChanged(object sender, EventArgs e)
    method Set (line 636) | public void Set()

FILE: JexusManager.Features.RequestFiltering/ScanHeadersItem.cs
  class ScanHeadersItem (line 9) | internal class ScanHeadersItem : IItem<ScanHeadersItem>
    method Match (line 13) | public bool Match(ScanHeadersItem other)
    method ScanHeadersItem (line 18) | public ScanHeadersItem(ConfigurationElement element)
    method Apply (line 33) | public void Apply()
    method Equals (line 38) | public bool Equals(ScanHeadersItem other)

FILE: JexusManager.Features.RequestFiltering/SegmentSettingsDialog.Designer.cs
  class SegmentSettingsDialog (line 6) | partial class SegmentSettingsDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.RequestFiltering/SegmentSettingsDialog.cs
  class SegmentSettingsDialog (line 17) | public partial class SegmentSettingsDialog : DialogForm
    method SegmentSettingsDialog (line 19) | public SegmentSettingsDialog(IServiceProvider serviceProvider, Configu...
    method SegmentSettingsDialog_HelpButtonClicked (line 110) | private void SegmentSettingsDialog_HelpButtonClicked(object sender, Ca...

FILE: JexusManager.Features.RequestFiltering/UrlsFeature.cs
  class UrlsFeature (line 21) | internal class UrlsFeature : RequestFilteringFeature<UrlsItem>
    class FeatureTaskList (line 23) | private sealed class FeatureTaskList : DefaultTaskList
      method FeatureTaskList (line 27) | public FeatureTaskList(UrlsFeature owner)
      method GetTaskItems (line 32) | public override ICollection GetTaskItems()
      method AddUrl (line 47) | [Obfuscation(Exclude = true)]
      method AddDenyUrl (line 53) | [Obfuscation(Exclude = true)]
      method Remove (line 59) | [Obfuscation(Exclude = true)]
    method UrlsFeature (line 66) | public UrlsFeature(Module module)
    method GetTaskList (line 73) | public override TaskList GetTaskList()
    method Add (line 78) | public void Add()
    method AddDeny (line 89) | public void AddDeny()
    method Remove (line 100) | public void Remove()
    method GetCollection (line 114) | protected override ConfigurationElementCollection GetCollection(IConfi...
    method GetSecondaryCollection (line 121) | protected override ConfigurationElementCollection GetSecondaryCollecti...
    method Load (line 128) | public override void Load()
    method ShowHelp (line 133) | public override bool ShowHelp()

FILE: JexusManager.Features.RequestFiltering/UrlsItem.cs
  class UrlsItem (line 9) | internal class UrlsItem : IDuoItem<UrlsItem>
    method Match (line 15) | public bool Match(UrlsItem other)
    method UrlsItem (line 20) | public UrlsItem(ConfigurationElement element, bool allowed)
    method Apply (line 41) | public void Apply()
    method Equals (line 55) | public bool Equals(UrlsItem other)

FILE: JexusManager.Features.RequestFiltering/VerbsFeature.cs
  class VerbsFeature (line 21) | internal class VerbsFeature : RequestFilteringFeature<VerbsItem>
    class FeatureTaskList (line 23) | private sealed class FeatureTaskList : DefaultTaskList
      method FeatureTaskList (line 27) | public FeatureTaskList(VerbsFeature owner)
      method GetTaskItems (line 32) | public override ICollection GetTaskItems()
      method AddVerb (line 46) | [Obfuscation(Exclude = true)]
      method AddDenyVerb (line 52) | [Obfuscation(Exclude = true)]
      method Remove (line 58) | [Obfuscation(Exclude = true)]
    method VerbsFeature (line 65) | public VerbsFeature(Module module)
    method GetTaskList (line 72) | public override TaskList GetTaskList()
    method Add (line 77) | public void Add()
    method AddDeny (line 88) | public void AddDeny()
    method Remove (line 99) | public void Remove()
    method GetCollection (line 113) | protected override ConfigurationElementCollection GetCollection(IConfi...
    method Load (line 120) | public override void Load()
    method ShowHelp (line 125) | public override bool ShowHelp()

FILE: JexusManager.Features.RequestFiltering/VerbsItem.cs
  class VerbsItem (line 9) | internal class VerbsItem : IItem<VerbsItem>
    method Match (line 13) | public bool Match(VerbsItem other)
    method VerbsItem (line 18) | public VerbsItem(ConfigurationElement element)
    method Apply (line 34) | public void Apply()
    method Equals (line 42) | public bool Equals(VerbsItem other)

FILE: JexusManager.Features.ResponseHeaders/NewHeaderDialog.Designer.cs
  class NewHeaderDialog (line 6) | sealed partial class NewHeaderDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.ResponseHeaders/NewHeaderDialog.cs
  class NewHeaderDialog (line 17) | internal sealed partial class NewHeaderDialog : DialogForm
    method NewHeaderDialog (line 19) | public NewHeaderDialog(IServiceProvider serviceProvider, ResponseHeade...

FILE: JexusManager.Features.ResponseHeaders/Properties/Resources.Designer.cs
  class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: JexusManager.Features.ResponseHeaders/ResponseHeadersFeature.cs
  class ResponseHeadersFeature (line 33) | internal class ResponseHeadersFeature : FeatureBase<ResponseHeadersItem>
    class FeatureTaskList (line 35) | private sealed class FeatureTaskList : DefaultTaskList
      method FeatureTaskList (line 39) | public FeatureTaskList(ResponseHeadersFeature owner)
      method GetTaskItems (line 44) | public override ICollection GetTaskItems()
      method Add (line 59) | [Obfuscation(Exclude = true)]
      method Remove (line 65) | [Obfuscation(Exclude = true)]
      method Edit (line 71) | [Obfuscation(Exclude = true)]
      method Set (line 77) | [Obfuscation(Exclude = true)]
    method ResponseHeadersFeature (line 84) | public ResponseHeadersFeature(Module module)
    method GetTaskList (line 95) | public TaskList GetTaskList()
    method Load (line 100) | public void Load()
    method GetCollection (line 105) | protected override ConfigurationElementCollection GetCollection(IConfi...
    method Add (line 111) | public void Add()
    method Remove (line 122) | public void Remove()
    method Edit (line 136) | public void Edit()
    method DoubleClick (line 141) | protected override void DoubleClick(ResponseHeadersItem item)
    method InitializeGrouping (line 152) | public override void InitializeGrouping(ToolStripComboBox cbGroup)
    method GetGroupKey (line 157) | public override string GetGroupKey(ListViewItem item, string selectedG...
    method Set (line 168) | public void Set()
    method OnSettingsSaved (line 183) | protected override void OnSettingsSaved()
    method ShowHelp (line 188) | public virtual bool ShowHelp()

FILE: JexusManager.Features.ResponseHeaders/ResponseHeadersItem.cs
  class ResponseHeadersItem (line 9) | internal class ResponseHeadersItem : IItem<ResponseHeadersItem>
    method ResponseHeadersItem (line 16) | public ResponseHeadersItem(ConfigurationElement element)
    method Equals (line 30) | public bool Equals(ResponseHeadersItem other)
    method Match (line 35) | public bool Match(ResponseHeadersItem other)
    method Apply (line 40) | public void Apply()

FILE: JexusManager.Features.ResponseHeaders/ResponseHeadersModule.cs
  class ResponseHeadersModule (line 14) | internal class ResponseHeadersModule : Module
    method Initialize (line 16) | protected override void Initialize(IServiceProvider serviceProvider, M...

FILE: JexusManager.Features.ResponseHeaders/ResponseHeadersModuleProvider.cs
  class ResponseHeadersModuleProvider (line 11) | public class ResponseHeadersModuleProvider : ModuleProvider
    method GetModuleDefinition (line 18) | public override ModuleDefinition GetModuleDefinition(IManagementContex...
    method SupportsScope (line 23) | public override bool SupportsScope(ManagementScope scope)

FILE: JexusManager.Features.ResponseHeaders/ResponseHeadersPage.Designer.cs
  class ResponseHeadersPage (line 6) | partial class ResponseHeadersPage
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.ResponseHeaders/ResponseHeadersPage.cs
  class ResponseHeadersPage (line 18) | internal partial class ResponseHeadersPage : ModuleListPage
    class PageTaskList (line 20) | private sealed class PageTaskList : ShowHelpTaskList
      method PageTaskList (line 24) | public PageTaskList(ResponseHeadersPage owner)
      method ShowHelp (line 29) | [Obfuscation(Exclude = true)]
    class ResponseHeadersListViewItem (line 36) | private sealed class ResponseHeadersListViewItem : ListViewItem, IFeat...
      method ResponseHeadersListViewItem (line 41) | public ResponseHeadersListViewItem(ResponseHeadersItem item, Respons...
    method ResponseHeadersPage (line 54) | public ResponseHeadersPage()
    method Initialize (line 59) | protected override void Initialize(object navigationData)
    method InitializeListPage (line 70) | protected override void InitializeListPage()
    method Refresh (line 96) | protected override void Refresh()
    method ListView1KeyDown (line 102) | private void ListView1KeyDown(object sender, KeyEventArgs e)
    method ListView1MouseDoubleClick (line 110) | private void ListView1MouseDoubleClick(object sender, MouseEventArgs e)
    method ListView1SelectedIndexChanged (line 115) | private void ListView1SelectedIndexChanged(object sender, EventArgs e)
    method CbGroup_SelectedIndexChanged (line 121) | private void CbGroup_SelectedIndexChanged(object sender, EventArgs e)
    method ShowHelp (line 126) | protected override bool ShowHelp()
    method SplitContainer1SplitterMoved (line 132) | private void SplitContainer1SplitterMoved(object sender, SplitterEvent...

FILE: JexusManager.Features.ResponseHeaders/SetCommonHeadersDialog.Designer.cs
  class SetCommonHeadersDialog (line 6) | partial class SetCommonHeadersDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.ResponseHeaders/SetCommonHeadersDialog.cs
  class SetCommonHeadersDialog (line 16) | internal partial class SetCommonHeadersDialog : DialogForm
    method SetCommonHeadersDialog (line 21) | public SetCommonHeadersDialog(IServiceProvider serviceProvider, Config...
    method btnOK_Click (line 81) | private void btnOK_Click(object sender, EventArgs e)
    method GetMessage (line 176) | private string GetMessage(int selectedIndex)
    method GetMax (line 184) | private long GetMax(int index)
    method cbExpired_CheckedChanged (line 189) | private void cbExpired_CheckedChanged(object sender, EventArgs e)
    method rbAfter_CheckedChanged (line 198) | private void rbAfter_CheckedChanged(object sender, EventArgs e)
    method rbTime_CheckedChanged (line 204) | private void rbTime_CheckedChanged(object sender, EventArgs e)

FILE: JexusManager.Features.Rewrite/AddProviderDialog.Designer.cs
  class AddProviderDialog (line 3) | partial class AddProviderDialog
    method Dispose (line 14) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 28) | private void InitializeComponent()

FILE: JexusManager.Features.Rewrite/AddProviderDialog.cs
  class AddProviderDialog (line 15) | internal partial class AddProviderDialog : DialogForm
    method AddProviderDialog (line 19) | public AddProviderDialog(Module module, ProvidersFeature feature, Prov...

FILE: JexusManager.Features.Rewrite/AddProviderSettingDialog.Designer.cs
  class AddProviderSettingDialog (line 3) | partial class AddProviderSettingDialog
    method Dispose (line 14) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 28) | private void InitializeComponent()

FILE: JexusManager.Features.Rewrite/AddProviderSettingDialog.cs
  class AddProviderSettingDialog (line 15) | internal partial class AddProviderSettingDialog : DialogForm
    method AddProviderSettingDialog (line 19) | public AddProviderSettingDialog(Module module, SettingsFeature feature...

FILE: JexusManager.Features.Rewrite/ConditionItem.cs
  class ConditionItem (line 9) | public class ConditionItem : IItem<ConditionItem>
    method ConditionItem (line 13) | public ConditionItem(ConfigurationElement element)
    method Apply (line 44) | public void Apply()
    method Match (line 54) | public bool Match(ConditionItem other)
    method Equals (line 59) | public bool Equals(ConditionItem other)

FILE: JexusManager.Features.Rewrite/ConditionListViewItem.cs
  class ConditionListViewItem (line 9) | internal class ConditionListViewItem : ListViewItem
    method ConditionListViewItem (line 15) | public ConditionListViewItem(ConditionItem condition)
    method Update (line 27) | public void Update()
    method GetText (line 34) | private static string GetText(int matchType)

FILE: JexusManager.Features.Rewrite/Inbound/AddAllowedVariableDialog.Designer.cs
  class AddAllowedVariableDialog (line 6) | partial class AddAllowedVariableDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Rewrite/Inbound/AddAllowedVariableDialog.cs
  class AddAllowedVariableDialog (line 23) | internal partial class AddAllowedVariableDialog : DialogForm
    method AddAllowedVariableDialog (line 25) | public AddAllowedVariableDialog(IServiceProvider serviceProvider, Allo...
    method AddVariableDialogHelpButtonClicked (line 62) | private void AddVariableDialogHelpButtonClicked(object sender, CancelE...

FILE: JexusManager.Features.Rewrite/Inbound/AddConditionDialog.Designer.cs
  class AddConditionDialog (line 6) | internal partial class AddConditionDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Rewrite/Inbound/AddConditionDialog.cs
  class AddConditionDialog (line 20) | internal partial class AddConditionDialog : DialogForm
    method AddConditionDialog (line 22) | public AddConditionDialog(IServiceProvider serviceProvider, ConditionI...
    method AddConditionDialogHelpButtonClicked (line 98) | private void AddConditionDialogHelpButtonClicked(object sender, Cancel...

FILE: JexusManager.Features.Rewrite/Inbound/AddMapDialog.Designer.cs
  class AddMapDialog (line 6) | partial class AddMapDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Rewrite/Inbound/AddMapDialog.cs
  class AddMapDialog (line 21) | internal partial class AddMapDialog : DialogForm
    method AddMapDialog (line 26) | public AddMapDialog(IServiceProvider serviceProvider, MapRule existing...
    method AddMapDialog_HelpButtonClicked (line 61) | private void AddMapDialog_HelpButtonClicked(object sender, CancelEvent...

FILE: JexusManager.Features.Rewrite/Inbound/AddMapsDialog.Designer.cs
  class AddMapsDialog (line 6) | partial class AddMapsDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Rewrite/Inbound/AddMapsDialog.cs
  class AddMapsDialog (line 23) | internal partial class AddMapsDialog : DialogForm
    method AddMapsDialog (line 25) | public AddMapsDialog(IServiceProvider serviceProvider, MapsFeature fea...
    method AddVariableDialogHelpButtonClicked (line 62) | private void AddVariableDialogHelpButtonClicked(object sender, CancelE...

FILE: JexusManager.Features.Rewrite/Inbound/AddServerVariableDialog.Designer.cs
  class AddServerVariableDialog (line 6) | internal partial class AddServerVariableDialog
    method Dispose (line 17) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 32) | private void InitializeComponent()

FILE: JexusManager.Features.Rewrite/Inbound/AddServerVariableDialog.cs
  class AddServerVariableDialog (line 24) | internal partial class AddServerVariableDialog : DialogForm
    method AddServerVariableDialog (line 26) | public AddServerVariableDialog(IServiceProvider serviceProvider, Serve...
    method AddServerVariableDialogHelpButtonClicked (line 70) | private void AddServerVariableDialogHelpButtonClicked(object sender, C...

FILE: JexusManager.Features.Rewrite/Inbound/AllowedVariableItem.cs
  class AllowedVariableItem (line 9) | internal class AllowedVariableItem : IItem<AllowedVariableItem>
    method Match (line 13) | public bool Match(AllowedVariableItem other)
    method AllowedVariableItem (line 24) | public AllowedVariableItem(ConfigurationElement element, AllowedVariab...
    method Apply (line 37) | public void Apply()
    method Equals (line 42) | public bool Equals(AllowedVariableItem other)

FILE: JexusManager.Features.Rewrite/Inbound/AllowedVariablesFeature.cs
  class AllowedVariablesFeature (line 34) | internal class AllowedVariablesFeature : FeatureBase<AllowedVariableItem>
    class FeatureTaskList (line 36) | private sealed class FeatureTaskList : DefaultTaskList
      method FeatureTaskList (line 40) | public FeatureTaskList(AllowedVariablesFeature owner)
      method GetTaskItems (line 45) | public override ICollection GetTaskItems()
      method Add (line 65) | [Obfuscation(Exclude = true)]
      method Remove (line 71) | [Obfuscation(Exclude = true)]
      method Rename (line 77) | [Obfuscation(Exclude = true)]
      method Revert (line 83) | [Obfuscation(Exclude = true)]
    method AllowedVariablesFeature (line 90) | public AllowedVariablesFeature(Module module)
    method GetTaskList (line 101) | public TaskList GetTaskList()
    method Load (line 106) | public void Load()
    method Add (line 114) | public void Add()
    method Remove (line 127) | public void Remove()
    method OnRewriteSettingsSaved (line 141) | internal protected void OnRewriteSettingsSaved()
    method ShowHelp (line 146) | public virtual bool ShowHelp()
    method Revert (line 152) | public void Revert()
    method Edit (line 168) | private void Edit()
    method DoubleClick (line 173) | protected override void DoubleClick(AllowedVariableItem item)
    method InitializeGrouping (line 178) | public override void InitializeGrouping(ToolStripComboBox cbGroup)
    method GetGroupKey (line 183) | public override string GetGroupKey(ListViewItem item, string selectedG...
    method GetCollection (line 194) | protected override ConfigurationElementCollection GetCollection(IConfi...
    method OnSettingsSaved (line 200) | protected override void OnSettingsSaved()

FILE: JexusManager.Features.Rewrite/Inbound/InboundFeature.cs
  class InboundFeature (line 17) | public class InboundFeature : FeatureBase<InboundRule>
    method InboundFeature (line 19) | public InboundFeature(Module module)
    method GetCollection (line 24) | protected override ConfigurationElementCollection GetCollection(IConfi...
    method OnSettingsSaved (line 30) | protected override void OnSettingsSaved()
    method Refresh (line 35) | public void Refresh()
    method Load (line 47) | public void Load()
    method Add (line 57) | public void Add()
    method Remove (line 80) | public void Remove()
    method AddConditions (line 94) | public void AddConditions()
    method MoveUp (line 106) | public void MoveUp()
    method MoveDown (line 125) | public void MoveDown()
    method Disable (line 144) | public void Disable()
    method Enable (line 153) | public void Enable()
    method Revert (line 162) | public void Revert()
    method Edit (line 178) | public void Edit()
    method DoubleClick (line 183) | protected override void DoubleClick(InboundRule item)

FILE: JexusManager.Features.Rewrite/Inbound/InboundRule.cs
  class InboundRule (line 16) | public class InboundRule : IItem<InboundRule>
    method InboundRule (line 18) | public InboundRule(ConfigurationElement element)
    method Equals (line 80) | public bool Equals(InboundRule other)
    method Match (line 85) | public bool Match(InboundRule other)
    method ShowHelp (line 90) | public bool ShowHelp()
    method CancelChanges (line 96) | public void CancelChanges()
    method ApplyChanges (line 162) | public bool ApplyChanges()
    method Apply (line 168) | public void Apply()

FILE: JexusManager.Features.Rewrite/Inbound/InboundRulePage.Designer.cs
  class InboundRulePage (line 8) | partial class InboundRulePage
    method Dispose (line 19) | protected override void Dispose(bool disposing)
    method InitializeComponent (line 34) | private void InitializeComponent()

FILE: JexusManager.Features.Rewrite/Inbound/InboundRulePage.cs
  class InboundRulePage (line 21) | internal partial class InboundRulePage : ModuleDialogPage, IModuleChildPage
    class PageTaskList (line 23) | private sealed class PageTaskList : DefaultTaskList
      method PageTaskList (line 27) | public PageTaskList(InboundRulePage owner)
  
Copy disabled (too large) Download .json
Condensed preview — 1419 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (15,849K chars).
[
  {
    "path": ".editorconfig",
    "chars": 704,
    "preview": "# editorconfig.org\n\n# top-most EditorConfig file\nroot = true\n\n# Default settings:\n# A newline ending every file\n# Use 4 "
  },
  {
    "path": ".gitattributes",
    "chars": 482,
    "preview": "# Auto detect text files and perform LF normalization\n* text=auto\n\n# Custom for Visual Studio\n*.cs     diff=csharp\n*.sln"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 641,
    "preview": "# These are supported funding model platforms\n\ngithub: [lextm]\npatreon: # Replace with a single Patreon username\nopen_co"
  },
  {
    "path": ".github/workflows/dotnetcore.yml",
    "chars": 400,
    "preview": "name: .NET Desktop CI\n\non: [push, pull_request]\n\njobs:\n  build:\n    runs-on: windows-2022\n\n    steps:\n    - uses: action"
  },
  {
    "path": ".gitignore",
    "chars": 602,
    "preview": "build/\n*.suo\n*.user\n_ReSharper*\n*.csproj.user\n*.resharper.user\n*.userprefs\n*.suo\n*.cache\n*.trx\n*.pidb\nThumbs.db\n[Bb]in\n["
  },
  {
    "path": ".gitmodules",
    "chars": 134,
    "preview": "[submodule \"LanguageServer.Framework\"]\n\tpath = LanguageServer.Framework\n\turl = https://github.com/CppCXY/LanguageServer."
  },
  {
    "path": ".vscode/settings.json",
    "chars": 57,
    "preview": "{    \n    \"dotnet.defaultSolution\": \"JexusManager.slnx\"\n}"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 3217,
    "preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, w"
  },
  {
    "path": "CertificateInstaller/CertificateInstaller.csproj",
    "chars": 1584,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n  <PropertyGroup>\n    <OutputType>Exe</OutputType>\n    <AppDesignerFolder>Properties"
  },
  {
    "path": "CertificateInstaller/NativeMethods.json",
    "chars": 85,
    "preview": "{\n    \"$schema\": \"https://aka.ms/CsWin32.schema.json\",\n    \"emitSingleFile\": false\n}\n"
  },
  {
    "path": "CertificateInstaller/NativeMethods.txt",
    "chars": 173,
    "preview": "SHObjectProperties\nSHOW_WINDOW_CMD\nntohs\nhtons\nSOCKADDR_IN\nSOCKADDR_STORAGE\nADDRESS_FAMILY\nCreatePersistentTcpPortReserv"
  },
  {
    "path": "CertificateInstaller/ProcessExtensions.cs",
    "chars": 743,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "CertificateInstaller/Program.cs",
    "chars": 12155,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "CertificateInstaller/Properties/AssemblyInfo.cs",
    "chars": 1328,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "CertificateInstaller/app.manifest",
    "chars": 3085,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<assembly manifestVersion=\"1.0\" xmlns=\"urn:schemas-microsoft-com:asm.v1\">\n  <ass"
  },
  {
    "path": "IIS.LanguageServer/Handlers/CompletionHandler.cs",
    "chars": 1568,
    "preview": "using System;\nusing System.Collections.Generic;\nusing IIS.LanguageServer.Schema;\n\nnamespace IIS.LanguageServer.Handlers;"
  },
  {
    "path": "IIS.LanguageServer/Handlers/DiagnosticsHandler.cs",
    "chars": 646,
    "preview": "using System;\nusing IIS.LanguageServer.Schema;\n\nnamespace IIS.LanguageServer.Handlers;\n\npublic class DiagnosticsHandler\n"
  },
  {
    "path": "IIS.LanguageServer/Handlers/HoverHandler.cs",
    "chars": 775,
    "preview": "using IIS.LanguageServer.Schema;\n\nnamespace IIS.LanguageServer.Handlers;\n\npublic class HoverHandler\n{\n    private readon"
  },
  {
    "path": "IIS.LanguageServer/Handlers/TextDocumentSyncHandler.cs",
    "chars": 997,
    "preview": "using System;\nusing System.Collections.Generic;\nusing IIS.LanguageServer.Schema;\n\nnamespace IIS.LanguageServer.Handlers;"
  },
  {
    "path": "IIS.LanguageServer/IIS.LanguageServer.csproj",
    "chars": 694,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n  <PropertyGroup>\n    <OutputType>Exe</OutputType>\n    <TargetFramework>net9.0-windo"
  },
  {
    "path": "IIS.LanguageServer/Language/XmlPositionAnalyzer.cs",
    "chars": 4181,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.RegularExpressions;\n\nnamespace IIS."
  },
  {
    "path": "IIS.LanguageServer/Program.cs",
    "chars": 1163,
    "preview": "using EmmyLua.LanguageServer.Framework.Server;\nusing IIS.LanguageServer.Handlers;\nusing IIS.LanguageServer.Schema;\n\ntry\n"
  },
  {
    "path": "IIS.LanguageServer/Schema/SchemaCache.cs",
    "chars": 3560,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Xml.Linq;\n\nnamespace IIS.LanguageServer."
  },
  {
    "path": "IIS.LanguageServer/Schema/SchemaLoader.cs",
    "chars": 2689,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing System.Xml.Linq;\n\nnamespace II"
  },
  {
    "path": "JexusManager/BindingExtensions.cs",
    "chars": 2785,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Dialogs/CertificateErrorsDialog.Designer.cs",
    "chars": 6691,
    "preview": "namespace JexusManager.Dialogs\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    partial class Ce"
  },
  {
    "path": "JexusManager/Dialogs/CertificateErrorsDialog.cs",
    "chars": 1605,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Dialogs/CertificateErrorsDialog.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Dialogs/ConnectAsDialog.Designer.cs",
    "chars": 5499,
    "preview": "namespace JexusManager.Dialogs\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    partial class Co"
  },
  {
    "path": "JexusManager/Dialogs/ConnectAsDialog.cs",
    "chars": 3669,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Dialogs/ConnectAsDialog.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Dialogs/ConnectAsItem.cs",
    "chars": 1298,
    "preview": "using JexusManager.Features;\nusing Microsoft.Web.Administration;\n\nnamespace JexusManager.Dialogs\n{\n    public class Con"
  },
  {
    "path": "JexusManager/Dialogs/CredentialsDialog.Designer.cs",
    "chars": 5560,
    "preview": "namespace JexusManager.Dialogs\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    partial class Cr"
  },
  {
    "path": "JexusManager/Dialogs/CredentialsDialog.cs",
    "chars": 2659,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Dialogs/CredentialsDialog.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Dialogs/EditSiteDialog.Designer.cs",
    "chars": 9327,
    "preview": "namespace JexusManager.Dialogs\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    partial class Ed"
  },
  {
    "path": "JexusManager/Dialogs/EditSiteDialog.cs",
    "chars": 4994,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Dialogs/EditSiteDialog.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Dialogs/ExceptionDialog.Designer.cs",
    "chars": 4239,
    "preview": "namespace JexusManager.Dialogs\n{\n    using System.ComponentModel;\n\n    partial class ExceptionDialog\n    {\n        /// "
  },
  {
    "path": "JexusManager/Dialogs/ExceptionDialog.cs",
    "chars": 1022,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Dialogs/ExceptionDialog.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Dialogs/NewApplicationDialog.Designer.cs",
    "chars": 12474,
    "preview": "namespace JexusManager.Dialogs\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    sealed partial c"
  },
  {
    "path": "JexusManager/Dialogs/NewApplicationDialog.cs",
    "chars": 8837,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Dialogs/NewApplicationDialog.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Dialogs/NewSiteDialog.Designer.cs",
    "chars": 18493,
    "preview": "namespace JexusManager.Dialogs\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    partial class Ne"
  },
  {
    "path": "JexusManager/Dialogs/NewSiteDialog.cs",
    "chars": 15770,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Dialogs/NewSiteDialog.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Dialogs/NewVirtualDirectoryDialog.Designer.cs",
    "chars": 10276,
    "preview": "namespace JexusManager.Dialogs\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    sealed partial c"
  },
  {
    "path": "JexusManager/Dialogs/NewVirtualDirectoryDialog.cs",
    "chars": 7980,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Dialogs/NewVirtualDirectoryDialog.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Dialogs/SelectPoolDialog.Designer.cs",
    "chars": 6464,
    "preview": "namespace JexusManager.Dialogs\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    partial class Se"
  },
  {
    "path": "JexusManager/Dialogs/SelectPoolDialog.cs",
    "chars": 2246,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Dialogs/SelectPoolDialog.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Features/Main/ApplicationFeature.cs",
    "chars": 10835,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/ApplicationPage.Designer.cs",
    "chars": 17746,
    "preview": "namespace JexusManager.Features.Main\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    partial cl"
  },
  {
    "path": "JexusManager/Features/Main/ApplicationPage.cs",
    "chars": 3999,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/ApplicationPage.resx",
    "chars": 6881,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Features/Main/ApplicationPoolAdvancedSettings.cs",
    "chars": 32832,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/ApplicationPoolAdvancedSettingsDialog.Designer.cs",
    "chars": 5287,
    "preview": "namespace JexusManager.Features.Main\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    partial cl"
  },
  {
    "path": "JexusManager/Features/Main/ApplicationPoolAdvancedSettingsDialog.cs",
    "chars": 1618,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/ApplicationPoolAdvancedSettingsDialog.resx",
    "chars": 2755,
    "preview": "<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsof"
  },
  {
    "path": "JexusManager/Features/Main/ApplicationPoolBasicSettingsDialog.Designer.cs",
    "chars": 6896,
    "preview": "namespace JexusManager.Features.Main\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    partial cl"
  },
  {
    "path": "JexusManager/Features/Main/ApplicationPoolBasicSettingsDialog.cs",
    "chars": 5061,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/ApplicationPoolBasicSettingsDialog.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Features/Main/ApplicationPoolDefaultsSettings.cs",
    "chars": 9248,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project roo"
  },
  {
    "path": "JexusManager/Features/Main/ApplicationPoolDefaultsSettingsDialog.Designer.cs",
    "chars": 5763,
    "preview": "namespace JexusManager.Features.Main\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    partial cl"
  },
  {
    "path": "JexusManager/Features/Main/ApplicationPoolDefaultsSettingsDialog.cs",
    "chars": 1639,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/ApplicationPoolDefaultsSettingsDialog.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Features/Main/ApplicationPoolsFeature.cs",
    "chars": 13300,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project roo"
  },
  {
    "path": "JexusManager/Features/Main/ApplicationPoolsPage.Designer.cs",
    "chars": 17571,
    "preview": "namespace JexusManager.Features.Main\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    partial cl"
  },
  {
    "path": "JexusManager/Features/Main/ApplicationPoolsPage.cs",
    "chars": 6831,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/ApplicationPoolsPage.resx",
    "chars": 6656,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Features/Main/ApplicationPoolsSettingsSavedEventHandler.cs",
    "chars": 419,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/ApplicationsFeature.cs",
    "chars": 13938,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project roo"
  },
  {
    "path": "JexusManager/Features/Main/ApplicationsPage.Designer.cs",
    "chars": 17904,
    "preview": "namespace JexusManager.Features.Main\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    partial cla"
  },
  {
    "path": "JexusManager/Features/Main/ApplicationsPage.cs",
    "chars": 5977,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project roo"
  },
  {
    "path": "JexusManager/Features/Main/ApplicationsPage.resx",
    "chars": 6655,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prima"
  },
  {
    "path": "JexusManager/Features/Main/BindingDiagDialog.Designer.cs",
    "chars": 5668,
    "preview": "namespace JexusManager.Features.Main\n{\n    partial class BindingDiagDialog\n    {\n        /// <summary>\n        /// Requ"
  },
  {
    "path": "JexusManager/Features/Main/BindingDiagDialog.cs",
    "chars": 14791,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/BindingDiagDialog.resx",
    "chars": 5891,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Features/Main/BindingDialog.Designer.cs",
    "chars": 10368,
    "preview": "namespace JexusManager.Features.Main\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    sealed par"
  },
  {
    "path": "JexusManager/Features/Main/BindingDialog.cs",
    "chars": 14685,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/BindingDialog.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Features/Main/BindingsDialog.Designer.cs",
    "chars": 9434,
    "preview": "namespace JexusManager.Features.Main\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    partial cl"
  },
  {
    "path": "JexusManager/Features/Main/BindingsDialog.cs",
    "chars": 7452,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/BindingsDialog.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Features/Main/CLRVersion.cs",
    "chars": 405,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/CredentialsDialog.Designer.cs",
    "chars": 5691,
    "preview": "namespace JexusManager.Features.Main\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    partial cl"
  },
  {
    "path": "JexusManager/Features/Main/CredentialsDialog.cs",
    "chars": 2505,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/CredentialsDialog.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Features/Main/HomePage.Designer.cs",
    "chars": 12403,
    "preview": "namespace JexusManager.Features.Main\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    partial cl"
  },
  {
    "path": "JexusManager/Features/Main/HomePage.cs",
    "chars": 5374,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/HomePage.resx",
    "chars": 5627,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!--\n    Microsoft ResX Schema\n\n    Version 2.0\n\n    The primary goals "
  },
  {
    "path": "JexusManager/Features/Main/IdentityDialog.Designer.cs",
    "chars": 5929,
    "preview": "namespace JexusManager.Features.Main\n{\n    partial class IdentityDialog\n    {\n        /// <summary>\n        /// Require"
  },
  {
    "path": "JexusManager/Features/Main/IdentityDialog.cs",
    "chars": 5015,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/IdentityDialog.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Features/Main/IdentityEditor.cs",
    "chars": 1154,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/KestrelDiagDialog.Designer.cs",
    "chars": 6285,
    "preview": "namespace JexusManager.Features.Main\n{\n    partial class KestrelDiagDialog\n    {\n        /// <summary>\n        /// Requ"
  },
  {
    "path": "JexusManager/Features/Main/KestrelDiagDialog.cs",
    "chars": 31546,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/KestrelDiagDialog.resx",
    "chars": 5891,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Features/Main/MainModule.cs",
    "chars": 290,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/ModulePageInfoListViewItem.cs",
    "chars": 856,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project roo"
  },
  {
    "path": "JexusManager/Features/Main/PhpDiagDialog.Designer.cs",
    "chars": 6264,
    "preview": "namespace JexusManager.Features.Main\n{\n    partial class PhpDiagDialog\n    {\n        /// <summary>\n        /// Required"
  },
  {
    "path": "JexusManager/Features/Main/PhpDiagDialog.cs",
    "chars": 17732,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/PhpDiagDialog.resx",
    "chars": 5891,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Features/Main/PhysicalDirectoryFeature.cs",
    "chars": 7561,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/PhysicalDirectoryPage.Designer.cs",
    "chars": 17752,
    "preview": "namespace JexusManager.Features.Main\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    partial cl"
  },
  {
    "path": "JexusManager/Features/Main/PhysicalDirectoryPage.cs",
    "chars": 4026,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/PhysicalDirectoryPage.resx",
    "chars": 6881,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Features/Main/ScheduleCollectionEditor.cs",
    "chars": 703,
    "preview": "using Microsoft.Web.Administration;\nusing System;\nusing System.ComponentModel.Design;\n\nnamespace JexusManager.Main.Feat"
  },
  {
    "path": "JexusManager/Features/Main/ServerFeature.cs",
    "chars": 8736,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project roo"
  },
  {
    "path": "JexusManager/Features/Main/ServerPage.Designer.cs",
    "chars": 17322,
    "preview": "namespace JexusManager.Features.Main\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    partial cl"
  },
  {
    "path": "JexusManager/Features/Main/ServerPage.cs",
    "chars": 3844,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/ServerPage.resx",
    "chars": 6486,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Features/Main/ServerSettingsSavedEventHandler.cs",
    "chars": 409,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/SiteFeature.cs",
    "chars": 17571,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/SitePage.Designer.cs",
    "chars": 17725,
    "preview": "namespace JexusManager.Features.Main\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    partial cl"
  },
  {
    "path": "JexusManager/Features/Main/SitePage.cs",
    "chars": 3885,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/SitePage.resx",
    "chars": 6486,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Features/Main/SitesFeature.cs",
    "chars": 20236,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/SitesPage.Designer.cs",
    "chars": 19644,
    "preview": "namespace JexusManager.Features.Main\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    partial cl"
  },
  {
    "path": "JexusManager/Features/Main/SitesPage.cs",
    "chars": 7993,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/SitesPage.resx",
    "chars": 6657,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Features/Main/SslDiagDialog.Designer.cs",
    "chars": 6264,
    "preview": "namespace JexusManager.Features.Main\n{\n    partial class SslDiagDialog\n    {\n        /// <summary>\n        /// Required"
  },
  {
    "path": "JexusManager/Features/Main/SslDiagDialog.cs",
    "chars": 26010,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/SslDiagDialog.resx",
    "chars": 5891,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Features/Main/VirtualDirectoriesFeature.cs",
    "chars": 11765,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project roo"
  },
  {
    "path": "JexusManager/Features/Main/VirtualDirectoriesPage.Designer.cs",
    "chars": 12444,
    "preview": "namespace JexusManager.Features.Main\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    partial cla"
  },
  {
    "path": "JexusManager/Features/Main/VirtualDirectoriesPage.cs",
    "chars": 5288,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project roo"
  },
  {
    "path": "JexusManager/Features/Main/VirtualDirectoriesPage.resx",
    "chars": 6655,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prima"
  },
  {
    "path": "JexusManager/Features/Main/VirtualDirectoryFeature.cs",
    "chars": 9213,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/VirtualDirectoryPage.Designer.cs",
    "chars": 17751,
    "preview": "namespace JexusManager.Features.Main\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    partial cl"
  },
  {
    "path": "JexusManager/Features/Main/VirtualDirectoryPage.cs",
    "chars": 4052,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/VirtualDirectoryPage.resx",
    "chars": 6881,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Features/Main/VsDiagDialog.Designer.cs",
    "chars": 6279,
    "preview": "namespace JexusManager.Features.Main\n{\n    partial class VsDiagDialog\n    {\n        /// <summary>\n        /// Required "
  },
  {
    "path": "JexusManager/Features/Main/VsDiagDialog.cs",
    "chars": 17702,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Features/Main/VsDiagDialog.resx",
    "chars": 5891,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/JexusManager.csproj",
    "chars": 5725,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n  <PropertyGroup>\n    <TargetFramework>net9.0-windows10.0.17763.0</TargetFramework>\n"
  },
  {
    "path": "JexusManager/LoggingService.cs",
    "chars": 4455,
    "preview": "using System;\nusing System.Collections.Concurrent;\nusing System.Drawing;\nusing System.Windows.Forms;\nusing Microsoft.Ext"
  },
  {
    "path": "JexusManager/MainForm.Designer.cs",
    "chars": 94552,
    "preview": "namespace JexusManager\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n    using Crad.Windows.Forms"
  },
  {
    "path": "JexusManager/MainForm.cs",
    "chars": 53608,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/MainForm.resx",
    "chars": 11766,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!--\n    Microsoft ResX Schema\n\n    Version 2.0\n\n    The primary goals "
  },
  {
    "path": "JexusManager/Program.cs",
    "chars": 3247,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Properties/AssemblyInfo.cs",
    "chars": 1480,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Properties/Resources.Designer.cs",
    "chars": 21553,
    "preview": "//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code w"
  },
  {
    "path": "JexusManager/Properties/Resources.resx",
    "chars": 19180,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Properties/Settings.Designer.cs",
    "chars": 1072,
    "preview": "//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code w"
  },
  {
    "path": "JexusManager/Properties/Settings.settings",
    "chars": 240,
    "preview": "<?xml version='1.0' encoding='utf-8'?>\n<SettingsFile xmlns=\"http://schemas.microsoft.com/VisualStudio/2004/01/settings\""
  },
  {
    "path": "JexusManager/Resources/1.0-release.json",
    "chars": 126892,
    "preview": "{\n  \"channel-version\": \"1.0\",\n  \"latest-release\": \"1.0.16\",\n  \"latest-release-date\": \"2019-05-14\",\n  \"latest-runtime\": \""
  },
  {
    "path": "JexusManager/Resources/1.1-release.json",
    "chars": 133396,
    "preview": "{\n  \"channel-version\": \"1.1\",\n  \"latest-release\": \"1.1.13\",\n  \"latest-release-date\": \"2019-05-14\",\n  \"latest-runtime\": \""
  },
  {
    "path": "JexusManager/Resources/10.0-release.json",
    "chars": 163058,
    "preview": "{\n  \"channel-version\": \"10.0\",\n  \"latest-release\": \"10.0.0-preview.4\",\n  \"latest-release-date\": \"2025-05-13\",\n  \"latest-"
  },
  {
    "path": "JexusManager/Resources/2.0-release.json",
    "chars": 96365,
    "preview": "{\n  \"channel-version\": \"2.0\",\n  \"latest-release\": \"2.0.9\",\n  \"latest-release-date\": \"2018-07-10\",\n  \"latest-runtime\": \"2"
  },
  {
    "path": "JexusManager/Resources/2.1-release.json",
    "chars": 784975,
    "preview": "{\n  \"channel-version\": \"2.1\",\n  \"latest-release\": \"2.1.30\",\n  \"latest-release-date\": \"2021-08-19\",\n  \"latest-runtime\": \""
  },
  {
    "path": "JexusManager/Resources/2.2-release.json",
    "chars": 352169,
    "preview": "{\n  \"channel-version\": \"2.2\",\n  \"latest-release\": \"2.2.8\",\n  \"latest-release-date\": \"2019-11-19\",\n  \"latest-runtime\": \"2"
  },
  {
    "path": "JexusManager/Resources/3.0-release.json",
    "chars": 351675,
    "preview": "{\n  \"channel-version\": \"3.0\",\n  \"latest-release\": \"3.0.3\",\n  \"latest-release-date\": \"2020-02-18\",\n  \"latest-runtime\": \"3"
  },
  {
    "path": "JexusManager/Resources/3.1-release.json",
    "chars": 905508,
    "preview": "{\n  \"channel-version\": \"3.1\",\n  \"latest-release\": \"3.1.32\",\n  \"latest-release-date\": \"2022-12-13\",\n  \"latest-runtime\": \""
  },
  {
    "path": "JexusManager/Resources/5.0-release.json",
    "chars": 773952,
    "preview": "{\n  \"channel-version\": \"5.0\",\n  \"latest-release\": \"5.0.17\",\n  \"latest-release-date\": \"2022-05-10\",\n  \"latest-runtime\": \""
  },
  {
    "path": "JexusManager/Resources/6.0-release.json",
    "chars": 1579808,
    "preview": "{\n  \"channel-version\": \"6.0\",\n  \"latest-release\": \"6.0.36\",\n  \"latest-release-date\": \"2024-11-12\",\n  \"latest-runtime\": \""
  },
  {
    "path": "JexusManager/Resources/7.0-release.json",
    "chars": 1031298,
    "preview": "{\n  \"channel-version\": \"7.0\",\n  \"latest-release\": \"7.0.20\",\n  \"latest-release-date\": \"2024-05-28\",\n  \"latest-runtime\": \""
  },
  {
    "path": "JexusManager/Resources/8.0-release.json",
    "chars": 966479,
    "preview": "{\n  \"channel-version\": \"8.0\",\n  \"latest-release\": \"8.0.16\",\n  \"latest-release-date\": \"2025-05-13\",\n  \"latest-runtime\": \""
  },
  {
    "path": "JexusManager/Resources/9.0-release.json",
    "chars": 531001,
    "preview": "{\n  \"channel-version\": \"9.0\",\n  \"latest-release\": \"9.0.5\",\n  \"latest-release-date\": \"2025-05-13\",\n  \"latest-runtime\": \"9"
  },
  {
    "path": "JexusManager/Resources/releases-index.json",
    "chars": 7303,
    "preview": "{\n    \"$schema\": \"https://json.schemastore.org/dotnet-releases-index.json\",\n    \"releases-index\": [\n        {\n          "
  },
  {
    "path": "JexusManager/Services/NavigationService.cs",
    "chars": 8259,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project roo"
  },
  {
    "path": "JexusManager/StringFormatter.cs",
    "chars": 592,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/ThirdPartyNotices.txt",
    "chars": 50687,
    "preview": "\nTHIRD-PARTY SOFTWARE NOTICES AND INFORMATION\nDo Not Translate or Localize\n\nJexus Manager incorporates third party mater"
  },
  {
    "path": "JexusManager/Tree/ApplicationPoolsTreeNode.cs",
    "chars": 2673,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Tree/ApplicationTreeNode.cs",
    "chars": 5524,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Tree/Hierarchy/ManagerHierarchyInfo.cs",
    "chars": 3781,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project roo"
  },
  {
    "path": "JexusManager/Tree/ManagerTreeNode.cs",
    "chars": 7119,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project roo"
  },
  {
    "path": "JexusManager/Tree/PhysicalDirectoryTreeNode.cs",
    "chars": 5437,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project roo"
  },
  {
    "path": "JexusManager/Tree/PlaceholderTreeNode.cs",
    "chars": 1754,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Tree/ServerTreeNode.cs",
    "chars": 15591,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Tree/SiteTreeNode.cs",
    "chars": 5445,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Tree/SitesTreeNode.cs",
    "chars": 2614,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Tree/VirtualDirectoryTreeNode.cs",
    "chars": 5673,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project roo"
  },
  {
    "path": "JexusManager/UpdateHelper.cs",
    "chars": 2810,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Wizards/ConnectionWizard/BrowsePage.Designer.cs",
    "chars": 3260,
    "preview": "namespace JexusManager.Wizards.ConnectionWizard\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n   "
  },
  {
    "path": "JexusManager/Wizards/ConnectionWizard/BrowsePage.cs",
    "chars": 7084,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Wizards/ConnectionWizard/BrowsePage.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Wizards/ConnectionWizard/ConnectionWizard.Designer.cs",
    "chars": 1717,
    "preview": "namespace JexusManager.Wizards.ConnectionWizard\n{\n    using System.ComponentModel;\n\n    partial class ConnectionWizard\n"
  },
  {
    "path": "JexusManager/Wizards/ConnectionWizard/ConnectionWizard.cs",
    "chars": 2234,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Wizards/ConnectionWizard/ConnectionWizard.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Wizards/ConnectionWizard/ConnectionWizardData.cs",
    "chars": 990,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project roo"
  },
  {
    "path": "JexusManager/Wizards/ConnectionWizard/CredentialsPage.Designer.cs",
    "chars": 4164,
    "preview": "namespace JexusManager.Wizards.ConnectionWizard\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n   "
  },
  {
    "path": "JexusManager/Wizards/ConnectionWizard/CredentialsPage.cs",
    "chars": 6040,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Wizards/ConnectionWizard/CredentialsPage.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Wizards/ConnectionWizard/FinishPage.Designer.cs",
    "chars": 3121,
    "preview": "namespace JexusManager.Wizards.ConnectionWizard\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n   "
  },
  {
    "path": "JexusManager/Wizards/ConnectionWizard/FinishPage.cs",
    "chars": 1523,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Wizards/ConnectionWizard/FinishPage.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Wizards/ConnectionWizard/ServerPage.Designer.cs",
    "chars": 3145,
    "preview": "namespace JexusManager.Wizards.ConnectionWizard\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n   "
  },
  {
    "path": "JexusManager/Wizards/ConnectionWizard/ServerPage.cs",
    "chars": 1023,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Wizards/ConnectionWizard/ServerPage.resx",
    "chars": 5696,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Wizards/ConnectionWizard/SolutionTypePage.Designer.cs",
    "chars": 4566,
    "preview": "namespace JexusManager.Wizards.ConnectionWizard\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n   "
  },
  {
    "path": "JexusManager/Wizards/ConnectionWizard/SolutionTypePage.cs",
    "chars": 2763,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Wizards/ConnectionWizard/SolutionTypePage.resx",
    "chars": 5889,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/Wizards/ConnectionWizard/TypePage.Designer.cs",
    "chars": 7233,
    "preview": "namespace JexusManager.Wizards.ConnectionWizard\n{\n    using System.ComponentModel;\n    using System.Windows.Forms;\n\n   "
  },
  {
    "path": "JexusManager/Wizards/ConnectionWizard/TypePage.cs",
    "chars": 2711,
    "preview": "// Copyright (c) Lex Li. All rights reserved.\n// \n// Licensed under the MIT license. See LICENSE file in the project ro"
  },
  {
    "path": "JexusManager/Wizards/ConnectionWizard/TypePage.resx",
    "chars": 5889,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The prim"
  },
  {
    "path": "JexusManager/app.manifest",
    "chars": 3044,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<assembly manifestVersion=\"1.0\" xmlns=\"urn:schemas-microsoft-com:asm.v1\">\n  <ass"
  },
  {
    "path": "JexusManager.BreadCrumb.Demo/JexusManager.BreadCrumb.Demo.csproj",
    "chars": 449,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n  <PropertyGroup>\n    <TargetFramework>net9.0-windows10.0.17763.0</TargetFramework>\n "
  }
]

// ... and 1219 more files (download for full content)

About this extraction

This page contains the full source code of the jexuswebserver/JexusManager GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1419 files (14.3 MB), approximately 3.8M tokens, and a symbol index with 6018 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!